[
  {
    "path": ".gdlintrc",
    "content": "disable:\n  - no-elif-return\n  - no-else-return\n  - max-returns\n  - max-public-methods\n  \nmax-file-lines: 2000\n"
  },
  {
    "path": ".gitattributes",
    "content": "# Auto detect text files and perform LF normalization\n* text=auto\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "patreon: OramaInteractive\ncustom: https://www.paypal.me/OverloadedOrama\nko_fi: overloadedorama\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "content": "---\nname: Bug report\nabout: Report a bug in Pixelorama\ntitle: ''\nlabels: bug\nassignees: ''\n\n---\n\n<!-- Please search existing issues for potential duplicates before filing yours:\nhttps://github.com/Orama-Interactive/Pixelorama/issues?q=is%3Aissue\n-->\n\n**Pixelorama version:**\n<!-- Specify commit hash if using a non-official build. -->\n\n\n**Where did you download Pixelorama from?**\n<!-- Specify where you downloaded Pixelorama from. GitHub Releases, itch.io, Steam, Flatpak, self-built, somewhere else? -->\n\n\n**OS/device including version:**\n<!-- Specify GPU model and drivers if graphics-related. -->\n\n\n**Issue description:**\n<!-- What happened, and what was expected. -->\n\n\n**Steps to reproduce:**\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "content": "contact_links:\n  - name: Feature proposals\n    url: https://github.com/Orama-Interactive/Pixelorama/discussions/new\n    about: Share ideas for new features in Discussions, under the \"Ideas\" category.\n    \n  - name: Ask a Question\n    url: https://github.com/Orama-Interactive/Pixelorama/discussions/new\n    about: Ask the community for help in Discussions, under the \"Q&A\" category.\n\n  - name: Documentation repository\n    url: https://github.com/Orama-Interactive/Pixelorama-Docs\n    about: Please report issues with documentation on the Pixelorama documentation repository, not here.\n"
  },
  {
    "path": ".github/dependabot.yml",
    "content": "version: 2\nupdates:\n  - package-ecosystem: \"github-actions\"\n    directory: \"/\"\n    schedule:\n      interval: \"daily\"\n"
  },
  {
    "path": ".github/workflows/dev-clickable-builds.yml",
    "content": "name: \"dev-clickable-builds\"\non:\n  push:\n    branches: [ master ]\n\nenv:\n  GODOT_VERSION: 3.5\n  EXPORT_NAME: Pixelorama\n\njobs:\n  build_pck:\n    name: Create Pixelorama pack data\n    runs-on: ubuntu-latest\n    container:\n      image: docker://barichello/godot-ci:3.5\n    steps:\n      - name: Clone source\n        uses: actions/checkout@v6\n        with:\n          submodules: true\n      - name: Linux Build 🔧\n        run: godot -v --export-pack \"Clickable (Package Only)\" ./Misc/Clickable/Pixelorama.pck\n      - name: Copy Pixelorama data files\n        run: |\n          cp -R ./pixelorama_data ./Misc/Clickable\n      - name: Upload data files for click package\n        uses: actions/upload-artifact@v7\n        with:\n          name: pixelorama_click_data\n          path: Misc/Clickable/\n          retention-days: 14\n  build_click:\n    name: Create click package\n    needs: build_pck\n    runs-on: ubuntu-latest\n    strategy:\n      matrix:\n        architectures:\n          - armhf\n          - arm64\n    steps:\n      - name: Clone source\n        uses: actions/checkout@v6\n      - name: Install clickable dependencies\n        run: |\n          sudo add-apt-repository ppa:bhdouglass/clickable\n          sudo apt update\n          sudo apt install -y containerd docker.io runc clickable\n          sudo systemctl unmask docker.service\n          sudo systemctl start docker.service\n      - name: Remove existing click folder\n        run: rm -r ./Misc/Clickable\n      - name: Download click data\n        uses: actions/download-artifact@v8\n        with:\n          name: pixelorama_click_data\n          path: ./Misc/Clickable\n      - name: Run Clickable\n        run: |\n          cd Misc/Clickable\n          chmod +x build-ubports.sh\n          clickable build\n        env:\n          CLICKABLE_ARCH: ${{ matrix.architectures }}\n      - name: Upload click package artifact\n        uses: actions/upload-artifact@v7\n        with:\n          name: pixelorama_click_packages\n          path: Misc/Clickable/build/**.click\n"
  },
  {
    "path": ".github/workflows/dev-desktop-builds.yml",
    "content": "name: Development desktop builds\n\non:\n  push:\n    branches: [ master ]\n  pull_request:\n    branches: [ master ]\n    paths-ignore: \n    - \"Translations/*\"\n    - \"installer/*.pot\"\n    - \"installer/po/*\"\n\nconcurrency:\n  group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-devdesktop\n  cancel-in-progress: true\n\nenv:\n  GODOT_VERSION: 4.6.1\n  EXPORT_NAME: Pixelorama\n\njobs:\n  export-windows:\n    name: Windows Export 🗔\n    runs-on: ubuntu-latest\n    container:\n      image: docker://barichello/godot-ci:4.6.1\n    steps:\n      - name: Checkout 🛎️\n        uses: actions/checkout@v6\n        with:\n          submodules: true\n      - name: Setup 💻\n        run: |\n          mkdir -v -p build/${EXPORT_NAME}-Windows-64bit  ~/.local/share/godot/export_templates\n          mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable\n      - name: Import resources once 📦\n        continue-on-error: true\n        run: godot --headless -v --import\n      - name: Windows Build 🔧\n        run: godot --headless -v --export-release \"Windows Desktop 64-bit\" ./build/${EXPORT_NAME}-Windows-64bit/$EXPORT_NAME.exe\n      - name: Copy pixelorama_data folder 📁\n        run: |\n          cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Windows-64bit\n          rm ./build/${EXPORT_NAME}-Windows-64bit/pixelorama_data/.gdignore\n      - name: Upload Artifact 🚀\n        uses: actions/upload-artifact@v7\n        with:\n          name: ${{env.EXPORT_NAME}}-Windows-64bit\n          path: ./build/${{env.EXPORT_NAME}}-Windows-64bit/\n          retention-days: 14\n\n  export-linux:\n    name: Linux Export 🐧\n    runs-on: ubuntu-latest\n    container:\n      image: docker://barichello/godot-ci:4.6.1\n    steps:\n      - name: Checkout 🛎️\n        uses: actions/checkout@v6\n        with:\n          submodules: true\n      - name: Setup 💻\n        run: |\n          mkdir -v -p build/${EXPORT_NAME}-Linux-64bit build/${EXPORT_NAME}-Linux-ARM64 ~/.local/share/godot/export_templates\n          mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable\n      - name: Import resources once 📦\n        continue-on-error: true\n        run: godot --headless -v --import\n      - name: Linux Build 🔧\n        run: |\n          godot --headless -v --export-release \"Linux 64-bit\" ./build/${EXPORT_NAME}-Linux-64bit/$EXPORT_NAME.x86_64\n          godot --headless -v --export-release \"Linux ARM64\" ./build/${EXPORT_NAME}-Linux-ARM64/${EXPORT_NAME}.arm64\n      - name: Give execute permission ☑️\n        run: |\n          chmod +x ./build/${EXPORT_NAME}-Linux-64bit/$EXPORT_NAME.x86_64\n          chmod +x ./build/${EXPORT_NAME}-Linux-ARM64/${EXPORT_NAME}.arm64\n      - name: Copy pixelorama_data folder 📁\n        run: |\n          rm ./pixelorama_data/.gdignore\n          cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Linux-64bit\n          cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Linux-ARM64\n      - name: Create tar.gz archive 🗜️\n        run: |\n          cd build\n          tar zcvf ${EXPORT_NAME}-Linux-64bit.tar.gz ${EXPORT_NAME}-Linux-64bit\n          tar zcvf ${EXPORT_NAME}-Linux-ARM64.tar.gz ${EXPORT_NAME}-Linux-ARM64\n      - name: Upload Linux x86_64 Artifact 🚀\n        uses: actions/upload-artifact@v7\n        with:\n          name: ${{env.EXPORT_NAME}}-Linux-64bit\n          path: ./build/${{env.EXPORT_NAME}}-Linux-64bit.tar.gz\n          retention-days: 14\n          archive: false\n      - name: Upload Linux ARM64 Artifact 🚀\n        uses: actions/upload-artifact@v7\n        with:\n          name: ${{env.EXPORT_NAME}}-Linux-ARM64\n          path: ./build/${{env.EXPORT_NAME}}-Linux-ARM64.tar.gz\n          retention-days: 14\n          archive: false\n\n  export-mac:\n    name: Mac Export 🍎\n    runs-on: macos-latest\n    steps:\n      - name: Checkout 🛎️\n        uses: actions/checkout@v6\n        with:\n          submodules: true\n      - name: Setup environment 🔧\n        run: |\n          export GODOT_VERSION=${GODOT_VERSION}\n          export EXPORT_NAME=${EXPORT_NAME}\n      - name: Download and extract export templates 💾\n        run: |\n          mkdir -v -p \"/Users/runner/Library/Application Support/Godot/export_templates/${GODOT_VERSION}.stable\"\n          wget https://github.com/godotengine/godot-builds/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_export_templates.tpz\n          unzip -a Godot_v${GODOT_VERSION}-stable_export_templates.tpz\n          mv ./templates/* \"/Users/runner/Library/Application Support/Godot/export_templates/${GODOT_VERSION}.stable\"\n      - name: Download Godot headless binary 🤖\n        run: |\n          wget https://github.com/godotengine/godot/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_macos.universal.zip\n          unzip -a Godot_v${GODOT_VERSION}-stable_macos.universal.zip\n      - name: Setup 💻\n        run: mkdir -v -p ./build/mac\n      - name: Import resources once 📦\n        continue-on-error: true\n        run: ./Godot.app/Contents/MacOS/Godot --headless -v --import\n      - name: Mac Build 🔧\n        run: |\n          chown runner ./Godot.app/Contents/MacOS/Godot\n          chmod +x ./Godot.app/Contents/MacOS/Godot\n          ./Godot.app/Contents/MacOS/Godot --headless -v --export-release \"macOS\" ./build/mac/${EXPORT_NAME}.zip\n      - name: Make application executable 🔧\n        run: |\n          unzip -a ./build/mac/${EXPORT_NAME}.zip -d ./build/mac\n          chmod +x ./build/mac/${EXPORT_NAME}.app/Contents/MacOS/${EXPORT_NAME}\n          rm ./build/mac/${EXPORT_NAME}.zip\n      - name: Fix application icon 🖼\n        run: sips -s format icns ./build/mac/${EXPORT_NAME}.app/Contents/Resources/icon.icns --out ./build/mac/${EXPORT_NAME}.app/Contents/Resources/icon.icns\n      - name: Copy pixelorama_data folder 📁\n        run: |\n          cp -R ./pixelorama_data ./build/mac/${EXPORT_NAME}.app/Contents/Resources\n          rm ./build/mac/${EXPORT_NAME}.app/Contents/Resources/pixelorama_data/.gdignore\n      - name: Ad-hoc signing ✍️\n        run: codesign -s - --force --deep ./build/mac/${EXPORT_NAME}.app\n      - name: Create DMG archive 🔧\n        run: hdiutil create -srcfolder ./build/mac -fs HFS+ -volname ${EXPORT_NAME} ./build/mac/${EXPORT_NAME}.dmg\n      - name: Upload Artifact 🚀\n        uses: actions/upload-artifact@v7\n        with:\n          name: ${{env.EXPORT_NAME}}-Mac\n          path: ./build/mac/${{env.EXPORT_NAME}}.dmg\n          retention-days: 14\n          archive: false\n"
  },
  {
    "path": ".github/workflows/dev-web.yml",
    "content": "name: Development Web build\n\non:\n  push:\n    branches: [ master ]\n\nconcurrency:\n  group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-devweb\n  cancel-in-progress: true\n\nenv:\n  GODOT_VERSION: 4.6.1\n  EXPORT_NAME: Pixelorama\n\njobs:\n  export-web:\n    name: Web Export 🌐\n    runs-on: ubuntu-latest\n    container:\n      image: docker://barichello/godot-ci:4.6.1\n    steps:\n      - name: Checkout 🛎️\n        uses: actions/checkout@v6\n        with:\n          submodules: true\n      - name: Setup 💻\n        run: |\n          mkdir -v -p build/web ~/.local/share/godot/export_templates\n          mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable\n      - name: Import resources once 📦\n        continue-on-error: true\n        run: godot --headless -v --import\n      - name: Web Build 🔧\n        run: godot --headless -v --export-release \"Web\" ./build/web/index.html\n      - name: Install rsync 📚\n        run: |\n          apt-get update && apt-get install -y rsync\n      - name: Deploy 🚀\n        uses: JamesIves/github-pages-deploy-action@v4\n        with:\n          token: ${{ secrets.GITHUB_TOKEN }}\n          single-commit: true\n          folder: build/web # The folder the action should deploy.\n          target-folder: early_access\n"
  },
  {
    "path": ".github/workflows/release.yml",
    "content": "name: Stable release builds\n\non:\n  push:\n    branches: [ release ]\n\nenv:\n  GODOT_VERSION: 4.6.1\n  EXPORT_NAME: Pixelorama\n  TAG: v1.1.8\n  BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }}\n\njobs:\n  export-windows:\n    name: Windows Export 🗔\n    runs-on: ubuntu-latest\n    container:\n      image: docker://barichello/godot-ci:4.6.1\n    steps:\n      - name: Checkout 🛎️\n        uses: actions/checkout@v6\n        with:\n          submodules: true\n      - name: Setup 💻\n        run: |\n          mkdir -v -p build/${EXPORT_NAME}-Windows-64bit build/${EXPORT_NAME}-Windows-32bit ~/.local/share/godot/export_templates\n          mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable\n      - name: Import resources once 📦\n        continue-on-error: true\n        run: godot --headless -v --import\n      - name: Windows Build 🔧\n        run: |\n          godot --headless -v --export-release \"Windows Desktop 64-bit\" ./build/${EXPORT_NAME}-Windows-64bit/${EXPORT_NAME}.exe\n          godot --headless -v --export-release \"Windows Desktop 32-bit\" ./build/${EXPORT_NAME}-Windows-32bit/${EXPORT_NAME}.exe\n      - name: Copy pixelorama_data folder 📁\n        run: |\n          rm ./pixelorama_data/.gdignore\n          cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Windows-64bit\n          cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Windows-32bit\n          cp -R ./pixelorama_data ./build\n      - name: Zip 🗜️\n        working-directory: ./build\n        run: |\n          zip -r ${EXPORT_NAME}-Windows-64bit.zip ${EXPORT_NAME}-Windows-64bit\n          zip -r ${EXPORT_NAME}-Windows-32bit.zip ${EXPORT_NAME}-Windows-32bit\n      - name: Build installer 🔧\n        run: |\n          apt-get update && apt-get install -y python3 && apt-get install -y nsis\n          python3 ./installer/utils/po2nsi.py -i ./installer/pixelorama.nsi -o ./installer/pixelorama_loc.nsi -p ./installer/po -l \"English\" -v\n          makensis ./installer/pixelorama_loc.nsi\n          mkdir ./build/installer\n          mv ./installer/${EXPORT_NAME}_${TAG}_setup.exe ./build\n      - name: Upload Release Assets to itch.io 🎮\n        run: |\n          butler push ./build/${EXPORT_NAME}-Windows-64bit ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:windows-64 --userversion ${TAG}\n          butler push ./build/${EXPORT_NAME}-Windows-32bit ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:windows-32 --userversion ${TAG}\n          butler push ./build/${EXPORT_NAME}_${TAG}_setup.exe ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:windows-installer --userversion ${TAG}\n      - name: Upload Release Asset 🚀\n        uses: svenstaro/upload-release-action@v2\n        with:\n          repo_token: ${{ secrets.GITHUB_TOKEN }}\n          file: ./build/*\n          tag: ${{env.TAG}}\n          overwrite: true\n          file_glob: true\n\n  export-linux:\n    name: Linux Export 🐧\n    runs-on: ubuntu-latest\n    container:\n      image: docker://barichello/godot-ci:4.6.1\n    steps:\n      - name: Checkout 🛎️\n        uses: actions/checkout@v6\n        with:\n          submodules: true\n      - name: Setup 💻\n        run: |\n          mkdir -v -p build/${EXPORT_NAME}-Linux-64bit build/${EXPORT_NAME}-Linux-32bit build/${EXPORT_NAME}-Linux-ARM64 build/${EXPORT_NAME}-Linux-ARM32 ~/.local/share/godot/export_templates\n          mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable\n      - name: Import resources once 📦\n        continue-on-error: true\n        run: godot --headless -v --import\n      - name: Linux Build 🔧\n        run: |\n          godot --headless -v --export-release \"Linux 64-bit\" ./build/${EXPORT_NAME}-Linux-64bit/${EXPORT_NAME}.x86_64\n          godot --headless -v --export-release \"Linux 32-bit\" ./build/${EXPORT_NAME}-Linux-32bit/${EXPORT_NAME}.x86_32\n          godot --headless -v --export-release \"Linux ARM64\" ./build/${EXPORT_NAME}-Linux-ARM64/${EXPORT_NAME}.arm64\n          godot --headless -v --export-release \"Linux ARM32\" ./build/${EXPORT_NAME}-Linux-ARM32/${EXPORT_NAME}.arm32\n      - name: Give execute permission ☑️\n        run: |\n          chmod +x ./build/${EXPORT_NAME}-Linux-64bit/${EXPORT_NAME}.x86_64\n          chmod +x ./build/${EXPORT_NAME}-Linux-32bit/${EXPORT_NAME}.x86_32\n          chmod +x ./build/${EXPORT_NAME}-Linux-ARM64/${EXPORT_NAME}.arm64\n          chmod +x ./build/${EXPORT_NAME}-Linux-ARM32/${EXPORT_NAME}.arm32\n      - name: Copy pixelorama_data folder 📁\n        run: |\n          rm ./pixelorama_data/.gdignore\n          cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Linux-64bit\n          cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Linux-32bit\n          cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Linux-ARM64\n          cp -R ./pixelorama_data ./build/${EXPORT_NAME}-Linux-ARM32\n      - name: Create tar.gz archive 🗜️\n        run: |\n          cd build\n          tar zcvf ${EXPORT_NAME}-Linux-64bit.tar.gz ${EXPORT_NAME}-Linux-64bit\n          tar zcvf ${EXPORT_NAME}-Linux-32bit.tar.gz ${EXPORT_NAME}-Linux-32bit\n          tar zcvf ${EXPORT_NAME}-Linux-ARM64.tar.gz ${EXPORT_NAME}-Linux-ARM64\n          tar zcvf ${EXPORT_NAME}-Linux-ARM32.tar.gz ${EXPORT_NAME}-Linux-ARM32\n      - name: Upload Release Assets to itch.io 🎮\n        run: |\n          butler push ./build/${{env.EXPORT_NAME}}-Linux-64bit.tar.gz ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:linux-x86_64 --userversion ${{env.TAG}}\n          butler push ./build/${{env.EXPORT_NAME}}-Linux-32bit.tar.gz ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:linux-x86_32 --userversion ${{env.TAG}}\n          butler push ./build/${{env.EXPORT_NAME}}-Linux-ARM64.tar.gz ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:linux-arm64 --userversion ${{env.TAG}}\n          butler push ./build/${{env.EXPORT_NAME}}-Linux-ARM32.tar.gz ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:linux-arm32 --userversion ${{env.TAG}}\n      - name: Upload Release Asset 🚀\n        uses: svenstaro/upload-release-action@v2\n        with:\n          repo_token: ${{ secrets.GITHUB_TOKEN }}\n          file: ./build/${{env.EXPORT_NAME}}-Linux-*.tar.gz\n          tag: ${{env.TAG}}\n          overwrite: true\n          file_glob: true\n\n  export-mac:\n    name: Mac Export 🍎\n    runs-on: macos-latest\n    steps:\n      - name: Checkout 🛎️\n        uses: actions/checkout@v6\n        with:\n          submodules: true\n      - name: Setup environment 🔧\n        run: |\n          export GODOT_VERSION=${GODOT_VERSION}\n          export EXPORT_NAME=Pixelorama\n      - name: Download and extract export templates 💾\n        run: |\n          mkdir -v -p \"/Users/runner/Library/Application Support/Godot/export_templates/${GODOT_VERSION}.stable\"\n          wget https://github.com/godotengine/godot-builds/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_export_templates.tpz\n          unzip -a Godot_v${GODOT_VERSION}-stable_export_templates.tpz\n          mv ./templates/* \"/Users/runner/Library/Application Support/Godot/export_templates/${GODOT_VERSION}.stable\"\n      - name: Download Godot headless binary 🤖\n        run: |\n          wget https://github.com/godotengine/godot/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_macos.universal.zip\n          unzip -a Godot_v${GODOT_VERSION}-stable_macos.universal.zip\n      - name: Setup 💻\n        run: mkdir -v -p ./build/mac\n      - name: Import resources once 📦\n        continue-on-error: true\n        run: ./Godot.app/Contents/MacOS/Godot --headless -v --import\n      - name: Mac Build 🔧\n        run: |\n          chown runner ./Godot.app/Contents/MacOS/Godot\n          chmod +x ./Godot.app/Contents/MacOS/Godot\n          ./Godot.app/Contents/MacOS/Godot --headless -v --export-release \"macOS\" ./build/mac/${EXPORT_NAME}.zip\n      - name: Make application executable 🔧\n        run: |\n          unzip -a ./build/mac/${EXPORT_NAME}.zip -d ./build/mac\n          chmod +x ./build/mac/${EXPORT_NAME}.app/Contents/MacOS/${EXPORT_NAME}\n          rm ./build/mac/${EXPORT_NAME}.zip\n      - name: Fix application icon 🖼\n        run: sips -s format icns ./build/mac/${EXPORT_NAME}.app/Contents/Resources/icon.icns --out ./build/mac/${EXPORT_NAME}.app/Contents/Resources/icon.icns\n      - name: Copy pixelorama_data folder 📁\n        run: |\n          cp -R ./pixelorama_data ./build/mac/${EXPORT_NAME}.app/Contents/Resources\n          rm ./build/mac/${EXPORT_NAME}.app/Contents/Resources/pixelorama_data/.gdignore\n      - name: Ad-hoc signing ✍️\n        run: codesign -s - --force --deep ./build/mac/${EXPORT_NAME}.app\n      - name: Create DMG archive 🔧\n        run: hdiutil create -srcfolder ./build/mac -fs HFS+ -volname ${EXPORT_NAME} ./build/mac/${EXPORT_NAME}-Mac.dmg\n      - name: Upload Release Assets to itch.io 🎮\n        run: |\n          curl -L -o butler.zip https://broth.itch.zone/butler/darwin-amd64/LATEST/archive/default\n          unzip butler.zip\n          chmod +x butler\n          ./butler push ./build/mac/${{env.EXPORT_NAME}}-Mac.dmg ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:mac --userversion ${{env.TAG}}\n      - name: Upload Release Asset 🚀\n        uses: svenstaro/upload-release-action@v2\n        with:\n          repo_token: ${{ secrets.GITHUB_TOKEN }}\n          file: ./build/mac/${{env.EXPORT_NAME}}-Mac.dmg\n          tag: ${{env.TAG}}\n          overwrite: true\n    \n  export-web:\n    name: Web Export 🌐\n    runs-on: ubuntu-latest\n    container:\n      image: docker://barichello/godot-ci:4.6.1\n    steps:\n      - name: Checkout 🛎️\n        uses: actions/checkout@v6\n        with:\n          submodules: true\n      - name: Setup 💻\n        run: |\n          mkdir -v -p build/web ~/.local/share/godot/export_templates\n          mv /root/.local/share/godot/export_templates/${GODOT_VERSION}.stable ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable\n      - name: Import resources once 📦\n        continue-on-error: true\n        run: godot --headless -v --import\n      - name: Web Build 🔧\n        run: godot --headless -v --export-release \"Web\" ./build/web/index.html\n      - name: Install rsync 📚\n        run: |\n          apt-get update && apt-get install -y rsync\n      - name: Upload Release Assets to itch.io 🎮\n        run: |\n          butler push ./build/web ${{ secrets.ITCHIO_USERNAME }}/${{ secrets.ITCHIO_GAME }}:web --userversion ${{env.TAG}}\n      - name: Deploy 🚀\n        uses: JamesIves/github-pages-deploy-action@v4\n        with:\n          token: ${{ secrets.GITHUB_TOKEN }}\n          single-commit: true\n          folder: build/web # The folder the action should deploy.\n"
  },
  {
    "path": ".github/workflows/static-checks.yml",
    "content": "name: Static Checks 📊\non:\n  push:\n    branches-ignore:\n      - gh-pages\n      - l10n_master\n  pull_request:\n    paths:\n      - \"addons/**\"\n      - \"src/**\"\n\nconcurrency:\n  group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-static\n  cancel-in-progress: true\n\njobs:\n  static-checks:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v6\n      - uses: Scony/godot-gdscript-toolkit@master\n      - name: Formatting checks\n        run: gdformat --diff .\n      - name: Linting checks\n        run: gdlint .\n      - name: Spell checks via codespell\n        uses: codespell-project/actions-codespell@v2\n        with:\n          skip: ./addons,./Translations,./installer,./src/UI/Dialogs/AboutDialog.gd,./src/Classes/SoftwareParsers/PhotoshopParser.gd\n          ignore_words_list: chello,doubleclick,Manuel,SectionIn\n"
  },
  {
    "path": ".gitignore",
    "content": "\n# Godot-specific ignores\n.import/\n.godot/\noverride.cfg\n\n# Imported translations (automatically generated from CSV files)\n*.translation\n\n# Mono-specific ignores\n.mono/\ndata_*/\nmono_crash.*.json\n\n# System/tool-specific ignores\n.directory\n*~\n\n# Visual Studio Code ignores\n.vscode/\n\n# macOS ignores\n.DS_Store\n\n# Android ignores\nandroid/\n\naddons/godotsteam\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). All the dates are in YYYY-MM-DD format.\n<br><br>\n\n## [v1.1.9] - Unreleased\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)), [@Bartkk0](https://github.com/Bartkk0), Akane Angèle ([@AkaneAngele](https://github.com/AkaneAngele)), [@AlRado](https://github.com/AlRado),  Vance Palacio ([@vanceism7](https://github.com/vanceism7)), Olof Knight ([@InsaneAwesomeTony](https://github.com/InsaneAwesomeTony)), [@magley](https://github.com/magley)\n\nBuilt using Godot 4.6.1\n\n### Added\n- It is now finally possible to split layers when exporting spritesheets! [#1456](https://github.com/Orama-Interactive/Pixelorama/pull/1456)\n- Implemented the ability to export tilesets as images or Godot `TileSet` resources from the Project Properties window.\n- A search bar has been added in the Preferences.\n- You can now load and save exr image files on desktop platforms.\n- Added a \"Collapse main menu\" preference that unites the menu bar into a single \"Main menu\" button. This preference is turned on by default on mobiles, but turned off by default on other platforms.\n- On mobile, quick access buttons for save, undo, redo, copy, cut, paste, delete as well as Shift, Control and Alt have been added on the top bar next to the menu.\n- On the web version, a confirmation message when the user attempts to close the tab and has unsaved changes has been added.\n- A max velocity setting for mice is now exposed in the dynamics panel. [#1430](https://github.com/Orama-Interactive/Pixelorama/pull/1430)\n- Added new image size presets when creating a new project. [#1455](https://github.com/Orama-Interactive/Pixelorama/pull/1455)\n- Added a shortcut for canvas rotation. [#1449](https://github.com/Orama-Interactive/Pixelorama/pull/1449)\n- It is now possible to set a shortcut for the Grayscale View menu option. [#1443](https://github.com/Orama-Interactive/Pixelorama/pull/1443)\n\n### Changed\n- The export dialog's file browser has changed. Now, users select the entire path of the exported file from there, instead of just the folder, and the file name text field has been removed.\n- The mimetype of pxo files has been changed to `application/x-pixelorama`.\n- The export file directory & name are stored inside pxo files.\n- Undo/redo now works for layer properties. [#1413](https://github.com/Orama-Interactive/Pixelorama/pull/#1413)\n- The brush size found in the dynamics panel is now relative to the brush size in the tool properties. [#1430](https://github.com/Orama-Interactive/Pixelorama/pull/1430)\n- Marking folders as favorites in the file manager windows is now saved between sessions. Recent folders are also being saved. [#1434](https://github.com/Orama-Interactive/Pixelorama/pull/1434)\n- The Android version no longer requires storage permissions, as now we are using the Storage Access Framework — thanks to the update to Godot 4.6.\n\n### Fixed\n- Fixed major slowdown when pasting an image into a tilemap cel, or when deleting the entire cel.\n- Brush size no longer changes in odd increments if share tool options is enabled.\n- On mobile, the UI is no longer getting cut on fullscreen by camera notches and curved sides.\n- Fixed right tool not selected by stylus when invert button is pressed. [#1426](https://github.com/Orama-Interactive/Pixelorama/pull/1426)\n- Fixed various visual bugs during undo/redo. [#1432](https://github.com/Orama-Interactive/Pixelorama/pull/1432)\n- Fixed toggling the \"Display Layer Effects\" option not updating the effects of the unselected layers. [#1457](https://github.com/Orama-Interactive/Pixelorama/pull/1457)\n- In dynamics, fixed tools having a non-zero velocity even when it just started drawing. This previously caused unpredictability when modifying alpha through velocity. [#1430](https://github.com/Orama-Interactive/Pixelorama/pull/1430)\n- Fixed horizontal/vertical/diagonal mirror button shortcuts not being unique.\n- Fixed animation tags not being visible if the last project gets loaded on startup.\n- Fixed the \"add extension\" file dialog ignoring the \"Use native file dialogs\" preference.\n- Fixed precision loss in perspective lines. [#1450](https://github.com/Orama-Interactive/Pixelorama/pull/1450)\n\n## [v1.1.8] - 2025-12-31\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)), [@Bartkk0](https://github.com/Bartkk0)\n\nBuilt using Godot 4.5.1\n\n### Added\n- Added support for multi frame/cel swapping! [#1393](https://github.com/Orama-Interactive/Pixelorama/pull/#1393)\n- You can now search & rename tilesets in the project properties dialog. [#1383](https://github.com/Orama-Interactive/Pixelorama/pull/#1383)\n- Various improvements to the import image dialog have been made when importing an image as a spritesheet, such as a preset system and the ability to include or exclude empty tiles. [#1385](https://github.com/Orama-Interactive/Pixelorama/pull/#1385)\n- The recorder panel now has more options, such as the ability to use FFMPEG to export the recording as a gif file, and the ability to set a custom rectangular area of the screen to record. [#1387](https://github.com/Orama-Interactive/Pixelorama/pull/#1387)\n\n### Changed\n- Gif files are now being exported frame by frame, which saves memory space and users can now see the current progress of the export. [#1396](https://github.com/Orama-Interactive/Pixelorama/pull/#1396)\n- The `override.cfg` file, which is used to store settings such as single-window mode, window transparency and audio driver is now stored in the same place as the `config.ini` file, instead of the same folder as the Pixelorama executable.\n- When double clicking on a layer button to rename it, the entire text is now automatically selected. [#1411](https://github.com/Orama-Interactive/Pixelorama/pull/#1411)\n\n### Fixed\n- The \"apply all\" toggle when importing multiple images is now faster. [#1390](https://github.com/Orama-Interactive/Pixelorama/pull/#1390)\n- Fixed a visual bug with clipping masks. [#1389](https://github.com/Orama-Interactive/Pixelorama/pull/#1389)\n- Clear the saved processed images from memory when closing the export dialog, so that they don't waste space in memory. [#1397](https://github.com/Orama-Interactive/Pixelorama/pull/#1397)\n- Fixed selection animated borders setting not being applied on startup.\n- Non-valid names for projects are no longer allowed in the project properties. [#1383](https://github.com/Orama-Interactive/Pixelorama/pull/#1383)\n- Fixed guides being appended twice when loading Krita & Photoshop projects, leading to crashes when hovering over the canvas rulers.\n\n## [v1.1.7] - 2025-11-29\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind))\n\nBuilt using Godot 4.5.1\n\n### Added\n- Importing GIF files is now possible without needing FFMPEG!\n- Holding <kbd>Control + Shift</kbd> and moving the mouse right or left now changes the brush size. This shortcut can be changed from the Preferences.\n- The shortcuts category in the Preferences now have search bars to filter by name, or by shortcut.\n- Added mouse motion shortcuts to quickly change the color hue, saturation, value and alpha. By default, these shortcuts are empty, but they can be changed from the Preferences.\n- Added a button in the palette panel that unlocks the palette grid, making the swatches automatically resize based on the available free space of the panel, instead of having a fixed width and height.\n- A single tool mode has been added as a preference that makes the right mouse button activate the same tool as the left mouse button, instead of being independent.\n- Selecting \"Paste from clipboard\" while having a Lospec Palette URI copied will now automatically download that palette.\n- Removing all backups is now possible from the Preferences, under the Reset category.\n\n### Changed\n- The default UI scale factor now depends on the monitor properties, instead of always being set to 1.0.\n- In the shortcut category of the Preferences, the Default shortcut profile is no longer selectable, and the Custom profile is now the default one. If you want to restore the default shortcuts, you can press the new \"Reset\" button.\n- The distance between panels in the interface has been increased from 8 pixels to 12, making it a bit easier to grab the split handler in order to resize the panels.\n- Palette swatches get selected on mouse button *release* and not *press*, making them more consistent with the rest of the buttons in the interface.\n- Scrolling on the palette panel is now smoother and works like the rest of the scrollable areas on the interface.\n\n### Fixed\n- Fixed crash when drawing and there is no active palette.\n- Fixed a crash that sometimes happened when loading multiple projects at once. [#1379](https://github.com/Orama-Interactive/Pixelorama/issues/1379)\n- Fix crash when opening Pixelorama with a project which had a group layer saved as current layer. [#1378](https://github.com/Orama-Interactive/Pixelorama/pull/#1378)\n- Fixed crash when adding a new palette when there is none.\n- Fixed crash when drag and dropping something that is not a palette swatch (such as a cel button) into a swatch.\n- Fixed crash when trying to import a zip file that is not an extension. [#1375](https://github.com/Orama-Interactive/Pixelorama/pull/#1375)\n- The timeline now scrolls to the active cel when switching projects. [#1377](https://github.com/Orama-Interactive/Pixelorama/issues/1377)\n- Exporting videos should no longer skip the last frame.\n- Fixed subwindow dialogs being too big compared to the main window size, if the UI is scaled.\n- Fixed error code 1 when saving a backup, if the current session backup directory is removed while Pixelorama is running. Now, it always checks if the directory exists and re-creates it, if it is deleted.\n\n## [v1.1.6] - 2025-10-31\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind))\n\nBuilt using Godot 4.5.1\n\n### Added\n- Made a new website for Pixelorama! You can visit it on: https://www.pixelorama.org/\n- Added buttons that enable diagonal symmetry!\n- If Pixelorama crashed in the previous session, a window will appear the next time it is launched to let the user know that they can restore data, if there are any projects that can be restored.\n- Two new color picker shapes, OK HS Rectangle and OK HL Rectangle.\n- Users can now drag and drop font files to load them. Fonts can be used by the text tool, text meshes in 3D layers and the user interface itself.\n- Added an Undo History dialog.\n- The convolution matrix layer effect now has a kernel normalization factor.\n- Added Arabic translation and made improvements to the UI so that it works better for Right-To-Left languages.\n- Pixelorama can now load Lospec palettes if started with \"lospec-palette://\" plus the palette's name as a CLI argument. In theory, this allows Pixelorama to open when clicking on the \"Open In App\" button on a palette on Lospec's website, but for now **it does not work automatically**, as it requires different setup for different operating systems.\n- A preview.png file is now saved inside pxo files. This can help file managers to generate thumbnails for pxo files. **Note that this doesn't mean that you will automatically see thumbnails for pxo files — it's up to file managers to implement this.**\n\n### Changed\n- **Extensions made for previous versions of Pixelorama will fail to load on this version.** Make sure to re-download the extensions you want.\n- The timeline now scrolls when adding/moving layers, when the current cel is changing from shortcuts or from the timeline buttons, and when cels, frames and layers are being dragged.\n- The layer effect settings dialog now scrolls automatically when dragging layer effects to re-order them.\n- When moving frames using the arrow buttons in the timeline, all moved cels are now being selected. [#1358](https://github.com/Orama-Interactive/Pixelorama/pull/1358)\n- The \"Offset/Zoom\" effect has been renamed to \"Offset & Scale\". [#1362](https://github.com/Orama-Interactive/Pixelorama/pull/1362)\n- On Linux, the native screen color picker of the operating system is now used.\n- The canvas can now be moved by arrow keys if there is a selection tool selected, but there is not an active selection. If there is, the selection itself gets moved, just like before.\n\n### Fixed\n- The canvas no longer jitters when it is zoomed out a lot and smooth zoom is enabled.\n- The screen color picker now works properly on Linux, users can pick colors outside of Pixelorama's window.\n- Optimized the \"Mirror Image\" effect when a selection is active. Now it should no longer lag on big canvases.\n- Fixed a crash when a user selects a 3D object, then does an undo or redo [#1353](https://github.com/Orama-Interactive/Pixelorama/pull/1353)\n- Fixed tilemap cells being erased in manual mode if there are cells outside of the canvas boundaries.\n- Invisible layers are no longer included when exporting images in headless mode, such as from the command line. [#1368](https://github.com/Orama-Interactive/Pixelorama/issues/1368)\n- Fixed transparent checkers not following canvas movement vertically, if \"Follow canvas movement\" was enabled, and \"Follow canvas zoom level\" was disabled from the Preferences.\n- The color picker's RGB values can no longer go higher than 255. [#349](https://github.com/Orama-Interactive/Pixelorama/issues/349)\n- Fixed the restore to default button in the Preferences not hiding after being clicked next to text fields and color buttons.\n- Fixed the \"Open last project\" button in the splash screen not hiding in the Web version.\n\n## [v1.1.5] - 2025-09-06\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind))\n\nBuilt using Godot 4.4.1\n\n### Added\n- Project palettes have been implemented, with undo/redo support! [#1335](https://github.com/Orama-Interactive/Pixelorama/pull/1335)\n- Implemented loading Krita (`.kra`) files with animation support. Only projects using RGBA with 8-bit color depth are supported at the moment.\n- Loading animations from Photoshop (`.psd`) files is now possible.\n- Loading palettes from Aseprite (`.ase`/`.aseprite`) files is now possible.\n- Implemented loading Piskel (`.piskel`) files with animation support.\n- Added a zoom parameter to the offset shader. [#1330](https://github.com/Orama-Interactive/Pixelorama/pull/1330)\n- The currently selected frame & layer are now remembered inside `.pxo` files.\n- Added an option to transform content in Modify selection. [#1309](https://github.com/Orama-Interactive/Pixelorama/pull/1309)\n- Relative paths are now supported in the CLI. [#1326](https://github.com/Orama-Interactive/Pixelorama/pull/1326)\n\n### Changed\n- Bumped extensions API version to 7.\n- When clicking on the remove layer button, now all selected layers get removed. This is consistent with how frames get deleted, and is what users would expect.\n- During animation playback on frames of a tag, if the user changes to a frame of a different tag, then the frames of that tag are being played. [#1311](https://github.com/Orama-Interactive/Pixelorama/pull/1311)\n- Using the move tool on a tilemap layer while draw tiles mode is active now clears the selection, if there is any. [#1340](https://github.com/Orama-Interactive/Pixelorama/pull/1340)\n- Current frame & layer are used as default values when importing an image as a new frame, new layer or to replace a cel.\n\n### Fixed\n- The bucket tool's flood fill has been further optimized. [#1306](https://github.com/Orama-Interactive/Pixelorama/pull/1306)\n- Creating rectangular selections now snap to the grid correctly, if snapping is enabled. [#1338](https://github.com/Orama-Interactive/Pixelorama/pull/1338)\n- Pasted selections now get snapped to grid. [#1340](https://github.com/Orama-Interactive/Pixelorama/pull/1340)\n- Pasting a selection on a tilemap layer while draw tiles mode is active now updates the tileset. [#1340](https://github.com/Orama-Interactive/Pixelorama/pull/1340)\n- Backups no longer appear in the recent project list. [#1341](https://github.com/Orama-Interactive/Pixelorama/pull/1341)\n- The names of the projects are no longer being translated in tabs. [#1334](https://github.com/Orama-Interactive/Pixelorama/issues/1334)\n- Fixed the drop shadow dialog not having a selected option by default for the affect option button.\n\n## [v1.1.4] - 2025-08-13\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind))\n\nBuilt using Godot 4.4.1\n\n### Added\n- Implemented the ability to set shortcuts for toggling layer visibility and lock from the preferences. There are no default shortcuts for these at the moment.\n\n### Fixed\n- Fixed selection tools selecting pixels in wrong positions. [#1318](https://github.com/Orama-Interactive/Pixelorama/pull/1318)\n\n## [v1.1.3] - 2025-08-06\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind))\n\nBuilt using Godot 4.4.1\n\n### Added\n- Implemented limited support of Photoshop (`.psd`) file importing. [#1308](https://github.com/Orama-Interactive/Pixelorama/pull/1308)\n- Added ability to edit individual tiles in tilemap layers even in place only mode. [#1253](https://github.com/Orama-Interactive/Pixelorama/pull/1253)\n- Added support for batch removal of unused tiles in tilemap layers. [#1253](https://github.com/Orama-Interactive/Pixelorama/pull/1253)\n- Added a way to re-apply the last image effect from the Effects menu. [#1310](https://github.com/Orama-Interactive/Pixelorama/pull/1310)\n- Clicking a palette swatch with the left/right color now directly adds the color to that swatch. [#1300](https://github.com/Orama-Interactive/Pixelorama/pull/1300)\n- You can now remove colors from palette swatches by holding <kbd>Control</kbd> while clicking on them. [#1300](https://github.com/Orama-Interactive/Pixelorama/pull/1300)\n- A new \"Auto add colors\" option has been added. When enabled, new colors drawn on canvas will automatically get added to the palette, if space is available. [#1300](https://github.com/Orama-Interactive/Pixelorama/pull/1300)\n- An \"ignore in onion skinning\" layer property has been added.\n\n### Changed\n- The tilemap layer system has been refactored behind the scenes. **This has changed how isometric tiles are being handled, so make sure to keep backups of your old projects if they contain isometric tiles.** [#1253](https://github.com/Orama-Interactive/Pixelorama/pull/1253)\n- Isometric tilemap layers now use a pixelated grid that is more accurate. [#1252](https://github.com/Orama-Interactive/Pixelorama/pull/1252)\n- The backup system has been re-written, now multiple old sessions are being stored, regardless if Pixelorama crashes or not.  [#1299](https://github.com/Orama-Interactive/Pixelorama/pull/1299)\n- Made the movement of frame tags more intuitive. [#1281](https://github.com/Orama-Interactive/Pixelorama/pull/1281)\n\n### Fixed\n- Fixed transformations making semi-transparent pixels darker due to alpha pre-multiplication.\n- Resizing selections while holding Shift now works properly from all corners.\n- Fixed resizing tilemap selection when the tilemap cel grid has an offset.\n- Fixed loading APNGs.\n- Significantly improved performance of the bucket tool, when a selection is active. [#1304](https://github.com/Orama-Interactive/Pixelorama/pull/1304)\n- Made the offset pixels effect only accept integer values for the offset.\n- The FX icon in the layer button is now being properly hidden if all effects have been applied.\n- Fixed crash when increasing the width of a palette.\n- Fixed crash when creating a convolution matrix layer effect.\n\n## [v1.1.2] - 2025-06-26\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)), [@VernalUmbrella](https://github.com/VernalUmbrella), [@zibetnu](https://github.com/zibetnu)\n\nBuilt using Godot 4.4.1\n\n### Added\n- The selection transformation system has been completely remade, finally allowing support for easy rotation and skewing! [#1245](https://github.com/Orama-Interactive/Pixelorama/pull/1245)\n- A new isometric box tool! [#1246](https://github.com/Orama-Interactive/Pixelorama/pull/1246)\n- Added bucket tool fill mode where regions from the merging of all layers are filled. [#1258](https://github.com/Orama-Interactive/Pixelorama/pull/1258)\n- Using the move tool on a layer group now moves the content of all of its children.\n- You can now hide all other layers when holding Alt and clicking on the visibility button of a layer.\n- Users can now change the alpha of the transformation preview from the preferences.\n- Added the ability to double-click on the canvas preview to get at the same point on the main canvas. [#1244](https://github.com/Orama-Interactive/Pixelorama/pull/1244)\n\n### Fixed\n- Transformed content no longer gets lost when pressing Control + an arrow key. [#1245](https://github.com/Orama-Interactive/Pixelorama/pull/1245)\n- Transformed content no longer gets lost when cloning layers & frames.\n- Pressing Enter or Cancel when changing the value of a slider in the options of a selection tool when there is an active transformation, no longer confirms/cancels the transformation.\n- Fixed a bug where some child layer of group layers were not rendered. [#1268](https://github.com/Orama-Interactive/Pixelorama/pull/1268)\n- Group layers with blend modes other than passthrough received a performance boost. [#1269](https://github.com/Orama-Interactive/Pixelorama/pull/1269)\n- Fixed a bug where pasting images from the clipboard sometimes did not work, due to them being in different formats than the project image. [#1245](https://github.com/Orama-Interactive/Pixelorama/pull/1245)\n- Fixed a bug where changing a palette color in a copied palette also changed the color in the original palette as well. [#1274](https://github.com/Orama-Interactive/Pixelorama/issues/1274)\n- Closing the app with Zen Mode no longer hides all panels when opening the app again. [#1238](https://github.com/Orama-Interactive/Pixelorama/issues/1238)\n- Fixed broken tool shortcuts on some keyboard layouts. [#1283](https://github.com/Orama-Interactive/Pixelorama/pull/1283)\n- The override.cfg file is now being saved to the correct directory. [#1285](https://github.com/Orama-Interactive/Pixelorama/pull/1285)\n- Panels can no longer be moved if the Moveable Panels option is turned off. [#1242](https://github.com/Orama-Interactive/Pixelorama/pull/1242)\n- Using the bucket tool now confirms the active transformation. [#1245](https://github.com/Orama-Interactive/Pixelorama/pull/1245)\n- The canvas rotation now affects the direction of the arrow keys. [#1245](https://github.com/Orama-Interactive/Pixelorama/pull/1245)\n- The pixel grid gets immediately redrawn when its visibility is toggled. [#1240](https://github.com/Orama-Interactive/Pixelorama/pull/1240)\n\n## [v1.1.1] - 2025-05-06\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind))\n\nBuilt using Godot 4.4.1\n\n### Added\n- Implemented isometric & hexagonal tile shapes for tilemap layers! [#1213](https://github.com/Orama-Interactive/Pixelorama/pull/1213)\n- Implemented a hexagonal grid type, with support for both pointy-top and flat-top orientations.\n- It is now possible to flatten all selected layers into one layer.\n- Hexagonal pointy-top and flat-top presets have been added in the tile mode offsets dialog.\n- Added a single bezier mode in curve tool, that works similarly to Aseprite's curve tool. [#1216](https://github.com/Orama-Interactive/Pixelorama/pull/1216)\n- OpenRaster (`.ora`) and Aseprite (`.ase`/`.aseprite`) files are now being displayed as options in the \"Open\" dialog.\n- Added shortcuts for going to the previous/next frame of the same tag. By default, they are mapped to <kbd>Control + <</kbd> and <kbd>Control + ></kbd> respectively.\n- Holding the \"automatically change layer\" shortcut (<kbd>Control + Alt</kbd> by default) now displays a rectangle around the selected cel, or around the cel whose non-transparent pixels are being hovered by the cursor.\n- Users can now color code their cels in the timeline.\n- A button for reporting extensions has been added to the extension explorer. [#1214](https://github.com/Orama-Interactive/Pixelorama/pull/1214)\n\n### Changed\n- Resizing the canvas, cropping to content and centering frames now moves the offset of each tilemap layer instead of affecting its tileset. [#1213](https://github.com/Orama-Interactive/Pixelorama/pull/1213)\n- Scaling the project also scales the size of the tiles by the same amount that the project was scaled. For example, scaling a 64x64 project to 128x64 would scale 16x16 tiles to 32x16. [#1213](https://github.com/Orama-Interactive/Pixelorama/pull/1213)\n- Switched \"tags by column\" and \"tags by rows\" in the export dialog, when exporting spritesheets.\n- The minimum window size has been decreased to (300, 200). [#1221](https://github.com/Orama-Interactive/Pixelorama/discussions/1221)\n- The pencil/eraser/shading brush flip/rotation UI is now consistent with the tiles panel flip/rotation UI, and it also supports the same shortcuts.\n- The shortcut groups in the Preferences have been re-organized. The Buttons group has been removed, instead the shortcuts are grouped according to their respective panels, such as Timeline, Global Tool Options and Palettes.\n- Cels with a non-zero z-index display a \"z\" in the timeline.\n- The reference image rotation incerement step was changed to 0.01. [#1210](https://github.com/Orama-Interactive/Pixelorama/pull/#1210)\n- When opening the new tag dialog, the name field automatically grabs focus.\n\n### Fixed\n- Value sliders and rulers are no longer displaying integers as floats.\n- Fixed a crash when using the lasso and polygon select tools outside of the canvas.\n- Using the bucket tool on draw tiles mode on an empty tilemap no longer crashes the app. [#1213](https://github.com/Orama-Interactive/Pixelorama/pull/1213)\n- Fixed a crash when switching between tilemap layers with different tilesets, while having selected tiles the positions of which do not exist on the new tilemap's tileset. [#1213](https://github.com/Orama-Interactive/Pixelorama/pull/1213)\n- Duplicating tilesets in the project properties no longer crashes the app when a previously deleted tileset is still selected. [#1213](https://github.com/Orama-Interactive/Pixelorama/pull/1213)\n- Fixed the import tag option not pasting the frame content, and not working for tilemap and audio layers.\n- Z-indexed cels are now being rendered with their proper order in the canvas. [#1220](https://github.com/Orama-Interactive/Pixelorama/issues/1220)\n- The \"change layer automatically\" shortcut (<kbd>Control + Alt</kbd> by default) no longer works when a selection tool is active, thus preventing the shortcut conflict with the \"transform copy selected content\" shortcut.\n- Prevent switching project tabs and saving, if a native save file dialog is already open. This prevents rare cases of saving two open projects with the same name, thus leading to data loss.\n- The native save file dialog now always has a default name for the saved .pxo file.\n- Fixed horizontal scrolling on the timeline on macOS. [#1219](https://github.com/Orama-Interactive/Pixelorama/pull/1219)\n- Fixed selection resizing not working from the tool options. [#1212](https://github.com/Orama-Interactive/Pixelorama/issues/1212)\n- The tile indices that appear when holding <kbd>Control</kbd> and a tilemap layer is selected, now scale based on the grid cell size. [#1213](https://github.com/Orama-Interactive/Pixelorama/pull/1213)\n- Applying layer effects to passthrough group layer immediately updates the canvas.\n- The \"select pixels\" from the cel menu now works properly with undo.\n- Fixed a \"section not found\" error in the Preferences when launching Pixelorama for the first time. [#1211](https://github.com/Orama-Interactive/Pixelorama/pull/#1211)\n- Fixed the pencil density slider value not updating when switching between tools.\n- Fixed the color picker acting weirdly when the alpha of the color is set to 0.\n- Rulers now update whenever the canvas panel resizes.\n- Fixed a regression in v1.1 where mouse button shortcuts (such as the mouse thumb buttons) were not activating tools.\n- Empty audio layers now only show the audio icon in the frame where the audio is supposed to start playing.\n- Fixed issue where the wrong font would be chosen for the interface in certain circumstances. [#1217](https://github.com/Orama-Interactive/Pixelorama/pull/#1217)\n- Fixed canvas preview's camera not being fit to frame when Pixelorama first launches and the canvas preview is visible.\n\n### Removed\n- The \"All\" grid type option has been removed, as it is no longer needed since we can now display multiple grids at once.\n\n## [v1.1] - 2025-03-28\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)), Spencer Beckwith ([@spencerjbeckwith](https://github.com/spencerjbeckwith)), [@myyc](https://github.com/myyc), João Vitor ([@dev-joaovitor](https://github.com/dev-joaovitor))\n\nBuilt using Godot 4.4\n\n### Added\n- Tilemap layers have arrived! Tilemap layers allow artists to create tiles, and easily preview and dynamically modify them within Pixelorama. [#1146](https://github.com/Orama-Interactive/Pixelorama/pull/1146)\n- Indexed mode has finally been implemented! [#1136](https://github.com/Orama-Interactive/Pixelorama/pull/1136)\n- Audio layers have been added, allowing artists to easily synchronize their animations with audio. [#1149](https://github.com/Orama-Interactive/Pixelorama/pull/1149)\n- Added a new text tool. Destructive only for now, meaning that once the text is confirmed, it cannot be changed later. [#1134](https://github.com/Orama-Interactive/Pixelorama/pull/1134)\n- A \"Paste from Clipboard\" option has been added to the Edit menu, allowing images from the operating system's clipboard to be pasted into Pixelorama. Note that copying images from Pixelorama into the OS' clipboard has not been implemented at the moment.\n- A color curves image and layer effect has been added.\n- A gradient layer effect has been added, alongside its already existing image effect equivalent, allowing for non-destructive gradient generation.\n- It is now possible to load custom Godot shaders as image and layer effects.\n- Importing OpenRaster (`.ora`) and Aseprite (`.ase`/`.aseprite`) files is now possible. Exporting to these file formats is not yet supported.\n- Loading custom dithering patterns as images is now possible. This is not exposed somewhere in the UI yet, users have to go to Pixelorama's data folder (the same place where its settings, backups etc are kept), and create a \"dither_matrices\" folder and add the images there.\n- A new Reset layout option has been added to the Layouts submenu, that can be used to reset default layouts to their original state.\n- Implemented support for multiple grids. [#1122](https://github.com/Orama-Interactive/Pixelorama/pull/1122)\n- Overhauled the gradient edit widget's UI and added options such as reverse and evenly distribute points, and gradient presets.\n- Users can now color code their layers in the timeline.\n- A new \"Select cel area\" option has been added to the Selection menu that makes a rectangular selection around the content of the active cel, and it is mapped to <kbd>Control + T</kbd> by default.\n- Added a \"Select pixels\" option in the right click popup menu button of cel buttons\n- Added a shortcut to swap tools, <kbd>Shift + X</kbd> by default. [#1173](https://github.com/Orama-Interactive/Pixelorama/pull/1173)\n- Added <kbd>V</kbd> as the default shortcut for the crop tool.\n- A \"Show Reference Images\" option has been added to the View menu, allowing quick and easy reference image toggling.\n- Hiding the notification labels is now possible from the Preferences.\n- StartupWMClass has been added to Pixelorama's Linux .desktop file. [#1170](https://github.com/Orama-Interactive/Pixelorama/pull/1170)\n\n### Changed\n- The Manage Layouts dialog has been replaced by new items in the Layouts submenu, that are responsible for adding and deleting layouts.\n- The default shortcuts of the Move tool and the Pan tool have been changed to <kbd>M</kbd> and <kbd>A</kbd> respectively.\n- The \"Image\" menu has been renamed to \"Project\". This name should be more accurate, since this menu has options that affect the entire project.\n- Simplified the change layer automatically shortcut to just <kbd>Control + Alt</kbd>.\n- The image and layer effects have been organized into subcategories.\n- Layer buttons in the timeline now have a small icon on their right side that denotes their type, such as pixel layers, group layers, 3D layers, tilemap layers and audio layers.\n- Layer buttons in the timeline also have an icon if the layers contain at least one layer effect.\n- The import dialog is always being opened when opening images from File > Open.\n- The extension crash preventing system has been revised. [#1177](https://github.com/Orama-Interactive/Pixelorama/pull/1177)\n- The minimum cel size is now smaller, and it can get even smaller by decreasing the font size from the Preferences.\n- System font names are now sorted by alphabetical order.\n- The red, green, blue and alpha buttons in invert and desaturate layer effects have been made into \"RGBA\" buttons instead of checkboxes, just like they are in their image effect counterparts.\n- \"Tile Mode\" under the Selection menu has been renamed to \"Wrap Strokes\". This does not affect the \"Tile Mode\" option in the View menu. [#1150](https://github.com/Orama-Interactive/Pixelorama/pull/1150)\n- Improved the look of 3D object gizmos. [#1194](https://github.com/Orama-Interactive/Pixelorama/pull/1194)\n- Re-organized the licenses in the About dialog. There are now three license categories, the Pixelorama license, the Godot licenses and the third-party licenses.\n\n### Fixed\n- The text is no longer blurry and hard to read of menus and dialog windows, if the display scale is set to anything but 100%. This was fixed due to the update to Godot 4.4. [#1065](https://github.com/Orama-Interactive/Pixelorama/issues/1065)\n- Saving pxo files should no longer freeze the application on GNOME, when using native file dialogs. This was fixed due to the update to Godot 4.4. [#1115](https://github.com/Orama-Interactive/Pixelorama/issues/1115)\n- Fixed crash when Pixelorama starts without a palette.\n- Undo/redo now works again when the cursor is hovering over the timeline.\n- The first frame is no longer exported twice when using ping-pong loop.\n- Fixed pencil/eraser/shading previews turning white for a brief moment when changing image brushes, and when switching between tools.\n- Fixed the preview on the left tool not being visible, if the right tool had a preview. [#1157](https://github.com/Orama-Interactive/Pixelorama/issues/1157)\n- Dialogs that are children of other dialogs now always appear on top, to avoid issues where they could hide behind their parents and causing confusion that made Pixelorama seem unresponsive.\n- Palette swatches now get deleted when the user removes all palettes.\n- The CLI's output option now works with filepaths instead of just filenames. [#1145](https://github.com/Orama-Interactive/Pixelorama/pull/1145)\n- Fixed a crash when importing a model in a 3D layer. [952498a](https://github.com/Orama-Interactive/Pixelorama/commit/952498a2b8a72f0c7cdca87e763fc18ea12d8b5f)\n- Loading obj files as custom models in 3D layers that are not paired with .mtl files now works. [#1165](https://github.com/Orama-Interactive/Pixelorama/issues/1165)\n- Fixed a UI bug where the minimum size of the panels was not calculated correctly. [a28b526](https://github.com/Orama-Interactive/Pixelorama/commit/a28b526645d2cc085b0d3eca9d0756aee8a6f978)\n- Dockable panels are now properly sorted when toggling movable panels. [d7ba7fe](https://github.com/Orama-Interactive/Pixelorama/commit/d7ba7fe6fc4f2efb587234634020bf567474dba9)\n- Changing the name of pxo files when saving them in the Web version now works as intended. [faae464](https://github.com/Orama-Interactive/Pixelorama/commit/faae4648f0751b72cff0ff174c74cac2c499b994)\n- Pixelorama's window no longer spawns at the position of a monitor that has been disconnected. [#1189](https://github.com/Orama-Interactive/Pixelorama/pull/1189)\n- Fixed the resize canvas dialog's offset not resetting to zero on dialog popup. [f273918](https://github.com/Orama-Interactive/Pixelorama/commit/f273918368f568f860a8d08d28f5c9d9346461a4)\n- Fixed group layer blending when they contain invisible layers. [#1166](https://github.com/Orama-Interactive/Pixelorama/issues/1166)\n- Fixed color picker changing hue when modifying the saturation and value inside the color picker shape. [3f2245c](https://github.com/Orama-Interactive/Pixelorama/commit/3f2245cd9bc81b1a244ae394927aa074650a5d70)\n- Fixed the Palettize effect and palette exporting to images storing slightly wrong color values. [77f6bcf](https://github.com/Orama-Interactive/Pixelorama/commit/77f6bcf07bd80bc042e478bb883d05900cebe436)\n- Fixed some issues with the Palettize effect where the output would be different if the palette size changed and empty swatches were added, even if the colors themselves stayed the same. Initially fixed by [bd7d3b1](https://github.com/Orama-Interactive/Pixelorama/commit/bd7d3b19cc98804e9b99754153c4d553d2048ee3), but [1dcb696](https://github.com/Orama-Interactive/Pixelorama/commit/1dcb696c35121f8208bde699f87bb75deff99d13) is the proper fix.\n- The lasso and polygon select tools now select all expected pixels without gaps, when the selection goes out of the canvas bounds.\n- Fixed bug where the child windows of floating windows appear behind them.\n- Fixed layouts overwriting the position info of panels, which were added by extensions. [#1172](https://github.com/Orama-Interactive/Pixelorama/pull/1172)\n- Image export with split layers no longer ignores layer effects. [#1193](https://github.com/Orama-Interactive/Pixelorama/issues/1193)\n- Fixed recorder label not updating when project is changed. [#1139](https://github.com/Orama-Interactive/Pixelorama/pull/1139)\n- The vertical scrollbar in the timeline is no longer visible when it's not needed.\n- Fixed a bug where the mouse cursor does not reset to default when hovering over a selection gizmo, and the selection gets cleared. [ead7593](https://github.com/Orama-Interactive/Pixelorama/commit/ead7593e7e4013238b9e935ee24d8cea0ad49b38)\n- Fixed a curve tool preview bug where the preview was changing when the cursor was moving, but the end point was staying the same. [d0fef33](https://github.com/Orama-Interactive/Pixelorama/commit/d0fef332315a856d3ef0384eddee89c6c61eb6e0)\n\n## [v1.0.5] - 2024-11-18\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind))\n\nBuilt using Godot 4.3\n\n### Added\n- Add density to the square & circle brushes. 100% density means that the brush gets completely drawn. Anything less leaves gaps inside the brush, acting like a spray tool.\n- Selection expanding, shrinking and borders have been added as options in the Select menu.\n- Mouse buttons can now be used as menu shortcuts. [#1070](https://github.com/Orama-Interactive/Pixelorama/issues/1070)\n- Added confirm and cancel buttons in the selection tool options to confirm/cancel an active transformation.\n- OKHSL Lightness sorting in palettes has been implemented. [#1126](https://github.com/Orama-Interactive/Pixelorama/pull/1126)\n\n### Changed\n- The brush size no longer changes by <kbd>Control</kbd> + Mouse Wheel when resizing the timeline cels or the palette swatches.\n- Improved the UI of the Tile Mode Offsets dialog and added an \"Isometric\" preset button.\n- The Recorder panel now automatically records for the current project. This also allows for multiple projects to be recorded at the same time.\n\n### Fixed\n- Opening the Tile Mode Offsets dialog no longer crashes the application.\n- Panels no longer get scrolled when using the mouse wheel over a slider.\n- Fixed layer effect slider values being rounded to the nearest integer.\n- Fixed memory leak where the project remained referenced by a drawing tool, even when its tab was closed.\n- Fixed memory leak where the first project remained forever references in memory by the Recorder panel.\n- Slightly optimize circle brushes by only calling the ellipse algorithms once while drawing.\n\n### Removed\n- The Recorder panel has been removed from the Web version. It wasn't functional anyway in a way that was useful, and it's unsure if we can find a way to make it work.\n\n## [v1.0.4] - 2024-10-25\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)), Mariano Semelman ([@msemelman](https://github.com/msemelman))\n\nBuilt using Godot 4.3\n\n### Added\n- It is now possible to make panels into floating windows. This allows for any panel in the user interface to be its own window, and if single window mode is disabled, you can move these windows anywhere you want. This is especially useful for multi-monitor setups.\n- Added a new \"color replace\" mode to the Shading tool, that uses the colors of the palette to apply shading. [#1107](https://github.com/Orama-Interactive/Pixelorama/pull/1107)\n- Added a new Erase blend mode. [#1117](https://github.com/Orama-Interactive/Pixelorama/pull/1117)\n- It is now possible to change the font, depth and line spacing of 3D text.\n- Implemented the ability to change the font of the interface from the preferences.\n- Clipping to selection during export is now possible. [#1113](https://github.com/Orama-Interactive/Pixelorama/pull/1113)\n- Added a preference to share options between tools. [#1120](https://github.com/Orama-Interactive/Pixelorama/pull/1120)\n- Added an option to quickly center the canvas in the View menu. Mapped to <kbd>Shift + C</kbd> by default. [#1123](https://github.com/Orama-Interactive/Pixelorama/pull/1123)\n- Added hotkeys to switch between tabs. <kbd>Control+Tab</kbd> to go to the next project tab, and <kbd>Control+Shift+Tab</kbd> to go to the previous. [#1109](https://github.com/Orama-Interactive/Pixelorama/pull/1109)\n- Added menus next to each of the two mirroring buttons in the Global Tool Options, that allow users to automatically move the symmetry guides to the center of the canvas, or the view center.\n- A new Reset category has been added to the Preferences that lets users easily restore certain options.\n\n### Changed\n- Bumped extensions API version to 5.\n- The screen no longer remains on when idle, avoiding unnecessary power consumption. [#1125](https://github.com/Orama-Interactive/Pixelorama/pull/1125)\n- The export dialog's resize slider now allows for values greater than 1000.\n- Made some UI improvements to the rotate/flip image brush options. [#1105](https://github.com/Orama-Interactive/Pixelorama/pull/1105)\n- The bucket tool now picks colors from the top-most layer, like the rest of the drawing tools.\n\n### Fixed\n- The move tool preview is now properly aligned to the pixel grid.\n- Camera zoom is now being preserved when switching between projects.\n- Projects are no longer being saved with the wrong name in the Web version.\n- Fixed 3D Shape Edit tool option values not updating when switching between 3D objects.\n- Using the bucket tool while moving the cursor and also holding the color picker shortcut (Alt by default), now picks colors instead of actually using the tool.\n- Tool previews are now being properly cleared when switching to other tools before finishing the action being performed by the previous tool.\n- Fixed icons not being set to the correct color when launching Pixelorama with the dark theme.\n- Fixed some text in the About dialog not having the text color of the theme.\n- Fixed the backup confirmation dialog closing when clicking outside of it when single window mode is disabled.\n- The dynamics dialog is now set to its correct size when something is made visible or invisible. [#1104](https://github.com/Orama-Interactive/Pixelorama/pull/1104)\n- The color picker values no longer change when using RAW mode. [#1108](https://github.com/Orama-Interactive/Pixelorama/pull/1108)\n- Fixed some icon stretch and expand modes in the UI. [#1103](https://github.com/Orama-Interactive/Pixelorama/pull/1103)\n\n## [v1.0.3] - 2024-09-13\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)), [alikin12](https://github.com/alikin12), Vaibhav Kubre ([@kubre](https://github.com/kubre)), Donte ([@donte5405](https://github.com/donte5405))\n\nBuilt using Godot 4.3\n\n### Added\n- Added new global layer buttons that change visibility, lock or expand all layers on the first level. [#1085](https://github.com/Orama-Interactive/Pixelorama/pull/1085)\n- Added a new Gaussian blur image and layer effect.\n- A new Index Map layer effect has been added. [#1093](https://github.com/Orama-Interactive/Pixelorama/pull/1093)\n- Is it now possible to adjust the opacity of onion skinning. [#1091](https://github.com/Orama-Interactive/Pixelorama/pull/1091)\n- Added option to trim the empty area of the exported images. [#1088](https://github.com/Orama-Interactive/Pixelorama/pull/1088)\n- A quality slider has been added to the export dialog, when exporting jpg files.\n\n### Changed\n- The layer opacity and frame buttons are now fixed on top, always visible regardless of the vertical scroll position. [#1095](https://github.com/Orama-Interactive/Pixelorama/pull/1095)\n- The default blend mode of layer groups is now pass-through.\n- The color picker popup when editing gradients is now moveable.\n\n### Fixed\n- Fixed an issue where the '\\n` escape character got inserted inside the palette name, causing the palette to fail to be saved.\n- The export dialog has been optimized by caching all of the blended frames. Changing export options, besides the layers, no longer cause slowness by re-blending all of the frames.\n- Optimized the lasso and polygon select tools, as well as the fill options of the pencil and curve tools. The time they take to complete now depends on the size of the selection, rather than checking all of the pixels of the entire canvas.\n- Fixed a crash when re-arranging palette swatches while holding <kbd>Shift</kbd>.\n- Fixed a crash when using the move tool snapped to the grid.\n- Fixed wrong preview in the gradient dialog when editing the gradient and dithering is enabled.\n- Fixed a visual bug with the preview of the resize canvas dialog.\n- Fixed wrong stretch mode in the cel button previews. [#1097](https://github.com/Orama-Interactive/Pixelorama/pull/1097)\n\n## [v1.0.2] - 2024-08-21\nThis update has been brought to you by the contributions of:\n[kleonc](https://github.com/kleonc), [Hamster5295](https://github.com/Hamster5295), [alikin12](https://github.com/alikin12)\n\nBuilt using Godot 4.3\n\n### Added\n- Group layer blending is now supported. To prevent a layer group from blending, you can set its blend mode to \"Pass through\". [#1077](https://github.com/Orama-Interactive/Pixelorama/pull/1077)\n- Added <kbd>Control+Shift+Alt</kbd> as a shortcut that automatically selects a layer directly from the canvas when using tools.\n- Added tolerance to the bucket tool's \"similar area\" mode and to the magic wand tool.\n- It is now possible to move all selected cels between different frames, but they all have to be on the same layer.\n- Added a convolution matrix layer effect, still work in progress.\n- Native file dialogs now have a checkbox that lets you save blended images inside .pxo files.\n- It is now possible to change the maximum undo steps from the Preferences.\n- Cel properties of group and 3D cels can now be edited.\n\n### Changed\n- Renamed the \"similarity\" slider of the select by color tool and the bucket tool's \"similar colors\" mode to \"tolerance\", and made it work the inverse way to make it consistent with other art software.\n- It is now possible to change the blend modes of multiple selected layers from the timeline's option button.\n\n### Fixed\n- The Web version no longer requires SharedArrayBuffer, so compatibility with certain browsers should be better now.\n- Scaling with cleanEdge and OmniScale is now working again. [#1074](https://github.com/Orama-Interactive/Pixelorama/issues/1074)\n- Layer effects are now being applied when exporting single layers.\n- Exporting group layers now takes blending modes and layer effects into account.\n- Fixed crashes when attempting to export specific layers or tags that have been deleted.\n- Fixed crashes when importing brushes and palettes.\n- Fixed an issue with the bucket tool filling with the wrong color.\n- Fixed an issue when merging two layers, where if the bottom layer had layer/cel transparency, the transparency would be applied in the content destructively.\n- Fixed an issue where color sliders wouldn't be visible during startup, if the color options button was expanded.\n- Fixed bug where some buttons on the interface were not affected by the custom icon color on startup.\n- Fixed an issue when loading a project, selecting a project brush and then switching tools. [#1078](https://github.com/Orama-Interactive/Pixelorama/pull/1078)\n- Fixed wrong rendering of the isometric grid. [#1069](https://github.com/Orama-Interactive/Pixelorama/pull/1069)\n\n## [v1.0.1] - 2024-08-05\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)), [Kiisu_Master](https://github.com/Kiisu-Master).\n\nBuilt using Godot 4.2.2\n\n### Added\n- Added an image effect that lets you adjust color properties of the image, such as brightness and contrast.\n- It is now possible to toggle low processor usage mode in the Preferences (called \"Update continuously\"). [#1056](https://github.com/Orama-Interactive/Pixelorama/pull/1056)\n\n### Changed\n- It is no longer possible to click outside of a dialog to close it.\n- Animation tag importing can now open from the frame button right-click menu. [#1041](https://github.com/Orama-Interactive/Pixelorama/pull/1041)\n- The previews of the elliptical selection and the shape tools are now being mirrored, if a mirroring mode is enabled. This makes them consistent with the rectangle, lasso, paint and polygon selection tools.\n\n### Fixed\n- The previews of the shape and selection tools no longer make Pixelorama to be so slow.\n- The performance of the shape tool drawing has been improved.\n- Fixed an issue where if you increased a palette's width but also decreased its height, some colors would be lost, and re-ordering colors immediately after resizing would result in even more data loss. [#684](https://github.com/Orama-Interactive/Pixelorama/issues/684)\n- Dialogs no longer close when Pixelorama's main window loses focus and regains it.\n- When single window mode is disabled, popup dialogs are no longer unclickable. [#1054](https://github.com/Orama-Interactive/Pixelorama/issues/1054)\n- Popups no longer appear in places outside the main window, if single window mode is disabled.\n- The zoom tool modes now actually reflect their behavior.\n- Fixed a bug where the opacity of multiple selected layers got automatically changed to be the same as the last selected layer's opacity.\n- Fixed an issue with some Windows versions where the dialogs could not be re-opened. [#1061](https://github.com/Orama-Interactive/Pixelorama/issues/1061)\n- The performance of the spritesheet smart slice has been improved. [#1046](https://github.com/Orama-Interactive/Pixelorama/pull/1046)\n- Fixed issue with image effects changing the color of non-opaque pixels unintentionally.\n- The clipping mask preview when using the move tool and the offset image effect now works correctly. [#1057](https://github.com/Orama-Interactive/Pixelorama/pull/1057)\n- Fixed a crash that sometimes happened when selecting an imported model in a 3D cel.\n\n## [v1.0] - 2024-07-29\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)), Clara Hobbs ([Ratfink](https://github.com/Ratfink)), [TheLsbt](https://github.com/TheLsbt), [RorotoSic](https://github.com/RorotoSic), Ivan Kruger ([haythamnikolaidis](https://github.com/haythamnikolaidis)), [Kiisu_Master](https://github.com/Kiisu-Master), [Anaminus](https://github.com/Anaminus).\n\nBuilt using Godot 4.2.2\n\n### Added\n- Multiple layer blend modes are finally here! Note that group blending is not currently supported. [#911](https://github.com/Orama-Interactive/Pixelorama/pull/911)\n- Non-destructive layer effects have been implemented. [#940](https://github.com/Orama-Interactive/Pixelorama/pull/940)\n- A new curve tool has been implemented. It contains a \"fill shape\" tool option, allowing it to be used as a polygon tool as well. [#1019](https://github.com/Orama-Interactive/Pixelorama/pull/1019)\n- [Pixelorama is now available on Steam!](https://store.steampowered.com/app/2779170). Consider purchasing on Steam as a way to support the development of the project, and getting benefits such as automatic updates and even Steam Achievements!\n- An extension explorer has been integrated into Pixelorama, allowing for easy extension downloading from the internet. [#910](https://github.com/Orama-Interactive/Pixelorama/pull/910)\n- Export to video formats. FFMPEG is required to be installed in the device in order for video exporting to work. [#980](https://github.com/Orama-Interactive/Pixelorama/pull/980)\n- Importing video formats and gif files is also possible, but FFMPEG is again required for this.\n- Basic clipping mask functionality has been implemented. Enabling clipping mask on a layer will use the layer directly below it as the mask. Note that right now group layers cannot be used as masks.\n- Alpha lock has been added as a global tool option. When enabled, users can only draw on non-transparent pixels.\n- Export to webp and jpeg file formats. Webp is currently only for static images and does not support animations.\n- A basic Command Line Interface has been implemented, to help with automating mass project file exporting. [#579](https://github.com/Orama-Interactive/Pixelorama/discussions/579)\n- A 64-bit ARM build is now also available along with the 32-bit ARM build.\n- Dragging and dropping multiple frames or layers to re-arrange them is now (finally!) supported, instead of only moving the last layer/frame selected.\n- Users can now create new tags from the frame right-click menu, by clicking on \"New Tag\".\n- It is now possible to edit a tag's properties by clicking on its name from the timeline, and to move and resize it by dragging its edges.\n- Users can now resize the timeline's cel size from the timeline settings, which used to be onion skinning settings.\n- Exporting the project's data to a separate JSON file is now possible from the export dialog.\n- Native file dialogs are now supported and can be enabled from the Preferences!\n- Dialog popups can now be native OS windows instead of embedded within Pixelorama's main window. This can be changed from the Preferences.\n- Added some missing shortcuts for buttons. [#900](https://github.com/Orama-Interactive/Pixelorama/pull/900)\n- Palette colors can now be sorted.\n- Added new Pixelize and Palettize effects. Pixelize makes the image pixelated, and Palettize maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. Can also act as a workaround for the current lack of a proper indexed mode.\n- Exporting each layer as a different file is now possible.\n- The bucket tool now supports filling while the mouse is moving and the button is still being held.\n- A new boot splash image is being shown when Pixelorama is loading, instead of a gray color.\n- The brush increment/decrement shortcuts can now be changed. [#900](https://github.com/Orama-Interactive/Pixelorama/pull/900)\n- Changing layers is now possible with keyboard shortcuts (Control + Up/Down arrow keys by default).\n- A \"Crop to Selection\" option has been added to the Image menu, that crops the image based on the active selection.\n- A stabilizer for smoother drawing has been implemented.\n- Users can now add custom data in the form of text in their projects, layers, frames, tags and cels.\n- Image brushes can now be flipped and rotated with 90 degree steps in the tool options. [#988](https://github.com/Orama-Interactive/Pixelorama/pull/988)\n- Added support for inverted tablet pens. [#966](https://github.com/Orama-Interactive/Pixelorama/pull/966)\n- Added new dialogs for cel, layer and project properties. Cel and layer which can be accessed by right-clicking cel and the layer buttons in the timeline respectively, while project properties can be found under the Image menu.\n- A new z-index property has been added to the cel properties, allowing for independent, per-frame layer ordering.\n- Dragging and dropping images directly from a Web browser into Pixelorama is now possible! Note that this may not work with all browsers.\n- Pasting tags from other projects is now possible. [#946](https://github.com/Orama-Interactive/Pixelorama/pull/946)\n- A new \"Pixelorama\" palette has been added to the default palettes.\n- <kbd>Control + Shift + T</kbd> has been added as a default shortcut that opens the last project.\n- Imported `.gpl` palettes now take into account their \"Columns\" field. [#1025](https://github.com/Orama-Interactive/Pixelorama/pull/1025)\n- \"Snap to\" settings from the View menu are now being remembered between sessions.\n- The step of the zoom and rotation canvas sliders can now be snapped, to 100 and 45 respectively.\n- It is now possible to change the color space of gradients from sRGB, which is the default, to Linear sRGB and Oklab.\n- 3D layers now support torus shapes. [#900](https://github.com/Orama-Interactive/Pixelorama/pull/900)\n- Image effect animation now supports the tweening transition method of spring. [#900](https://github.com/Orama-Interactive/Pixelorama/pull/900)\n- Added a new Rose theme.\n\n### Changed\n- The file format of pxo files has been changed. Pxo files are now zip files in disguise. [#952](https://github.com/Orama-Interactive/Pixelorama/pull/952)\n- Similarly, the file format of Pixelorama's palette files has been changed from .tres back to .json as they used to be in the past. This change had to happen due to [security concerns regarding Godot's resource files](https://github.com/godotengine/godot-proposals/issues/4925). [#967](https://github.com/Orama-Interactive/Pixelorama/pull/967)\n- Changes made to the User Interface layouts are now automatically being saved. To restore a default layout, users can go to Window > Manage Layouts > Add and select from one of the default layouts.\n- Pixelorama's icon has changed.\n- The config file has been renamed from \"cache.ini\" to \"config.ini\". This effectively means that preferences edited in v0.x will not be automatically be carried over to v1.0.\n- The colors of the themes has been limited and grouped to allow for easier theming, using this [new stand-alone tool](https://github.com/Orama-Interactive/PixeloramaThemeCreator).\n- The color picker is now always visible in the user interface as its own panel, instead of being a popup. The previous color buttons have been re-purposed to allow for setting whether the color being selected is for the left or the right tool.\n- The color pickers has been vastly improved, thanks to the update to Godot 4. Users can now use the OKHSL color mode, and choose between four different picker shapes: HSV Rectangle (default), HSV Wheel, VHS Circle and OKHSL Circle.\n- The opacity slider in the timeline now affects layer opacity and not cel opacity. Cel opacity has been moved to the cel properties dialog.\n- Bucket tool's \"similar colors\" mode now changes the same color in all selected cels, acting as a color replace for multiple cels.\n- The timeline's UI has been changed to better indicate which cels are selected and improves on how child layers of groups are being shown.\n- The onion skinning settings has been changed into general timeline settings.\n- Cel-specific effects have been moved from the Image menu into the new Effects menu.\n- Linked cels no longer have a colored outline, they now have a rectangle behind their preview which makes linked cels look like they are chained together.\n- \"Crop Image\" has been renamed to \"Crop to Content\".\n- Imported images automatically become new projects without opening the import dialog, if there is only one project open, and that project is empty.\n- Window opacity is disabled by default to improve performance, but it can be enabled in the Preferences.\n- Reference images have received some nice improvements, including undo/redo and easy transformations directly on the canvas. [#961](https://github.com/Orama-Interactive/Pixelorama/pull/961)\n- The add/remove swatch color buttons have been moved to the same horizontal container as the palette select and add/edit palette buttons, allowing for Inkscape-like horizontal placement of the palette panel, without any wasted space.\n- Cel buttons now hide their transparent background when their corresponding cels are empty, instead of just dimming them.\n- Every shader-based image effect is automatically working without the need to change renderers, and they all work now on the Web version. This comes at the cost of less compatibility, as the desktop version now requires OpenGL 3.3 minimum instead of 2.1, and the Web version requires WebGL 2 instead of WebGL 1. [#900](https://github.com/Orama-Interactive/Pixelorama/pull/900)\n- The dynamics popup only show the relevant properties to which dynamics are currently toggled on.\n- When attempting to enable an extension, a confirmation dialog appears, as an extra security step.\n- The aspect ratio button in the Scale Image dialog is toggled on by default.\n- Negative values in shading tool options are now allowed. [#1015](https://github.com/Orama-Interactive/Pixelorama/issues/1015)\n- If \"Include frame tags in the file name\" is enabled in the export window, the tag name is included even when exporting a single file.\n- When deleting an extension, a confirmation window now appears that lets users either to delete the palette permanently, move it to trash, or cancel. [#919](https://github.com/Orama-Interactive/Pixelorama/pull/919)\n- \"Developers\" and \"Contributors\" have been merged into \"Authors\" in the About dialog. \"Donate\" has also been removed from there, and a new \"Support Pixelorama's Development\" option has been added to the Help menu.\n\n### Fixed\n- There should be less crashes overall. 0.x versions crashed randomly on some devices, probably due to how Godot 3 handled memory management for images, but 1.0 no longer seems to cause these crashes.\n- Performance when drawing and doing operations such as bucket area fill should be better now. [#900](https://github.com/Orama-Interactive/Pixelorama/pull/900)\n- Selections now scale properly when they are not transforming any image content. [#774](https://github.com/Orama-Interactive/Pixelorama/issues/774)\n- The aspect ratio is now being kept correctly in image effect dialog previews.\n- Dividing by zero in value sliders and spinboxes no longer crashes the program.\n- Default palettes are now available for clean installs on macOS. [#1008](https://github.com/Orama-Interactive/Pixelorama/pull/1008)\n- When drawing, the focus of other GUI elements of the application now gets released. This prevents behaviors such as switching the focus of GUI elements with, for example, the arrow keys while moving the canvas or an active selection with the arrow keys.\n- The canvas no longer remains in the drag state when the mouse it outside of it. Meaning, if the middle mouse button or space is being pressed to drag the canvas, and the mouse gets out of the canvas while the button is still pressed and then it is released, when the mouse re-enters the canvas, it is no longer being dragged.\n- Pixelorama no longer quits when saving from the File menu, if the user attempted to save on exit before and cancelled the save file dialog.\n- The delete layer button is now immediately disabled when locking a layer, thus preventing the user from being able to delete a locked layer.\n- Button shortcuts, such as <kbd>X</kbd> for switch colors, no longer get activated when they shouldn't, like when pressing <kbd>Control + X</kbd>. [#1014](https://github.com/Orama-Interactive/Pixelorama/issues/1014)\n- System language should now pick locales more reliably. [#372](https://github.com/Orama-Interactive/Pixelorama/issues/372)\n- Fixed a bug where the exported files had the wrong tag name, if \"Include frame tags in the file name\" was enabled.\n- The text of the rulers is now being properly clipped. [#1023](https://github.com/Orama-Interactive/Pixelorama/pull/1023)\n\n### Removed\n- BubbleGum16, Complementary, Monochromatic, Shades and Triad palettes have been removed from the default palettes.\n- The frame tag button has been removed from the timeline.\n- It is no longer possible to change the renderer from the Preferences, as GLES3 is now the only option.\n\n## [v0.11.4] - 2024-04-17\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind))\n\nBuilt using Godot 3.5.2\n\n### Added\n- Exporting palettes to png files is now possible.\n- Progressive Web App (PWA) has been enabled for the Web version.\n\n### Changed\n- When quitting, multiple save confirmation dialogs now appear, each for every project that has changes.\n- Loop through frames when clicking on go to previous/next frame buttons on the timeline.\n- High res display is now enabled on macOS. [#936](https://github.com/Orama-Interactive/Pixelorama/issues/936)\n- Make cloned frames only select a cel if its corresponding original cel was selected as well. [#941](https://github.com/Orama-Interactive/Pixelorama/pull/941)\n- All of the timeline buttons now have the same size (24x24).\n\n### Fixed\n- Memory usage has been greatly optimized when doing operations such as drawing, image effects, selecting, transforming, etc, as the images stored in memory are now compressed. [#883](https://github.com/Orama-Interactive/Pixelorama/issues/883)\n- Fixed memory leak when applying image effects. [7235617db7c21837edc7ba7b95f2e7eeb1140691](https://github.com/Orama-Interactive/Pixelorama/commit/7235617db7c21837edc7ba7b95f2e7eeb1140691)\n- Fixed memory leak when previewing layouts in the Manage Layouts dialog. [b2f511c45be61cd26f01e134bf7a6a55109f46ad](https://github.com/Orama-Interactive/Pixelorama/commit/b2f511c45be61cd26f01e134bf7a6a55109f46ad)\n- Attempting to load an invalid pxo file no longer crashes the application. [3f6e1385e06cd7801fe12fbf90a9649557ea8f2e](https://github.com/Orama-Interactive/Pixelorama/commit/3f6e1385e06cd7801fe12fbf90a9649557ea8f2e)\n- Tool shortcuts can now work with <kbd>Control</kbd>. [#935](https://github.com/Orama-Interactive/Pixelorama/issues/935)\n- Optimize canvas drawing by only updating it when the image(s) have changed. [ac6a4db43d9296ebc03e639d8199dd3878a25d86](https://github.com/Orama-Interactive/Pixelorama/commit/ac6a4db43d9296ebc03e639d8199dd3878a25d86)\n- Fix bug where using shortcuts to switch between frames also moved the selection, causing deletions.\n- Pxo files can now be loaded from the Open menu option in the Web version. [3dcc51705a999145e53a8e6d4de217dc03b0f147](https://github.com/Orama-Interactive/Pixelorama/commit/3dcc51705a999145e53a8e6d4de217dc03b0f147)\n- The same frames are no longer being exported multiple times when \"Selected frames\" is selected, and multiple cels of the same frames are currently selected on the timeline. [#1001](https://github.com/Orama-Interactive/Pixelorama/issues/1001)\n- Fixed crash due to division by zero when locking two or three ValueSliders, and one of them has the value of 0 and the user attempts to change it. [3b8c63c4a6a3325707ef624942ea50834634e45c](https://github.com/Orama-Interactive/Pixelorama/commit/3b8c63c4a6a3325707ef624942ea50834634e45c)\n- Fixed exporting selected layers not including the non-selected frames. [324e21776de853e6ea24703d5724a491547371ab](https://github.com/Orama-Interactive/Pixelorama/commit/324e21776de853e6ea24703d5724a491547371ab)\n- Fix bug where images with width or height 1 are being completely cleared by image effects. [fcfc606861d247856db5473b702628ebd71df43f](https://github.com/Orama-Interactive/Pixelorama/commit/fcfc606861d247856db5473b702628ebd71df43f)\n- Made the color picker not select fully transparent pixels that are not black. [#999](https://github.com/Orama-Interactive/Pixelorama/issues/999)\n- Brushes are no longer being drawn outside the selection, if the selection is outside the canvas. [5f43a3e2829a7119d18d0762796222f20170f410](https://github.com/Orama-Interactive/Pixelorama/commit/5f43a3e2829a7119d18d0762796222f20170f410)\n- Bucket \"similar color\" and \"whole selection\" modes and image effects no longer affect pixels outside the selection area, if the selection is outside the canvas. [436406a527f0db67c5e2b58a90b43597b3168600](https://github.com/Orama-Interactive/Pixelorama/commit/436406a527f0db67c5e2b58a90b43597b3168600)\n- The ellipse tool no longer produces gaps with large sizes. [4f3a7a305a264e0d2fe86c201af76eca4b2fea0a](https://github.com/Orama-Interactive/Pixelorama/commit/4f3a7a305a264e0d2fe86c201af76eca4b2fea0a)\n- Fix \"visible layers\" option on the export dialog producing wrong results. [346d1f071a8c6b1defb1072d39aea9c642f1ef59](https://github.com/Orama-Interactive/Pixelorama/commit/346d1f071a8c6b1defb1072d39aea9c642f1ef59)\n- Random brushes now work again. [1317e40ffa5e9f01a9d214221bb5133db20a1de9](https://github.com/Orama-Interactive/Pixelorama/commit/1317e40ffa5e9f01a9d214221bb5133db20a1de9)\n- Fixed issue where the override.cfg file would be created at the wrong location, if Pixelorama is launched through a shortcut. [0c6566de761a683a0e8a781131024a1dedb9734f](https://github.com/Orama-Interactive/Pixelorama/commit/0c6566de761a683a0e8a781131024a1dedb9734f)\n- The gizmo in the rotation image effect dialog is now accurately following the mouse.\n- Fixed the size label not being updated on the Export dialog's spritesheet tab when the direction changes. [9a5eb9720d2328f914f8efc3b9aa605dadca99b0](https://github.com/Orama-Interactive/Pixelorama/commit/9a5eb9720d2328f914f8efc3b9aa605dadca99b0)\n- The \"Export dimensions\" label in the export dialog no longer shows fractions as the final image's size.\n\n## [v0.11.3] - 2023-10-30\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind))\n\nBuilt using Godot 3.5.2\n\n### Changed\n- When deleting a palette, a confirmation window now appears that lets users either to delete the palette permanently, move it to trash, or cancel. [#914](https://github.com/Orama-Interactive/Pixelorama/pull/914)\n\n### Fixed\n- Fixed undo/redo history not working when the tool changes. [#916](https://github.com/Orama-Interactive/Pixelorama/pull/916)\n- Pixelorama no longer closes when the project fails to be saved if \"Save & Exit\" is selected. [#920](https://github.com/Orama-Interactive/Pixelorama/pull/920)\n\n## [v0.11.2] - 2023-08-31\nThis update has been brought to you by the contributions of:\n[@Lsbt1](https://github.com/Lsbt1), Fayez Akhtar ([@Variable-ind](https://github.com/Variable-ind))\n\nBuilt using Godot 3.5.2\n\n### Added\n- An option for reference images to only appear as silhouettes. [#898](https://github.com/Orama-Interactive/Pixelorama/pull/898)\n- Snapping to the center of the rectangular grid is now possible. [#905](https://github.com/Orama-Interactive/Pixelorama/pull/905)\n\n### Fixed\n- Fixed a critical bug causing data loss when moving around the tabs of opened projects and then saving them. [#901](https://github.com/Orama-Interactive/Pixelorama/pull/901)\n- Loading corrupt pxo files no longer crashes the program. [#904](https://github.com/Orama-Interactive/Pixelorama/pull/904)\n\n### Removed\n- Pxo files saved with versions prior to v0.8 can no longer get loaded starting version 0.11.2. If you have old files that you need to load, load them in an earlier version first (from v0.8 to v0.11.1) and save them again. [#904](https://github.com/Orama-Interactive/Pixelorama/pull/904)\n\n## [v0.11.1] - 2023-08-12\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)), [@20kdc](https://github.com/20kdc), Matteo Piovanelli ([@MatteoPiovanelli-Laser](https://github.com/MatteoPiovanelli-Laser))\n\nBuilt using Godot 3.5.2\n\n### Added\n- A new offset image effect to easily move the image around, with animation support.\n- Implemented a \"smart slicer\" system that lets the software automatically slice a spritesheet in separate frames on image import, without the user having to specify horizontal and vertical frames. [#893](https://github.com/Orama-Interactive/Pixelorama/pull/893)\n- Added optional integer zooming for the canvas, which can be enabled from the Preferences. Disabled by default. [#894](https://github.com/Orama-Interactive/Pixelorama/pull/894)\n- Fast way to clone frames of a tag. [#861](https://github.com/Orama-Interactive/Pixelorama/pull/861)\n- Added a reverse frames option on the right click menu of the frame buttons, to easily reverse the order of the selected frames.\n- A new Timeline category in the Preferences with options such as the colors of onion skinning's color mode, and whether a layer should be selected when a layer button (such as lock, visibility etc) gets pressed.\n- It is now possible to disable saving frames that have a tag to a different folder, as well as specifying a separator character in the file names.\n- Palette file types now exist as filters in the Open file dialog.\n- .bmp and .tga file types now exist in the Open dialog of the Web version.\n\n### Changed\n- The image effect animation system introduced in v0.11 has been overhauled with a better user interface, and with tweening options. [#879](https://github.com/Orama-Interactive/Pixelorama/pull/879)\n- Images stored in RAM for the undo/redo system when draw tools are used are now compressed. This reduces RAM usage. [#890](https://github.com/Orama-Interactive/Pixelorama/pull/890)\n- The cel opacity slider now affects all of the selected cels. [#865](https://github.com/Orama-Interactive/Pixelorama/pull/865)\n- The right click menu of the frame buttons now works for all selected frames, besides \"move left\" and \"move right\".\n- The canvas is automatically enlarged when importing an image of a larger size to the project.\n- Error codes are now being explained in the error messages. [#891](https://github.com/Orama-Interactive/Pixelorama/pull/891)\n- Newly cloned frames are now automatically selected. [#861](https://github.com/Orama-Interactive/Pixelorama/pull/861)\n- \"Centralize Image\" has been moved from the Image menu to the frame button right click menu. [#884](https://github.com/Orama-Interactive/Pixelorama/pull/884)\n- The project's name is no longer saved inside .pxo files. Loaded projects now get their name directly from the file name.\n- Clicking on a layer button (such as lock, visibility etc) no longer selects the layer by default. This behavior can now be changed in the Preferences.\n- The image menu has been re-arranged. [#878](https://github.com/Orama-Interactive/Pixelorama/pull/878)\n- The \"OK\" button of the save and export dialogs are now named \"Save\" and \"Export\" respectively. [#876](https://github.com/Orama-Interactive/Pixelorama/pull/876)\n\n### Fixed\n- Generating palettes from the current project no longer crashes when group and 3D layers exist.\n- Fixed wrong saturation and value values. They were divided by 360, while they should have been divided by 100. [#879](https://github.com/Orama-Interactive/Pixelorama/pull/879)\n- Fixed image effect animations appearing when changing the affected option, even if that image effect had no animatable properties. [#879](https://github.com/Orama-Interactive/Pixelorama/pull/879)\n\n## [v0.11] - 2023-06-13\nThis update has been brought to you by the contributions of:\n[@mrtripie](https://github.com/mrtripie), Martin Novák ([@novhack](https://github.com/novhack)), Fayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)), [@20kdc](https://github.com/20kdc), Arron Washington ([@radicaled](https://github.com/radicaled)), Christos Tsoychlakis ([@ChrisTs8920](https://github.com/ChrisTs8920))\n\nBuilt using Godot 3.5.2.\n\n### Added\n- Layer groups in the timeline, for better organization. [#698](https://github.com/Orama-Interactive/Pixelorama/pull/698)\n- Support for reference images has been implemented. [#771](https://github.com/Orama-Interactive/Pixelorama/pull/771)\n- Specific layer exporting is now possible as part of the export dialog overhaul. [#781](https://github.com/Orama-Interactive/Pixelorama/pull/781)\n- 3D layers have now been implemented, which allows for non-destructive usage of 3D geometry inside Pixelorama. The 3D objects get automatically rasterized (pixelated) depending on the size of the canvas. [#840](https://github.com/Orama-Interactive/Pixelorama/pull/840)\n- A perspective editor has been added, that aims to help artists use perspective in their work. [#806](https://github.com/Orama-Interactive/Pixelorama/pull/806)\n- Dynamics are finally here! You can now use tablet pen pressure and/or mouse/pen velocity to affect the size and the alpha of the brush. More options will come in the future!\n- A new crop tool has been added. It can resize the canvas without resizing the content. [#830](https://github.com/Orama-Interactive/Pixelorama/pull/830)\n- The pencil tool now has a spacing option. [#813](https://github.com/Orama-Interactive/Pixelorama/pull/813)\n- Exporting and loading APNG files is now possible. [#772](https://github.com/Orama-Interactive/Pixelorama/pull/772) and [#797](https://github.com/Orama-Interactive/Pixelorama/pull/797)\n- Implemented [cleanEdge](http://torcado.com/cleanEdge/) as a new rotation and scaling algorithm. [#794](https://github.com/Orama-Interactive/Pixelorama/pull/794)\n- [GLES 3 only] Implemented [OmniScale](https://github.com/nobuyukinyuu/godot-omniscale) as a new rotation and scaling algorithm. [08e00d3](https://github.com/Orama-Interactive/Pixelorama/commit/08e00d3c31dd134be037b672b7ac1d192400ac4d)\n- Added a new Posterize image effect, with optional dithering. It's used to automatically reduce colors of an image.\n- A new select by drawing tool has been added. [#792](https://github.com/Orama-Interactive/Pixelorama/pull/792)\n- Some image effect properties can now be animated for multiple cels. [#836](https://github.com/Orama-Interactive/Pixelorama/pull/836)\n- It is now possible to change the selection creation behavior (replace, add, subtract or intersect) from the tool settings. [#798](https://github.com/Orama-Interactive/Pixelorama/pull/798)\n- Your art progress inside Pixelorama can now be recorded and saved as screenshots, for you to combine into a video. Useful for art timelapses. [#823](https://github.com/Orama-Interactive/Pixelorama/pull/823)\n- Control + Mouse wheel can now be used to adjust the brush size and shape thickness. Unfortunately, this shortcut cannot be edited at the moment, but it will be in the future (most likely once we port to Godot 4.x). [#776](https://github.com/Orama-Interactive/Pixelorama/discussions/776)\n- Snapping to the grid and guides has been implemented.\n- Changing the renderer from GLES2 to GLES3 and vice versa is now possible in the preferences.\n- Selections now have their own tile mode option, that works within the boundaries of the selection. [#834](https://github.com/Orama-Interactive/Pixelorama/pull/834)\n- A way to easily preview an animation that has frames drawn in the form of a spritesheet/atlas has been added in the canvas preview. [#835](https://github.com/Orama-Interactive/Pixelorama/pull/835)\n- The average color between the two selected colors is now shown in the color pickers, and can be easily picked. [#822](https://github.com/Orama-Interactive/Pixelorama/pull/822)\n- A list of the recently used project sizes now appears on the new project dialog. [#819](https://github.com/Orama-Interactive/Pixelorama/pull/819)\n- [Windows only] Changing the tablet driver is now possible in the preferences.\n\n### Changed\n- The palette panel is now more reactive; it automatically resizes in order to show/hide swatches based on its size. It is also now possible to scroll palettes with the mouse wheel, and resize the swatches with Control + mouse wheel. [#761](https://github.com/Orama-Interactive/Pixelorama/pull/761)\n- The UI of the animation timeline has been improved. [#769](https://github.com/Orama-Interactive/Pixelorama/pull/769)\n- The entire export dialog UI has been overhauled. [#781](https://github.com/Orama-Interactive/Pixelorama/pull/781)\n- Linked cels have been refactored, which allows for having multiple linked sets of cels in the same layer. [#764](https://github.com/Orama-Interactive/Pixelorama/pull/764)\n- Most Slider + SpinBox combinations have been replaced by a custom slider, made by [@mrtripie](https://github.com/mrtripie).\n- Gradient generation is now more powerful; there is now support for multi-color gradients and they can be repeated. Step gradients have been removed in favor of linear gradients with constant interpolation.\n- The color picker now picks any visible color on the canvas, regardless of layer. A toggle has also been added in the tool options to let the user change back to the previous behavior of only picking a color on the selected layer. [#816](https://github.com/Orama-Interactive/Pixelorama/pull/816)\n- A single popup appears when exporting multiple files that already exist, instead of showing one popup for each file to overwrite. [#585](https://github.com/Orama-Interactive/Pixelorama/discussions/585)\n- Most dialogs received some UI changes, such as making their elements expand vertically, and making their Cancel and OK buttons a little bigger.\n- The look of the brushes popup has been improved. [#815](https://github.com/Orama-Interactive/Pixelorama/pull/815)\n- The cel buttons on the timeline are now dimmed if the cel is empty/transparent.\n- The manage layout dialog now has a preview for the selected layout. [#787](https://github.com/Orama-Interactive/Pixelorama/pull/787)\n- Layer adding behavior has been changed. [#767](https://github.com/Orama-Interactive/Pixelorama/pull/767)\n- The canvas rulers can now display floating point numbers. [#800](https://github.com/Orama-Interactive/Pixelorama/pull/800)\n- The tile mask, used in tile mode, is now being set automatically. [#833](https://github.com/Orama-Interactive/Pixelorama/pull/833)\n- When having multiple cels selected and onion skinning is enabled, using the Move tool now also has an immediate visible effect on the onion skinning preview. [#862](https://github.com/Orama-Interactive/Pixelorama/pull/862)\n- Onion skinning settings are now being saved and are remembered between sessions. [#857](https://github.com/Orama-Interactive/Pixelorama/pull/857)\n- Contributors and donors in the About dialog are now sorted in alphabetical order.\n\n### Fixed\n- The timeline has been refactored behind the scenes, and its performance has been massively improved for projects with a lot of frames and layers. [#698](https://github.com/Orama-Interactive/Pixelorama/pull/698)\n- If Pixelorama crashes during saving of a .pxo file and a file of the same name already exists in that directory, it no longer gets replaced with an empty 0 byte file. [#763](https://github.com/Orama-Interactive/Pixelorama/issues/763)\n- [macOS] Fixed issue where tool shortcuts changed tools. [#784](https://github.com/Orama-Interactive/Pixelorama/pull/784)\n- The movement preview now works as intended for all selected cels [#811](https://github.com/Orama-Interactive/Pixelorama/pull/811) for the move tool, [5cb0edd](https://github.com/Orama-Interactive/Pixelorama/commit/5cb0eddae5983b29a378a34ad4919116f911a403) for the selected content.\n- The UI scale no longer is 0.75 by default. This fixes blurry fonts on small monitors.\n- Opening the rotate image dialog twice on large canvases no longer results in a crash. [ad61ddc](https://github.com/Orama-Interactive/Pixelorama/commit/ad61ddc2c0c251e8e20da3369c072e48380c0cd3)\n- Pasted content should no longer get placed in sub-pixel positions. [403539b](https://github.com/Orama-Interactive/Pixelorama/commit/403539bb4794d81289214c4eda5226e70b9af19a)\n- The notifications always appear on the bottom left of the main canvas and are no longer dependent on the position of the timeline.\n- The recent files option in the File menu is now disabled in the Web version, instead of save.\n- Drawing with image brushes no longer results in pixels outside the selection, if it exists. [30d279c](https://github.com/Orama-Interactive/Pixelorama/commit/30d279c4948b5712dac87bf6575932ca30d1c4dc)\n- Using the selection gizmos when an overlay window is directly on top of them is no longer possible.\n- Fix bug where the tool changes from a draw tool to a non-draw tool, while having an image brush selected. The bug was that the indicator was appearing as a white square, until the user moved their mouse.\n- Fix bug where clicking on previous/next frame when only one frame exists makes the cel unselected. [6b58768](https://github.com/Orama-Interactive/Pixelorama/commit/6b587688f12dcc027c2f43832f179e4dca73a702)\n- Mirror symmetry axes are now properly centered by default. [#843](https://github.com/Orama-Interactive/Pixelorama/pull/843)\n- The \"File(s) exported\" notification now only appears on successful export.\n- Fix selection handles and shape tool previews not working properly when mirror view is enabled. [#860](https://github.com/Orama-Interactive/Pixelorama/pull/860)\n- Undoing after pasting now shows the previous selection as normal.\n- The right tool gets activated only if the right mouse button (or whatever input action is assigned) is first pressed. [cc332c6](https://github.com/Orama-Interactive/Pixelorama/commit/cc332c6cbf3f9265a95a4bdc4998c9ca6c4f750a)\n- No more errors in the debugger or the terminal appear when attempting to undo/redo while drawing. [af2b1fe](https://github.com/Orama-Interactive/Pixelorama/commit/af2b1feb1f63144ebce00520ea2f8ee832dc49bd)\n\n## [v0.10.3] - 2022-09-26\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind))\n\nBuilt using Godot 3.5.\n\n### Added\n- The UI now automatically gets scaled, based on the dpi and resolution of the monitor. Resolves [#643](https://github.com/Orama-Interactive/Pixelorama/issues/643).\n- A \"Divide into equal parts\" button has been added in Gradient Map. This is meant for easy gradient bisecting, which is helpful for converting Linear/Cubic interpolated gradients into Constant. This will eventually be used in gradient generation as well, once multi-color gradient generation support gets implemented.\n- A new fill area option has been added to the bucket tool options, \"Whole Selection\". This fills the entire selection with a color or pattern, regardless of the colors of the pixels.\n- The UI can now be scaled down to 0.5 and 0.75.\n- Palette swatches now get highlighted if their color is selected from the color buttons. [#730](https://github.com/Orama-Interactive/Pixelorama/pull/730)\n- Project tabs can now be closed with the middle mouse button.\n- Non-keyboard shortcut bindings for tools are now allowed. You can, for example, map your tools to a mouse or gamepad button.\n- The background color of the canvas is now configurable, as requested in [#586](https://github.com/Orama-Interactive/Pixelorama/discussions/586).\n\n### Changed\n- Circle brushes now scale properly and support even-numbered diameters.\n- Copy, cut & delete now affect the entire cel if there is no selection.\n- The paste placement behavior has been changed. Paste now places the pasted content in the middle of the canvas view, instead of its original position. A new option in the Edit menu has been added, \"Paste in Place\", that preserves the previous behavior.\n- If a layer is locked or invisible, the cursor changes into forbidden when the user is hovering the mouse over the canvas.\n- The left & right tool options now have a header with the name of the currently selected tool, and a color indicator on the top.\n- The preferences dialog has been polished. Headers have been added for each segment, and all of the elements are now vertically aligned with each other.\n- hiDPI is now enabled - solves [#159](https://github.com/Orama-Interactive/Pixelorama/issues/159).\n- The recent projects menu now makes the most recent project appear on top, and if you open a project already in the recent projects list, it would then be moved to the most recent spot on the list. [#755](https://github.com/Orama-Interactive/Pixelorama/pull/755)\n- The import dialog now remembers the last option. [#754](https://github.com/Orama-Interactive/Pixelorama/pull/754)\n- In the bucket tool options, \"Same color area\" and \"Same color pixels\" have been renamed to \"Similar area\" and \"Similar colors\" respectively.\n- The splash and preference dialogs can now be resized to a smaller size than the default.\n\n### Fixed\n- Deleting content from locked/invisible layers is no longer possible.\n- Selection can no longer be moved if there is a dialog open.\n- Tool and menu shortcuts no longer get activated if a dialog is open. [#709](https://github.com/Orama-Interactive/Pixelorama/issues/709).\n- Onion skinning now works properly with mirror view. Addresses part of [#717](https://github.com/Orama-Interactive/Pixelorama/issues/717).\n- Fix invalid pattern image error when using the bucket tool to replace colors.\n- Fixed issue with the bucket tool where if the selected color is the same as the pixel's color in mouse position, the operation stops even if there are other cels selected.\n- The \"Close\" button in the preferences no longer remains stuck in the previous language, if the language changes and the previous one was not English.\n\n## [v0.10.2] - 2022-08-18\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)), [@GrantMoyer](https://github.com/GrantMoyer)\n\nBuilt using Godot 3.5.\n\n### Added\n- A gradient map image effect. Addresses the second half of [#595](https://github.com/Orama-Interactive/Pixelorama/discussions/595).\n- A new rotation type, Rotxel with smear. Thanks to [azagaya](https://github.com/azagaya) for the shader code.\n- The pivot in the rotate image dialog can now be changed by the user. [#720](https://github.com/Orama-Interactive/Pixelorama/pull/720)\n- New offset options in tile mode that allow for non-rectangular tiling. [#707](https://github.com/Orama-Interactive/Pixelorama/pull/707)\n- A basic API for Extensions. Has not been documented yet and is still experimental.\n- A similarity option in the Select by Color tool. [#710](https://github.com/Orama-Interactive/Pixelorama/pull/710)\n- The left and right tool colors in the background of the tool buttons and the indicators on the canvas can now be changed from the Preferences.\n- Added Danish translations.\n\n### Changed\n- Copying now works between multiple Pixelorama instances, and the clipboard is even being remembered when the app closes. Note that you cannot copy image data to another software, and you cannot paste image data from another software into Pixelorama. [#693](https://github.com/Orama-Interactive/Pixelorama/pull/693)\n- Importing multiple images at once from File, Open is now possible.\n- On image effect dialogs, the preview will show all of the selected cels instead of only one cel. [#722](https://github.com/Orama-Interactive/Pixelorama/pull/722)\n- The indicator for the right tool is now enabled and orange by default.\n- On quit, the \"Save & Exit\" button is now focused by default.\n- The icon for onion skinning options has changed. [#711](https://github.com/Orama-Interactive/Pixelorama/pull/711)\n- Extensions are now being automatically reloaded if the user installs an already-existing extension, without the need to restart Pixelorama.\n\n### Fixed\n- Fixed a macOS crash on startup. [90d2473](https://github.com/Orama-Interactive/Pixelorama/commit/90d2473f5256425146a8c10f539b7737aa37fd23)\n- Even-numbered thickness sizes on the rectangle and ellipse shape tools now work as expected. The thickness of the shapes no longer goes up by 2 pixels. [23f591a](https://github.com/Orama-Interactive/Pixelorama/commit/23f591a8626c12fd7e6344ab59f8e33b8d20cb99)\n- [[Keychain](https://github.com/Orama-Interactive/Keychain)] Fixed issue with menu events being triggered by actions that are not exact matches. This means that, for example, \"Control + Shift + S\" will no longer activate both \"Save\" and \"Save as\", but only \"Save as\". [09c9583](https://github.com/Orama-Interactive/Keychain/commit/09c95835ef034effa949732cf9cf9bd315ed08a8)\n- Massively improved the performance of the selection system, most notably the Rectangle Selection and Select by Color tools, and selection content deletion. [#710](https://github.com/Orama-Interactive/Pixelorama/pull/710)\n- Performance when drawing big lines on big canvases has been increased, thanks to the update to Godot 3.5. Most likely due to [godotengine/godot#62826](https://github.com/godotengine/godot/pull/62826)\n- Fixed issue with save file dialog taking the name of the first file it sees. [5d65e82](https://github.com/Orama-Interactive/Pixelorama/commit/5d65e820708ed7586fdb7f0ac4633f7b468ec73d)\n- Fixed grid-based snapped movement when the offset of the grid was larger than the grid size. [#712](https://github.com/Orama-Interactive/Pixelorama/pull/712)\n- Fixed the symmetry points being on the wrong location on project initialization. [f432def](https://github.com/Orama-Interactive/Pixelorama/commit/f432defd1f92fde0677a5d10fde87e5219e47065)\n- The quick color picker shortcut of the shape tools is now mapped to the correct action. [55935bc](https://github.com/Orama-Interactive/Pixelorama/commit/55935bcfd2597b9fc6be94c40542934e5f99aefc)\n- The canvas preview play button now respects frame tags.\n- Implemented a crash protection measure when loading extensions. [#715](https://github.com/Orama-Interactive/Pixelorama/pull/715)\n- Fixed a crash when importing a spritesheet as a new layer, undoing and then exporting. [dcebf89](https://github.com/Orama-Interactive/Pixelorama/commit/dcebf894bf14b7de371f4661ec80c5f158087a23)\n- Window transparency now only affects the transparency of the Main Canvas's TabContainer. [#734](https://github.com/Orama-Interactive/Pixelorama/pull/734)\n\n## [v0.10.1] - 2022-06-06\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)), Matteo Piovanelli ([@MatteoPiovanelli-Laser](https://github.com/MatteoPiovanelli-Laser)), [@AlphinAlbukhari](https://github.com/AlphinAlbukhari), Martin Novák ([@novhack](https://github.com/novhack))\n\n### Added\n- The [Keychain plugin](https://github.com/Orama-Interactive/Keychain) has been implemented. Keychain makes Pixelorama's shortcut system fully configurable, and it provides the ability to the users to set custom shortcuts of every input type for all input actions. The plugin is developed by us and it's free to use for your own Godot projects as well! [#700](https://github.com/Orama-Interactive/Pixelorama/pull/700)\n- The cursor can now be moved with the numpad arrow keys and gamepad's left stick and d-pad, the canvas can be moved with gamepad's right stick and it is also possible to map the activate left and right tool actions to keyboard and gamepad buttons, to allow drawing from these devices, making Pixelorama a lot more accessible. Made possible by the Keychain plugin.\n- A lot more gradient options have been added. Apart from the Linear Step gradient, there are now Linear, Radial, Radial Step, Linear Dithering and Radial Dithering gradient types. They are all shader-based, so they are a lot faster than the previous method. [#677](https://github.com/Orama-Interactive/Pixelorama/pull/677)\n- A drop shadow image effect has been added. [#674](https://github.com/Orama-Interactive/Pixelorama/pull/674)\n- A new rotation method has been added. It is shader-based, therefore faster than the other methods. [#683](https://github.com/Orama-Interactive/Pixelorama/pull/683)\n- All menu items now have changeable shortcuts. Made possible by the Keychain plugin.\n- The dimensions of the exported file(s) are now visible in the export dialog. [#686](https://github.com/Orama-Interactive/Pixelorama/pull/686)\n\n### Changed\n- The outline effect is now generated using shaders, except in the Web platform. This makes outline generation more faster and gives better results.\n- In the backup confirmation dialog, \"Delete\" has been changed to \"Discard all\" and a Cancel button has been added.\n- Grid, pixel grid, rulers and guides view menu settings are now being remembered when Pixelorama closes and opens again.\n- The export window is now more clear if the directory path, the file name or both are invalid. [#669](https://github.com/Orama-Interactive/Pixelorama/pull/669)\n- Timeline scroll behavior has been tweaked. [#682](https://github.com/Orama-Interactive/Pixelorama/pull/682)\n- Image brush size is now using percentage suffix (%) instead of pixels (px). [#671](https://github.com/Orama-Interactive/Pixelorama/pull/671)\n- The brushes popup tab alignment and position has changed depending on where it's asked to popup. [#671](https://github.com/Orama-Interactive/Pixelorama/pull/671)\n- It is now possible to delete content from all selected cels.\n\n### Fixed\n- The flood fill algorithm (bucket tool's \"same color area\" mode) is now a lot faster. [#667](https://github.com/Orama-Interactive/Pixelorama/pull/667) and [#672](https://github.com/Orama-Interactive/Pixelorama/pull/672)\n- Based on the above, the magic wand tool is also a lot faster.\n- Shader-based image effects are now a lot faster if there is no selection.\n- GIF exporting is now faster. [#696](https://github.com/Orama-Interactive/Pixelorama/pull/696)\n- Fixed issue with the bucket tool's \"same color pixels\" method not working in all selected cels.\n- Fixed broken 90-degree rotation. [#676](https://github.com/Orama-Interactive/Pixelorama/pull/676)\n- Fixed export bug where the path is being changed if there's a folder with the same name as the file.\n- Fixed visual bug caused by window opacity. [#680](https://github.com/Orama-Interactive/Pixelorama/pull/680)\n- It is no longer possible to delete content from cels belonging to invisible or locked cels.\n- Scale image aspect ratio is now updating correctly when the dialog is about to appear.\n- Going into fullscreen mode and then exiting it no longer makes the window opacity not working properly. Note that window opacity still does not work when in fullscreen mode.\n\n## [v0.10] - 2022-04-15\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)), Martin Novák ([@novhack](https://github.com/novhack)), Lili Zoey ([@sayaks](https://github.com/sayaks)), [@ArthyChaux](https://github.com/ArthyChaux)\n\n### Added\n- A new Window menu has been added that has the new UI system options, as well as Zen mode and Fullscreen mode that were previously under the View menu.\n- A similarity option has been added to the \"same color pixels\" mode of the bucket tool. [#649](https://github.com/Orama-Interactive/Pixelorama/pull/649)\n- Added an experimental Extensions system that will let the users make their own extensions that add new functionality to Pixelorama. Keep in mind that this is still experimental and backwards compatibility is NOT guaranteed - use at your own risk.\n- A grayscale mode for the canvas has been added to the View menu. [#646](https://github.com/Orama-Interactive/Pixelorama/pull/646)\n- Bulk importing images has been made easier by adding an \"Apply to all\" checkbox that uses the same import options for all images that are to be imported. [#624](https://github.com/Orama-Interactive/Pixelorama/pull/624)\n- Extra cursor options have been added to the Preferences that let the user use the native mouse cursors of the OS and toggle the cross cursor on or off for the canvas, and the \"Indicators\" tab has been renamed to \"Cursors\".\n- Frame duration now appears as a hint tooltip of the frame buttons.\n- Added Portuguese translation.\n\n### Changed\n- The UI system has changed completely. Users can re-arrange all of the panels and place them wherever they want, resize them or hide them from view. It is also possible to save and load custom UI layouts. [#640](https://github.com/Orama-Interactive/Pixelorama/pull/640)\n- The secondary canvas is hidden from view by default, but it can become visible by going to the Window > Panels.\n- The mirroring and pixel perfect options are now global tool options and affect both left and right tools.\n- Various timeline improvements, like deleting and cloning multiple selected frames and when creating new frames, tags that are in front of them are being pushed. If the currently selected frames are inside a tag, creating new frames makes the tag bigger. [#648](https://github.com/Orama-Interactive/Pixelorama/pull/648)\n- The custom mouse cursor now scales with the UI. [#642](https://github.com/Orama-Interactive/Pixelorama/issues/642)\n- Importing an image will replace the previous project, if that project is empty.\n- Clicking on a layer toggle button (lock, visible & cel linking) now selects that layer.\n- Resize Canvas will always display the current size of the project.\n- Imported images can now be immediately exported, and for imported png images \"Overwrite\" is being displayed instead of \"Export\", until the user uses \"Export as...\".\n- The toolbar and the animation timeline now have a scrollbar.\n- Cut no longer works in invisible/locked layers.\n- You can now move guides with the pan tool. [#647](https://github.com/Orama-Interactive/Pixelorama/pull/647)\n- \"Flip\" has been renamed to \"Mirror Image\".\n- The documentation keyboard shortcut has been changed from F12 to F1.\n\n### Fixed\n- Drawing with big brush sizes has been optimized. [#657](https://github.com/Orama-Interactive/Pixelorama/pull/657) - which was based on [#554](https://github.com/Orama-Interactive/Pixelorama/pull/554)\n- The \"same color pixels\" mode of the bucket tool has become a lot faster because it now uses a shader. [#649](https://github.com/Orama-Interactive/Pixelorama/pull/649) - which was based on [#613](https://github.com/Orama-Interactive/Pixelorama/pull/613)\n- Fixed crash when importing non-palette .tres files.\n- Deferred mode for the color pickers of gradients has been enabled, so that the gradient preview color only changes on mouse release. Addressed a part of [#645](https://github.com/Orama-Interactive/Pixelorama/issues/645).\n- \"From Current Palette\" preset option is now disabled when creating a new palette, if there is no current palette, which fixes [#659](https://github.com/Orama-Interactive/Pixelorama/issues/659)\n- Aspect ratio in scale image no longer sets width and height to have the same value, but it works as expected like it does in the create new image dialog.\n- macOS shortcuts have been fixed, only Command is needed again instead of Command + Control.\n- Fixed a bug where the selection got stuck to the canvas boundaries when they were 1px away from them.\n- The export status of a project no longer resets when saving it as a pxo.\n- Fixed a rare issue where the splash screen never appears and the program is unresponsive.\n- Canvas texture updating has been slightly optimized. [#661](https://github.com/Orama-Interactive/Pixelorama/pull/661)\n\n### Removed\n- The Panel Layout menu option with Widescreen and Tallscreen panel layouts have been removed in favor of the new UI system.\n\n## [v0.9.2] - 2022-01-21\nThis update has been brought to you by the contributions of:\nFayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)), Darshan Phaldesai ([@luiq54](https://github.com/luiq54)), [@mrtripie](https://github.com/mrtripie)\n\n### Added\n- Added an option in the preferences that toggles confirmation while quitting. This has no effect if there are unsaved changes in any of the projects, the confirmation will always appear in that case.\n\n### Changed\n- The spritesheet importing as layer workflow has been improved. [#623](https://github.com/Orama-Interactive/Pixelorama/pull/623)\n- The duration of a frame also gets copied when that frame is being cloned.\n- The user can no longer delete the content of a cel that belongs to a locked or invisible layer.\n- Window transparency has been re-enabled in macOS.\n- Guides are a little easier to select and drag now.\n- The monochromatic palette has been changed.\n\n### Fixed\n- Massively improved memory management by fixing a memory leak. Previously, every time the user made a change, memory kept going up and never coming down. Now, data that can never be recovered, like undo data that have been rewritten in history, are also removed from memory. [4832690](https://github.com/Orama-Interactive/Pixelorama/commit/48326900d9d9f0b32fd435e56fd5a39bbf13fa36)\n- Fixed application being unresponsive if the user draws outside of the canvas, or on a locked or invisible layer.\n- Fixed issue with some of the image effects unintentionally affecting the colors of the image. [#625](https://github.com/Orama-Interactive/Pixelorama/pull/625)\n- The mirroring guides now automatically get centered when opening a project. [#626](https://github.com/Orama-Interactive/Pixelorama/issues/626)\n- While quitting, the confirmation dialog now detects if there are unsaved changes in any of the projects.\n- While drawing with the pencil tool, the transparency of the colors will not blend if overwrite is set to false until the mouse button is released.\n- The user can no longer draw in cels that belong to locked/invisible layers.\n\n## [v0.9.1] - 2021-12-20\nThis update has been brought to you by the contributions of:\nLaurenz Reinthaler ([@Schweini07](https://github.com/Schweini07)), Fayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)), Marquis Kurt ([@alicerunsonfedora](https://github.com/alicerunsonfedora)), Xenofon Konitsas ([@huskeee](https://github.com/huskeee)), Silent Orb ([@silentorb](https://github.com/silentorb)), Jeremy Behreandt ([@behreajj](https://github.com/behreajj)), [@mrtripie](https://github.com/mrtripie), [@JumpJetAvocado](https://github.com/JumpJetAvocado)\n\n### Added\n- Pixelorama is now available on the [Open Store](https://open-store.io/app/pixelorama.orama-interactive) for Ubuntu Touch. [#517](https://github.com/Orama-Interactive/Pixelorama/pull/517)\n- A new ARM32 build for the Raspberry Pi 4 is now available! [#598](https://github.com/Orama-Interactive/Pixelorama/pull/598)\n- It is now possible to hold <kbd>Control</kbd> to quickly change a tool's mode. [#429](https://github.com/Orama-Interactive/Pixelorama/discussions/429)\n- Holding <kbd>Alt</kbd> while having a draw tool selected now works as a color picker. [#125](https://github.com/Orama-Interactive/Pixelorama/issues/125)\n- Added an opacity option in the Eraser's tool options, which lets the user change the strength of the tool.\n- You can now rotate the canvas non-destructively. [#558](https://github.com/Orama-Interactive/Pixelorama/pull/558)\n- A timer has been added in the HSV and Rotation image effect dialogs that let the user change the delay between the preview refresh, in order to prevent performance issues. [#531](https://github.com/Orama-Interactive/Pixelorama/pull/531)\n- The zoom tool behavior has been enhanced, clicking and dragging to the left now zooms out, and clicking and dragging to the right zooms in. [#540](https://github.com/Orama-Interactive/Pixelorama/discussions/540)\n- New left and right arrows on the splash screen to switch between the different artworks. [#538](https://github.com/Orama-Interactive/Pixelorama/pull/538)\n- New setting in the Preferences that lets the user change the idle FPS. [#543](https://github.com/Orama-Interactive/Pixelorama/pull/543)\n- Added a README file for the macOS version that provides more information regarding the Gatekeeper. [#545](https://github.com/Orama-Interactive/Pixelorama/pull/545)\n- Added an \"Open Logs Folder\" option in the Help menu. [#546](https://github.com/Orama-Interactive/Pixelorama/pull/546)\n- Options to place the onion skinning previews above or below the canvas are now available. [#600](https://github.com/Orama-Interactive/Pixelorama/pull/600)\n- Added a clipboard pattern button. This lets the users fill patterns taken from the application's clipboard (copying selected content).\n\n### Changed\n- Flipping the image's selected content now works as expected. The selection gets flipped with the content as well.\n- Cache Save/Open Sprite Dialog's directory, and keep dialogs synced. [#559](https://github.com/Orama-Interactive/Pixelorama/pull/559)\n- The color pickers now display the previous color and allow selecting it back - because of the update to Godot 3.4.\n- The desaturation effect now uses luminance. [#557](https://github.com/Orama-Interactive/Pixelorama/pull/557)\n- A random color now appears when creating a new animation tag, along with other various improvements and fixes. [#560](https://github.com/Orama-Interactive/Pixelorama/pull/560)\n- The guides now become transparent when they out of canvas bounds, along with other various improvements and fixes. [#561](https://github.com/Orama-Interactive/Pixelorama/pull/561)\n- Moved window opacity settings to a dedicated dialog with a slider and a spinbox.\n- The fill color of a projects now only gets applied to the cels of the bottom-most layer.\n- The step of the UI scale slider has been changed to 0.25 from 0.1.\n- \"New Brush\" in the Edit menu is now disabled when there is no active selection.\n- The application now pauses when it loses focus instead of limiting its FPS. Of course, this behavior remains toggleable by the user.\n- The undo/redo notification text for selection has been renamed to \"Select\" from \"Rectangle Select\".\n\n### Fixed\n- The \"Pixelorama.app is damaged\" error in macOS should no longer appear. macOS builds are now ad-hoc signed. [#602](https://github.com/Orama-Interactive/Pixelorama/pull/602)\n- Removing a project tab that is on the left of the currently active tab will no longer result in a crash when attempting to save.\n- Merging layers with less than 100% opacity no longer crashes the application. [#541](https://github.com/Orama-Interactive/Pixelorama/issues/541)\n- Fixed crash when drawing and switching tools using shortcuts. [#618](https://github.com/Orama-Interactive/Pixelorama/issues/618)\n- Fixed issue with copying and pasting content between projects of different sizes.\n- Project data no longer remain in memory after the user has removed their tab.\n- Fixed issues with guides and notifications not working properly when the UI is scaled.\n- A bug was fixed where when the user has another application as their focus and reenters Pixelorama with the mouse but not focusing it and then exiting with the mouse, the target FPS would be set to the standard. [#543](https://github.com/Orama-Interactive/Pixelorama/pull/543)\n- Fixed issue with the backup confirmation dialog extending horizontally infinitely, which made the buttons disappear. Its text has also been changed.\n- Fixed unexpected behavior which occurred while undoing in the middle of drawing. [#603](https://github.com/Orama-Interactive/Pixelorama/pull/603)\n- Pressing X on the backup confirmation dialog should start the backup autosave timer.\n- The \"Brush color from\" tool option no longer appears in the Eraser and Shading tool's options.\n- Fixed Alt-Tab causing the cursor to get stuck. [#552](https://github.com/Orama-Interactive/Pixelorama/issues/552)\n- Some optimizations have been made, which should result in Pixelorama opening a bit faster, and input event handling is also using less CPU usage.\n- Fixed project not having the correct size if the default image size has been changed in the Preferences.\n- Fix issue where the timeline would be unresponsive if zen mode was toggled off and on.\n\n## [v0.9] - 2021-09-18\nThis update has been brought to you by the contributions of:\n\nKawan Weege ([@DragonOfWar](https://github.com/DragonOfWar)), Martin Novák ([@novhack](https://github.com/novhack)), Fayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)), Darshan Phaldesai ([@luiq54](https://github.com/luiq54)), Xenofon Konitsas ([@huskeee](https://github.com/huskeee)), Igor Santarek ([@jegor377](https://github.com/jegor377)), Álex Román Núñez ([@EIREXE](https://github.com/EIREXE)), [@mrtripie](https://github.com/mrtripie)\n\n### Added\n- A total of 9 new tools!\n- New selection tools, including elliptical, magic wand, select by color, lasso (freehand selection) and polygonal selection tools.\n- A new move tool, that lets you move the content of the current cel, or the content of the selection, if there is any.\n- New rectangle and ellipse shape tools. [#456](https://github.com/Orama-Interactive/Pixelorama/pull/456)\n- A new line tool.\n- An installer for Windows will be available for v0.9 and future versions! [#486](https://github.com/Orama-Interactive/Pixelorama/pull/486)\n- You can now select multiple cels in the timeline and edit them all at once!\n- Frame numbers in the timeline above the cels are now clickable buttons that can be dragged and dropped to re-arrange the frames. Right clicking on these buttons brings up a frame-related menu with options that used to be on the cel right click menu.\n- You can now right click a cel to delete its contents.\n- Layer dragging and dropping is now also possible.\n- A new \"fill inside\" option has been added in the Pencil tool options. [#489](https://github.com/Orama-Interactive/Pixelorama/pull/489), based off [#459](https://github.com/Orama-Interactive/Pixelorama/pull/459)\n- You can now name the project name on the \"create new project\" dialog. [#490](https://github.com/Orama-Interactive/Pixelorama/pull/490)\n- A tool button size option has been added in the Preferences. This lets you choose between small or big tool button sizes.\n- Added a \"Licenses\" tab in the About menu, which displays Pixelorama's license as well as the software it depends on, such as Godot.\n- Added Norwegian Bokmål and Ukrainian translations.\n\n### Changed\n- The selection system has been completely changed and has become a lot more powerful. See [#129](https://github.com/Orama-Interactive/Pixelorama/issues/129#issuecomment-756799706) for more details.\n- The palette system has been completely replaced with a new one. See [#447](https://github.com/Orama-Interactive/Pixelorama/pull/447) for more details.\n- UI icons have been changed to single-color \"symbolic\" textures. This removes the need for multiple graphics for each theme type as these new textures can change their modulation on runtime.\n- Image color inverting, desaturation and HSV adjusting are now shader based. This improves the performance of these image effects and prevents crashes on large images. [#475](https://github.com/Orama-Interactive/Pixelorama/pull/475)\n- The lighten/darken tool has been renamed to Shading tool.\n- Brushes now work with the Shading tool.\n- You now have to double click a layer button to rename a layer. Clicking it once just selects the layer.\n- Pixelorama's icon has been changed - proposed by creepertron95.\n- The color picker tool now works on the surrounding tiles when tile mode is enabled. [#506](https://github.com/Orama-Interactive/Pixelorama/issues/506)\n- The toolbar on the left can now be resized by the user.\n- The frame delay minimum value is now 0.01 instead of 0.\n- Cloning frames now create linked cels on layers where the cel linking button is enabled.\n- Window transparency has been temporarily disabled in macOS due to [#491](https://github.com/Orama-Interactive/Pixelorama/issues/491).\n- The close button on tabs is always being displayed, which lets the user close projects other than the current one.\n\n### Fixed\n- Issues such as not being able to create guides at random times, which are a result of PoolVectorArray locking issues, may have finally been solved. [#331](https://github.com/Orama-Interactive/Pixelorama/issues/331)\n- Cropping large images no longer crash the application.\n- Zen mode now hides the animation timeline again. [#478](https://github.com/Orama-Interactive/Pixelorama/pull/478)\n- Pixelorama should no longer crash when loading a project and the symmetry axes fail to load. They will still fail to load, but the app will no longer crash. [e8b36bbc61154641ce9eec1f0a845a0061d3585d](https://github.com/Orama-Interactive/Pixelorama/commit/e8b36bbc61154641ce9eec1f0a845a0061d3585d)\n- Fixed gif exporting stuck on 0% on large projects. [#488](https://github.com/Orama-Interactive/Pixelorama/pull/488)\n- Cropping images should now work as expected. Before, there were times when it did not crop the image at the correct size.\n- Fixed a rare division by zero crash when changing the display scale under Preferences.\n- Changed pixel grid shortcut on macOS because it conflicted with a system hotkey. [#494](https://github.com/Orama-Interactive/Pixelorama/pull/494)\n- The shading tool now has correct Hue, Saturation and Value changes, as well as some other tweaks, like limiting the darkening hue to 240 instead of 270. [#519](https://github.com/Orama-Interactive/Pixelorama/pull/519) and [#522](https://github.com/Orama-Interactive/Pixelorama/pull/522)\n- The disabled buttons on the light theme are no longer invisible. [#518](https://github.com/Orama-Interactive/Pixelorama/issues/518)\n- Fix the canvas preview having incorrect zoom when switching between projects.\n<br><br>\n\n## [v0.8.3] - 2021-05-04\nThis update has been brought to you by the contributions of:\n\nLaurenz Reinthaler (Schweini07), kleonc, Fayez Akhtar (Variable), THWLF, Gamespleasure, ballerburg9005, kevinms\n\n### Added\n- A new pan tool, used to move around the canvas. ([#399](https://github.com/Orama-Interactive/Pixelorama/pull/399))\n- Dragging and dropping individual cels in the timeline to change their position is now possible.\n- You can now resize cels in the timeline by holding `Control` and scrolling with the mouse wheel.\n- Added a new \"Performance\" tab in the Preferences that exposes options related to the application's FPS to the user.\n- You can now change the transparency of the application's window, allowing for easier tracing/rotoscoping. (Does not work on the Web version) ([#444](https://github.com/Orama-Interactive/Pixelorama/pull/444))\n- Added a new pixel grid, which is a grid of size 1px and it appears after a certain zoom level. ([#427](https://github.com/Orama-Interactive/Pixelorama/pull/427))\n- Added offset options to the grid. ([#434](https://github.com/Orama-Interactive/Pixelorama/pull/434))\n- The isometric grid has been refactored to work better and to offer more changeable options, such as the width and height of the cell bounds. ([#430](https://github.com/Orama-Interactive/Pixelorama/pull/430))\n- Pixelorama macOS binaries are now universal, which means that they should work with both x86_64 and ARM64 Mac devices. - Thanks to Godot 3.3\n- Added portrait and landscape buttons in the new image dialog.\n- Full support for auto Tallscreen/Widescreen has been implemented. ([#458](https://github.com/Orama-Interactive/Pixelorama/pull/458))\n- Added a new Centralize Image option in the Image menu, which places the visible pixels of the image in the center of the canvas. ([#441](https://github.com/Orama-Interactive/Pixelorama/pull/441))\n- Implemented the options to import a spritesheet as a new layer and to import an image and have it replace an already existing frame. ([#453](https://github.com/Orama-Interactive/Pixelorama/pull/453))\n- More templates have been added when creating a new sprite. ([#450](https://github.com/Orama-Interactive/Pixelorama/pull/450))\n- Added a keyboard shortcut for clear selection, `Control-D`. ([#457](https://github.com/Orama-Interactive/Pixelorama/pull/457))\n- Added an option in the Preferences for interface dimming on dialog popup. If this is enabled, the application background gets darker when a dialog window pops up.\n\n### Changed\n- Undo and redo now work when their respective keyboard shortcuts are being held. ([#405](https://github.com/Orama-Interactive/Pixelorama/pull/405))\n- CPU usage has been significantly been lowered when Pixelorama is idle. ([#394](https://github.com/Orama-Interactive/Pixelorama/pull/394))\n- The FPS of the project animation is now stored in the pxo file. This effectively means that every project can have its own FPS.\n- You can no longer draw on hidden layers.\n- You can now toggle if you want the grid to be drawn over the tile mode or just the original part of the canvas. ([#434](https://github.com/Orama-Interactive/Pixelorama/pull/434))\n- Frame tags can now be set for frames larger than 100. ([#408](https://github.com/Orama-Interactive/Pixelorama/pull/408))\n- The \"lock aspect ratio\" button in the create new image dialog has been changed to a texture button.\n- Improved the \"Scale Image\" dialog. It now automatically sets the size to the current project's size, has a button to lock aspect ratio, and resizing based on percentage.\n- Having no active selection no longer treats all the pixels of the canvas as selected. This is also a performance boost, especially for larger images, as Pixelorama no longer has to loop through all of the pixels to select them.\n- Tile mode rects are now cached for a little speedup. ([#443](https://github.com/Orama-Interactive/Pixelorama/pull/443))\n- The zoom tool now works on the second canvas too.\n\n### Fixed\n- Fixed issue with pixels being selected outside of the canvas boundaries, when the selection rectangle was outside the canvas and its size got reduced.\n- Major performance increase when drawing large images.\n- Fixed layer button textures not being updated properly when changing theme. ([#404](https://github.com/Orama-Interactive/Pixelorama/issues/404))\n- Keyboard shortcut conflicts between tool shortcuts and other shortcuts that use the \"Control\" key, like menu shortcuts, have been resolved. ([#407](https://github.com/Orama-Interactive/Pixelorama/pull/407))\n- The opacity of a cel and the tile mode opacity are now multiplicative. ([#414](https://github.com/Orama-Interactive/Pixelorama/pull/414))\n- Fixed an issue where adding a new layer did not select it, rather it was selecting the above layer of the previously selected layer. ([#424](https://github.com/Orama-Interactive/Pixelorama/pull/424))\n- Fixed issue that occurred when the application window regained focus and the tool was immediately activated. ([35f97eb](https://github.com/Orama-Interactive/Pixelorama/commit/35f97ebe6f90bd2a5994b294231738ef4a6b998c))\n- Fixed cel opacity not always being updated on the UI. ([#420](https://github.com/Orama-Interactive/Pixelorama/pull/420))\n- Loading empty backed up projects no longer result in a crash. ([#445](https://github.com/Orama-Interactive/Pixelorama/issues/445))\n- Fixed potential index out of bounds error when loading backup files. ([#446](https://github.com/Orama-Interactive/Pixelorama/pull/446))\n- Mirroring view should now work on all tools.\n- Fixed hue and saturation getting reset when dragging value slider to zero. ([#473](https://github.com/Orama-Interactive/Pixelorama/pull/473))\n- Image effects will not longer get applied to locked and/or hidden layers.\n- Fixed memory leaks when opening and closing Pixelorama. ([#387](https://github.com/Orama-Interactive/Pixelorama/issues/387))\n- The color picker now displays \"HSV\" and \"Raw\" next to the respective CheckButtons - thanks to Godot 3.3.\n<br><br>\n\n## [v0.8.2] - 2020-12-12\nThis update has been brought to you by the contributions of:\n\nPinyaColada, Rémi Verschelde (akien-mga), dasimonde, gschwind, AbhinavKDev, Laurenz Reinthaler (Schweini07)\n\n### Added\n- The lighten/darken tool now has a hue shifting mode. It lets users configure the shift in hue, saturation and value of the new shaded pixels. ([#189](https://github.com/Orama-Interactive/Pixelorama/issues/189))\n- Added a \"frame properties\" option on the popup menu that appears when right-clicking on a cel. This lets the user choose a custom frame delay for that specific frame. ([#357](https://github.com/Orama-Interactive/Pixelorama/pull/357))\n- You can now select if you want rotation to apply in the selection, the current cel, the entire frame, all frames or even all projects (tabs)!\n- You can now change the transparency of the Tile Mode in the Preferences. ([#368](https://github.com/Orama-Interactive/Pixelorama/pull/368))\n- Added a \"Recent Projects\" option in the File menu, to contain the most recently opened projects. ([#370](https://github.com/Orama-Interactive/Pixelorama/pull/370))\n- HiDPI support - Pixelorama's UI can now be scaled in the Preferences. ([#140](https://github.com/Orama-Interactive/Pixelorama/issues/140))\n- More options have been added to Tile mode; Tile only in X Axis, Y Axis or both Axis. ([#378](https://github.com/Orama-Interactive/Pixelorama/pull/378))\n- Added a \"Mirror View\" option in the View menu, which is used to flip the canvas horizontally and non-destructively. ([#227](https://github.com/Orama-Interactive/Pixelorama/issues/227))\n- macOS: It is now possible to pan and zoom the canvas from a touchpad. ([#391](https://github.com/Orama-Interactive/Pixelorama/pull/391))\n- Added Turkish and Japanese translations.\n\n### Changed\n- `~` is now used as a random brush prefix instead of `%`. ([#362](https://github.com/Orama-Interactive/Pixelorama/pull/362))\n- The default path of the dialogs for opening and saving is now the user's desktop folder.\n- When there are errors in opening and saving files, the errors appear in the form of a popup dialog, instead of a notification or an OS alert.\n- The CJK font (for Chinese & Korean) was changed to DroidSansFallback from NotoSansCJKtc. This results in a much smaller exported `.pck` (over 10MB less!)\n- Onion skinned previous and next frames are now being drawn on top of the current frame. This fixes issues where onion skinning would not work with an opaque background.\n- In onion skinning, you can now set the past and future steps to 0. ([#380](https://github.com/Orama-Interactive/Pixelorama/pull/380))\n- Tile mode is now project-specific. ([#388](https://github.com/Orama-Interactive/Pixelorama/pull/388))\n- macOS: Shortcuts with the Control keyboard button have now been changed to use \"Command\" instead. ([#393](https://github.com/Orama-Interactive/Pixelorama/pull/393))\n\n### Fixed\n- Made .pxo saving safer. In case of a crash while parsing JSON data, the old .pxo file, if it exists, will no longer be overwritten and corrupted.\n- Fixed issue where the user could grab and could not let go of the focus of guides even when they were invisible.\n- Fixed issues where fully transparent color could not be picked. One of these cases was [#364](https://github.com/Orama-Interactive/Pixelorama/issues/364).\n- Fixed \"Export\" option in the File menu not working properly and not remembering the directory path and file name when switching between projects (tabs).\n- When opening a .pxo project which has guides, they will no longer be added to the project at the first tab too.\n- Symmetry guides now adjust their position when the image is being resized. ([#379](https://github.com/Orama-Interactive/Pixelorama/issues/379))\n- Fixed various issues with the transparent background checker size. ([#377](https://github.com/Orama-Interactive/Pixelorama/issues/377))\n- Fixed Chinese and Korean characters not being displayed properly in the Splash dialog and the About dialog.\n- Fixed crash when importing an incorrectly formatted GIMP Color Palette file. ([#363](https://github.com/Orama-Interactive/Pixelorama/issues/363))\n- Using the lighten/darken tool on pixels with an alpha value of 0 no longer has an effect on them.\n- Fixed freeze when switching to a project of a larger size and using an image effect, with the affected parts being set to something different that \"Current cel\".\n<br><br>\n\n## [v0.8.1] - 2020-10-14\nThis update has been brought to you by the contributions of:\n\nLaurenz Reinthaler (Schweini07), PinyaColada\n\n### Added\n- Buttons for moving the current frame left or right. ([#344](https://github.com/Orama-Interactive/Pixelorama/pull/344))\n- Creating palettes from sprites has been enhanced - you can now choose if you want to get colors from the selection, current cel, entire frame or all frames, and if you want the colors to have an alpha component.\n- A new \"Cut\" option in the Edit menu or by pressing `Ctrl-X`. It cuts (deletes & copies) the selection, and you can later paste it. ([#345](https://github.com/Orama-Interactive/Pixelorama/pull/345))\n- Added a warning dialog when clicking the remove palette button, to prevent accidental palette deletions.\n- A new purple theme.\n\n### Changed\n- Guides now move with a step of 0.5 pixels. That makes it possible to have guides (and symmetry guides) to be in the middle of pixels.\n- Changed how Dark, Gray, Caramel and Light themes look. All theme elements now have the same spacing and margins.\n\n### Fixed\n- Most likely fixed an issue that occurred when the user attempted to export the project, which failed due to a locking error (error code 23). (Part of [#331](https://github.com/Orama-Interactive/Pixelorama/issues/3391))\n- Fixed crash where Pixelorama could not load a cached sub-resource. ([#339](https://github.com/Orama-Interactive/Pixelorama/issues/339))\n- When moving tabs, the projects now move along with their respective tabs.\n- Fixed crash where the animation was playing in the mini canvas preview and then the user switched to a project with less frames.\n- Fixed issue with the selection rectangle, where if it was being moved while using paste or delete, it went back to its original position. ([#346](https://github.com/Orama-Interactive/Pixelorama/pull/346))\n<br><br>\n\n## [v0.8] - 2020-09-23\nThis update has been brought to you by the contributions of:\n\nDarshan Phaldesai (luiq54), Igor Santarek (jegor377), rob-a-bolton, Kinwailo, Michael Alexsander (YeldhamDev), Hugo Locurcio (Calinou), Martin Novák (novhack), Xenofon Konitsas (huskeee), Matthew Paul (matthewpaul-us)\n\n### Added\n- The Web (HTML5) is now a supported platform of Pixelorama! It is now possible to save .png and .pxo files, as well as load image and palette files in the Web version. Made possible thanks to https://github.com/Pukkah/HTML5-File-Exchange-for-Godot\n- Windows, Linux, macOS and Web builds are now automatically generated every time a commit is pushed to master by GitHub Actions.\n- Project tabs! You can now have multiple projects open at the same time, and access each one with tabs. \n- Gradient generation. A new option under the \"Image\" menu that lets you generate a RGB gradient.\n- The dialog windows of most image effects have been improved. You can now select if you want the effect to apply in the selection, the current cel, the entire frame, all frames or even all projects (tabs)!\n- Added previews in all image effect dialog windows with a checkerboard background. Also placed checkerboard backgrounds in the cel buttons of the timeline, and the Export window. ([#206](https://github.com/Orama-Interactive/Pixelorama/issues/206))\n- A new isometric grid!\n- Ability to remove the current palette. ([#239](https://github.com/Orama-Interactive/Pixelorama/pull/239))\n- You can now drag & drop files into the program while it's running to open them. You can open .pxo files, image files and palette (json, gpl and pal) files this way.\n- You can now draw on the tiling mode previews! ([#65](https://github.com/Orama-Interactive/Pixelorama/issues/65))\n- Added Resize Canvas option to Image menu.\n- Added Symmetry Guides. They let you change the axis of symmetry for mirroring. ([#133](https://github.com/Orama-Interactive/Pixelorama/issues/133))\n- Palettes can now be created from the colors of the selected sprite.\n- You can now preview how the frames of the spritesheet you are importing will look.\n- You can now import image files as layers. Their size will be cropped to the project's size.\n- You can import image files as brushes, patterns and palettes.\n- Buttons have been added in Preferences to restore each setting to its default state.\n- Created a NSIS installer for Windows. ([#303](https://github.com/Orama-Interactive/Pixelorama/pull/303))\n- Added Scale3X algorithm as an option to scale sprites ([#290](https://github.com/Orama-Interactive/Pixelorama/pull/290))\n- Added \"Copy\", \"Paste\" and \"Delete\" options in the Edit menu. ([#281](https://github.com/Orama-Interactive/Pixelorama/pull/281))\n- Selection region and size are now being shown when making a selection on the top, next to the position label. ([#281](https://github.com/Orama-Interactive/Pixelorama/pull/281))\n- Added color overwrite option for the Pencil tool. ([#282](https://github.com/Orama-Interactive/Pixelorama/pull/282))\n- Flip, desaturation and invert colors now have dialogs with previews and extra options. You can now choose individual color channels to invert, including alpha.\n- A play button has been added for playing the animation exclusively on the small canvas preview area. A zoom slider for the preview area has been added, too.\n- Added color previews next to the themes in Preferences.\n- Added options for the checkerboard background to follow camera movement and zoom level. ([#311](https://github.com/Orama-Interactive/Pixelorama/pull/311))\n- Added support for importing PAL palette files. ([#315](https://github.com/Orama-Interactive/Pixelorama/pull/315))\n- Added Hungarian, Korean and Romanian translations.\n\n### Changed\n- The GDNative gif exporter addon has been replaced with a GDScript equivalent. This makes gif exporting possible in all currently supported platforms, and it also adds support for transparency. ([#295](https://github.com/Orama-Interactive/Pixelorama/pull/295))\n- Drawing is no longer limited by the canvas boundaries. This means that, if you have a brush largen than 1px, you can draw on the edges of the canvas. All pixels that are being drawn outside of the canvas will still have no effect.\n- The guides are now the same for all frames.\n- Imported frames are now being cropped to the project's size. It is no longer possible to have multiple sizes for each frame at all in the same project.\n- Pixel perfect is no longer enabled when the brush size is bigger than 1px.\n- The .pxo file structure has been changed. It's now consisted of a JSON-structured metadata part, where all the data that can be stored as text are, and a binary part, that contain all the actual image data for each cel and project brush.\n- You can now choose if you want your .pxo to use ZSTD compression or not.\n- To make a straight line, you now have to hold Shift while dragging (moving and pressing) your mouse. Releasing your mouse button makes the line. ([#281](https://github.com/Orama-Interactive/Pixelorama/pull/281))\n- When making a straight line, a preview of how the line's pixels will look is now being shown. ([#260](https://github.com/Orama-Interactive/Pixelorama/pull/260))\n- Drawing lines with Ctrl are now constrained at 1:1 and 1:2 ([#201](https://github.com/Orama-Interactive/Pixelorama/issues/201))\n- Pixelorama now remembers the selected colors, tools and their options when it's closed and re-opened. ([#281](https://github.com/Orama-Interactive/Pixelorama/pull/281))\n- The \"pixelorama\" folder, which contains data like Brushes, Patterns and Palettes has been renamed to \"pixelorama_data\" for all non-XDG directory paths.\n- Mac builds will now have the execute permission by default, and they will be in `.dmg` form. ([#319](https://github.com/Orama-Interactive/Pixelorama/pull/319))\n- Linux builds will also have the execute permission by default, and will be compressed as `tar.gz` instead of `.zip`.\n- Drawing brushes with mirror also mirrors the images of the brushes themselves. ([#281](https://github.com/Orama-Interactive/Pixelorama/pull/281))\n- When making a new palette or importing one and its name already exists, Pixelorama will add a number to its name. For example, \"Palette_Name\" would become \"Palette_Name (2)\", \"Palette_Name (3)\", etc.\n- Re-organized preferences dialog.\n- The \"create new image\" dialog now remembers the last created canvas size. The default image settings are being used only when Pixelorama first launches. ([#178](https://github.com/Orama-Interactive/Pixelorama/issues/178))\n- Language and theme checkboxes are now radio buttons.\n- The Blue theme has more similar margins and separations with the rest of the themes.\n- Fullscreen can be toggled on and off from the View menu.\n- Multi-threaded rendering has been enabled. ([#294](https://github.com/Orama-Interactive/Pixelorama/pull/294))\n- Use the Dummy audio driver since Pixelorama doesn't play any sounds. ([#312](https://github.com/Orama-Interactive/Pixelorama/pull/312))\n\n### Fixed\n- Exporting large images and drawing with large image brushes is now a lot faster. (Because of Godot 3.2.2)\n- Pixel perfect strokes no longer leave gaps when the mouse is moving fast. ([#281](https://github.com/Orama-Interactive/Pixelorama/pull/281))\n- Fixed failed imports of gpl palettes by adding support for the newer variant of gpl files. ([#250](https://github.com/Orama-Interactive/Pixelorama/pull/250))\n- Fixed alpha blending and lighting/darkening issues when drawing pixels with mirroring.\n- Fixed issue where if you moved a frame to the start (move left), it was invisible.\n- Fixed a rare issue with Undo/Redo not working while motion-drawing and making lines.\n- Grid and guides are now longer being displayed on previews. ([#205](https://github.com/Orama-Interactive/Pixelorama/issues/205))\n- Fixed a rare problem where the custom mouse cursor's image was failing to load.\n- Importing corrupted image files and non-palette json files no longer crash the app.\n- Drawing brushes no longer have clipping issues. ([#281](https://github.com/Orama-Interactive/Pixelorama/pull/281))\n- When undoing a removal of a brush, the brush index is no longer incorrect. ([#281](https://github.com/Orama-Interactive/Pixelorama/pull/281))\n- Fix out-of-bounds error when color picking outside the image. ([#291](https://github.com/Orama-Interactive/Pixelorama/pull/291))\n- When a color is being selected from a palette, the outline of the color's button no longer disappears when drawing. ([#329](https://github.com/Orama-Interactive/Pixelorama/pull/329))\n\n### Removed\n- The \"Import\" option from the file menu has been removed, users can now import image files from \"Open\".\n<br><br>\n\n## [v0.7] - 2020-05-16\nThis update has been brought to you by the contributions of:\n\nMartin Novák (novhack), Darshan Phaldesai (luiq54), Schweini07, Marco Galli (Gaarco), Matheus Pesegoginski (MatheusPese),\nsapient-cogbag, Kinwailo, Igor Santarek (jegor377), Dávid Gábor BODOR (dragonfi), John Jerome Romero (Wishdream)\n\n### Added\n- Cels are now in the timeline. Each cel refers to a specific layer AND a frame. Frames are a collection of cels for every layer.\n- Cel linking is now possible. This way, layers can be \"shared\" in multiple frames.\n- You can now group multiple frames with tags.\n- You can now export your projects to `.gif` files.\n- A new rotation method has been added, \"Upscale, Rotate and Downscale\". It's similar to Rotsprite.\n- An HSV Adjust dialog has been added in the Images menu.\n- Pattern filling is now possible. The bucket tool can now use Patterns to fill areas, instead of a single color.\n- An autosave feature that keeps backups of unsaved projects have been added. In the case of a software crash, the users can restore their work with this system.\n- Users can now change keyboard shortcut bindings for tools, in the Preferences.\n- Pixel Perfect mode has been added for pencil, eraser and lighten/darken tools.\n- Importing `.pngs` as palettes is now possible.\n- A confirmation message now appears when the user quits Pixelorama, if there are unsaved changes.\n- The last edited project gets loaded at startup (toggleable in the Preferences), along with a new option in the File menu that also does this.\n- Templates and a lock aspect ratio option have been added to the \"Create new image\" dialog.\n- Locking layers is now possible. When a layer is locked, no changes can be made to it. Layers are unlocked by default.\n- Ability to get color for palette buttons, when editing a palette, from the currently selected left and right colors.\n- Esperanto, Indonesian & Czech translation.\n- When the image is unsaved and the user tries to make a new one, a new warning dialog will appear to ask for confirmation.\n- A new zoom tool has been added, and you can also zoom in with the `+` key, and zoom out with `-`.\n- You can now move the canvas with the `Arrow keys`. `Shift + Arrows` make it move with medium speed, and `Ctrl + Shift + Arrows` makes it move with high speed.\n- The left and right tool icon options (found in Preferences) are now saved and restored on startup.\n\n### Changed\n- The UI - and especially the timeline - has been revamped!\n- The export dialog has also been revamped.\n- An asterisk is added to the window title if there are unsaved changes.\n- A VSplitContainer has been added between the canvas and the timeline.\n- The texture of the transparent checker background is now no longer affected by the zoom value. The users can now also change the texture's colors and the size.\n- Notification text is now black on the gold and light themes.\n- Layer's LineEdit now saves the changes when it loses focus, or when the user presses ESC (or Enter).\n- LineEdits lose focus when the user presses Enter.\n- When cloning a frame, the clone will appear next to the original.\n- Scale image and crop image now affect all frames.\n- Layer visibility is taken into account when exporting the drawing as a `.png` file. This means that invisible layers will not be included in the final `.png` file.\n- The Godot theme has changed and been renamed to Blue. The Gold theme has also been renamed to Caramel.\n- When a dialog is opened, the UI in the background gets darker.\n- Visual change, added border outlines to all window dialogs.\n- Animation now loops by default.\n- Onion skinning settings have been moved to a popup window, and 2 new buttons were added. One that toggles onion skinning, and one that opens the settings window.\n- The default window size is now 1280x720, and the minimum window size is 1024x576.\n- `.pxo` files now use ZSTD compression to result in smaller file sizes.\n- Palettes/Brushes get loaded/saved in appropriate locations as specified by the XDG basedir standard, for easier usage of standard Linux/BSD packaging methods and for better per-user usability.\n- The splash screen has been revamped and is no longer purple, it now gets affected by the chosen theme.\n- The brush selection popup now closes when a brush is selected.\n- Pixelorama's version number now appears on the window title.\n- Images now get zoomed properly (fit to canvas frame) when they are first created or loaded.\n\n### Fixed\n- Chinese characters not being rendered in notifications (the labels that appear when undoing/redoing) and at the splash screen for Platinum & Gold Sponsor Placeholder labels\n- Fixed issue when moving frames, the current frame was being shown but the frame next to it was actually the one being drawn on.\n- Fixed issue with LineEdits not letting go of focus when the user clicked somewhere else. (Issue #167)\n- When the palette, outline and rotate image dialogs are open, the user can't zoom in the canvas anymore.\n- Fixed bug where the user could drag the selection and the guides when the canvas had no focus.\n- The zoom label on the top bar now shows the correct zoom value when smooth zoom is enabled.\n- Fixed issue with Space triggering the event of the last pressed button. This caused unwanted behavior when using Space to move the canvas around. Resolved by changing the focus mode of the buttons to None.\n\n### Removed\n- It's no longer possible for frames to have different amounts of layers. All frames have the same amount.\n- The guides no longer work with undo/redo.\n<br><br>\n\n## [v0.6.2] - 2020-02-17\n\n### Added\n- Image layer rotation! Choose between 2 rotation algorithms, Rotxel and Nearest Neighbour - Thanks to azagaya!\n- Crowdin integration for contributing translations!\n- Spanish translation - thanks to azagaya & Lilly And!\n- Chinese Simplified translation - thanks to Chenxu Wang!\n- Latvian translation - thanks to Agnis Aldiņš (NeZvers)!\n- Translators can now be seen in the About window.\n- It is now possible to remove custom brushes with the middle mouse button.\n- Added HSV mode to the color picker. (Added automatically because of the Godot 3.2 update)\n- Lanczos scaling interpolation. (Added because of the Godot 3.2 update)\n- You can now drag and drop (or right click and open with) image and .pxo files in Pixelorama.\n- You can now hide the animation timeline - Thanks to YeldhamDev!\n\n### Changed\n- Major changes to alpha blending behavior. The alpha values now get added/blended together instead of just replacing the pixel with the new value.\n- Replaced some OS alerts with a custom made error dialog.\n- Made the zooming smoother, is toggleable in Preferences whether to keep the new zooming or the old one.\n- The camera now zooms at the mouse's position.\n- Made the \"X\" button on the custom brushes a little smaller.\n- The color picker will now have a small white triangle on the top left of the color preview if at least one of its RGB values are above 1 in Raw mode. (Added automatically because of the Godot 3.2 update)\n- You can now toggle the visibility of hidden items on and off in the file dialogs. (Added automatically because of the Godot 3.2 update)\n- The language buttons in the preferences have their localized names in their hint tooltips. For example, if you hover over the \"English\" button while the language is Greek, the hint tooltip will be \"Αγγλικά\", which is the Greek word for English.\n- Translation updates.\n- The presets in the ColorPickers are now hidden - Thanks to YeldhamDev!\n- When opening a project (.pxo file), the save path is being set to the opened project's path - Thanks to YeldhamDev!\n\n### Fixed\n- Delay the splash screen popup so it shows properly centered - Thanks to YeldhamDev!\n- Possibly fixed crashes with motion drawing and undo/redoing.\n- Fixed bug (which also caused crashes sometimes) when generating an outline inside the image and it was going outside the canvas' borders.\n- Fixed crash when importing images that were failing to load. They still fail to load, but Pixelorama does not crash.\n- Possibly fixed a rare crash where the cursor image was failing to load. It is now being loaded only once.\n- Fixed ruler markings cutting off before they should - Thanks to YeldhamDev!\n- Fixed bug where resizing the image on export and moving selection content were not working on Godot 3.2 - Issues #161 and #162\n<br><br>\n\n## [v0.6.1] - 2020-01-13\n\n### Added\n- Italian translation - thanks to Gaarco!\n- In addition to the middle mouse button, you can now use `Space` to pan around the canvas.\n- The ability to choose for which color the color picker does its job, the left or the right. (Issue #115)\n- Default image settings are now in the Preferences - thanks to Gaarco!\n- Added option to hide tool icons next to the cursor - thanks to haonkrub (Issue #122)\n\n### Changed\n- When saving a .pxo file, the file path (along with the file name) gets remembered by the Export PNG file dialog path. (Issue #114)\n- LightenDarken tool no longer affects transparent pixels.\n- More translatable strings, updates to Greek & Brazilian Portuguese (thanks to YeldhamDev) translations.\n- The dark theme button is now pressed by default if the user hasn't saved a theme preference in the config file.\n- Added a VSplitContainer for the tools and their options, and another one for Palettes and Layers.\n- Made minor changes to the UI of tool options, including a ScrollContainer for them.\n- Added a ScrollContainer for the palette buttons on the Edit Palette popup.\n- Made Palette .json files more readable, and placed \"comments\" on top of the color data.\n- The grid options are now being updated realtime when they're being changed from the preferences, and they are also being saved in the config cache file.\n\n### Fixed\n- Fixed crash that occurred when trying to delete contents of a selection, that were outside the canvas.\n- Fixed .gpl palettes not being imported correctly - Issue #112\n- Fixed crash that occurred when pressing the play buttons on the timeline, on Godot 3.2 - Issue #111\n- Fixed bug where, if you had a random brush selected and then selected the pencil tool, \"brush color from\" did not appear.\n- Fixed crash on Godot 3.2.beta6 when pressing the Edit Palette button.\n- The canvas updates automatically when onion skinning settings change.\n- Fixed a rare crash with straight lines. It was possible that the variable `is_making_line` could be true, even if the line itself has been freed from memory.\n- Fixed issue where undo/redo was not working properly for straight lines that went outside the canvas.\n<br><br>\n\n## [v0.6] - 2020-01-06\n\n### Added\n- Palettes. You can choose default ones or make your own! (Thanks to greusser/CheetoHead - issue #27)\n- Multiple theme support (Dark, Gray, Light, Godot, Gold) to better match your style (Thanks to Erevoid)!\n- Image menu with new features (Outlines, Color invert, desaturation) for more editing power.\n- Added a new splash screen window dialog  that appears when Pixelorama loads. Patrons with the rank of Visionaries and above can participate in splash screen artwork contests for every version! Click here for more info: https://www.patreon.com/OramaInteractive\n- Added a better circle and filled circle brushes. They use Bresenham's circle algorithm for scaling.\n- Added random brushes! Every time you draw, expect to see something different! To create random brushes, place the images you want your brush to have in the same folder, and put the symbol \"%\" in front of their filename. Examples, \"%icon1.png\", \"%grass_green.png\"\n- Pixelorama goes worldwide with even more translations! (German, French, Polish, Brazilian Portuguese, Russian, Traditional Chinese)\n- Added a layer opacity slider, that lets you change the alpha values of layers.\n- Importing spritesheets is now possible.\n- Exporting matrix spritesheets is now possible. You can choose how many rows OR columns your spritesheet will be.\n- Straight lines now have constrained angles if you press `Ctrl`. With a step of 15 angles.\n- Straight line angles are now being shown on the top bar.\n- Guide color can now be changed in Preferences.\n- Added sliders next to the spinboxes of brush size, brush color interpolation and LightenDarken's amount.\n- Color switch has `X` as its shortcut.\n- Frames can now be removed with middle click.\n- Selection content can be deleted with the \"Delete\" button.\n- Added \"View Splash Screen\", \"Issue Tracker\" and \"Changelog\" as Help menu options\n\n### Changed\n- Straight line improvements - it activates by pressing shift after last draw (Thanks to SbNanduri)\n- Changed Preferences window's layout.\n- Changed export dialog's options to be more clean and easier to understand.\n- Switched from a single .csv to gettext for handling translations.\n- The About dialog window got an overhaul. It now shows the names of the Development team, Contributors & Donors.\n- Changed default cursor shape for the rulers so the users can see that they are interactive.\n- Made the layer and timeline buttons have hover textures. (Thanks to Erevoid)\n- Brush color interpolation and LightenDarknen's amount now range from 0-100, instead of 0-1.\n- Redo has both `Ctrl-Y` and `Shift-Ctrl-Z` as its shortcuts. (Thanks to Schweini07)\n- Removed split screen button, you can now drag the second canvas from the right.\n- Changed positions of color switch & color default buttons.\n- Importing brushes from the Brushes folder now looks inside its subfolders too, but not the subfolders of the subfolders.\n- The Brushes folder now gets created if it doesn't exist (tested on Windows)\n- Enabled switching between menus in menu bar on hover (Thanks to YeldhamDev)\n- The \"View\" menu remains visible when toggling items (Thanks to YeldhamDev)\n- The UI darkens when exiting the application (Thanks to Calinou)\n- The bucket tool's \"paint all pixels with the same color\" now gets limited to the selection, if there is any.\n- If the alpha on the color picker is at 0 and any of the other RGB values change, alpha becomes 1. (Issue #54)\n\n### Fixed\n- UndoRedo leak (issue #34) (Thanks to qarmin)\n- Enabled low processor usage and reduced the amount of times \"update()\" gets called on Canvas and the rulers, to improve CPU usage. (Thanks to Calinou & Martin1991zab)\n- Fixed alpha in custom brushes, because their alpha was being blended along with its RGB values. (Issue #51)\n- Fixed \"Parent node is busy setting up children, move_child() failed\" when the Quit dialog popup was being called. (Issue #90, thanks to Sslaxx)\n- Fixed issues with bucket tool and mirroring.\n- Fixed issue with invisible layers becomes visible when a layer was added/removed/moved or changed frame.\n- Switched to '2D' framebuffer allocation, which results in slightly increased performance and decreased CPU/GPU usage. (Thanks to Calinou)\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# How to contribute efficiently\n\n## Table of contents:\n\n* [Reporting bugs or proposing features](#reporting-bugs-or-proposing-features)\n* [Contributing pull requests](#contributing-pull-requests)\n* [Contributing translations](#contributing-translations)\n* [Communicating with developers](#communicating-with-developers)\n\n**Please read the first section before reporting a bug!**\n<br><br>\n\n## Reporting bugs or proposing features\nPlease, open just one issue for each bug you'd like to report, or a feature you'd like to request. Don't open many issues for the same bug or feature request, and don't use the same issue to report more than one bugs, or to request more than one feature. It's best to open different issues for each bug/feature request.\n\nAlso, make sure to search the [issue tracker](https://github.com/Orama-Interactive/Pixelorama/issues) before opening a new issue, in case an issue like that exists. If you're unsure, feel free to open an issue. If it's a duplicate, we'll handle it.\n\nWhen reporting a bug, make sure to provide enough details, such as information about your Operating System (OS), Pixelorama version, Godot version (if you're using the source project) and clear steps to reproduce the issue. Feel free to include screenshots that might help, too.\n<br><br>\n\n## Contributing pull requests\nIf you are new to contributing to open source projects, make sure to read [this guide](https://opensource.guide/how-to-contribute/) before contributing. If you are new to git, [this guide](https://akrabat.com/the-beginners-guide-to-contributing-to-a-github-project/) will help you.\n\nPlease create different pull requests for each feature you'd like to implement, or each bug you'd like to fix. Make sure your pull request only handles one specific topic, and not multiple. If you want to make multiple changes, make a pull request for each of them. For this reason, it's recommended you create new branches in your forked repository, instead of using your fork's master branch.\nThis [Git style guide](https://github.com/agis-/git-style-guide) has some good practices to have in mind.\n\nKeep in mind that not all PRs will be merged. Some may need discussion, or others may be downright closed. To avoid that, it's best to create an [issue](https://github.com/Orama-Interactive/Pixelorama/issues) in the form of a proposal about the PR you are thinking to open, before actually opening it. That way, people can discuss and share their opinions and thoughts about the matter. This is especially necessary when the PR is meant to change how an already existing feature works, as some people may disagree with the change, or want to offer alternative ideas.\n\nIf you want to add new features or fix bugs, please check the following guidelines:\n\n### Git\n- Make sure your branch is up to date with the master branch. If it's not, please rebase it, if it's possible.\n- Do **NOT** use the `l10n_master`, `release` or `gh-pages` branches for development. Do not base your work from them, and do not open Pull Requests targeted at them.\n- Avoid including unneeded files in your commits. This is true mostly for `Main.tscn` and other scenes, as Godot likes to change them by itself. If you haven't made changes to scenes, please **do NOT** include them in your commits.\n- Please take a look at the differences of your changes and the main branch, and ensure you're not accidentally reverting something. This can often happen when your work is based on an older commit of the main repository's master branch.\n- If your PR is closing an issue, make sure to let us know by referencing the issue's numerical ID.\n- If you're making visual changes, it's a good idea to include screenshots in your PR. It's an easy way to let others know of the changes you made.\n\n### Code\n- Ensure that your code follows the recommended [GDScript style guide](https://docs.godotengine.org/en/stable/getting_started/scripting/gdscript/gdscript_styleguide.html). Before pushing your commits, we recommend downloading [gdtoolkit](https://github.com/Scony/godot-gdscript-toolkit), navigating to the `src` folder, then running `gdformat .` to automatically format your code and `gdlint .` to give you tips on how to improve the code's style.\n- [Static typing](https://docs.godotengine.org/en/stable/getting_started/scripting/gdscript/static_typing.html) is used in the code, so please make sure the code in your PRs also uses it.\n- Please enable **Editor Settings > Text Editor > Behavior > Trim Trailing Whitespace On Save** (visible with Advanced Settings). It's usually considered good practice to avoid trailing whitespace in files, and to make sure all files end with a single blank line. This makes for cleaner VCS diffs.\n- When you're creating a new script, if you have \"Template\" checked, Godot will place some comments and methods for you. If you're not using them, please remove them.\n\n### Organization\n- New scripts and/or scenes should go under the `src/` directory and use `PascalCase` for file and folder names. [Read this guide for more information](https://www.gdquest.com/docs/guidelines/best-practices/godot-gdscript/).\n- New images or other assets should go under the `assets/` directory and use `snake_case` for file and folder names.\n- If you're adding new UI elements with text, please include the new strings in the `Translations.pot` file. Do not include them in the other `*.po` files. Please make sure to group similar elements together (like element names and their tooltips) by placing them close to each other.\n- If you're making changes to UI elements that are `PackedScene`s, please directly edit them in their own scene files (open their scenes in the editor) instead of in `Main.tscn` or any parent scenes.\n- If you're making changes to popup (and as an extension, dialog) nodes as different scenes, please don't forget to turn off their visibility.\n- If you're adding new interactive UI elements such as buttons, don't forget to change their mouse default cursor shape to pointing arrow. Hint tooltips that explain the element's usage to the user are welcome too, just make sure to also include them in `Translations.pot`.\n- If you want to add an error dialog, use the existing `ErrorDialog`, change its text and pop it up, instead of making a new one.\n<br><br>\n\n## Contributing translations\nPixelorama uses [Crowdin](https://crowdin.com/project/pixelorama) to host the translations. In order to contribute, you need to login with your Crowdin account, select the language(s) you'd like to provide translations for, select `Translations.pot`, and start translating!\nIf you need help with the context of some strings, or want to translate in a language that is not available, feel free to contact me (Overloaded). All languages are welcome to be translated!\n<br><br>\n\n## Communicating with developers\nTo communicate with developers (e.g. to discuss a feature you want to implement or a bug you want to fix), the following channels can be used:\n\n- [GitHub Issues](https://github.com/Orama-Interactive/Pixelorama/issues) or [GitHub Discussions](https://github.com/Orama-Interactive/Pixelorama/discussions): If there is an\n  existing issue or discussion about a topic you want to discuss, just add a comment to it -\n  all developers watch the repository and will get an email notification. You\n  can also create a new issue/discussion.\n- [Our Discord Server](https://discord.gg/GTMtr8s): All developers and most contributors are there, so it's the best way for direct chat\n  about Pixelorama. You can use the channel `#pixelorama-dev` to stay up to date with Pixelorama's developments real-time,\n  or talk about the developments and request new features. If you seek support, please use the `#pixelorama-help` channel instead. Please avoid DMing developers and contributors, unless they tell you otherwise.\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019-present Orama Interactive and contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "Misc/.gdignore",
    "content": ""
  },
  {
    "path": "Misc/Clickable/.gdignore",
    "content": ""
  },
  {
    "path": "Misc/Clickable/README.md",
    "content": "# Building Ubuntu Touch click packages\n\n# Ubuntu Touch Click Packages\n\nThe following subdirectory contains the necessary development files to create a click package of the app for [Ubuntu Touch](https://ubuntu-touch.io). Special thanks to @abmyii and the UBPorts team for making this possible.\n\n## Build instructions\n\n1. Start by exporting the pack file with the preset \"Clickable (package only)\".\n2. Copy the resulting .pck file from the `dist/linux` directory (or wherever you specified the Linux export) into the `Misc/Clickable` directory and rename it to `Pixelorama.pck`.\n3. Copy the `pixelorama_data` directory from the root into `Misc/Clickable`. \n4. In the terminal, run the following:\n\n```\n$ cd Misc/Clickable\n$ clickable build\n```\n\nThe resulting click file should be present in the `build` directory inside of `Misc/Clickable`, which can be installed on an Ubuntu Touch device by copying the file over.\n\n### Multiple architectures\n\nNote: To build for different architectures, pass in the `CLICKABLE_ARCH `environment variable.\n\nFor example, to build for armhf and arm64:\n```\n$ CLICKABLE_ARCH=armhf clickable build\n$ CLICKABLE_ARCH=arm64 clickable build\n```\n> Note: It is recommended that you provide packages for at least the `armhf` and `arm64` architectures.\n\n### Important gotcha: File loading and saving\n\nDue to AppArmor policy restrictions, you are not able to save to anywhere outside of the user data directory.\n"
  },
  {
    "path": "Misc/Clickable/build-ubports.sh",
    "content": "#!/bin/bash\n\nBUILD_DIR=$PWD\nCACHE_DIR=$PWD/../.godot-ubports\n\n# The latest build can always be obtained from this URL\nURL_LATEST=https://gitlab.com/abmyii/ubports-godot/-/jobs/artifacts/ut-port-stable/download?job=xenial_${ARCH}_binary\n\n# Determine the ID of the latest successful pipeline\nfunction getNewestVersion() {\n\twget -qO - https://gitlab.com/api/v4/projects/23065313/pipelines?status=success | tr ',' '\\n' | grep id | head -n 1 | cut -d ':' -f 2 > newest\n}\n\n# Download a build\nfunction download() {\n\t# Accept job ID as single argument\n\tif [ $# = 1 ]; then\n\t\t# Check if the most recently downloaded build for this architecture is from the same pipeline\n\t\tif [ -f $1.* ]; then\n\t\t\techo \"Already downloaded artifacts from from job $1. Using cached files.\"\n\t\telse\n\t\t\t# Download requested build and update version indicator\n\t\t\twget https://gitlab.com/api/v4/projects/23065313/jobs/$1/artifacts -O temp.zip\n\t\t\tDOWNLOADED=`unzip -Z -1 temp.zip`\n\t\t\tDOWNLOADED=${DOWNLOADED##*.}\n\t\t\trm -f *.$DOWNLOADED\n\t\t\ttouch \"$1.$DOWNLOADED\"\n\t\t\techo \"Downloaded build for $DOWNLOADED from job $JOB.\"\n\t\t\tunzip -o temp.zip\n\t\t\trm temp.zip\n\t\tfi\n\t# If no argument given, download latest build\n\telse\n\t\techo \"Removing references to other builds...\"\n\t\trm -f *.${ARCH}\n\t\techo \"Downloading latest build...\"\n\t\twget $URL_LATEST -O temp.zip\n\t\tunzip -o temp.zip\n\t\trm temp.zip\n\tfi\n}\n\n# Store everything in a separate cache directory\nmkdir -p \"$CACHE_DIR\"\ncd \"$CACHE_DIR\"\n\n# If single argument given, download from that pipeline\nif [ $# = 1 ]; then\n\twget -qO - https://gitlab.com/api/v4/projects/23065313/pipelines/$1/jobs | tr ',' '\\n' | grep -E -e \"^\\W+id\" | sed -e 's/[^0-9]//g' | while read JOB; do\n\t\techo \"Downloading artifacts from job $JOB in pipeline $1...\"\n\t\tdownload $JOB\n\tdone\n# If nothing has been downloaded before, download newest build\nelif [ ! -f \"local-version.${ARCH}\" ]; then\n\techo \"No local copy found.\"\n\tgetNewestVersion\n\tdownload\n\tmv newest local-version.${ARCH}\n# Otherwise, check if there's a newer version available\nelse\n\tgetNewestVersion\n\tdiff newest local-version.${ARCH} > /dev/null\n\tif [ $? = 0 ]; then\n\t\techo \"No newer version to download. Using cached build.\"\n\t\trm newest\n\telse\n\t\techo \"Newer version available.\"\n\t\tdownload\n\t\tmv newest local-version.${ARCH}\n\tfi\nfi\n\n# Copy Godot executable to build directory\ncd \"$BUILD_DIR\"\ncp \"$CACHE_DIR\"/godot.ubports.${ARCH} godot\n"
  },
  {
    "path": "Misc/Clickable/click/manifest.json",
    "content": "{\n    \"architecture\": \"@CLICK_ARCH@\",\n    \"description\": \"A free & open-source 2D sprite editor!\",\n    \"framework\": \"ubuntu-sdk-16.04.5\",\n    \"hooks\": {\n        \"pixelorama\": {\n            \"apparmor\": \"pixelorama.apparmor\",\n            \"desktop\": \"pixelorama.desktop\"\n        }\n    },\n    \"maintainer\": \"Orama Interactive <oramagamestudios@gmail.com>\",\n    \"name\": \"pixelorama.orama-interactive\",\n    \"title\": \"Pixelorama\",\n    \"version\": \"0.10.3-stable\"\n}\n"
  },
  {
    "path": "Misc/Clickable/click/pixelorama.apparmor",
    "content": "{\n    \"policy_groups\": [\n        \"audio\",\n        \"keep-display-on\",\n        \"content_exchange\",\n        \"content_exchange_source\"\n    ],\n    \"policy_version\": 16.04\n}\n"
  },
  {
    "path": "Misc/Clickable/click/pixelorama.desktop",
    "content": "[Desktop Entry]\nName=Pixelorama\nComment=A free & open-source 2D sprite editor, made with the Godot Engine!\nExec=godot --main-pack Pixelorama.pck --maximized\nIcon=icon.png\nTerminal=false\nType=Application\nX-Ubuntu-Touch=true\n"
  },
  {
    "path": "Misc/Clickable/clickable.json",
    "content": "{\n  \"clickable_minimum_required\": \"6.17.1\",\n  \"kill\": \"pixelorama\",\n  \"builder\": \"custom\",\n  \"build\": \"${ROOT}/build-ubports.sh\",\n  \"build_dir\": \"${ROOT}/build\",\n  \"dependencies_host\": [\n    \"wget\",\n    \"libgles2\"\n  ],\n  \"dependencies_target\": [\n    \"libvpx3\",\n    \"libsdl2-2.0-0\",\n    \"libasound2\",\n    \"libglib2.0-0\",\n    \"libpng16-16\",\n    \"libfreetype6\"\n  ],\n  \"install_data\": {\n    \"${BUILD_DIR}/godot\": \"${INSTALL_DIR}\",\n    \"${ROOT}/click/*\": \"${INSTALL_DIR}\",\n    \"${ROOT}/pixelorama_data/*\": \"${INSTALL_DIR}/pixelorama_data\",\n    \"${ROOT}/*.pck\": \"${INSTALL_DIR}\"\n  },\n  \"install_lib\": [\n    \"/usr/lib/${ARCH_TRIPLET}/libvpx.so.3*\",\n    \"/usr/lib/${ARCH_TRIPLET}/libsndio.so.6.1\",\n    \"/usr/lib/${ARCH_TRIPLET}/libvorbis.so.0*\",\n    \"/usr/lib/${ARCH_TRIPLET}/libSDL2-2.0.so*\"\n  ]\n}"
  },
  {
    "path": "Misc/Linux/com.orama_interactive.Pixelorama.appdata.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- Copyright (c) 2019-present Orama Interactive and contributors -->\n<component type=\"desktop\">\n  <id>com.orama_interactive.Pixelorama.desktop</id>\n  <name>Pixelorama</name>\n  <summary>2D sprite editor with animation support</summary>\n  <description>\n    <p>\n      Unleash your creativity with Pixelorama, a powerful and accessible open-source pixel art multitool. Whether you want to create sprites, tiles, animations, or just express yourself in the language of pixel art, this software will realize your pixel-perfect dreams with a vast toolbox of features.\n    </p>\n  </description>\n  <metadata_license>CC0-1.0</metadata_license>\n  <project_license>MIT</project_license>\n  <developer_name>Orama Interactive</developer_name>\n  <url type=\"homepage\">https://pixelorama.org/</url>\n  <url type=\"bugtracker\">https://github.com/Orama-Interactive/Pixelorama/issues</url>\n  <url type=\"faq\">https://pixelorama.org/faq</url>\n  <url type=\"help\">https://pixelorama.org/Introduction</url>\n  <url type=\"donation\">https://patreon.com/OramaInteractive</url>\n  <url type=\"translate\">https://crowdin.com/project/pixelorama</url>\n  <url type=\"vcs-browser\">https://github.com/Orama-Interactive/Pixelorama/</url>\n  <url type=\"contribute\">https://pixelorama.org/development_and_contributing</url>\n  <screenshots>\n    <screenshot type=\"default\" width=\"1920\" height=\"1080\">\n      <image type=\"source\">https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/2779170/ss_354ea5cfde19549cd19fbfe3d68fc1d66b67763e.1920x1080.jpg</image>\n      <caption>A screenshot of Pixelorama's User Interface</caption>\n    </screenshot>\n    <screenshot type=\"default\" width=\"1920\" height=\"1080\">\n      <image type=\"source\">https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/2779170/ss_16d45d0b76064a8a7dee7ad2af8a584408040e09.1920x1080.jpg</image>\n      <caption>A screenshot of Pixelorama's User Interface</caption>\n    </screenshot>\n    <screenshot type=\"default\" width=\"1920\" height=\"1080\">\n      <image type=\"source\">https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/2779170/ss_54395040c25b243cb82a3bd68778e19e04b43ade.1920x1080.jpg</image>\n      <caption>A screenshot of Pixelorama's User Interface</caption>\n    </screenshot>\n    <screenshot type=\"default\" width=\"1920\" height=\"1080\">\n      <image type=\"source\">https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/2779170/ss_f8a47ca28701813feff16da54982e2e1e7a435bb.1920x1080.jpg</image>\n      <caption>A screenshot of Pixelorama's User Interface</caption>\n    </screenshot>\n    <screenshot type=\"default\" width=\"1920\" height=\"1080\">\n      <image type=\"source\">https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/2779170/ss_082edd5ebe50d8d68018905b1cd00dbefae812bb.1920x1080.jpg</image>\n      <caption>A screenshot of Pixelorama's User Interface</caption>\n    </screenshot>\n  </screenshots>\n  <content_rating type=\"oars-1.1\"/>\n  <releases>\n\t<release version=\"1.1.8\" date=\"2025-12-31\"/>\n\t<release version=\"1.1.7\" date=\"2025-11-29\"/>\n\t<release version=\"1.1.6\" date=\"2025-10-31\"/>\n\t<release version=\"1.1.5\" date=\"2025-09-06\"/>\n\t<release version=\"1.1.4\" date=\"2025-08-13\"/>\n\t<release version=\"1.1.3\" date=\"2025-08-06\"/>\n\t<release version=\"1.1.2\" date=\"2025-06-26\"/>\n\t<release version=\"1.1.1\" date=\"2025-05-06\"/>\n\t<release version=\"1.1\" date=\"2025-03-28\"/>\n\t<release version=\"1.0.5\" date=\"2024-11-18\"/>\n\t<release version=\"1.0.4\" date=\"2024-10-25\"/>\n\t<release version=\"1.0.3\" date=\"2024-09-13\"/>\n\t<release version=\"1.0.2\" date=\"2024-08-21\"/>\n\t<release version=\"1.0.1\" date=\"2024-08-05\"/>\n\t<release version=\"1.0\" date=\"2024-07-29\"/>\n\t<release version=\"0.11.4\" date=\"2024-04-17\"/>\n\t<release version=\"0.11.3\" date=\"2023-10-30\"/>\n\t<release version=\"0.11.2\" date=\"2023-08-31\"/>\n\t<release version=\"0.11.1\" date=\"2023-08-12\"/>\n\t<release version=\"0.11\" date=\"2023-06-13\"/>\n\t<release version=\"0.10.3\" date=\"2022-09-26\"/>\n\t<release version=\"0.10.2\" date=\"2022-08-18\"/>\n\t<release version=\"0.10.1\" date=\"2022-06-06\"/>\n\t<release version=\"0.10\" date=\"2022-04-15\"/>\n\t<release version=\"0.9.2\" date=\"2022-01-21\"/>\n\t<release version=\"0.9.1\" date=\"2021-12-20\"/>\n\t<release version=\"0.9\" date=\"2021-09-18\"/>\n\t<release version=\"0.8.3\" date=\"2021-05-04\"/>\n\t<release version=\"0.8.2\" date=\"2020-12-12\"/>\n\t<release version=\"0.8.1\" date=\"2020-10-14\"/>\n\t<release version=\"0.8\" date=\"2020-09-23\"/>\n    <release version=\"0.7\" date=\"2020-05-16\"/>\n    <release version=\"0.6.2\" date=\"2020-02-17\"/>\n  </releases>\n  <update_contact>hugo.locurcio@hugo.pro</update_contact>\n</component>\n"
  },
  {
    "path": "Misc/Linux/com.orama_interactive.Pixelorama.desktop",
    "content": "[Desktop Entry]\nName=Pixelorama\nGenericName=2D sprite editor\nGenericName[el]=Επεξεργαστής δισδιάστατων εικόνων\nGenericName[fr]=Éditeur de sprites 2D\nGenericName[ru]=2Д редактор спрайтов\nGenericName[pt_BR]=Editor de sprites 2D\nGenericName[uk]=2Д редактор спрайтів\nGenericName[zh_CN]=2D 精灵编辑器\nComment=Create and edit static or animated 2D sprites\nComment[el]=Δημιουργήστε και επεξεργαστείτε στατικές ή κινούμενες δισδιάστατες εικόνες\nComment[fr]=Créez et modifiez des sprites 2D statiques ou animées\nComment[ru]=Создавайте и редактируйте статичные и анимированные 2Д спрайты\nComment[pt_BR]=Crie e edite sprites 2D estáticos ou animados\nComment[uk]=Створюйте та редагуйте статичні та анімовані 2Д спрайти\nComment[zh_CN]=创建并编辑 2D 精灵图片或动画\nExec=pixelorama %u\nIcon=pixelorama\nStartupWMClass=Pixelorama\nTerminal=false\nType=Application\nCategories=Graphics;2DGraphics;RasterGraphics;\nKeywords=pixel;retro;animation;art;image;2d;sprite;graphics;drawing;editor;\nKeywords[el]=pixel;retro;animation;art;image;2d;sprite;graphics;drawing;editor;πίξελ;ρετρό;κίνηση;τέχνη;εικόνα;2δ;γραφικά;ζωγραφιά;ζωγραφική;επεξεργαστής;σχέδιο;\nKeywords[ru]=pixel;retro;animation;art;image;2d;sprite;graphics;drawing;editor;пиксель;ретро;анимация;арт;изображение;2д;спрайт;графика;рисование;редактор;\nKeywords[uk]=pixel;retro;animation;art;image;2d;sprite;graphics;drawing;editor;піксель;ретро;анімація;арт;зображення;2д;спрайт;графіка;малювання;редактор;\nMimeType=application/x-pixelorama;image/png;image/bmp;image/vnd.radiance;image/jpeg;image/svg+xml;image/x-tga;image/webp;x-scheme-handler/lospec-palette;\n"
  },
  {
    "path": "Misc/Linux/com.orama_interactive.Pixelorama.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<mime-info xmlns=\"http://www.freedesktop.org/standards/shared-mime-info\">\n  <mime-type type=\"application/x-pixelorama\">\n    <comment>Pixelorama Project</comment>\n    <glob pattern=\"*.pxo\"/>\n  </mime-type>\n</mime-info>\n"
  },
  {
    "path": "README.md",
    "content": "<p align=\"center\">\n    <h1 align = \"center\">Pixelorama - pixelate your dreams!</h1>\n</p>\n<p align=\"center\">\n    Unleash your creativity with Pixelorama, a powerful and accessible open-source pixel art multitool. Whether you want to create sprites, tiles, animations, or just express yourself in the language of pixel art, this software will realize your pixel-perfect dreams with a vast toolbox of features.\n</p>\n<p align=\"center\">\n    <a href=\"https://github.com/Orama-Interactive/Pixelorama/actions\">\n        <img src=\"https://github.com/Orama-Interactive/Pixelorama/workflows/dev-desktop-builds/badge.svg\" alt=\"Build Passing\" /></a>\n    <a href=\"https://orama-interactive.github.io/Pixelorama/early_access/\">\n        <img src=\"https://github.com/Orama-Interactive/Pixelorama/workflows/dev-web/badge.svg\" alt=\"Build Passing\" /></a>\n    <a href=\"https://github.com/Orama-Interactive/Pixelorama\">\n        <img src=\"https://img.shields.io/github/languages/code-size/Orama-Interactive/Pixelorama.svg\" alt=\"Code Size\" /></a>\n    <a href=\"https://github.com/Orama-Interactive/Pixelorama\">\n        <img src=\"https://img.shields.io/github/repo-size/Orama-Interactive/Pixelorama.svg\" alt=\"Repository size\" /></a>\n    <a href=\"https://github.com/Orama-Interactive/Pixelorama/blob/master/LICENSE\">\n        <img src=\"https://img.shields.io/github/license/Orama-Interactive/Pixelorama.svg\" alt=\"License\" /></a>\n</p>\n<p align=\"center\">\n    <a href=\"https://github.com/Orama-Interactive/Pixelorama/releases\">\n        <img src=\"https://img.shields.io/github/downloads/Orama-Interactive/Pixelorama/total?color=lightgreen\" alt=\"Downloads\" /></a>\n    <a href=\"https://discord.gg/GTMtr8s\">\n        <img src=\"https://discord.com/api/guilds/645793202393186339/embed.png\" alt=\"Discord Chat\" /></a>\n    <a href=\"https://crowdin.com/project/pixelorama\">\n        <img src=\"https://badges.crowdin.net/pixelorama/localized.svg\" alt=\"Crowdin Localized %\" /></a>\n    <a href=\"https://github.com/godotengine/awesome-godot\">\n        <img src=\"https://awesome.re/mentioned-badge.svg\" alt=\"Mentioned in Awesome Godot\" /></a>\n</p>\n \n[![Pixelorama's UI](https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/2779170/ss_54395040c25b243cb82a3bd68778e19e04b43ade.1920x1080.jpg?t=1719424898)](https://youtu.be/--ZcztkvWUQ)\n\nJoin our Discord community server where we can discuss about Pixelorama and all our other projects! https://discord.gg/GTMtr8s\n\nIf you like, consider helping us by sponsoring this project! It would enable us to focus more on Pixelorama, and make more projects in the future!\n\n[![Become a Patron!](https://c5.patreon.com/external/logo/become_a_patron_button.png)](https://patreon.com/OramaInteractive)\n\n## Download\nStable versions:\n- [Steam (Windows & Linux)](https://store.steampowered.com/app/2779170?utm_source=github)\n- [Itch.io (Windows, Linux, Mac & Web)](https://orama-interactive.itch.io/pixelorama)\n- [GitHub Releases (Windows, Linux & Mac)](https://github.com/Orama-Interactive/Pixelorama/releases)\n- [GitHub Pages (Web)](https://orama-interactive.github.io/Pixelorama/)\n- [Flathub (Linux)](https://flathub.org/apps/details/com.orama_interactive.Pixelorama)\n- [Snap Store (Linux)](https://snapcraft.io/pixelorama)\n- WinGet (Windows) - `winget install pixelorama`\n\nYou can also find early access builds in the [GitHub Actions page](https://github.com/Orama-Interactive/Pixelorama/actions). There's also a [Web version available](https://orama-interactive.github.io/Pixelorama/early_access/).\nKeep in mind that these versions will have bugs and are unstable. Unless you're interested in testing the main branch of Pixelorama, it's recommended that you stick to a stable version.\n\n## Documentation\nYou can find online Documentation for Pixelorama here: https://orama-interactive.github.io/Pixelorama-Docs\n\nIt's still a work in progress so there are some pages missing. If you want to contribute, you can do so in [Pixelorama-Docs' GitHub Repository](https://github.com/Orama-Interactive/Pixelorama-Docs).\n\n## Cloning Instructions\nPixelorama uses Godot 4.6.1, so you will need to have it in order to run the project. Older versions will not work.\nAs of right now, most of the code is written using GDScript, so the Mono version of Godot is not required, but Pixelorama should also work with it.\n\n## Features:\n- **Wide Range of Tools:** Customize your workflow by dynamically mapping tools to the left and right mouse buttons, making your creation process faster and more intuitive.\n- **Advanced Animation Support:** Create animations with a timeline composed of layers and frames, including features like onion skinning, audio synchronization, frame tags, and the ability to draw while the animation is playing.\n- **Pixel Art Focused:** Perfect pixel lines, indexed mode, and rotation and scaling algorithms tailored specifically to pixel art, like [cleanEdge](http://torcado.com/cleanEdge/), OmniScale, and rotxel.\n- **Seamless Tilemap Creation:** Use Pixelorama's tilemap layers to create rectangular, isometric or hexagonal tiles for your games.\n- **Powerful Layer System:** Utilize clipping masks and non-destructive visual effects like outlines, gradient maps, drop shadows, and more. Perfect for experimenting with styles and compositions, as changes can be applied without altering your original artwork.\n- **Palette Management:** Bring color into your canvas by choosing from pre-made palettes, importing your own, or creating custom ones inside the software to suit your unique style.\n- **Visual Effects:** Multiple image effects for fine-tuning your artwork.\n- **Advanced Canvas Options:** Utilize guides, rectangular and isometric grids, and tile mode to ensure seamless and precise pattern creation.\n- **Automatic Backups:** Stay safe with auto-saved backups to recover your work in case of unexpected software crashes.\n- **Highly Customizable UI:** Tailor the interface to your needs for maximum efficiency and a smooth workflow.\n- **Export & Import:** Support for various formats such as PNG, animated PNG, spritesheets, GIFs and even videos.\n- **3D Layer Support:** Break the barrier between dimensions by bringing 3D models and shapes into your 2D canvas for unlimited creative possibilities.\n- **Command Line Automation:** Automate file exports using the command line interface for bulk exporting and streamlining workflows.\n- **Project Metadata:** Attach custom user data to layers, frames, and cels, making it easy to integrate with game development and other creative processes.\n- **Extension Support:** Benefit from free, community-made extensions, such as tools that convert your 2D pixels into 3D voxels.\n- **Fully Open-Source:** Pixelorama is open-source, licensed under the MIT license, guaranteeing free updates forever!\n- **Multi-Language Support:** With localization support across various languages, Pixelorama is accessible to users around the world. See our [Crowdin page](https://crowdin.com/project/pixelorama) for more details.\n\n## Special thanks to\n- All [Godot](https://github.com/godotengine/godot) contributors! Without Godot, Pixelorama would not exist.\n- https://github.com/gilzoide/godot-dockable-container - the plugin Pixelorama's UI system uses for dockable containers.\n- https://github.com/Orama-Interactive/Keychain - the plugin Pixelorama's shortcut system uses for extensive customizability.\n- https://github.com/jegor377/godot-gdgifexporter - the gif exporter Pixelorama uses.\n- https://github.com/Pukkah/HTML5-File-Exchange-for-Godot - responsible for file exchange in Pixelorama's HTML5 (Web) version.\n- https://github.com/aBARICHELLO/godot-ci - for creating a Godot Docker image that lets us export Pixelorama automatically using GitHub Actions.\n- The entire Pixelorama community! Contributors, donors, translators, users, you all have a special place in our hearts! <3\n"
  },
  {
    "path": "Translations/README.md",
    "content": "### Contributing Translations\n\nIf you wish to contribute a translation, make sure to use [Pixelorama's Crowdin page](https://crowdin.com/project/pixelorama). Crowdin is a web-based translation platform, where people can contribute translations together and with ease. Please use Crowdin and do not directly open pull requests to Pixelorama's GitHub repository.\n\nLink: [https://crowdin.com/project/pixelorama](https://crowdin.com/project/pixelorama)\n"
  },
  {
    "path": "Translations/Translations.pot",
    "content": "msgid \"\"\nmsgstr \"\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the main menu will be collapsed in a single button, rather than a menu bar. Useful for devices with smaller screens, such as phones.\nmsgid \"Collapse main menu\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between left and right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\nmsgid \"Thai\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"\"\n\"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"\"\n\"Unable to get info from remote repository.\\n\"\n\"\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Undo: Rename Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Rename Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Opacity\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Opacity\"\nmsgstr \"\"\n\n#. Appears as a notification when the \"Ignore in onion skinning\" checkbox is toggled on or off the properties of a layer, and the user undos.\nmsgid \"Undo: Change Layer Onion Skinning Ignore Status\"\nmsgstr \"\"\n\n#. Appears as a notification when the \"Ignore in onion skinning\" checkbox is toggled on or off the properties of a layer, and the user undos and then redos.\nmsgid \"Redo: Change Layer Onion Skinning Ignore Status\"\nmsgstr \"\"\n\n#. Appears as a notification when the user data field of a layer is changed, and the user undos.\nmsgid \"Undo: Change Layer User Data\"\nmsgstr \"\"\n\n#. Appears as a notification when the user data field of a layer is changed, and the user undos and then redos.\nmsgid \"Redo: Change Layer User Data\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Color\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Color\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Visibility\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Visibility\"\nmsgstr \"\"\n\n#. Appears as a notification when a layer gets locked or unlocked, and the user undos.\nmsgid \"Undo: Change Layer Locked Status\"\nmsgstr \"\"\n\n#. Appears as a notification when a layer gets locked or unlocked, and the user undos and then redos.\nmsgid \"Redo: Change Layer Locked Status\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that only appears in the spritesheet tab, and it allows users to export each layer as a separate file, if \"split layers\" is enabled.\nmsgid \"Layers as separate files\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n"
  },
  {
    "path": "Translations/af_ZA.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: af\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Afrikaans\\n\"\n\"Language: af_ZA\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"Goed\"\n\nmsgid \"Cancel\"\nmsgstr \"Kanselleer\"\n\nmsgid \"Open\"\nmsgstr \"Mask oop\"\n\nmsgid \"Save\"\nmsgstr \"Stoor\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Bevestig asseblief...\"\n\nmsgid \"File Name:\"\nmsgstr \"Lêernaam:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Projek Naam:\"\n\nmsgid \"Image Size\"\nmsgstr \"Beeld grootte\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Seilgrootte\"\n\nmsgid \"Frame Size\"\nmsgstr \"Raam grootte\"\n\nmsgid \"Size:\"\nmsgstr \"Grootte:\"\n\nmsgid \"Width:\"\nmsgstr \"Breedte:\"\n\nmsgid \"Height:\"\nmsgstr \"Hoogte:\"\n\nmsgid \"Center\"\nmsgstr \"Middel\"\n\nmsgid \"File\"\nmsgstr \"Lêer\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/ar_SA.po",
    "content": "msgid \"\"\nmsgstr \"\"\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ar\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Arabic\\n\"\n\"Language: ar_SA\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"حسنا\"\n\nmsgid \"Cancel\"\nmsgstr \"إلغاء\"\n\nmsgid \"Open\"\nmsgstr \"فتح\"\n\nmsgid \"Save\"\nmsgstr \"حفظ\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"الرجاء التأكيد...\"\n\nmsgid \"File Name:\"\nmsgstr \"اسم الملف:\"\n\nmsgid \"Project Name:\"\nmsgstr \"اسم المشروع:\"\n\nmsgid \"Image Size\"\nmsgstr \"حجم الصورة\"\n\nmsgid \"Canvas Size\"\nmsgstr \"حجم الكانفاس\"\n\nmsgid \"Frame Size\"\nmsgstr \"حجم الإطار\"\n\nmsgid \"Size:\"\nmsgstr \"الحجم:\"\n\nmsgid \"Width:\"\nmsgstr \"العرض:\"\n\nmsgid \"Height:\"\nmsgstr \"الطول:\"\n\nmsgid \"Center\"\nmsgstr \"في المنتصف\"\n\nmsgid \"File\"\nmsgstr \"الملف\"\n\nmsgid \"Edit\"\nmsgstr \"تعديل\"\n\nmsgid \"Select\"\nmsgstr \"تحديد\"\n\nmsgid \"View\"\nmsgstr \"عرض\"\n\nmsgid \"Window\"\nmsgstr \"النافذة\"\n\nmsgid \"Image\"\nmsgstr \"الصورة\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"مشروع\"\n\nmsgid \"Effects\"\nmsgstr \"التأثيرات\"\n\nmsgid \"Help\"\nmsgstr \"مساعدة\"\n\nmsgid \"New\"\nmsgstr \"جديد\"\n\nmsgid \"New...\"\nmsgstr \"جديد...\"\n\nmsgid \"Open...\"\nmsgstr \"فتح...\"\n\nmsgid \"Save...\"\nmsgstr \"حفظ...\"\n\nmsgid \"Save as...\"\nmsgstr \"حفظ باسم...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"تضمين الصور المختلطة\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"في حالة تفعيلها، يتم تخزين الصور النهائية الممزوجة أيضًا في مِلَفّ pxo، لكل إطار.\\n\"\n\"هذا يجعل مِلَفّ pxo أكبر حجمًا وهو مفيد للاستيراد بواسطة برنامَج طرف ثالث \\n\"\n\"أو تصدير CLI. لا يحتاج تحميل ملفات pxo في Pixelorama إلى تمكين هذا الخِيار.\"\n\nmsgid \"Import\"\nmsgstr \"استيراد\"\n\nmsgid \"Export\"\nmsgstr \"تصدير\"\n\nmsgid \"Overwrite\"\nmsgstr \"إستبدال\"\n\nmsgid \"Export...\"\nmsgstr \"تصدير...\"\n\nmsgid \"Export as...\"\nmsgstr \"تصدير باسم...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"تصدير PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"تصدير PNG باسم...\"\n\nmsgid \"Quit\"\nmsgstr \"خروج\"\n\nmsgid \"Undo\"\nmsgstr \"التراجع\"\n\nmsgid \"Redo\"\nmsgstr \"إعادة\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"نسخ\"\n\nmsgid \"Cut\"\nmsgstr \"قص\"\n\nmsgid \"Paste\"\nmsgstr \"لصق\"\n\nmsgid \"Paste in Place\"\nmsgstr \"لصق في المكان\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"لصق من الحافظة\"\n\nmsgid \"Delete\"\nmsgstr \"حذف\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"حذف بشكل نهائي\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"نقل إلى سلة المهملات\"\n\nmsgid \"New Brush\"\nmsgstr \"فرشاة جديدة\"\n\nmsgid \"Scale Image\"\nmsgstr \"تغيير مقياس الصورة\"\n\nmsgid \"Pixels\"\nmsgstr \"النقاط\"\n\nmsgid \"Percentage\"\nmsgstr \"نسبة\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"وضع اللون:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"وضع اللون\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"مفهرس\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"اقتصاص إلى التحديد\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"اقتصاص إلى المحتوى\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"تغيير حجم الكانفاس\"\n\nmsgid \"Offset Image\"\nmsgstr \"إزاحة الصورة\"\n\nmsgid \"Offset:\"\nmsgstr \"إزاحة:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"لف حول:\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"توسيط الإطار\"\n\nmsgid \"Rotate Image\"\nmsgstr \"تدوير الصورة\"\n\nmsgid \"Pivot x:\"\nmsgstr \"المحور x:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"المحور y:\"\n\nmsgid \"Smear options:\"\nmsgstr \"خيارات التمويه:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"التفاوت:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"الزاوية الأولية:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"تغليف الفرشاة\"\n\nmsgid \"Clear\"\nmsgstr \"مسح\"\n\nmsgid \"Invert\"\nmsgstr \"عكس\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"تحديد منطقة الخلية\"\n\nmsgid \"Modify\"\nmsgstr \"تعديل\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"توسيع\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"توسيع التحديد\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"تصغير\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"تصغير التحديد\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"إطار\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"تحديد الإطار\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"معيني\"\n\nmsgid \"Circle\"\nmsgstr \"دائري\"\n\nmsgid \"Square\"\nmsgstr \"مربع\"\n\nmsgid \"Grayscale View\"\nmsgstr \"العرض الرمادي\"\n\nmsgid \"Mirror Image\"\nmsgstr \"عكس الصورة\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"التدوير بشكل أفقي\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"التدوير بشكل عمودي\"\n\nmsgid \"Preferences\"\nmsgstr \"خيارات\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"إجراءات\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"ضبابي\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"تم التحميل\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"توسيط اللوحة\"\n\nmsgid \"Tile Mode\"\nmsgstr \"وضع البلاط\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"إزاحات وضع التكرار\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"الأساس X:\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"الأساس Y:\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"الإخفاء:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"إعادة تعيين\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"إعادة تعيين %s\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"إستخدام الإطار الحالي\"\n\nmsgid \"Reset Mask\"\nmsgstr \"إعادة تعيين الإخفاء\"\n\nmsgid \"Window Opacity\"\nmsgstr \"شفافية النافذة\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"لا تعمل شفافية النافذة في وضع ملء الشاشة.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"تخطيط اللوحة\"\n\nmsgid \"Panels\"\nmsgstr \"لوحات\"\n\nmsgid \"Layouts\"\nmsgstr \"المخططات\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"نوافذ متحركة\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"اجعلها عائمة\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"إدارة المخططات\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"معاينة\"\n\nmsgid \"Add\"\nmsgstr \"إضافة\"\n\nmsgid \"Add Layout\"\nmsgstr \"إضافة تخطيط\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"حذف %s\"\n\nmsgid \"Copy from\"\nmsgstr \"نسخ من\"\n\nmsgid \"Rename\"\nmsgstr \"إعادة تسمية\"\n\nmsgid \"Rename Layout\"\nmsgstr \"تسمية التخطيط\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"التخطيط الحالي\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"هل تريد فعلا القيام بحذف هذا التخطيط؟\"\n\nmsgid \"Widescreen\"\nmsgstr \"شاشة عريضة\"\n\nmsgid \"Tallscreen\"\nmsgstr \"شاشة طويلة\"\n\nmsgid \"Mirror View\"\nmsgstr \"عرض المرآة\"\n\nmsgid \"Show Grid\"\nmsgstr \"إظهار الشبكة\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"إظهار شبكة بكسل\"\n\nmsgid \"Show Rulers\"\nmsgstr \"إظهار المسطرة\"\n\nmsgid \"Show Guides\"\nmsgstr \"إظهار الإرشادات\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"إظهار أدلة الفأرة\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"إظهار الصور المرجعية\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"عرض تأثيرات الطبقة\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"حصر إلي\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"محاذاة إلى حدود الشبكة المستطيلة\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"محاذاة إلى مركز الشبكة المستطيلة\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"محاذاة إلى الأدلة\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"محاذاة إلى أدلة المنظور\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"إظهار الخيط الزمني للرسوم المتحركة\"\n\nmsgid \"Zen Mode\"\nmsgstr \"وضع التأمل\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"وضع ملء الشاشة\"\n\nmsgid \"Fill with color:\"\nmsgstr \"الملئ باللون:\"\n\nmsgid \"Open a File\"\nmsgstr \"فتح ملف\"\n\nmsgid \"Open File(s)\"\nmsgstr \"فتح ملفات\"\n\nmsgid \"Import Options\"\nmsgstr \"خيارات الإستيراد\"\n\nmsgid \"Import as:\"\nmsgstr \"إستيراد كـ:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"تطبيق على الكل\"\n\nmsgid \"Recent projects\"\nmsgstr \"المشاريع الأخيرة\"\n\nmsgid \"New project\"\nmsgstr \"مشروع جديد\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"مصفوفة الكائنات (مشروع جديد)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"جدول الرُّسُوم (طبقة جديدة)\"\n\nmsgid \"New frame\"\nmsgstr \"إطار جديد\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"إستبدال العنصر\"\n\nmsgid \"New layer\"\nmsgstr \"طبقة جديدة\"\n\nmsgid \"New reference image\"\nmsgstr \"صورة مرجعية جديدة\"\n\nmsgid \"New palette\"\nmsgstr \"لوحة جديدة\"\n\nmsgid \"New brush\"\nmsgstr \"فرشاة جديدة\"\n\nmsgid \"New pattern\"\nmsgstr \"نمط جديد\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"الأطر الأفقية:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"الأطر العمودية:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"تقطيع ذكي\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"الحد الأدنى:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"الصور التي لديها جانب واحد أصغر من هذه القيمة ستعبر الحد الأدنى\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"مسافة الدمج:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"الصور التي تتجاوز الحد الأدنى ستدمج في صورة أكبر، إذا كانت داخل هذه المسافة\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"تحديث\"\n\nmsgid \"Start frame:\"\nmsgstr \"إطار البداية:\"\n\nmsgid \"End frame:\"\nmsgstr \"إطار النهاية:\"\n\nmsgid \"At frame:\"\nmsgstr \"عند الإطار:\"\n\nmsgid \"At layer:\"\nmsgstr \"عند الطبقة:\"\n\nmsgid \"Brush type:\"\nmsgstr \"نوع الفرشاة:\"\n\nmsgid \"File brush\"\nmsgstr \"إستعمال صورة كفرشاة\"\n\nmsgid \"Project brush\"\nmsgstr \"إستعمال فرشاة شخصية\"\n\nmsgid \"Random brush\"\nmsgstr \"فرشاة عشوائية\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"حفظ سبريت ك.pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"تصدير سبريت ك.png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"تصدير سبريت\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"الملف موجود، هل تريد إستبداله؟\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"الملفات التالية موجودة بالفعل. هل ترغب في الكتابة فوقها؟\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"مسار المجلد غير صالح!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"إسم الملف غير صالح!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"مسار المجلد أو اسم الملف غير صالح!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"جاري التصدير...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"لا يمكن تحميل الملف '%s'.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"لا يمكن تحميل الملف '%s'.\\n\"\n\"رمز الخطأ: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"لا يمكن تحميل الملف '%s'.\\n\"\n\"هذا ملف غير صالح للوحة الألوان.\"\n\nmsgid \"Frame\"\nmsgstr \"الإطار\"\n\nmsgid \"Frames:\"\nmsgstr \"إطارات:\"\n\nmsgid \"All Frames\"\nmsgstr \"كل الإطارات\"\n\nmsgid \"Spritesheet\"\nmsgstr \"ورقة السبريت\"\n\nmsgid \"Animation\"\nmsgstr \"الرسوم المتحركة\"\n\nmsgid \"Preview:\"\nmsgstr \"معاينة:\"\n\nmsgid \"Frame:\"\nmsgstr \"الإطار:\"\n\nmsgid \"Orientation:\"\nmsgstr \"الإتجاه:\"\n\nmsgid \"Browse\"\nmsgstr \"تصفّح\"\n\nmsgid \"Resize:\"\nmsgstr \"تغيير الحجم:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"الجودة:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"إلغاء التصدير\"\n\nmsgid \"Alert!\"\nmsgstr \"تنبيه!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"اختر المجلد الحالي\"\n\nmsgid \"Open a Directory\"\nmsgstr \"فتح الدليل\"\n\nmsgid \"Background:\"\nmsgstr \"الخلفيّة:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"الإطارات المختارة\"\n\nmsgid \"Layers:\"\nmsgstr \"الطبقات:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"الطبقات الظاهرة\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"الإطارات المختارة\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"طبقة البكسل:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"جامع الطبقات:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"طبقة ثلاثية الأبعاد:\"\n\nmsgid \"Direction:\"\nmsgstr \"الاتجاه:\"\n\nmsgid \"Forward\"\nmsgstr \"إلى الأمام\"\n\nmsgid \"Backwards\"\nmsgstr \"إلى الوراء\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"بينغ بونغ\"\n\nmsgid \"Columns\"\nmsgstr \"الخانات\"\n\nmsgid \"Columns:\"\nmsgstr \"الخانات:\"\n\nmsgid \"Rows\"\nmsgstr \"الصفوف\"\n\nmsgid \"Rows:\"\nmsgstr \"الصفوف:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"العلامات حسب العمود\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"العلامات حسب الصف\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"أبعاد التصدير:\"\n\nmsgid \"Save a File\"\nmsgstr \"حفظ ملف\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"الانتقال إلى المجلد السابق.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"الانتقال إلى المجلد التالي.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"انتقل إلى المجلد الرئيس.\"\n\nmsgid \"Path:\"\nmsgstr \"المسار:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"تحديث الملفات.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"تفعيل رؤية الملفات المخفية.\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"المجلدات والملفات:\"\n\nmsgid \"Create Folder\"\nmsgstr \"إنشاء مجلد\"\n\nmsgid \"File:\"\nmsgstr \"الملف:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"جميع الملفات\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"جميع المتعرف عليها\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"مشروع Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"صورة PNG\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"صورة BMP\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"صورة بمدى HDR\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"صورة JPEG\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"صورة SVG\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"صورة TGA\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"صورة WebP\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"مشروع OpenRaster\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"مشروع Aseprite\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"لوحة ألوان Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"لوحة ألوان GIMP\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"الخيارات المتقدمة\"\n\nmsgid \"Interpolation:\"\nmsgstr \"الفلتر:\"\n\nmsgid \"Nearest\"\nmsgstr \"الأقرب\"\n\nmsgid \"Bilinear\"\nmsgstr \"ثنائي\"\n\nmsgid \"Cubic\"\nmsgstr \"مكعبي\"\n\nmsgid \"Trilinear\"\nmsgstr \"ثلاثي\"\n\nmsgid \"Constant\"\nmsgstr \"ثابت\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"نطاق الألوان\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"خطي sRGB\"\n\nmsgid \"General\"\nmsgstr \"عام\"\n\nmsgid \"Startup\"\nmsgstr \"بَدْء التشغيل\"\n\nmsgid \"Language\"\nmsgstr \"اللغة\"\n\nmsgid \"Interface\"\nmsgstr \"الواجهة\"\n\nmsgid \"Themes\"\nmsgstr \"السمات\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"الجدول الزمني\"\n\nmsgid \"Selection\"\nmsgstr \"تحديد\"\n\nmsgid \"Shortcuts\"\nmsgstr \"اختصارات\"\n\nmsgid \"Backup\"\nmsgstr \"نسخ إحتياطي\"\n\nmsgid \"Performance\"\nmsgstr \"الأداء\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"معرف الأنظمة\"\n\nmsgid \"Extensions\"\nmsgstr \"الإضافات\"\n\nmsgid \"Cursors\"\nmsgstr \"مؤشرات الفأرة\"\n\nmsgid \"Indicators\"\nmsgstr \"المؤشرات\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"يجب إعادة تشغيل Pixelorama لتفعيل التغييرات.\"\n\nmsgid \"On\"\nmsgstr \"مفعل\"\n\nmsgid \"Restore default value\"\nmsgstr \"إستعادة القيمة الإفتراضية\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"التكبير السلس\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"يضيف انتقالًا أكثر سلاسة عند التكبير أو التصغير\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"تكبير بعدد صحيح\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"تقييد القيمة لتكون مضاعفا صحيحا بنسبة 100%\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"حساسية ضغط الجهاز اللوحي:\"\n\nmsgid \"None\"\nmsgstr \"لا شيء\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"تأثير الشفافية للفرشاة\"\n\nmsgid \"Color:\"\nmsgstr \"اللون:\"\n\nmsgid \"Guide color:\"\nmsgstr \"دليل الألوان:\"\n\nmsgid \"System Language\"\nmsgstr \"لغة النظام\"\n\nmsgid \"Display scale:\"\nmsgstr \"مقياس العرض:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"الخط:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"حجم الخط:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"تعتيم الواجهة عند ظهور النافذة المنبثقة\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"إظهار مسمّيات الإشعارات\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"استخدام نوافذ نظام التشغيل الأصلية\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"عند تفعيل هذا الإعداد، يتم استخدام نوافذ اختيار الملفات الأصلية لنظام التشغيل بدلاً من النوافذ المخصصة في Pixelorama.\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"وضع النافذة الفردية\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"عند تفعيل هذا الإعداد، ستُضمَّ النوافذ الفرعية لـ Pixelorama\\n\"\n\"داخل النافذة الرئيسية، وإلا فسيكون لكل حوار نافذته المنفصلة.\"\n\nmsgid \"Dark\"\nmsgstr \"غامق\"\n\nmsgid \"Gray\"\nmsgstr \"رمادي\"\n\nmsgid \"Blue\"\nmsgstr \"أزرق\"\n\nmsgid \"Caramel\"\nmsgstr \"كراميل\"\n\nmsgid \"Light\"\nmsgstr \"فاتح\"\n\nmsgid \"Purple\"\nmsgstr \"بنفسجي\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"وردي\"\n\nmsgid \"Theme\"\nmsgstr \"المظهر\"\n\nmsgid \"Buttons\"\nmsgstr \"الأزرار\"\n\nmsgid \"Icon color from:\"\nmsgstr \"لون الأيقونة من:\"\n\nmsgid \"Icon color:\"\nmsgstr \"لون الأيقونة:\"\n\nmsgid \"Background\"\nmsgstr \"الخلفية\"\n\nmsgid \"Background color from:\"\nmsgstr \"لون الخلفية من:\"\n\nmsgid \"Background color:\"\nmsgstr \"لون الخلفية\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"مشاركة الخيارات بين الأداة اليسرى والأداة اليمنى\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"إذا تم تفعيل هذا الخِيار، فسيتم مزامنة الخيارات بين الأداة اليسرى والأداة اليمنى.\\n\"\n\"على سبيل المثال، سيشتركان في نفس حجم الفرشاة، وتغيير الحجم في أداة واحدة سيؤدي فورًا إلى تغييره في الأخرى.\"\n\nmsgid \"Left tool color:\"\nmsgstr \"لون الأداة اليسري:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"لون الأداة اليمنى:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"حجم زر الأداة:\"\n\nmsgid \"Small\"\nmsgstr \"صغير\"\n\nmsgid \"Big\"\nmsgstr \"كبير\"\n\nmsgid \"Only affect selection\"\nmsgstr \"التأثير على المحدد فقط\"\n\nmsgid \"Selected cels\"\nmsgstr \"القطع المحددة\"\n\nmsgid \"Current cel\"\nmsgstr \"القطعة الحالية\"\n\nmsgid \"Current frame\"\nmsgstr \"الإطار الحالي\"\n\nmsgid \"All frames\"\nmsgstr \"كل الإطارات\"\n\nmsgid \"All projects\"\nmsgstr \"كل المشاريع\"\n\nmsgid \"Invert Colors\"\nmsgstr \"عكس الألوان\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"تعديل القناة الحمراء\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"تعديل القناة الخضراء\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"تعديل القناة الزرقاء\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"تعديل قناة الشفافية\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"تقليل التشبع\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"تحديد خارجي\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"ظل خلفي\"\n\nmsgid \"Offset X:\"\nmsgstr \"إزاحة X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"إزاحة Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"لون الظل:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"تضليل غاوسي\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"نوع التمويه:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"كَمَيَّة التضليل:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"نطاق التضليل:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"إتجاه التضليل:\"\n\nmsgid \"Gradient\"\nmsgstr \"تدرج اللون\"\n\nmsgid \"Gradient Map\"\nmsgstr \"خريطة التدرج اللون\"\n\nmsgid \"Interpolation\"\nmsgstr \"الاستكمال\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"عكسي\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"توزيع النِّقَاط بالتساوي\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"تقسيم إلى أجزاء متساوية\"\n\nmsgid \"Parts:\"\nmsgstr \"الأجزاء:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"إضافة نقطة في النهاية\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"حفظ إلى إعدادات مسبقة\"\n\nmsgid \"Shape:\"\nmsgstr \"الشكل:\"\n\nmsgid \"Linear\"\nmsgstr \"خطي\"\n\nmsgid \"Radial\"\nmsgstr \"شعاعي\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"التكرار:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"تكرار\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"انعكاس\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"اقتطاع\"\n\nmsgid \"Transition size:\"\nmsgstr \"حجم الانتقال:\"\n\nmsgid \"Center:\"\nmsgstr \"المركز:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"نمط التدرج:\"\n\nmsgid \"Type:\"\nmsgstr \"النوع:\"\n\nmsgid \"Angle:\"\nmsgstr \"الزاوية:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"ضبط اللون / التشبع / القيمة\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"ضبط HSV\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"تدرج اللون:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"التشبع:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"القيمة:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"ضبط السطوع/التباين\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"السطوع:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"التباين:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"قيمة الأحمر:\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"قيمة الأخضر:\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"قيمة الأزرق:\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"لون الصبغة:\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"عامل تأثير الصبغة:\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"منحنيات اللون\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"قناة:\"\n\nmsgid \"Red\"\nmsgstr \"أحمر\"\n\nmsgid \"Green\"\nmsgstr \"أخضر\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"القيمة\"\n\nmsgid \"Presets\"\nmsgstr \"الإعدادات المسبقة\"\n\nmsgid \"Apply\"\nmsgstr \"تطبيق\"\n\nmsgid \"Diagonal\"\nmsgstr \"مائل\"\n\nmsgid \"Place inside image\"\nmsgstr \"وضع داخل الصورة\"\n\nmsgid \"Thickness:\"\nmsgstr \"السماكة:\"\n\nmsgid \"Colors:\"\nmsgstr \"الألوان:\"\n\nmsgid \"Steps:\"\nmsgstr \"الخطوات:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"تحديد لوحة الألوان\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"التضليل إلى بكسلات\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"تقليل الألوان\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"مستويات التقليل اللوني:\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"كثافة التظليل منقط:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"عرض شاشة البداية\"\n\nmsgid \"Online Docs\"\nmsgstr \"التعليمات عبر الانترنت\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"متعقب المشاكل\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"استعادة نسخة احتياطية\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"الجلسات السابقة\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"انقر مزدوجا لتحميل جَلسة كاملة أو مشروع معين.\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"الجلسات\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"المشاريع\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"(الجَلسة الحالية)\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"فتح مجلد بيانات المحرر\"\n\nmsgid \"Changelog\"\nmsgstr \"سِجل التغييرات\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"حول Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"دعم تطوير بيكسلوراما\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"بيكسلوراما - بيكسل أحلامك!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"تم تطويره بواسطة Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"حقوق الطبع والنشر ©2019 مملوكة الي أوراما انتراكتيف والمساهمين\"\n\nmsgid \"Website\"\nmsgstr \"الموقع\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"مصدر أكواد المشروع\"\n\nmsgid \"Donate\"\nmsgstr \"تبرّع\"\n\nmsgid \"Developers\"\nmsgstr \"المبرمجون\"\n\nmsgid \"Contributors\"\nmsgstr \"المُساهمون\"\n\nmsgid \"Donors\"\nmsgstr \"المتبرعون\"\n\nmsgid \"Translators\"\nmsgstr \"المترجمون\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"التراخيص\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"الترخيص\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"تراخيص Godot\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"تراخيص الطرف الثالث\"\n\nmsgid \"English\"\nmsgstr \"الإنجليزية\"\n\nmsgid \"Greek\"\nmsgstr \"اليونانية\"\n\nmsgid \"French\"\nmsgstr \"الفرنسية\"\n\nmsgid \"German\"\nmsgstr \"الألمانية\"\n\nmsgid \"Polish\"\nmsgstr \"اليولندية\"\n\nmsgid \"Portuguese\"\nmsgstr \"البرتغالية\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"البرتغالية البرازلية\"\n\nmsgid \"Russian\"\nmsgstr \"الروسية\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"الصينية المبسّطة\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"الصينية التقليدية\"\n\nmsgid \"Italian\"\nmsgstr \"الإيطالية\"\n\nmsgid \"Latvian\"\nmsgstr \"اللاتفية\"\n\nmsgid \"Spanish\"\nmsgstr \"الإسبانية\"\n\nmsgid \"Catalan\"\nmsgstr \"الكاتالونية\"\n\nmsgid \"Esperanto\"\nmsgstr \"إسبرانتو\"\n\nmsgid \"Indonesian\"\nmsgstr \"الإندونيسية\"\n\nmsgid \"Czech\"\nmsgstr \"التشيكية\"\n\nmsgid \"Arabic\"\nmsgstr \"العربيّة\"\n\nmsgid \"Turkish\"\nmsgstr \"التركية\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"النرويجية\"\n\nmsgid \"Korean\"\nmsgstr \"الكورية\"\n\nmsgid \"Hungarian\"\nmsgstr \"الهنغارية\"\n\nmsgid \"Romanian\"\nmsgstr \"الرومانية\"\n\nmsgid \"Japanese\"\nmsgstr \"اليابانية\"\n\nmsgid \"Ukrainian\"\nmsgstr \"الأوكرانية\"\n\nmsgid \"Danish\"\nmsgstr \"الدنماركية\"\n\nmsgid \"Swedish\"\nmsgstr \"السويدية\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"الصربية (السيريلية)\"\n\nmsgid \"Dutch\"\nmsgstr \"الهولندية\"\n\nmsgid \"Belarusian\"\nmsgstr \"البيلاروسية\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"المطور الرائد\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"مصمم UI\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"الناشرون\"\n\nmsgid \"Art by: %s\"\nmsgstr \"الفن بواسطة: %s\"\n\nmsgid \"untitled\"\nmsgstr \"غير معنون\"\n\nmsgid \"imported\"\nmsgstr \"مستورد\"\n\nmsgid \"copy\"\nmsgstr \"نسخ\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"هل أنت متأكد من أنك تريد الخروج من Pixelorama؟\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"صورة غير محفوظة\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"لديك تغييرات غير محفوظة. إذا قمت بالمتابعة، سيتم فقدان التقدم الذي حققته.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"حفظ قبل الخروج؟\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"لم تقم بحفظ التغييرات. كيف ترغب في المتابعة؟\"\n\nmsgid \"Save & Exit\"\nmsgstr \"حفظ وخروج\"\n\nmsgid \"Exit without saving\"\nmsgstr \"الخروج دون حفظ\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"التحديد المستطيلى\\n\\n\"\n\"%s لزر الفأرة الأيسر\\n\"\n\"%s لزر الفأرة الأيمن\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"التحديد الدائرى\\n\\n\"\n\"%s لزر الفأرة الأيسر\\n\"\n\"%s لزر الفأرة الأيمن\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"التحديد المتعدد الأضلاع\\n\\n\"\n\"%s لزر الفأرة الأيسر\\n\"\n\"%s لزر الفأرة الأيمن\\n\\n\"\n\"انقر نقراً مزدوجاً لربط النقطة الأخيرة بنقطة البداية\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"التحديد حسب اللون\\n\\n\"\n\"%s لزر الفأرة الأيسر\\n\"\n\"%s لزر الفأرة الأيمن\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"عصا سحرية\\n\\n\"\n\"%s لزر الفأرة الأيسر\\n\"\n\"%s لزر الفأرة الأيمن\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"التحديد الحر\\n\\n\"\n\"%s لزر الفأرة الأيسر\\n\"\n\"%s لزر الفأرة الأيمن\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"التحديد بالرسم\\n\\n\"\n\"%s لزر الفأرة الأيسر\\n\"\n\"%s لزر الفأرة الأيمن\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"التحريك\\n\\n\"\n\"%s لزر الفأرة الأيسر\\n\"\n\"%s لزر الفأرة الأيمن\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"تكبير\\n\\n\"\n\"%s لزر الماوس الأيسر\\n\"\n\"%s لزر الماوس الأيمن\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"التمرير\\n\\n\"\n\"%s لزر الفأرة الأيسر\\n\"\n\"%s لزر الفأرة الأيمن\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"اختيار اللون\\n\\n\"\n\"%s لزر الفأرة الأيسر\\n\"\n\"%s لزر الفأرة الأيمن\\n\\n\"\n\"اختر لونًا من بكسل في الصورة\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"اقتطاع\\n\\n\"\n\"%s لزر الفأرة الأيسر\\n\"\n\"%s لزر الفأرة الأيمن\\n\\n\"\n\"تغيير حجم اللوحة\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"القلم\\n\\n\"\n\"%s لزر الماوس الأيسر\\n\"\n\"%s لزر الماوس الأيمن\\n\\n\"\n\"اضغط %s لإنشاء سطر\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"الممحاة\\n\\n\"\n\"%s لزر الماوس الأيسر\\n\"\n\"%s لزر الماوس الأيمن\\n\\n\"\n\"اضغط على %s لإنشاء سطر\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"دلو\\n\\n\"\n\"%s لزر الماوس الأيسر\\n\"\n\"%s لزر الماوس الأيمن\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"أداة التظليل\\n\\n\"\n\"%s لزر الفأرة الأيسر\\n\"\n\"%s لزر الفأرة الأيمن\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"أداة الخط\\n\\n\"\n\"%s لزر الفأرة اليسرى\\n\"\n\"%s لزر الفأرة الأيمن\\n\\n\"\n\"اضغط %s لضبط زاوية الخط\\n\"\n\"اضغط %s لمركزة الشكل على نقطة النقر الأصلية\\n\"\n\"اضغط %s لإزاحة نقطة أصل الشكل\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"أداة المنحني\\n\\n\"\n\"%s لزر الفأرة الأيسر\\n\"\n\"%s لزر الفأرة الأيمن\\n\\n\"\n\"يرسم المنحنيات\\n\"\n\"اضغط %s/%s لإضافة نقاط جديدة\\n\"\n\"انقر نقرا مزدوجا لإنهاء رسم المنحني\\n\"\n\"اضغط واسحب للتحكم في المنحني\\n\"\n\"اضغط %s لإزالة آخر نقطة مضافة\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"مستطيل\"\n\nmsgid \"Ellipse\"\nmsgstr \"بيضاوي\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"اختر لون الأداة اليسرى\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"اختر لون الأداة اليمنى\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"تبديل بين اللون الأيسر و الأيمن.\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"إعادة تعيين الألوان إلى حالتها الافتراضية (أسود لليسار، أبيض لليمين)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"إعدادات الألوان\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"الأداة اليسرى\"\n\nmsgid \"Right tool\"\nmsgstr \"الأداة اليمنى\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"مؤشر البكسل الأيسر\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"إظهار مؤشر الماوس الأيسر بكسل أو الفرشاة على الكانفا عند الرسم\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"مؤشر البكسل الأيمن\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"إظهار أيقونة الأداة اليسرى\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"إظهار أيقونة الأداة اليمنى\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"استخدام مؤشرات فأرة نظام التشغيل\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"خطوط الإرشاد\"\n\nmsgid \"Guides color:\"\nmsgstr \"لون خطوط الإرشاد:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"الاجتذاب\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"الشبكة\"\n\nmsgid \"Grid type:\"\nmsgstr \"نوع الشبكة:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"مستطيلة\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"الكل\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"الشفافية\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"لون الحدود 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"لون الحدود 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"إيقاف مؤقت للتطبيق عند تغيير النوافذ\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"تمكين شفافية النافذة\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"مشغل الجهاز اللوحي:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"إضافة ملحق\"\n\nmsgid \"Enable\"\nmsgstr \"تفعيل\"\n\nmsgid \"Disable\"\nmsgstr \"تعطيل\"\n\nmsgid \"Uninstall\"\nmsgstr \"إلغاء التثبيت\"\n\nmsgid \"Open Folder\"\nmsgstr \"فتح المجلد\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"الضغط\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"الشفافية\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"الحجم\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"حدود القيمة\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"البداية\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"النهاية\"\n\nmsgid \"Brush:\"\nmsgstr \"الفرشاة:\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"الفرشاة\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"فرشاة الدائرة\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"فرشاة مخصصة\"\n\nmsgid \"Brush size:\"\nmsgstr \"حجم الفرشاة:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"إستبدال اللون\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"قفل الشفافية\"\n\nmsgid \"Fill inside\"\nmsgstr \"ملء داخلي\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"التباعد\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"ملء الشكل\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"ملء المساحة:\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"الألوان المماثلة\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"جميع المحدد\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"املأ بـ:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"اللون المحدد\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"تفتيح\"\n\nmsgid \"Darken\"\nmsgstr \"تعتيم\"\n\nmsgid \"Amount:\"\nmsgstr \"الكمية:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"اللون الأيسر\"\n\nmsgid \"Right Color\"\nmsgstr \"اللون الأيمن\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"النمط:\"\n\nmsgid \"Zoom in\"\nmsgstr \"تكبير\"\n\nmsgid \"Zoom out\"\nmsgstr \"تصغير\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"الخيارات\"\n\nmsgid \"Options:\"\nmsgstr \"الخيارات:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"أفقي\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"رأسي\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"الإطار الحالي:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"وضع الرسوم المتحركة:\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"الإطارات السابقة\"\n\nmsgid \"Future Frames\"\nmsgstr \"الإطارات المقبلة\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"الاسم:\"\n\nmsgid \"From:\"\nmsgstr \"من:\"\n\nmsgid \"To:\"\nmsgstr \" إلى:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"إضافة إطار جديد\"\n\nmsgid \"Remove Frame\"\nmsgstr \"إزالة الإطار\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"تحريك لليسار\"\n\nmsgid \"Move Right\"\nmsgstr \"تحريك لليمين\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"الخصائص\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"الطبقة\"\n\nmsgid \"Group\"\nmsgstr \"المجموعة\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"الطبقات\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"إنشاء طبقة جديدة\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"إستنساخ الطبقة الحالية\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"وضع المزج:\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"عادي\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"مضاعفة\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"إحراق اللون\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"الشاشة\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"مراوغة اللون\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"التباين\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"الفارق\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"إقصاء\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"الطرح\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"القسمة\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"العنصر\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"اللون\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"الشفافية:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"تم حفظ الملف\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"تم تصدير الملف/الملفات\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"اسم اللون:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"خطأ\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"الحصول على الألوان من\"\n\nmsgid \"Patrons:\"\nmsgstr \"الرعاة:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"كن راعياً بلاتيني\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"كن راعياً ذهبياً\"\n\nmsgid \"Become a Patron\"\nmsgstr \"كن راعيًا لنا\"\n\nmsgid \"Don't show again\"\nmsgstr \"عدم العرض مرة أخرى\"\n\nmsgid \"Image Options\"\nmsgstr \"خيارات الصورة\"\n\nmsgid \"Default width:\"\nmsgstr \"العرض الافتراضي:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"العرض الافتراضي للصور الجديدة\"\n\nmsgid \"Default height:\"\nmsgstr \"الارتفاع الافتراضي:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"الارتفاع الافتراضي للصور الجديدة\"\n\nmsgid \"Default fill color:\"\nmsgstr \"لون الملء الافتراضي:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"لون الخلفية الافتراضي للصور الجديدة\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"الافتراضي\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"تحريك\"\n\nmsgid \"Zoom\"\nmsgstr \"تكبير\"\n\nmsgid \"Pan\"\nmsgstr \"تحريك جانبي\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"قلم\"\n\nmsgid \"Eraser\"\nmsgstr \"ممحاة\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"أداة التظليل\"\n\nmsgid \"Line Tool\"\nmsgstr \"أداة الخط\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"أداة المستطيل\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"أداة الدوائر\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"تبديل الألوان\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"تعيين الاختصار\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"اضغط على مفتاح أو مجموعة مفاتيح لتعيين الاختصار\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"الأداة اليسرى:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"الأداة اليمنى:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"لا يمكن العثور على ملف المشروع.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"فتح آخر مشروع\"\n\nmsgid \"Open last project...\"\nmsgstr \"فتح آخر مشروع...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"فتح آخر مشروع عند بدء التشغيل\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"تأكيد الخروج\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"تفعيل الحفظ التلقائي\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"الفاصل للحفظ التلقائي:\"\n\nmsgid \"minute(s)\"\nmsgstr \"دقيقة(دقائق)\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"تقسيم الطبقات\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"إغلاق\"\n\nmsgid \"Discard All\"\nmsgstr \"تجاهل الكل\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"و\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"المدة\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"تعليق:\"\n\nmsgid \"Empty\"\nmsgstr \"فارغ\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"إضافة لون جديد\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"الموقع:\"\n\nmsgid \"Tools\"\nmsgstr \"الأدوات\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"خيارات الأداة اليسرى\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"خيارات الأداة اليمنى\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"قص\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"أعلى:\"\n\nmsgid \"Bottom:\"\nmsgstr \"أسفل:\"\n\nmsgid \"Left:\"\nmsgstr \"يسار:\"\n\nmsgid \"Right:\"\nmsgstr \"يمين:\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"تحرير الشكل ثلاثي الأبعاد\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"صندوق\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"كرة\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"كبسولة\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"إسطوانة\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"مسطح\"\n\nmsgid \"Text\"\nmsgstr \"نص\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"الكائن المحدد:\"\n\nmsgid \"Add new object\"\nmsgstr \"إضافة كائن جديد\"\n\nmsgid \"Remove object\"\nmsgstr \"حذف الكائن\"\n\nmsgid \"Camera\"\nmsgstr \"الكاميرا\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"البيئة\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"مرئي:\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"النص:\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"يسار\"\n\nmsgid \"Right\"\nmsgstr \"يمين\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"الطاقة:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"الظل:\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"المدى:\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"تحريك\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"القيمة الأولية:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"مفعل\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"تأثيرات الطبقة\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"إضافة تأثير\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"تلقائي\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/be_BY.po",
    "content": "msgid \"\"\nmsgstr \"\"\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: be\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Belarusian\\n\"\n\"Language: be_BY\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"Скасаваць\"\n\nmsgid \"Open\"\nmsgstr \"Адкрыць\"\n\nmsgid \"Save\"\nmsgstr \"Захаваць\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Пацвердзіце...\"\n\nmsgid \"File Name:\"\nmsgstr \"Імя файла:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Імя праекта:\"\n\nmsgid \"Image Size\"\nmsgstr \"Памер выявы\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Памер палатна\"\n\nmsgid \"Frame Size\"\nmsgstr \"Памер кадра\"\n\nmsgid \"Size:\"\nmsgstr \"Памер:\"\n\nmsgid \"Width:\"\nmsgstr \"Шырыня:\"\n\nmsgid \"Height:\"\nmsgstr \"Высата:\"\n\nmsgid \"Center\"\nmsgstr \"Па цэнтру\"\n\nmsgid \"File\"\nmsgstr \"Файл\"\n\nmsgid \"Edit\"\nmsgstr \"Рэдагаваць\"\n\nmsgid \"Select\"\nmsgstr \"Вылучэнне\"\n\nmsgid \"View\"\nmsgstr \"Прагляд\"\n\nmsgid \"Window\"\nmsgstr \"Акно\"\n\nmsgid \"Image\"\nmsgstr \"Выява\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"Эфекты\"\n\nmsgid \"Help\"\nmsgstr \"Даведка\"\n\nmsgid \"New\"\nmsgstr \"Новы\"\n\nmsgid \"New...\"\nmsgstr \"Новы...\"\n\nmsgid \"Open...\"\nmsgstr \"Адкрыць...\"\n\nmsgid \"Save...\"\nmsgstr \"Захаваць...\"\n\nmsgid \"Save as...\"\nmsgstr \"Захаваць як...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"Імпарт\"\n\nmsgid \"Export\"\nmsgstr \"Экспарт\"\n\nmsgid \"Overwrite\"\nmsgstr \"Перазапіс\"\n\nmsgid \"Export...\"\nmsgstr \"Экспарт...\"\n\nmsgid \"Export as...\"\nmsgstr \"Экспарт як...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Экспарт PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Экспарт PNG як...\"\n\nmsgid \"Quit\"\nmsgstr \"Выхад\"\n\nmsgid \"Undo\"\nmsgstr \"Адмяніць\"\n\nmsgid \"Redo\"\nmsgstr \"Вярнуць\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"Капіяваць\"\n\nmsgid \"Cut\"\nmsgstr \"Выразаць\"\n\nmsgid \"Paste\"\nmsgstr \"Уставіць\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Уставіць на месцы\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"Выдаліць\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"Новы пэндзаль\"\n\nmsgid \"Scale Image\"\nmsgstr \"Масштаб выявы\"\n\nmsgid \"Pixels\"\nmsgstr \"Пікселі\"\n\nmsgid \"Percentage\"\nmsgstr \"Працэнт\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Змяніць памер палатна\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Паварот выявы\"\n\nmsgid \"Pivot x:\"\nmsgstr \"X цэнтра:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"Y цэнтра:\"\n\nmsgid \"Smear options:\"\nmsgstr \"Налады мазка:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Пачатковы вугал:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"Скінуць\"\n\nmsgid \"Invert\"\nmsgstr \"Інвертаваць\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Адлюстраванне\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Адлюстраваць па гарызанталі\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Адлюстраваць па вертыкалі\"\n\nmsgid \"Preferences\"\nmsgstr \"Налады\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Бясшоўны рэжым\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"Зрух бясшоўнага рэжыму\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Скід\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"З бягучага кадра\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Скінуць маску\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Непразорасць акна\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"Непразорасць акна не ўлічваецца ў паўнаэкранным рэжыме.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Макет панэляў\"\n\nmsgid \"Panels\"\nmsgstr \"Панэлі\"\n\nmsgid \"Layouts\"\nmsgstr \"Макеты\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Рухомыя панэлі\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Кіраванне макетамі\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Папярэдні перагляд\"\n\nmsgid \"Add\"\nmsgstr \"Дадаць\"\n\nmsgid \"Add Layout\"\nmsgstr \"Дадаць макет\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Вы сапраўды хочаце выдаліць гэты макет?\"\n\nmsgid \"Widescreen\"\nmsgstr \"Шырокаэкранны\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Высокаэкранны\"\n\nmsgid \"Mirror View\"\nmsgstr \"Люстраны від\"\n\nmsgid \"Show Grid\"\nmsgstr \"Паказваць сетку\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Паказваць піксельную сетку\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Паказваць лінейкі\"\n\nmsgid \"Show Guides\"\nmsgstr \"Паказваць кіроўныя\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"Паказваць кіроўныя мышы\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"Прыцяжвацца да\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"Прыцяжэнне да кіроўных\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"Прыцяжэнне да кіроўных перспектывы\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Дзэн-рэжым\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Паўнаэкранны рэжым\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Заліць колерам:\"\n\nmsgid \"Open a File\"\nmsgstr \"Адкрыць файл\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Адкрыць файл(ы)\"\n\nmsgid \"Import Options\"\nmsgstr \"Параметры імпарту\"\n\nmsgid \"Import as:\"\nmsgstr \"Імпарт як:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Прымяніць да ўсіх\"\n\nmsgid \"Recent projects\"\nmsgstr \"Нядаўнія праекты\"\n\nmsgid \"New project\"\nmsgstr \"Новы праект\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"Новы кадр\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"Замяніць кель\"\n\nmsgid \"New layer\"\nmsgstr \"Новы слой\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"Новая палітра\"\n\nmsgid \"New brush\"\nmsgstr \"Новы пэндзаль\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Кадры па гарызанталі:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Кадры па вертыкалі:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"Пачатковы кадр:\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"На кадры:\"\n\nmsgid \"At layer:\"\nmsgstr \"На слоі:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Тып пэндзля:\"\n\nmsgid \"File brush\"\nmsgstr \"Пэндзаль файла\"\n\nmsgid \"Project brush\"\nmsgstr \"Пэндзаль праекта\"\n\nmsgid \"Random brush\"\nmsgstr \"Выпадковы пэндзаль\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Файл існуе. Перазапісаць?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"Наступныя файлы ўжо існуюць. Перапісаць іх?\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"Шлях да каталога няправільны!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"Імя файла няправільнае!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"Шлях да каталога і імя файла няправільныя!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"Кадр\"\n\nmsgid \"Frames:\"\nmsgstr \"Кадры:\"\n\nmsgid \"All Frames\"\nmsgstr \"Усе кадры\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"Анімацыя\"\n\nmsgid \"Preview:\"\nmsgstr \"Папярэдні перагляд:\"\n\nmsgid \"Frame:\"\nmsgstr \"Кадр:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Арыентацыя:\"\n\nmsgid \"Browse\"\nmsgstr \"Агляд\"\n\nmsgid \"Resize:\"\nmsgstr \"Змена памеру:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Скасаваць экспарт\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Выбраць бягучую папку\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Адкрыць каталог\"\n\nmsgid \"Background:\"\nmsgstr \"Фон:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"Выбраныя кадры\"\n\nmsgid \"Layers:\"\nmsgstr \"Шары:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Бачныя шары\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"Выбраныя шары\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"Шар пікселяў:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"Групавы шар:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"3D-слой:\"\n\nmsgid \"Direction:\"\nmsgstr \"Напрамак:\"\n\nmsgid \"Forward\"\nmsgstr \"Уперад\"\n\nmsgid \"Backwards\"\nmsgstr \"Назад\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Папераменны\"\n\nmsgid \"Columns\"\nmsgstr \"Слупкі\"\n\nmsgid \"Columns:\"\nmsgstr \"Слупкі:\"\n\nmsgid \"Rows\"\nmsgstr \"Радкі\"\n\nmsgid \"Rows:\"\nmsgstr \"Радкі:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"Памеры экспарту:\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"Шлях:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Дырэкторыі і файлы:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Стварыць папку\"\n\nmsgid \"File:\"\nmsgstr \"Файл:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Інтэрпаляцыя:\"\n\nmsgid \"Nearest\"\nmsgstr \"Найбліжэйшая\"\n\nmsgid \"Bilinear\"\nmsgstr \"Білінейная\"\n\nmsgid \"Cubic\"\nmsgstr \"Кубічныя\"\n\nmsgid \"Trilinear\"\nmsgstr \"Трылінейная\"\n\nmsgid \"Constant\"\nmsgstr \"Канстанта\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"Агульнае\"\n\nmsgid \"Startup\"\nmsgstr \"Запуск\"\n\nmsgid \"Language\"\nmsgstr \"Мова\"\n\nmsgid \"Interface\"\nmsgstr \"Інтэрфейс\"\n\nmsgid \"Themes\"\nmsgstr \"Тэмы\"\n\nmsgid \"Canvas\"\nmsgstr \"Палатно\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"Вылучэнне\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Спалучэнні клавіш\"\n\nmsgid \"Backup\"\nmsgstr \"Рэзервовае капіраванне\"\n\nmsgid \"Performance\"\nmsgstr \"Хуткадзеянне\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"Драйверы\"\n\nmsgid \"Extensions\"\nmsgstr \"Пашырэнні\"\n\nmsgid \"Cursors\"\nmsgstr \"Курсоры\"\n\nmsgid \"Indicators\"\nmsgstr \"Індыкатары\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"Для таго, каб дастасаваць змены, патрэбна перазагрузіць Pixelorama.\"\n\nmsgid \"On\"\nmsgstr \"Укл.\"\n\nmsgid \"Restore default value\"\nmsgstr \"Павярнуць стандартнае\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Плаўны маштаб\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Дадае плаўны пераход падчас змены маштабу\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"Адсутнічае\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"Колер:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Колер кіроўнай:\"\n\nmsgid \"System Language\"\nmsgstr \"Мова сістэмы\"\n\nmsgid \"Display scale:\"\nmsgstr \"Экранны маштаб:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"Цёмная\"\n\nmsgid \"Gray\"\nmsgstr \"Серая\"\n\nmsgid \"Blue\"\nmsgstr \"Сіняя\"\n\nmsgid \"Caramel\"\nmsgstr \"Карамельная\"\n\nmsgid \"Light\"\nmsgstr \"Светлая\"\n\nmsgid \"Purple\"\nmsgstr \"Фіялетавая\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"Тэма\"\n\nmsgid \"Buttons\"\nmsgstr \"Кнопкі\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Колер значка з:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Колер значка:\"\n\nmsgid \"Background\"\nmsgstr \"Фон\"\n\nmsgid \"Background color from:\"\nmsgstr \"Колер фона з:\"\n\nmsgid \"Background color:\"\nmsgstr \"Колер фона:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"Колер левага інструмента:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"Колер правага інструмента:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Памер кнопак інструментаў:\"\n\nmsgid \"Small\"\nmsgstr \"Маленькія\"\n\nmsgid \"Big\"\nmsgstr \"Вялікія\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Закрануць толькі вылучэнне\"\n\nmsgid \"Selected cels\"\nmsgstr \"Выбраныя келі\"\n\nmsgid \"Current cel\"\nmsgstr \"Бягучы кель\"\n\nmsgid \"Current frame\"\nmsgstr \"Бягучы кадр\"\n\nmsgid \"All frames\"\nmsgstr \"Усе кадры\"\n\nmsgid \"All projects\"\nmsgstr \"Усе праекты\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Інвертаваць колеры\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Мяняць чырвоны канал\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Мяняць зялёны канал\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Мяняць сіні канал\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Мяняць альфа-канал\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Цень\"\n\nmsgid \"Offset X:\"\nmsgstr \"Зрух па X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"Зрух па Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"Колер цені:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"Градыент\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"Падзяліць на роўныя часткі\"\n\nmsgid \"Parts:\"\nmsgstr \"Часткі:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"Дадаць кропку ў канцы\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"Калі выбраны гэты пункт, у канец градыента дадаецца апошняя кропка. Адключыце гэты пункт, калі вы хочаце, каб у градыента была канстантная інтэрпаляцыя і апошні колер браўся да ўвагі.\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"Форма:\"\n\nmsgid \"Linear\"\nmsgstr \"Лінейны\"\n\nmsgid \"Radial\"\nmsgstr \"Радыяльны\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"Паўтор:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"Паўтараць\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"Адлюстраванне\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"Абразанне\"\n\nmsgid \"Transition size:\"\nmsgstr \"Памер пераходу:\"\n\nmsgid \"Center:\"\nmsgstr \"Цэнтр:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"Тып:\"\n\nmsgid \"Angle:\"\nmsgstr \"Кут:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"Прымяніць\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"Колеры:\"\n\nmsgid \"Steps:\"\nmsgstr \"Крокі:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"Пастэрызацыя\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"Узроўні пастэрызацыі:\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Паказваць загрузачны экран\"\n\nmsgid \"Online Docs\"\nmsgstr \"Анлайн-дакументацыя\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"Спіс змен\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Пра праграму Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama — Pixelate your dreams!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Распрацавалі Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019—наш час, Orama Interactive і іншыя аўтары\"\n\nmsgid \"Website\"\nmsgstr \"Сайт\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"Падтрымаць грашыма\"\n\nmsgid \"Developers\"\nmsgstr \"Распрацоўшчыкі\"\n\nmsgid \"Contributors\"\nmsgstr \"Удзельнікі\"\n\nmsgid \"Donors\"\nmsgstr \"Спонсары\"\n\nmsgid \"Translators\"\nmsgstr \"Перакладчыкі\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Ліцэнзіі\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"Англійская\"\n\nmsgid \"Greek\"\nmsgstr \"Грэцкая\"\n\nmsgid \"French\"\nmsgstr \"Французская\"\n\nmsgid \"German\"\nmsgstr \"Нямецкая\"\n\nmsgid \"Polish\"\nmsgstr \"Польская\"\n\nmsgid \"Portuguese\"\nmsgstr \"Партугальская\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Бразільская партугальская\"\n\nmsgid \"Russian\"\nmsgstr \"Руская\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Кітайская спрошчанымі іерогліфамі\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Кітайская традыцыйнымі іерогліфамі\"\n\nmsgid \"Italian\"\nmsgstr \"Італьянская\"\n\nmsgid \"Latvian\"\nmsgstr \"Латышская\"\n\nmsgid \"Spanish\"\nmsgstr \"Іспанская\"\n\nmsgid \"Catalan\"\nmsgstr \"Каталонская\"\n\nmsgid \"Esperanto\"\nmsgstr \"Эсперанта\"\n\nmsgid \"Indonesian\"\nmsgstr \"Інданэзійская\"\n\nmsgid \"Czech\"\nmsgstr \"Чэшская\"\n\nmsgid \"Arabic\"\nmsgstr \"Арабская\"\n\nmsgid \"Turkish\"\nmsgstr \"Турэцкая\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Нарвежская, букмол\"\n\nmsgid \"Korean\"\nmsgstr \"Карэйская\"\n\nmsgid \"Hungarian\"\nmsgstr \"Венгерская\"\n\nmsgid \"Romanian\"\nmsgstr \"Румынская\"\n\nmsgid \"Japanese\"\nmsgstr \"Японская\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Украінская\"\n\nmsgid \"Danish\"\nmsgstr \"Дацкая\"\n\nmsgid \"Swedish\"\nmsgstr \"Шведская\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Сербская кірыліцай\"\n\nmsgid \"Dutch\"\nmsgstr \"Нідэрландская\"\n\nmsgid \"Belarusian\"\nmsgstr \"Беларуская\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"Дызайнер інтэрфейсу\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Мастак: %s\"\n\nmsgid \"untitled\"\nmsgstr \"без назвы\"\n\nmsgid \"imported\"\nmsgstr \"імпарт\"\n\nmsgid \"copy\"\nmsgstr \"копія\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Вы сапраўды хочаце выйсці з Pixelorama?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Незахаваная выява\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"У вас ёсць незахаваныя змены. Калі працягнуць, яны будуць загубленыя.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Захаваць перад выхадам?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Захаваць і выйсці\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Выйсці без захавання\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Прамакутнае вылучэнне\\n\\n\"\n\"%s для левай кнопкі мышы\\n\"\n\"%s для правай кнопкі мышы\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Эліптычнае вылучэнне\\n\\n\"\n\"%s для левай кнопкі мышы\\n\"\n\"%s для правай кнопкі мышы\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Многавугольнае вылучэнне\\n\\n\"\n\"%s для левай кнопкі мышы\\n\"\n\"%s для правай кнопкі мышы\\n\\n\"\n\"Двайное націсканне злучае апошнюю кропку з пачатковай\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Аловак\\n\\n\"\n\"%s для левай кнопкі мышы\\n\"\n\"%s для правай кнопкі мышы\\n\\n\"\n\"Утрымлівайце %s, каб намаляваць лінію\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"Кіроўныя\"\n\nmsgid \"Guides color:\"\nmsgstr \"Колер кіроўных:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Колер кіроўных лінеек на палатне\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"Прыцяжэнне\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"Адлегласць прыцяжэння:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"Сетка\"\n\nmsgid \"Grid type:\"\nmsgstr \"Тып сеткі:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"Усе\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"Маляваць паверх бясшоўнага рэжыму:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Паказваць на маштабе:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"Указвае мінімальны маштаб, на якім бачна піксельную сетку\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"Анімацыя меж вылучэння\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"Адкрыць папку\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"Перазапіс колеру\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"Інтэрвал\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"Пропуск X:\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"Пропуск Y:\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"Усё вылучэнне\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"Рэжым:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Павялічыць\"\n\nmsgid \"Zoom out\"\nmsgstr \"Зменшыць\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"Маштаб 100%\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"Замяніць вылучэнне\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"Дадаць да вылучэння\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"Адняць ад вылучэння\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"Перасячэнне вылучэнняў\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"Непразрыстасць бясшоўнага рэжыму:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Кадр: %s, Слой: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Рэдагаваць выбраную палітру\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"Перасунуць кіроўную\"\n\nmsgid \"File saved\"\nmsgstr \"Файл захаваны\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"Не атрымалася захаваць файл. Код памылкі %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Рэдагаваць палітру\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"Браць колеры толькі з вылучэння\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Прамакутнае вылучэнне\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"Эліптычнае вылучэнне\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"Многавугольнае вылучэнне\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"Маштаб\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"Пацвярджэнне выхаду\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Дазволіць аўтазахаванне\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Інтэрвал аўтазахавання:\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"Ствараць па папцы для кожнага цэтліка кадраў\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"Стварае шмат файлаў, але кожны з іх запісваецца ў папку згодна з яго цэтлікам кадра\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"Паўтор па абодвух восях\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"Паўтор па восі X\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Паўтор па восі Y\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"З бягучага вылучэння\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"Радыус:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Аўта\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/bg_BG.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: bg\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Bulgarian\\n\"\n\"Language: bg_BG\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/ca_ES.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ca\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Catalan\\n\"\n\"Language: ca_ES\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"D'acord\"\n\nmsgid \"Cancel\"\nmsgstr \"Cancel·lar\"\n\nmsgid \"Open\"\nmsgstr \"Obrir\"\n\nmsgid \"Save\"\nmsgstr \"Desar\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Si us plau, confirmeu...\"\n\nmsgid \"File Name:\"\nmsgstr \"Nom del fitxer:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Nom del Projecte:\"\n\nmsgid \"Image Size\"\nmsgstr \"Mida de l'imatge\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Mida del llenç\"\n\nmsgid \"Frame Size\"\nmsgstr \"Mida del marc\"\n\nmsgid \"Size:\"\nmsgstr \"Mida:\"\n\nmsgid \"Width:\"\nmsgstr \"Amplada:\"\n\nmsgid \"Height:\"\nmsgstr \"Alçada:\"\n\nmsgid \"Center\"\nmsgstr \"Centre\"\n\nmsgid \"File\"\nmsgstr \"Fitxer\"\n\nmsgid \"Edit\"\nmsgstr \"Editar\"\n\nmsgid \"Select\"\nmsgstr \"Selecciona\"\n\nmsgid \"View\"\nmsgstr \"Veure\"\n\nmsgid \"Window\"\nmsgstr \"Finestra\"\n\nmsgid \"Image\"\nmsgstr \"Imatge\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"Projecte\"\n\nmsgid \"Effects\"\nmsgstr \"Efectes\"\n\nmsgid \"Help\"\nmsgstr \"Ajuda\"\n\nmsgid \"New\"\nmsgstr \"Nou\"\n\nmsgid \"New...\"\nmsgstr \"Nou...\"\n\nmsgid \"Open...\"\nmsgstr \"Obrir...\"\n\nmsgid \"Save...\"\nmsgstr \"Desar...\"\n\nmsgid \"Save as...\"\nmsgstr \"Desa com a...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"Incloure imatges barrejades\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"Si activa, la imatge final barrejada serà guardada també en el PXO, per a cada fotograma.\\n\"\n\"Això fa la imatge més gran i és útil per importar a programari de tercers o exportar per terminal. \\n\"\n\"Llegir fitxers PXO a Pixelorama no necessita aquesta opció activada.\"\n\nmsgid \"Import\"\nmsgstr \"Importar\"\n\nmsgid \"Export\"\nmsgstr \"Exportar\"\n\nmsgid \"Overwrite\"\nmsgstr \"Sobreescriure\"\n\nmsgid \"Export...\"\nmsgstr \"Exportar...\"\n\nmsgid \"Export as...\"\nmsgstr \"Exportar com a...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Exportar PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Exportar PNG com a...\"\n\nmsgid \"Quit\"\nmsgstr \"Sortir\"\n\nmsgid \"Undo\"\nmsgstr \"Desfer\"\n\nmsgid \"Redo\"\nmsgstr \"Refer\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"Copiar\"\n\nmsgid \"Cut\"\nmsgstr \"Retalla\"\n\nmsgid \"Paste\"\nmsgstr \"Enganxar\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Enganxar al lloc\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"Enganxar des del porta-retalls\"\n\nmsgid \"Delete\"\nmsgstr \"Eliminar\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Eliminar permanentment\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Moure a la paperera\"\n\nmsgid \"New Brush\"\nmsgstr \"Nou pinzell\"\n\nmsgid \"Scale Image\"\nmsgstr \"Escalar l'imatge\"\n\nmsgid \"Pixels\"\nmsgstr \"Píxels\"\n\nmsgid \"Percentage\"\nmsgstr \"Percentatge\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"Mode del color:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"Mode de color\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"Indexat\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"Retalla per la selecció\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"Retalla segons el contingut\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Redimensionar llenç\"\n\nmsgid \"Offset Image\"\nmsgstr \"Desplaçar imatge\"\n\nmsgid \"Offset:\"\nmsgstr \"Desplaçament:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Rotar l'imatge\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"Neteja\"\n\nmsgid \"Invert\"\nmsgstr \"Invertir\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Inverteix la imatge\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Voltejar horitzontalment\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Voltejar verticalment\"\n\nmsgid \"Preferences\"\nmsgstr \"Preferències\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Mode Tile\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Opacitat de la finestra\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Disposició dels panells\"\n\nmsgid \"Panels\"\nmsgstr \"Panells\"\n\nmsgid \"Layouts\"\nmsgstr \"Disposicions\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Panells mòbils\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Administra les disposicions\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"Afegeix\"\n\nmsgid \"Add Layout\"\nmsgstr \"Afegeix disposició\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"Eliminar %s\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Segur que vols esborrar aquesta disposició?\"\n\nmsgid \"Widescreen\"\nmsgstr \"Pantalla horitzontal\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Pantalla Vertical\"\n\nmsgid \"Mirror View\"\nmsgstr \"Vista Mirall\"\n\nmsgid \"Show Grid\"\nmsgstr \"Mostrar la quadrícula\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Mostrar quadrícula de Píxels\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Mostrar regles\"\n\nmsgid \"Show Guides\"\nmsgstr \"Mostrar guies\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Mostrar línia de temps de l'animació\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Mode Zen\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Pantalla completa\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Omple amb color:\"\n\nmsgid \"Open a File\"\nmsgstr \"Obrir un fitxer\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Obrir fitxer(s)\"\n\nmsgid \"Import Options\"\nmsgstr \"Opcions d'importació\"\n\nmsgid \"Import as:\"\nmsgstr \"Importar com a:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Aplica a tots\"\n\nmsgid \"Recent projects\"\nmsgstr \"Darrers projectes\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Full de sprites (nova capa)\"\n\nmsgid \"New frame\"\nmsgstr \"Nou fotograma\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"Nova capa\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"Nova paleta\"\n\nmsgid \"New brush\"\nmsgstr \"Nou pinzell\"\n\nmsgid \"New pattern\"\nmsgstr \"Nou patró\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Fotogrames horitzontals:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Fotogrames verticales:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"Fotograma d'inici:\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"Al fotograma:\"\n\nmsgid \"At layer:\"\nmsgstr \"A la capa:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Tipus de pinzell:\"\n\nmsgid \"File brush\"\nmsgstr \"Pinzell del fitxer\"\n\nmsgid \"Project brush\"\nmsgstr \"Pinzell del projecte\"\n\nmsgid \"Random brush\"\nmsgstr \"Pinzell aleatori\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Desar Sprite com a .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Exportar Sprite com a .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Exportar Sprite\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"El fitxer existeix, sobrescriure?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"S'està exportant...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"No es pot carregar l'arxiu '%s'.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"No es pot carregar el fitxer '%s'.\\n\"\n\"Codi d'error: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"No es pot carregar l'arxiu '%s'.\\n\"\n\"Aquest no és un arxiu de paleta vàlid.\"\n\nmsgid \"Frame\"\nmsgstr \"Fotograma\"\n\nmsgid \"Frames:\"\nmsgstr \"Fotogrames:\"\n\nmsgid \"All Frames\"\nmsgstr \"Tots els fotogrames\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Full de sprites\"\n\nmsgid \"Animation\"\nmsgstr \"Animació\"\n\nmsgid \"Preview:\"\nmsgstr \"Previsualització:\"\n\nmsgid \"Frame:\"\nmsgstr \"Fotograma:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Orientació:\"\n\nmsgid \"Browse\"\nmsgstr \"Navegar\"\n\nmsgid \"Resize:\"\nmsgstr \"Redimensionar:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Cancel·lar exportació\"\n\nmsgid \"Alert!\"\nmsgstr \"Alerta!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Seleccionar carpeta actual\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Obrir directori\"\n\nmsgid \"Background:\"\nmsgstr \"Fons:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"Direcció:\"\n\nmsgid \"Forward\"\nmsgstr \"Cap endavant\"\n\nmsgid \"Backwards\"\nmsgstr \"Cap endarrere\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Ping-Pong\"\n\nmsgid \"Columns\"\nmsgstr \"Columnes\"\n\nmsgid \"Columns:\"\nmsgstr \"Columnes:\"\n\nmsgid \"Rows\"\nmsgstr \"Files\"\n\nmsgid \"Rows:\"\nmsgstr \"Files:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"Ruta:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Directoris i fitxers:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Crear una carpeta\"\n\nmsgid \"File:\"\nmsgstr \"Fitxer:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolació:\"\n\nmsgid \"Nearest\"\nmsgstr \"Més proper\"\n\nmsgid \"Bilinear\"\nmsgstr \"Bilineal\"\n\nmsgid \"Cubic\"\nmsgstr \"Cubic\"\n\nmsgid \"Trilinear\"\nmsgstr \"Trilineal\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"General\"\n\nmsgid \"Startup\"\nmsgstr \"Inici\"\n\nmsgid \"Language\"\nmsgstr \"Llenguatge\"\n\nmsgid \"Interface\"\nmsgstr \"Interfície\"\n\nmsgid \"Themes\"\nmsgstr \"Temes\"\n\nmsgid \"Canvas\"\nmsgstr \"Llenç\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"Selecció\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Accesos directos\"\n\nmsgid \"Backup\"\nmsgstr \"Còpia de seguretat\"\n\nmsgid \"Performance\"\nmsgstr \"Rendiment\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"Extensions\"\n\nmsgid \"Cursors\"\nmsgstr \"Cursors\"\n\nmsgid \"Indicators\"\nmsgstr \"Indicadors\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"Encès\"\n\nmsgid \"Restore default value\"\nmsgstr \"Restaura els valors per defecte\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Zoom suavitzat\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Afegeix una transició suau quan es fa zoom\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Sensibilitat de la pressió de la tableta:\"\n\nmsgid \"None\"\nmsgstr \"Cap\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Afectar l'opacitat de l'pinzell\"\n\nmsgid \"Color:\"\nmsgstr \"Color:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Color de la guia:\"\n\nmsgid \"System Language\"\nmsgstr \"Idioma del sistema\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Atenua la interfície amb finestres emergents\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"Fosc\"\n\nmsgid \"Gray\"\nmsgstr \"Gris\"\n\nmsgid \"Blue\"\nmsgstr \"Blau\"\n\nmsgid \"Caramel\"\nmsgstr \"Caramel\"\n\nmsgid \"Light\"\nmsgstr \"Llum\"\n\nmsgid \"Purple\"\nmsgstr \"Porpra\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"Tema\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Color d'icona de:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Color d'icona:\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Mida dels botons d'eines:\"\n\nmsgid \"Small\"\nmsgstr \"Petita\"\n\nmsgid \"Big\"\nmsgstr \"Grossa\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Canvia només la selecció\"\n\nmsgid \"Selected cels\"\nmsgstr \"Cels seleccionats\"\n\nmsgid \"Current cel\"\nmsgstr \"Cel actual\"\n\nmsgid \"Current frame\"\nmsgstr \"Fotograma actual\"\n\nmsgid \"All frames\"\nmsgstr \"Tots els fotogrames\"\n\nmsgid \"All projects\"\nmsgstr \"Totes els projectes\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Invertir colors\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Modifica el canal vermell\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Modifica el canal verd\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Modifica el canal blau\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Modifica el canal alfa\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Desaturació\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Contorn\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"Degradat\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"Tipus:\"\n\nmsgid \"Angle:\"\nmsgstr \"Angle:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Ajusta la Tonalitat/Saturació/Lluminositat\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"Ajusta l'HSV\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Tonalitat:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Saturació:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Lluminositat:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"Aplicar\"\n\nmsgid \"Diagonal\"\nmsgstr \"Diagonal\"\n\nmsgid \"Place inside image\"\nmsgstr \"Col·loca dins l'imatge\"\n\nmsgid \"Thickness:\"\nmsgstr \"Gruix:\"\n\nmsgid \"Colors:\"\nmsgstr \"Colors:\"\n\nmsgid \"Steps:\"\nmsgstr \"Passos:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Mostrar pantalla de benvinguda\"\n\nmsgid \"Online Docs\"\nmsgstr \"Documentació en línia\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Rastrejador d'incidències\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"Registre de canvis\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Sobre Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - Pixela els teus somnis!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Desenvolupat per Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-present per Orama Interactive i col·laboradors\"\n\nmsgid \"Website\"\nmsgstr \"Lloc web\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"Feu una donació\"\n\nmsgid \"Developers\"\nmsgstr \"Desenvolupadors\"\n\nmsgid \"Contributors\"\nmsgstr \"Col·laboradors\"\n\nmsgid \"Donors\"\nmsgstr \"Donadors\"\n\nmsgid \"Translators\"\nmsgstr \"Traductors\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Llicències\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"Anglès\"\n\nmsgid \"Greek\"\nmsgstr \"Grec\"\n\nmsgid \"French\"\nmsgstr \"Francès\"\n\nmsgid \"German\"\nmsgstr \"Alemany\"\n\nmsgid \"Polish\"\nmsgstr \"Polonès\"\n\nmsgid \"Portuguese\"\nmsgstr \"Portuguès\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Portuguès de Brasil\"\n\nmsgid \"Russian\"\nmsgstr \"Rus\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Xinès Simplificat\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Xinès Tradicional\"\n\nmsgid \"Italian\"\nmsgstr \"Italià\"\n\nmsgid \"Latvian\"\nmsgstr \"Letó\"\n\nmsgid \"Spanish\"\nmsgstr \"Espanyol (Castellá)\"\n\nmsgid \"Catalan\"\nmsgstr \"Català\"\n\nmsgid \"Esperanto\"\nmsgstr \"Esperanto\"\n\nmsgid \"Indonesian\"\nmsgstr \"Indonesi\"\n\nmsgid \"Czech\"\nmsgstr \"Txec\"\n\nmsgid \"Arabic\"\nmsgstr \"Àrab\"\n\nmsgid \"Turkish\"\nmsgstr \"Turc\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Noruec Bokmål\"\n\nmsgid \"Korean\"\nmsgstr \"Coreà\"\n\nmsgid \"Hungarian\"\nmsgstr \"Hongarès\"\n\nmsgid \"Romanian\"\nmsgstr \"Romanès\"\n\nmsgid \"Japanese\"\nmsgstr \"Japonès\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Ucraïnès\"\n\nmsgid \"Danish\"\nmsgstr \"Danès\"\n\nmsgid \"Swedish\"\nmsgstr \"Suec\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Serbi (ciríl·lic)\"\n\nmsgid \"Dutch\"\nmsgstr \"Neerlandès\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"Dissenyador de UI\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Fet per: %s\"\n\nmsgid \"untitled\"\nmsgstr \"sense títol\"\n\nmsgid \"imported\"\nmsgstr \"importat\"\n\nmsgid \"copy\"\nmsgstr \"copiar\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Esteu segur que voleu tancar Pixelorama?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Imatge no desada\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Tens canvis sense desar. Si vols contiunar, el progrés es perderá.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Desar abans de sortir?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Desar i sortir\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Sortir sense desar\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Selecció Rectangular\\n\\n\"\n\"%s pel click esquerre del ratolí\\n\"\n\"%s pel click dret del ratolí\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Selecció El·líptica\\n\\n\"\n\"%s pel click esquerre del ratolí\\n\"\n\"%s pel click dret del ratolí\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Selecció poligonal\\n\\n\"\n\"%s pel botó esquerre del ratolí\\n\"\n\"%s pel botó dret del ratolí\\n\\n\"\n\"Doble clic per connectar el darrer punt al punt d'inici\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Selecció per Color\\n\\n\"\n\"%s pel click esquerre del ratolí\\n\"\n\"%s pel click dret del ratolí\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Vareta Màgica\\n\\n\"\n\"%s pel click esquerre del ratolí\\n\"\n\"%s pel click dret del ratolí\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Llaç / Eina de Selecció Lliure\\n\\n\"\n\"%s pel click esquerre del ratolí\\n\"\n\"%s pel click dret del ratolí\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Moure\\n\\n\"\n\"%s pel click esquerre del ratolí\\n\"\n\"%s pel click dret del ratolí\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Zoom\\n\\n\"\n\"%s pel click esquerre del ratolí\\n\"\n\"%s pel click dret del ratolí\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Desplaçar-se per la pantalla\\n\\n\"\n\"%s pel botó esquerre del ratolí\\n\"\n\"%s pel botó dret del ratolí\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"Selector de colors\\n\\n\"\n\"%s pel botó esquerre del ratolí\\n\"\n\"%s pel botó dret del ratolí\\n\\n\"\n\"Selecciona el color d'un pixel de l'sprite\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Llapis\\n\\n\"\n\"%s pel botó esquerre del ratolí\\n\"\n\"%s pel botó dret del ratolí\\n\\n\"\n\"Manten %s para fer una línia\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Goma de esborrar\\n\\n\"\n\"%s pel botó esquerre del ratolí\\n\"\n\"%s pel botó dret del ratolí\\n\\n\"\n\"Manten %s para fer una línia\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Cubeta\\n\\n\"\n\"%s pel botó esquerre del ratolí\\n\"\n\"%s pel botó dret del ratolí\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Eina d'ombreig\\n\\n\"\n\"%s pel botó esquerre del ratolí\\n\"\n\"%s pel botó dret del ratolí\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Eina de línia\\n\\n\"\n\"%s pel botó esquerre del ratolí\\n\"\n\"%s pel botó dret del ratolí\\n\\n\"\n\"Mantén %s per encaixar l'angle de la línia\\n\"\n\"Mantén %s per centrar la forma en el clic d'origen\\n\"\n\"Mantén %s per desplaçar l'origen de la forma\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Eina de rectangle\\n\\n\"\n\"%s pel botó esquerre del ratolí\\n\"\n\"%s pel botó dret del ratolí\\n\\n\"\n\"Mantén %s per crear una forma 1:1\\n\"\n\"Mantén %s per centrar la forma al clic d'origen\\n\"\n\"Mantén %s per desplaçar l'origen de la forma\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Eina d'el·lipsi\\n\\n\"\n\"%s pel botó esquerre del ratolí\\n\"\n\"%s pel botó dret del ratolí\\n\\n\"\n\"Mantén %s per crear una forma 1:1\\n\"\n\"Mantén %s per centrar la forma al clic d'origen\\n\"\n\"Mantén %s per desplaçar l'origen de la forma\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"Rectangle\"\n\nmsgid \"Ellipse\"\nmsgstr \"El·lipse\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Triar un color per l'eina esquerra\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Triar un color per l'eina dreta\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Restaura els colors al seu estat per defecte (negre per l'esquerre, blanc pel dret)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"Eina esquerra\"\n\nmsgid \"Right tool\"\nmsgstr \"Eina dreta\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Indicador de píxel esquerre\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Mostra l'indicador del botó esquerre o del pinzell al llenç mentre dibuixes\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Indicador de píxel dret\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Mostra l'indicador del botó dret o del pinzell al llenç mentre dibuixes\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Mostrar icona de la eina esquerra\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Mostra una icona de l'eina seleccionada a l'esquerra del cursor al llenç\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Mostrar icona de la eina dreta\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Mostra una icona de l'eina seleccionada a la dreta del cursor al llenç\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"Fes servir els cursors nadius pel ratolí\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"Fes servir un cursor en forma de creu al llenç\"\n\nmsgid \"Guides\"\nmsgstr \"Guies\"\n\nmsgid \"Guides color:\"\nmsgstr \"Color de la guia:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Un color de les guies de regla que es mostren al llenç\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"Graella\"\n\nmsgid \"Grid type:\"\nmsgstr \"Tipus de graella:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Estableix el tipus de la graella entre rectangular, isomètrica o ambdues\"\n\nmsgid \"Rectangular\"\nmsgstr \"Rectangular\"\n\nmsgid \"Isometric\"\nmsgstr \"Isomètrica\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"Totes\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"Mode dibuix amb caselles:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"Si està desactivat, la graella només es dibuixarà per sobre de la imatge original\"\n\nmsgid \"Grid color:\"\nmsgstr \"Color de la quadrícula:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"Un color de la quadrícula\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Graella de píxels\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Mostra al zoom:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"Estableix el nivell mínim de zoom a partir del qual es mostra la graella de píxels\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Color de la graella de píxels:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"Un color de la graella de píxels\"\n\nmsgid \"Transparency\"\nmsgstr \"Transparència\"\n\nmsgid \"Checker size:\"\nmsgstr \"Mida del patró de quadres:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Mida del patró de quadres transparent del fons\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Color de quadre 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"Primer color del patró de quadres transparent\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Color de quadre 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"Segon color del patró de quadres transparent\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"Moviment de seguiment del llenç\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"El patró de quadres transparent segueix el moviment del llenç\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"Segueix el nivell de zoom del llenç\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"El patró de quadres transparent segueix el nivell de zoom del llenç\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"Vores de selecció animades\"\n\nmsgid \"Border color 1:\"\nmsgstr \"Color de la vora 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Color de la vora 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Només es poden modificar els presets personalitzats\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"Estableix el límit d'FPS de l'aplicació:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"Estableix el límit de fotogrames per segon de l'aplicació. Com més baix, menys càrrega rep la CPU, però l'aplicació s'alenteix i pot no respondre correctament. 0 vol dir que no hi ha cap límit.\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"Pausa l'aplicació en perdre el focus\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"Si això està activat quan l'aplicació perd el focus, es posa en pausa. Això ajuda a reduir l'ús de la CPU mentre no estàs actiu. L'aplicació es resumeix quan el ratolí entra a la finestra de l'aplicació.\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Afegeix una extensió\"\n\nmsgid \"Enable\"\nmsgstr \"Activa\"\n\nmsgid \"Disable\"\nmsgstr \"Desactiva\"\n\nmsgid \"Uninstall\"\nmsgstr \"Desinstal·la\"\n\nmsgid \"Open Folder\"\nmsgstr \"Obre la carpeta\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"Pinzell:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Triar un pinzell\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Pinzell de píxels\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Pinzell de cercles\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Pinzell de cercle omplert\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"Pinzell personalitzat\"\n\nmsgid \"Brush size:\"\nmsgstr \"Mida del pinzell:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Sobreescriu el color en comptes de barrejar-lo. Aquesta opció només és rellevant amb colors que no són completament opacs\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Pixel Perfect\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"Píxels Perfectes\\n\"\n\"Suavitza les línies esborrant píxels addicionals de les vores\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"Omple l'interior\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Omple la forma\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"Omple la forma dibuixada amb un color, en comptes de dibuixar una forma buida\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: Color del mateix pinzell, 100: El color seleccionat\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"Omplir amb:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Patró\"\n\nmsgid \"Offset\"\nmsgstr \"Desfasament\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Ombreig simple\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Canvi de to\"\n\nmsgid \"Lighten\"\nmsgstr \"Aclareix\"\n\nmsgid \"Darken\"\nmsgstr \"Enfosqueix\"\n\nmsgid \"Amount:\"\nmsgstr \"Quantitat:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Quantitat de claror/foscor\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"Escull per:\"\n\nmsgid \"Left Color\"\nmsgstr \"Color esquerre\"\n\nmsgid \"Right Color\"\nmsgstr \"Color dret\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"Mode:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Amplia\"\n\nmsgid \"Zoom out\"\nmsgstr \"Allunya\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"Opcions:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"Ajustar al fotograma\"\n\nmsgid \"100% Zoom\"\nmsgstr \"100% de Zoom\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"Reflex\"\n\nmsgid \"Horizontal\"\nmsgstr \"Horitzontal\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Activa el dibuix emmirallat horitzontalment\"\n\nmsgid \"Vertical\"\nmsgstr \"Vertical\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Activa el dibuix emmirallat verticalment\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"Fotograma actual:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Activa/desactiva l'Onion Skinning\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"Quants fotogrames per segon ha de ser la vista prèvia de l'animació?\\n\"\n\"Com més FPS, més ràpida es reprodueix l’animació.\"\n\nmsgid \"No loop\"\nmsgstr \"Sense bucle\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Bucle de cicle\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Bucle Ping-Pong\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Onion Skinning:\"\n\nmsgid \"Past Frames\"\nmsgstr \"Fotogrames passats\"\n\nmsgid \"Future Frames\"\nmsgstr \"Fotogrames futurs\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Gestiona etiquetes de fotogrames\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Propietats de l'etiqueta del fotograma\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Afegeix una nova etiqueta de fotograma\"\n\nmsgid \"Name:\"\nmsgstr \"Nom:\"\n\nmsgid \"From:\"\nmsgstr \"De:\"\n\nmsgid \"To:\"\nmsgstr \"A:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"L'animació es reprodueix només en els fotogrames amb la mateixa etiqueta\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Etiqueta %s (Fotograma %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Etiqueta %s (Fotogrames %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Si està seleccionat, l'animació només es reprodueix en els fotogrames amb la mateixa etiqueta. Si no, l'animació es reproduirà en tots els fotogrames, ignorant etiquetes.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"Mostra els fotogrames passats:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"Mostra els fotogrames futurs:\"\n\nmsgid \"Above canvas\"\nmsgstr \"Damunt el llenç\"\n\nmsgid \"Below canvas\"\nmsgstr \"Sota el llenç\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"Si vols que una capa ignori l'onion skinning, simplement afegeix el sufix \\\"_io\\\" al seu nom.\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Afegir un nou fotograma\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Eliminar Fotograma\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Clonar Fotograma\"\n\nmsgid \"Move Left\"\nmsgstr \"Moure a l'Esquerra\"\n\nmsgid \"Move Right\"\nmsgstr \"Moure a la Dreta\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"Propietats del fotograma\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"Capa\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"Capes\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Crear una nova capa\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Esborrar la capa actual\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Moure la capa cap amunt\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Moure la capa cap avall\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Clonar la capa actual\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"Opacitat:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Activa/desactiva la visibilitat de la capa\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"Paleta\"\n\nmsgid \"Palettes\"\nmsgstr \"Paletes\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Afegir una nova paleta\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Editar la paleta seleccionada\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Triar una paleta\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Desfer: Dibuixar\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Refer: Dibuixar\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Refer: Afegir Capa\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Desfer: Eliminar Capa\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"Fitxer desat\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Nova Paleta Buida\"\n\nmsgid \"Import Palette\"\nmsgstr \"Importar Paleta\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Nom de la Paleta:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Nom del color:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Crear una nova paleta buida?\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Editar Paleta\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"Patróns:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"Per defecte\"\n\nmsgid \"Custom\"\nmsgstr \"Personalitzat\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Selecció de Rectangle\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"Ampliar\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"Selector de Colors\"\n\nmsgid \"Pencil\"\nmsgstr \"Llapis\"\n\nmsgid \"Eraser\"\nmsgstr \"Goma d'esborrar\"\n\nmsgid \"Bucket\"\nmsgstr \"Cubeta\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Intercanviar Colors\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Establir tecla d'accés directe\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Eina Esquerra:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Eina Dreta:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"No es pot trobar el fitxer del projecte més recent.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Obrir Projecte més recent\"\n\nmsgid \"Open last project...\"\nmsgstr \"Obrir Projecte més recent...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Habilitar desat automàtic\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Interval de desat automàtic:\"\n\nmsgid \"minute(s)\"\nmsgstr \"minut(s)\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"Tancar\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"No es pot eliminar més paletes!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"No es pot eliminar la paleta, perquè no existeix!\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Auto\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/cs_CZ.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: cs\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Czech\\n\"\n\"Language: cs_CZ\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"Zrušit\"\n\nmsgid \"Open\"\nmsgstr \"Otevřít\"\n\nmsgid \"Save\"\nmsgstr \"Uložit\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Potvrďte prosím...\"\n\nmsgid \"File Name:\"\nmsgstr \"Název souboru:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Název projektu:\"\n\nmsgid \"Image Size\"\nmsgstr \"Velikost obrázku\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Velikost plátna\"\n\nmsgid \"Frame Size\"\nmsgstr \"Velikost snímku\"\n\nmsgid \"Size:\"\nmsgstr \"Velikost:\"\n\nmsgid \"Width:\"\nmsgstr \"Šířka:\"\n\nmsgid \"Height:\"\nmsgstr \"Výška:\"\n\nmsgid \"Center\"\nmsgstr \"Na střed\"\n\nmsgid \"File\"\nmsgstr \"Soubor\"\n\nmsgid \"Edit\"\nmsgstr \"Upravit\"\n\nmsgid \"Select\"\nmsgstr \"Výběr\"\n\nmsgid \"View\"\nmsgstr \"Zobrazení\"\n\nmsgid \"Window\"\nmsgstr \"Okno\"\n\nmsgid \"Image\"\nmsgstr \"Obrázek\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"Projekt\"\n\nmsgid \"Effects\"\nmsgstr \"Efekty\"\n\nmsgid \"Help\"\nmsgstr \"Nápověda\"\n\nmsgid \"New\"\nmsgstr \"Nový\"\n\nmsgid \"New...\"\nmsgstr \"Nový...\"\n\nmsgid \"Open...\"\nmsgstr \"Otevřít...\"\n\nmsgid \"Save...\"\nmsgstr \"Uložit...\"\n\nmsgid \"Save as...\"\nmsgstr \"Uložit jako...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"Zahrnout prolnuté obrázky\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"Importovat\"\n\nmsgid \"Export\"\nmsgstr \"Exportovat\"\n\nmsgid \"Overwrite\"\nmsgstr \"Přepsat\"\n\nmsgid \"Export...\"\nmsgstr \"Exportovat...\"\n\nmsgid \"Export as...\"\nmsgstr \"Exportovat jako...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Exportovat PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Exportovat PNG jako...\"\n\nmsgid \"Quit\"\nmsgstr \"Ukončit\"\n\nmsgid \"Undo\"\nmsgstr \"Zpět\"\n\nmsgid \"Redo\"\nmsgstr \"Znovu\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"Kopírovat\"\n\nmsgid \"Cut\"\nmsgstr \"Vyjmout\"\n\nmsgid \"Paste\"\nmsgstr \"Vložit\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Vložit na místě\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"Vložit ze schránky\"\n\nmsgid \"Delete\"\nmsgstr \"Smazat\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Trvale odstranit\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Přesunout do koše\"\n\nmsgid \"New Brush\"\nmsgstr \"Nový štětec\"\n\nmsgid \"Scale Image\"\nmsgstr \"Škálovat obrázek\"\n\nmsgid \"Pixels\"\nmsgstr \"Pixely\"\n\nmsgid \"Percentage\"\nmsgstr \"Procenta\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"Barevný režim:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"Barevný režim\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"Indexovaný\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"Oříznout na výběr\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"Oříznout na obsah\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Upravit velikost plátna\"\n\nmsgid \"Offset Image\"\nmsgstr \"Odsadit obrázek\"\n\nmsgid \"Offset:\"\nmsgstr \"Odsazení:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"Obtékat:\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"Vystředit snímky\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Otočit obrázek\"\n\nmsgid \"Pivot x:\"\nmsgstr \"Osa X:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"Osa Y:\"\n\nmsgid \"Smear options:\"\nmsgstr \"Nastavení rozmazání:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Tolerance:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Počáteční úhel:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"Zrušit\"\n\nmsgid \"Invert\"\nmsgstr \"Invertovat\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"Upravit\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"Rozšířit\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"Rozšířit výběr\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"Zmenšit\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"Diamant\"\n\nmsgid \"Circle\"\nmsgstr \"Kruh\"\n\nmsgid \"Square\"\nmsgstr \"Čtverec\"\n\nmsgid \"Grayscale View\"\nmsgstr \"Pohled s odstíny šedi\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Překlopit obrázek\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Převrátit vodorovně\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Převrátit svisle\"\n\nmsgid \"Preferences\"\nmsgstr \"Nastavení\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"Procedurální\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"Rozmazání\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"Načtené\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"Vycentrovat plátno\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Dlaždicový režim\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"Odsazení dlaždicového režimu\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"X-báze:\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"Y-báze:\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"Maskování:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Obnovit\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"Obnovit %s\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Obnovit masku\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Průhlednost okna\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Rozložení panelů\"\n\nmsgid \"Panels\"\nmsgstr \"Panely\"\n\nmsgid \"Layouts\"\nmsgstr \"Rozložení\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Přesunutelné panely\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"Nastavit jako plovoucí\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Správa rozložení\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Náhled\"\n\nmsgid \"Add\"\nmsgstr \"Přidat\"\n\nmsgid \"Add Layout\"\nmsgstr \"Přidat rozložení\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"Smazat %s\"\n\nmsgid \"Copy from\"\nmsgstr \"Kopírovat z\"\n\nmsgid \"Rename\"\nmsgstr \"Přejmenovat\"\n\nmsgid \"Rename Layout\"\nmsgstr \"Přejmenovat rozložení\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"Aktuální rozložení\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Jste si jisti, že chcete odstranit toto rozložení?\"\n\nmsgid \"Widescreen\"\nmsgstr \"Širokoúhlá obrazovka\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Vysoká obrazovka\"\n\nmsgid \"Mirror View\"\nmsgstr \"Zrcadlové zobrazení\"\n\nmsgid \"Show Grid\"\nmsgstr \"Zobrazit mřížku\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Zobrazit pixelovou mřížku\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Zobrazit pravítka\"\n\nmsgid \"Show Guides\"\nmsgstr \"Zobrazit vodítka\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"Zobrazít vodítka kurzoru\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"Zobrazit efekty vrstev\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"Přichytávat k\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"Přichytávat k okrajům obdélníkové mřížky\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"Přichytávat ke středům obdélníkové mřížky\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"Přichytávat k vodítkům\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"Přichytávat k perspektivním vodítkům\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Zobrazit animační panel\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Zen režim\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Celá obrazovka\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Vyplnit barvou:\"\n\nmsgid \"Open a File\"\nmsgstr \"Otevřít soubor\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Otevřít soubor(y)\"\n\nmsgid \"Import Options\"\nmsgstr \"Nastavení importu\"\n\nmsgid \"Import as:\"\nmsgstr \"Importovat jako:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Aplikovat na vše\"\n\nmsgid \"Recent projects\"\nmsgstr \"Nedávné projekty\"\n\nmsgid \"New project\"\nmsgstr \"Nový projekt\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"Spritesheet (nový projekt)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Spritesheet (nová vrstva)\"\n\nmsgid \"New frame\"\nmsgstr \"Nový snímek\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"Nahradit buňku\"\n\nmsgid \"New layer\"\nmsgstr \"Nová vrstva\"\n\nmsgid \"New reference image\"\nmsgstr \"Nový referenční obrázek\"\n\nmsgid \"New palette\"\nmsgstr \"Nová paleta\"\n\nmsgid \"New brush\"\nmsgstr \"Nový štětec\"\n\nmsgid \"New pattern\"\nmsgstr \"Nový vzor\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Vodorovné snímky:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Svislé snímky:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"Chytré rozřezání\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"Práh:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"Obnovit\"\n\nmsgid \"Start frame:\"\nmsgstr \"Počáteční snímek:\"\n\nmsgid \"End frame:\"\nmsgstr \"Koncový snímek:\"\n\nmsgid \"At frame:\"\nmsgstr \"Na snímku:\"\n\nmsgid \"At layer:\"\nmsgstr \"Na vrstvě:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Druh štětce:\"\n\nmsgid \"File brush\"\nmsgstr \"Štětec ze souboru\"\n\nmsgid \"Project brush\"\nmsgstr \"Štětec z projektu\"\n\nmsgid \"Random brush\"\nmsgstr \"Náhodný štětec\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Uložit obrázek jako .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Exportovat obrázek jako .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Exportovat obrázek\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Soubor existuje, přepsat?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"Následující soubory již existují. Přejete si je přepsat?\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"Cesta ke složce není platná!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"Název souboru není platný!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"Cesta ke složce a název souboru nejsou platné!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Probíhá export...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"Nelze načíst soubor '%s'.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Nelze načíst soubor '%s'.\\n\"\n\"Kód chyby: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"Nelze načíst soubor '%s'.\\n\"\n\"Nejedná se o platný soubor palety.\"\n\nmsgid \"Frame\"\nmsgstr \"Snímek\"\n\nmsgid \"Frames:\"\nmsgstr \"Snímky:\"\n\nmsgid \"All Frames\"\nmsgstr \"Všechny snímky\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Spritesheet\"\n\nmsgid \"Animation\"\nmsgstr \"Animace\"\n\nmsgid \"Preview:\"\nmsgstr \"Náhled:\"\n\nmsgid \"Frame:\"\nmsgstr \"Snímek:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Orientace:\"\n\nmsgid \"Browse\"\nmsgstr \"Procházet\"\n\nmsgid \"Resize:\"\nmsgstr \"Změnit velikost:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"Kvalita:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Zrušit export\"\n\nmsgid \"Alert!\"\nmsgstr \"Upozornění!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Vybrat aktuální složku\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Otevřít složku\"\n\nmsgid \"Background:\"\nmsgstr \"Pozadí:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"Vybrané snímky\"\n\nmsgid \"Layers:\"\nmsgstr \"Vrstvy:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Viditelné vrstvy\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"Vybrané vrstvy\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"Pixelová vrstva:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"Skupinová vrstva:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"3D vrstva:\"\n\nmsgid \"Direction:\"\nmsgstr \"Směr:\"\n\nmsgid \"Forward\"\nmsgstr \"Vpřed\"\n\nmsgid \"Backwards\"\nmsgstr \"Pozpátku\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Ping-Pong\"\n\nmsgid \"Columns\"\nmsgstr \"Sloupce\"\n\nmsgid \"Columns:\"\nmsgstr \"Sloupce:\"\n\nmsgid \"Rows\"\nmsgstr \"Řádky\"\n\nmsgid \"Rows:\"\nmsgstr \"Řádky:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"Štítky podle sloupce\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"Štítky podle řádku\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"Rozměry exportu:\"\n\nmsgid \"Save a File\"\nmsgstr \"Uložit soubor\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"Přejít na předchozí složku.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"Přejít na následující složku.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"Přejít na nadřazenou složku.\"\n\nmsgid \"Path:\"\nmsgstr \"Cesta:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"Obnovit soubory.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"Přepnout viditelnost skrytých souborů.\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Složky a soubory:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Vytvořit složku\"\n\nmsgid \"File:\"\nmsgstr \"Soubor:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"Všechny soubory\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"Všechny podporované\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"Pixelorama projekt\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"PNG obrázek\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"BMP obrázek\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"Radiance HDR obrázek\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"JPEG obrázek\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"SVG obrázek\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"TGA obrázek\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"WebP obrázek\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"Pixelorama paleta\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"GIMP paleta\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"Pokročilé možnosti\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolace:\"\n\nmsgid \"Nearest\"\nmsgstr \"Nejbližší\"\n\nmsgid \"Bilinear\"\nmsgstr \"Bilineární\"\n\nmsgid \"Cubic\"\nmsgstr \"Kubická\"\n\nmsgid \"Trilinear\"\nmsgstr \"Trilineární\"\n\nmsgid \"Constant\"\nmsgstr \"Konstantní\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"Barevný prostor\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"Lineární sRGB\"\n\nmsgid \"General\"\nmsgstr \"Obecné\"\n\nmsgid \"Startup\"\nmsgstr \"Po spuštění\"\n\nmsgid \"Language\"\nmsgstr \"Jazyk\"\n\nmsgid \"Interface\"\nmsgstr \"Rozhraní\"\n\nmsgid \"Themes\"\nmsgstr \"Motivy\"\n\nmsgid \"Canvas\"\nmsgstr \"Plátno\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"Časová osa\"\n\nmsgid \"Selection\"\nmsgstr \"Výběr\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Zkratky\"\n\nmsgid \"Backup\"\nmsgstr \"Zálohování\"\n\nmsgid \"Performance\"\nmsgstr \"Výkon\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"Ovladače\"\n\nmsgid \"Extensions\"\nmsgstr \"Rozšíření\"\n\nmsgid \"Cursors\"\nmsgstr \"Kurzory\"\n\nmsgid \"Indicators\"\nmsgstr \"Indikátory\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"Pixelorama musí být restartována, aby se mohly projevit změny.\"\n\nmsgid \"On\"\nmsgstr \"Zapnuto\"\n\nmsgid \"Restore default value\"\nmsgstr \"Obnovit výchozí hodnotu\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Vyhlazení přiblížení/oddálení\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Hladší přechod při přiblížení nebo přiblížení\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"Celočíselné přiblížení/oddálení\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"Omezí hodnoty na celočíselný násobek 100%\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Citlivost tlaku na tabletu:\"\n\nmsgid \"None\"\nmsgstr \"Žádný\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Ovlivnit alfa vrstvu štětce\"\n\nmsgid \"Color:\"\nmsgstr \"Barva:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Barva vodítka:\"\n\nmsgid \"System Language\"\nmsgstr \"Systémový jazyk\"\n\nmsgid \"Display scale:\"\nmsgstr \"Škála zobrazení:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"Font:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"Velikost písma:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Ztmavit rozhraní při vyskakovacím okně\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"Použít systémový dialog pro výběr souboru\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"Pokud je toto nastavení povoleno, je použit systémový dialog pro výběr souboru, namísto interního dialogu Pixeloramy.\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"Režim jednoho okna\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"Pokud je toto nastavení zapnuto, tak jsou dialogy Pixeloramy zobrazeny v rámci hlavního okna, v opačném případě jsou všechny dialogy zobrazeny jako samostatná okna.\"\n\nmsgid \"Dark\"\nmsgstr \"Tmavý\"\n\nmsgid \"Gray\"\nmsgstr \"Šedý\"\n\nmsgid \"Blue\"\nmsgstr \"Modrá\"\n\nmsgid \"Caramel\"\nmsgstr \"Karamel\"\n\nmsgid \"Light\"\nmsgstr \"Světlý\"\n\nmsgid \"Purple\"\nmsgstr \"Fialová\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"Růže\"\n\nmsgid \"Theme\"\nmsgstr \"Motiv\"\n\nmsgid \"Buttons\"\nmsgstr \"Tlačítka\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Barvy ikon z:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Barva ikon:\"\n\nmsgid \"Background\"\nmsgstr \"Pozadí\"\n\nmsgid \"Background color from:\"\nmsgstr \"Barva pozadí z:\"\n\nmsgid \"Background color:\"\nmsgstr \"Barva pozadí:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"Barva levého nástroje:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"Barva pravého nástroje:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Velkost tlačítek nástrojů:\"\n\nmsgid \"Small\"\nmsgstr \"Malá\"\n\nmsgid \"Big\"\nmsgstr \"Velká\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Ovlivnit pouze výběr\"\n\nmsgid \"Selected cels\"\nmsgstr \"Vybrané buňky\"\n\nmsgid \"Current cel\"\nmsgstr \"Současná buňka\"\n\nmsgid \"Current frame\"\nmsgstr \"Současný snímek\"\n\nmsgid \"All frames\"\nmsgstr \"Všechny snímky\"\n\nmsgid \"All projects\"\nmsgstr \"Všechny projekty\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Invertovat barvy\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Upravit červený kanál\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Upravit zelený kanál\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Upravit modrý kanál\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Upravit alfa kanál\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Odstíny šedi\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Obrys\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Vrhnout stín\"\n\nmsgid \"Offset X:\"\nmsgstr \"Odsazení X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"Odsazení Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"Barva stínu:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"Gaussovké rozmazání\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"Druh rozmazání:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"Množství rozmazání:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"Poloměr rozmazání:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"Směr rozmazání:\"\n\nmsgid \"Gradient\"\nmsgstr \"Gradient\"\n\nmsgid \"Gradient Map\"\nmsgstr \"Gradientová mapa\"\n\nmsgid \"Interpolation\"\nmsgstr \"Interpolace\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"Obrátit\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"Rozdělit na stejné díly\"\n\nmsgid \"Parts:\"\nmsgstr \"Části:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"Tvar:\"\n\nmsgid \"Linear\"\nmsgstr \"Lineární\"\n\nmsgid \"Radial\"\nmsgstr \"Kruhový\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"Opakovat:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"Opakovat\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"Zrcadlit\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"Zkrátit\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"Střed:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"Ditheringová šablona:\"\n\nmsgid \"Type:\"\nmsgstr \"Typ:\"\n\nmsgid \"Angle:\"\nmsgstr \"Úhel:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Upravit odstín, sytost a hodnotu\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"Upravit odstín, sytost a hodnotu\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Odstín:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Sytost:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Hodnota:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"Upravit jas a kontrast\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"Jas:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"Kontrast:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"Hodnota červené:\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"Hodnota zelené:\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"Hodnota modré:\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"Barva tónu:\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"Faktor tónového efektu:\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"Barevné křivky\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"Kanál:\"\n\nmsgid \"Red\"\nmsgstr \"Červená\"\n\nmsgid \"Green\"\nmsgstr \"Zelená\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"Hodnota\"\n\nmsgid \"Presets\"\nmsgstr \"Předvolby\"\n\nmsgid \"Apply\"\nmsgstr \"Použít\"\n\nmsgid \"Diagonal\"\nmsgstr \"Úhlopříčně\"\n\nmsgid \"Place inside image\"\nmsgstr \"Umístit uvnitř obrázku\"\n\nmsgid \"Thickness:\"\nmsgstr \"Tloušťka:\"\n\nmsgid \"Colors:\"\nmsgstr \"Barvy:\"\n\nmsgid \"Steps:\"\nmsgstr \"Kroky:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"Paletizovat\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"Pixelizace\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"Posterizace\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"Úroveň posterizace:\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"Intenzita ditheringu:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Zobrazit úvodní okno\"\n\nmsgid \"Online Docs\"\nmsgstr \"Online dokumentace\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Nahlásit potíže\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"Otevřít datovou složku editoru\"\n\nmsgid \"Changelog\"\nmsgstr \"Seznam změn\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"O Pixeloramě\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"Podpořit vývoj Pixeloramy\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - Zpixelujte své sny!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Vyvinuto Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-současnost Orama Interactive a přispěvatelé\"\n\nmsgid \"Website\"\nmsgstr \"Webové stránky\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"Zdrojový kód\"\n\nmsgid \"Donate\"\nmsgstr \"Podpořit\"\n\nmsgid \"Developers\"\nmsgstr \"Vývojáři\"\n\nmsgid \"Contributors\"\nmsgstr \"Přispěvatelé\"\n\nmsgid \"Donors\"\nmsgstr \"Dárci\"\n\nmsgid \"Translators\"\nmsgstr \"Překladatelé\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Licence\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"Licence\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"Godot licence\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"Licence třetích stran\"\n\nmsgid \"English\"\nmsgstr \"Angličtina\"\n\nmsgid \"Greek\"\nmsgstr \"Řečtina\"\n\nmsgid \"French\"\nmsgstr \"Francouzština\"\n\nmsgid \"German\"\nmsgstr \"Němčina\"\n\nmsgid \"Polish\"\nmsgstr \"Polština\"\n\nmsgid \"Portuguese\"\nmsgstr \"Portugalština\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Brazilská portugalština\"\n\nmsgid \"Russian\"\nmsgstr \"Ruština\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Čínština (zjednodušená)\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Čínština (tradiční)\"\n\nmsgid \"Italian\"\nmsgstr \"Italština\"\n\nmsgid \"Latvian\"\nmsgstr \"Lotyština\"\n\nmsgid \"Spanish\"\nmsgstr \"Španělština\"\n\nmsgid \"Catalan\"\nmsgstr \"Katalánština\"\n\nmsgid \"Esperanto\"\nmsgstr \"Esperanto\"\n\nmsgid \"Indonesian\"\nmsgstr \"Indonéština\"\n\nmsgid \"Czech\"\nmsgstr \"Čeština\"\n\nmsgid \"Arabic\"\nmsgstr \"Arabština\"\n\nmsgid \"Turkish\"\nmsgstr \"Turečtina\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Norština Bokmål\"\n\nmsgid \"Korean\"\nmsgstr \"Korejština\"\n\nmsgid \"Hungarian\"\nmsgstr \"Maďarština\"\n\nmsgid \"Romanian\"\nmsgstr \"Rumunština\"\n\nmsgid \"Japanese\"\nmsgstr \"Japonština\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Ukrajinština\"\n\nmsgid \"Danish\"\nmsgstr \"Dánština\"\n\nmsgid \"Swedish\"\nmsgstr \"Švědština\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Srbština (Cyrilice)\"\n\nmsgid \"Dutch\"\nmsgstr \"Nizozemština\"\n\nmsgid \"Belarusian\"\nmsgstr \"Běloruština\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"Hlavní vývojář\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"Návrhář UI\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"Autoři\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Obrázek od: %s\"\n\nmsgid \"untitled\"\nmsgstr \"bez názvu\"\n\nmsgid \"imported\"\nmsgstr \"importováno\"\n\nmsgid \"copy\"\nmsgstr \"kopie\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Opravdu chcete ukončit Pixeloramu?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Neuložený obrázek\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Máte neuložené změny. Pokud budete pokračovat, pokrok, kterého jste dosáhli, bude ztracen.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Uložit před ukončením?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"Projekt %s obsahuje neuložené změny. Jak si přejete pokračovat?\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Uložit a ukončit\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Ukončit bez uložení\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Obdelníkový výber\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Elipsový výběr\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Polygonální výběr\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\\n\\n\"\n\"Dvojklik připojí poslední vložený bod k počátečnímu bodu\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Výběr podle barvy\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Kouzelná hůlka\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Laso/volný výběr\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Výběr kreslením\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Přesun obrázku\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Přiblížit/oddálit\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Posun plátna\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"Výběr barvy\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\\n\\n\"\n\"Vyberte barvu z pixelu obrázku\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Tužka\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\\n\\n\"\n\"Podrž %s pro vytvoření čáry\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Guma\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\\n\\n\"\n\"Podrž %s pro vytvoření čáry\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Kbelík\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Stínování\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Čára\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\\n\\n\"\n\"Podrž %s pro zaokrouhlení úhlu čáry\\n\"\n\"Podrž %s pro vycentrování tvaru na místo kliku\\n\"\n\"Podrž %s pro přesunutí počátku tvaru\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Obdélník\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\\n\\n\"\n\"Podrž %s pro vytvoření 1:1 tvaru\\n\"\n\"Podrž %s pro vycentrování tvaru na místo kliku\\n\"\n\"Podrž %s pro přesunutí počátku tvaru\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Elipsa\\n\\n\"\n\"%s pro levé tlačítko myši\\n\"\n\"%s pro pravé tlačítko myši\\n\\n\"\n\"Podrž %s pro vytvoření 1:1 tvaru\\n\"\n\"Podrž %s pro vycentrování tvaru na místo kliku\\n\"\n\"Podrž %s pro přesunutí počátku tvaru\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"Obdélník\"\n\nmsgid \"Ellipse\"\nmsgstr \"Elipsa\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Vyberte barvu pro levý nástroj\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Vyberte barvu pro pravý nástroj\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"Prohodit levou a pravou barvu.\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"Průměrná barva:\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Obnovit výchozí barvy (černá vlevo, bílá vpravo)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"Vložte hex kód (\\\"#ff0000\\\") nebo název barvy (\\\"red\\\").\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"Volba tvaru výběru barvy.\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"Možnosti barev\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"Výběr módu výběru barvy.\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"Barevné posuvníky\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"Vzorky\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"Nedávné barvy\"\n\nmsgid \"Left tool\"\nmsgstr \"Levý nástroj\"\n\nmsgid \"Right tool\"\nmsgstr \"Pravý nástroj\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Indikátor levého pixelu\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Zobrazit ukazatel pixelu nebo štětce pro levé tlačítko myši při kreslení\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Indikátor pravého pixelu\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Zobrazit ukazatel pixelu nebo štětce pro pravé tlačítko myši při kreslení\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Zobrazit ikonu levého nástroje\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Zobrazí ikonu vybraného levého nástroje vedle kurzoru na plátně\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Zobrazit ikonu pravého nástroje\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Zobrazí ikonu vybraného pravého nástroje vedle kurzoru na plátně\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"Použít nativní kurzory myši\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"Použít v plátnu kurzor kříže\"\n\nmsgid \"Guides\"\nmsgstr \"Vodítka\"\n\nmsgid \"Guides color:\"\nmsgstr \"Barva vodítek:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Barva vodítkových čar zobrazených přes plátno\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"Přichytávání\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"Vzdálenost přichytávání:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"Vzdálenost v pixelech obrazovky, kdy je aktivována funkce přichytávání k vodítkům, nebo mřížce.\"\n\nmsgid \"Grid\"\nmsgstr \"Mřížka\"\n\nmsgid \"Grid type:\"\nmsgstr \"Druh mřížky:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Druh pomocné mřížky zobrazené přes plátno\"\n\nmsgid \"Rectangular\"\nmsgstr \"Obdélníková\"\n\nmsgid \"Isometric\"\nmsgstr \"Isometrická\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"Vše\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"Odsazení mřížky:\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"Vykreslit přes dlaždicový režim:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"Pokud vypnuto, tak bude mřížka vykreslena pouze přes původní obrázek\"\n\nmsgid \"Grid color:\"\nmsgstr \"Barva mřížky:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"Barva mřížky\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Pixelová mřížka\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Zobrazit při přiblížení:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"Minimální přiblížení pro zobrazení pixelové mřížky\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Barva pixelové mřížky:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"Barva, kterou se vykreslí čáry pixelové mřížky\"\n\nmsgid \"Transparency\"\nmsgstr \"Průhlednost\"\n\nmsgid \"Checker size:\"\nmsgstr \"Rozměry šachovnice:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Rozměry průhledného šachovnicového pozadí\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Barva šachovnice 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"První barva průhledného šachovnicového pozadí\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Barva šachovnice 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"Druhá barva průhledného šachovnicového pozadí\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"Sledovat pohyb plátna\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"Průhledná šachovnice následuje pohyb plátna\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"Sledovat přiblížení plátna\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"Průhledná šachovnice následuje úroveň přiblížení plátna\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"Vybrat vrstvu, pokud je kliknuto na některé z jejích tlačítek:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"Onion skinning předchozí barva:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"Onion skinning následující barva:\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"Animovat okraje rámečku\"\n\nmsgid \"Border color 1:\"\nmsgstr \"První barva rámečku:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Druhá barva rámečku:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Lze upravit pouze vlastní předvolbu\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"Limit snímků za vteřinu:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"Nastaví limit snímků za vteřinu aplikace. Čím nižší číslo, tím menší bude zatížení procesoru,\\n\"\n\"ale může dojít ke snížení odezvy a zasekávání aplikace. 0 značí žádný limit.\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"Maximální počet kroků zpět:\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"Pozastavit aplikaci, když je okno v pozadí\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"Pokud je tato možnost vybrána, tak je aplikace pozastavena, když je okno aplikace v pozadí. Dojde tak ke snížení využití procesoru při nečinnosti. Aplikace se automaticky obnoví, když kurzor myši vstoupí zpět do okna aplikace.\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"Neustálé obnovování okna\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"Pokud je tato možnost zapnuta, bude okno aplikace neustále překreslováno, i pokud není používána. Vypnutí pomůže snížit využití procesoru a grafické karty při nečinnosti.\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"Povolit průhlednost hlavního okna\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"Pokud povoleno, tak se může aplikační okno stát průhledným. Ovlivňuje výkon, takže ponechte vypnuto, pokud funkci nepotřebujete.\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"Použít atrapu zvukového ovladače\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"Renderer:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"Specifikuje grafický ovladač pro vykreslení aplikace. GLES2 je vhodnější pro starší a pomalejší zařízení, ale neumožňuje použití některých funkcí dostupných pouze s GLES3.\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"Ovladač tabletu:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"Specifikuje ovladač tabletu používaného ve Windows. Pokud máte povolen Windows Ink, vyberte winink.\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Přidat rozšíření\"\n\nmsgid \"Enable\"\nmsgstr \"Povolit\"\n\nmsgid \"Disable\"\nmsgstr \"Zakázat\"\n\nmsgid \"Uninstall\"\nmsgstr \"Odstranit\"\n\nmsgid \"Open Folder\"\nmsgstr \"Otevřít složku\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"Vyhledat online\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"Hledat...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"Štítky:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"Stáhnout\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"Jste si jisti, že chcete povolit toto rozšíření? Ujistěte se, že povolujete pouze rozšíření z duvěrýhodných zdrojů.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"Jste si jisti, že chcete odstranit toto rozšíření?\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"Dynamika vstupu\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"Stabilizátor\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"Tlak\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"Rychlost\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"Alfa\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"Velikost\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"Limity hodnot\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"Prahové hodnoty\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"Začátek\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"Konec\"\n\nmsgid \"Brush:\"\nmsgstr \"Štětec:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Vybrat štětec\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"Výchozí štětce\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Pixelový štětec\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Kruhový štětec\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Vyplněný kruhový štětec\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"Štětce z projektu\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"Štětce ze souboru\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"Sníh\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"Náhodné štětce ze souboru\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"Tráva\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"Hvězda\"\n\nmsgid \"Custom brush\"\nmsgstr \"Vlastní štětec\"\n\nmsgid \"Brush size:\"\nmsgstr \"Velikost štětce:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"Nastavení otočení\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"Převrátit:\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"Otočit:\"\n\nmsgid \"Overwrite color\"\nmsgstr \"Přepsat barvu\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Přepíše barvu namísto smíchání. Tato možnost je relevantní pouze pro barvy, které jsou průhledné.\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Pixel perfekt\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"Pixel perfekt\\n\"\n\"Vyhlazuje čáry odstraněním nadbytečných pixelů na okrajích\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"Zamknout alfa kanál\"\n\nmsgid \"Fill inside\"\nmsgstr \"Vyplnit uvnitř\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"Rozestup\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"Mezera X:\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"Mezera Y:\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Vyplnit tvar\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"Vyplní nakreslený tvar barvou, jinak zůstane tvar dutý\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"Hustota:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: Barva ze štětce, 100: aktuálně vybraná barva\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"Vyplnit oblast:\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"Podobná oblast\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"Podobná barva\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"Celý výběr\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"Vyplnit pomocí:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"Vybraná barva\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Šablona\"\n\nmsgid \"Offset\"\nmsgstr \"Odsazení\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Jednoduché stínování\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Posun odstínu\"\n\nmsgid \"Lighten\"\nmsgstr \"Zesvětlení\"\n\nmsgid \"Darken\"\nmsgstr \"Ztmavení\"\n\nmsgid \"Amount:\"\nmsgstr \"Množství:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Intenzita zesvětlení/ztmavení\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"Nahrazení barev\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"Barvy vpravo:\"\n\nmsgid \"Pick for:\"\nmsgstr \"Vybrat pro:\"\n\nmsgid \"Left Color\"\nmsgstr \"Levá barva\"\n\nmsgid \"Right Color\"\nmsgstr \"Pravá barva\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"Režim výběru:\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"Horní barva\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"Současná vrstva\"\n\nmsgid \"Mode:\"\nmsgstr \"Režim:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Přiblížit\"\n\nmsgid \"Zoom out\"\nmsgstr \"Oddálit\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"Možnosti\"\n\nmsgid \"Options:\"\nmsgstr \"Možnosti:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"Přizpůsobit snímku\"\n\nmsgid \"100% Zoom\"\nmsgstr \"100% přiblížení\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"Nahradit výběr\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"Přidat k výběru\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"Odebrat z výběru\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"Průnik výběrů\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"Styl:\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"Běžný\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"Tučně\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"Kurzíva\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"Tučná kurzíva\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"Vyhlazení\"\n\nmsgid \"Grayscale\"\nmsgstr \"Odstíny šedi\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"Zrcadlení\"\n\nmsgid \"Horizontal\"\nmsgstr \"Vodorovně\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Povolit kreslení ve vodorovném zrcadlení\"\n\nmsgid \"Vertical\"\nmsgstr \"Svisle\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Povolit kreslení ve svislém zrcadlení\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"Aktuální snímek:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"Režim animace:\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"Aktuální snímek jako spritesheet\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"Přeskočit na první snímek\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"Přejít na předchozí snímek\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"Přehrát animaci pozpátku\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"Přehrát animaci vpřed\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"Přejít na další snímek\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"Přeskočit na poslední snímek\"\n\nmsgid \"Timeline settings\"\nmsgstr \"Nastavení časové osy\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Povolit/zakázat onion skinning\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"Kolik snímků za vteřinu by měl mít náhled animace?\\n\"\n\"Čím více FPS, tím rychleji je animace přehrávána.\"\n\nmsgid \"No loop\"\nmsgstr \"Bez smyčky\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Cyklická smyčka\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Ping pong smyčka\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Onion skinning:\"\n\nmsgid \"Past Frames\"\nmsgstr \"Předchozí snímky\"\n\nmsgid \"Future Frames\"\nmsgstr \"Budoucí snímky\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Spravovat snímkové štítky\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Vlastnosti snímkového štítku\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Přidat nový snímkový štítek\"\n\nmsgid \"Name:\"\nmsgstr \"Název:\"\n\nmsgid \"From:\"\nmsgstr \"Od:\"\n\nmsgid \"To:\"\nmsgstr \"Do:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"Animace se přehrává pouze na snímcích se stejným štítkem\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Štítek %s (Snímek %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Štítek %s (Snímky %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Pokud je vybráno, animace se přehrává pouze na snímcích, které mají stejný štítek.\\n\"\n\"Pokud ne, animace bude přehrávána pro všechny snímky a ignoruje štítky.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"Velikost buňky:\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"Barevný režim\"\n\nmsgid \"Show past frames:\"\nmsgstr \"Zobrazit předchozí snímky:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"Zobrazit následující snímky:\"\n\nmsgid \"Above canvas\"\nmsgstr \"Nad plátnem\"\n\nmsgid \"Below canvas\"\nmsgstr \"Pod plátnem\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"Pokud chcete, aby byla vrstva ignorována v onion skinningu, tak přidejte \\\"_io\\\" koncovku do jména vrstvy.\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Přidat nový snímek\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Odebrat snímek\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Naklonovat snímek\"\n\nmsgid \"Move Left\"\nmsgstr \"Přesunout doleva\"\n\nmsgid \"Move Right\"\nmsgstr \"Přesunout doprava\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"Vybrat pixely\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"Propojit buňky s\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"Rozpojit buňky\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"Přehrát zde zvuk\"\n\nmsgid \"Properties\"\nmsgstr \"Nastavení\"\n\nmsgid \"Project Properties\"\nmsgstr \"Nastavení projektu\"\n\nmsgid \"Frame properties\"\nmsgstr \"Vlastnosti snímku\"\n\nmsgid \"Layer properties\"\nmsgstr \"Vlastnosti vrstvy\"\n\nmsgid \"Cel properties\"\nmsgstr \"Vlastnosti buňky\"\n\nmsgid \"Tag properties\"\nmsgstr \"Vlastnosti štítku\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"Nový štítek\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"Importovat štítek\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"Převrátit snímky\"\n\nmsgid \"Layer\"\nmsgstr \"Vrstva\"\n\nmsgid \"Group\"\nmsgstr \"Skupina\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"Mapa dlaždic\"\n\nmsgid \"Audio\"\nmsgstr \"Zvuk\"\n\nmsgid \"Layers\"\nmsgstr \"Vrstvy\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"Ořezová maska\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Vytvořit novou vrstvu\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"Přidat pixelovou vrstvu\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"Přidat skupinovou vrstvu\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"Přidat 3D vrstvu\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"Přidat vrstvu s mapou dlaždic\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"Přidat zvukovou vrstvu\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Odstranit aktuální vrstvu\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Přesunout aktuální vrstvu nahoru\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Přesunout aktuální vrstvu dolů\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Naklonovat aktuální vrstvu\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Sloučit aktuální vrstvu s vrstvou níže\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"Režim prolnutí:\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"Normální\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"Násobit\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"Barevné projasnění\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"Lineární projasnění\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"Obrazovka\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"Zastření barev\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"Kontrast\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"Překrytí\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"Měkké světlo\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"Tvrdé světlo\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"Inverze\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"Rozdíl\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"Vyloučení\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"Odečíst\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"Dělení\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"Komponent\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"Odstín\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"Sytost\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"Barva\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"Světelnost\"\n\nmsgid \"Opacity:\"\nmsgstr \"Průhlednost:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"Průhlednost dlaždicového režimu:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Přepnout viditelnost vrstvy\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Zamknout/odemknout vrstvu\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Snímek: %s, Vrstva: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"Povolit/zakázat automatické propojení nových buněk při vytváření nových snímků\\n\\n\"\n\"Propojené buňky sdílejí obsah přes vícero snímků\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"Rozbalit/sbalit skupinu\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"Zvukový soubor:\"\n\nmsgid \"Load file\"\nmsgstr \"Načíst soubor\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"Paleta\"\n\nmsgid \"Palettes\"\nmsgstr \"Palety\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Přidat novou paletu\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Upravit aktuálně vybranou paletu\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Vyberte paletu\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Zpět: Nakreslit\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Znovu: Nakreslit\"\n\nmsgid \"Undo: Select\"\nmsgstr \"Zpět: Výběr\"\n\nmsgid \"Redo: Select\"\nmsgstr \"Znovu: Výběr\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Zpět: Škálování\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Znovu: Škálování\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Zpět: Přidat vrstvu\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Znovu: Přidat vrstvu\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Zpět: Odebrat vrstvu\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Znovu: Odebrat vrstvu\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Zpět: Sloučit vrstvu\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Znovu: Sloučit vrstvu\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Zpět: Změnit pořadí vrstev\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Znovu: Změnit pořadí vrstev\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Zpět: Přidat snímek\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Znovu: Přidat snímek\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Zpět: Odebrat snímek\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Znovu: Odebrat snímek\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Zpět: Změnit pořadí snímků\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Znovu: Změnit pořadí snímků\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Zpět: Smazat vlastní štětec\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Znovu: Smazat vlastní štětec\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"Zpět: Upravit snímkový štítek\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"Znovu: Upravit snímkový štítek\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"Zpět: Odstranit snímkový štítek\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"Vpřed: Odstranit snímkový štítek\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"Zpět: Upravit délku snímku\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"Znovu: Upravit délku snímku\"\n\nmsgid \"Move Guide\"\nmsgstr \"Přesunout vodítko\"\n\nmsgid \"File saved\"\nmsgstr \"Soubor uložen\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"Otevření souboru se nezdařilo. Chybový kód %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"Soubor se nepodařilo uložit. Kód chyby %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"Export videa selhal. Ujistěte se, že je FFMPEG správně nainstalován.\"\n\nmsgid \"File(s) exported\"\nmsgstr \"Soubor(y) exportován(y)\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Nová prázdná paleta\"\n\nmsgid \"Import Palette\"\nmsgstr \"Importovat paletu\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Vytvořit paletu z aktuálního spritu\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Název palety:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Název barvy:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"Použít aktuální barvy vlevo a vpravo\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Vytvořit novou prázdnou paletu?\"\n\nmsgid \"Error\"\nmsgstr \"Chyba\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Chyba: Paleta musí mít platný název.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Neplatný soubor palety!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Upravit paletu\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"Vytvořit barvy s alfa komponentou\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"Získat barvy pouze z výběru\"\n\nmsgid \"Get colors from\"\nmsgstr \"Získat barvy z\"\n\nmsgid \"Patrons:\"\nmsgstr \"Patroni:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"Chcete, aby vaše jméno nebo firma, byly zobrazeny na úvodní obrazovce?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Staňte se platinovým sponzorem\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Staňte se zlatým sponzorem\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Staňte se patronem\"\n\nmsgid \"Don't show again\"\nmsgstr \"Příště již nezobrazovat\"\n\nmsgid \"Image Options\"\nmsgstr \"Možnosti obrázku\"\n\nmsgid \"Default width:\"\nmsgstr \"Výchozí šířka:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"Výchozí šířka nového obrázku\"\n\nmsgid \"Default height:\"\nmsgstr \"Výchozí výška:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"Výchozí výška nového obrázku\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Výchozí barva výplně:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"Výchozí barva pozadí nového obrázku\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"Uzamknout poměr stran\"\n\nmsgid \"Portrait\"\nmsgstr \"Na výšku\"\n\nmsgid \"Landscape\"\nmsgstr \"Na šířku\"\n\nmsgid \"Templates:\"\nmsgstr \"Šablony:\"\n\nmsgid \"Preset\"\nmsgstr \"Předvolba\"\n\nmsgid \"Preset:\"\nmsgstr \"Předvolba:\"\n\nmsgid \"Default\"\nmsgstr \"Výchozí\"\n\nmsgid \"Custom\"\nmsgstr \"Vlastní\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Obdélníkový výběr\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"Eliptický výber\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"Polygonální výběr\"\n\nmsgid \"Select By Color\"\nmsgstr \"Výběr podle barvy\"\n\nmsgid \"Magic Wand\"\nmsgstr \"Kouzelná hůlka\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"Laso/volný výběr\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"Přesun obrázku\"\n\nmsgid \"Zoom\"\nmsgstr \"Přiblížení/oddálení\"\n\nmsgid \"Pan\"\nmsgstr \"Posun plátna\"\n\nmsgid \"Color Picker\"\nmsgstr \"Výběr barvy\"\n\nmsgid \"Pencil\"\nmsgstr \"Tužka\"\n\nmsgid \"Eraser\"\nmsgstr \"Guma\"\n\nmsgid \"Bucket\"\nmsgstr \"Kbelík\"\n\nmsgid \"Shading Tool\"\nmsgstr \"Stínování\"\n\nmsgid \"Line Tool\"\nmsgstr \"Čára\"\n\nmsgid \"Curve Tool\"\nmsgstr \"Křivka\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"Obdélník\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"Elipsa\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Prohodit barvy\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Nastavit zkratku\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Stiskněte klávesu nebo kombinaci kláves pro nastavení zkratky\"\n\nmsgid \"Already assigned\"\nmsgstr \"Již přiřazeno\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Levý nástroj:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Nástroj přiřazený k levému tlačítku myši\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Pravý nástroj:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Nástroj přiřazený k pravému tlačítku myši\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"Nelze nalézt soubor posledního projektu.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"Soubor projektu nebyl nalezen.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Zatím jste neuložili ani neotevřeli žádný projekt v Pixeloramě!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Otevřít poslední projekt\"\n\nmsgid \"Open last project...\"\nmsgstr \"Otevřít poslední projekt...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Po spuštění otevřít poslední projekt\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Otevřít po spuštění naposledy otevřený projekt\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"Potvrzení ukončení\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"Cesta k FFMPEG\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Povolit automatické ukládání\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Interval automatického ukládání:\"\n\nmsgid \"minute(s)\"\nmsgstr \"minuta(y)\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"Exportovat JSON data\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"Rozdělit vrstvy\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"Zahrnout snímkové štítky do názvu souboru\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"Vytvořit novou složku pro každý snímkový štítek\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"Oddělovací znak(y):\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"Oříznout obsah obrázku na výběr\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"Exportovat pouze obsah, který je v rámci označené oblasti.\"\n\nmsgid \"Close\"\nmsgstr \"Zavřít\"\n\nmsgid \"Discard All\"\nmsgstr \"Zahodit vše\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"Záloha znovu načtena\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Odstranit aktuálně vybranou paletu\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"Jste si jisti, že chcete odstranit tuto paletu? (Nevratná změna)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Nelze odstranit více palet!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Nelze odstranit paletu, protože neexistuje!\"\n\nmsgid \"and\"\nmsgstr \"a\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Přesunout vybraný snímek doleva.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Přesunout vybraný snímek doprava.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"Uživatelská data:\"\n\nmsgid \"Duration\"\nmsgstr \"Trvání\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"Obě osy\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"Osa X\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Osa Y\"\n\nmsgid \"Create a new palette\"\nmsgstr \"Vytvořit novou paletu\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"Komentář:\"\n\nmsgid \"Empty\"\nmsgstr \"Prázdná\"\n\nmsgid \"From Current Palette\"\nmsgstr \"Z aktuální palety\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"Z aktuálního obrázku\"\n\nmsgid \"From Current Selection\"\nmsgstr \"Z aktuálního výběru\"\n\nmsgid \"Add a new color\"\nmsgstr \"Přidat novou barvu\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"Odstranit vybranou barvu\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"Seřadit paletu\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"Převrátit barvy\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"Seřadit podle odstínu\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"Seřadit podle saturace\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"Seřadit podle hodnoty\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"Řadit podle světlosti\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"Seřadit podle červené\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"Seřadit podle zelené\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"Seřadit podle modré\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"Seřadit podle alfa kanálu\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"Paleta s totožným jménem již existuje!\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"Název palety je povinný!\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"Snížení velikosti palety vyresetuje pozice barev.\\n\"\n\"Barvy, které se nevejdou do nové velikosti, budou ztraceny!\"\n\nmsgid \"Position:\"\nmsgstr \"Pozice:\"\n\nmsgid \"Tools\"\nmsgstr \"Nástroje\"\n\nmsgid \"Main Canvas\"\nmsgstr \"Hlavní plátno\"\n\nmsgid \"Second Canvas\"\nmsgstr \"Druhé plátno\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"Animační panel\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"Náhled plátna\"\n\nmsgid \"Color Pickers\"\nmsgstr \"Výběry barvy\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"Globální možnosti nástrojů\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"Možnosti levého nástroje\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"Možnosti pravého nástroje\"\n\nmsgid \"Reference Images\"\nmsgstr \"Referenční obrázky\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"Perspektivní vodítka\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"Nahrávání\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"Dlaždice\"\n\nmsgid \"Crop\"\nmsgstr \"Oříznutí\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"Změnit velikost plátna\"\n\nmsgid \"Margins\"\nmsgstr \"Okraje\"\n\nmsgid \"Position + Size\"\nmsgstr \"Pozice a velikost\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"Uzamčený poměr stran\"\n\nmsgid \"Margins:\"\nmsgstr \"Okraje:\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"Poměr stran:\"\n\nmsgid \"Top:\"\nmsgstr \"Nahoře:\"\n\nmsgid \"Bottom:\"\nmsgstr \"Dole:\"\n\nmsgid \"Left:\"\nmsgstr \"Vlevo:\"\n\nmsgid \"Right:\"\nmsgstr \"Vpravo:\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"Uzamčená velikost\\n\\n\"\n\"Pokud je povoleno, použití nástroje na plátně přesune ořezávací obdélník.\\n\\n\"\n\"Pokud je zakázáno, použití nástroje na plátně, nakreslí obdélník.\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"Úprava 3D tvarů\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"Krychle\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"Koule\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"Kapsle\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"Válec\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"Hranol\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"Torus\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"Rovina\"\n\nmsgid \"Text\"\nmsgstr \"Text\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"Směrové světlo\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"Bodový reflektor\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"Bodové světlo\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"Vlastní model\"\n\nmsgid \"Selected object:\"\nmsgstr \"Vybraný objekt:\"\n\nmsgid \"Add new object\"\nmsgstr \"Přidat nový objekt\"\n\nmsgid \"Remove object\"\nmsgstr \"Odstranit objekt\"\n\nmsgid \"Camera\"\nmsgstr \"Kamera\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"Projekce:\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"Perspektivní\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"Ortogonální\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"Frustum\"\n\nmsgid \"Rotation:\"\nmsgstr \"Otočení:\"\n\nmsgid \"Scale:\"\nmsgstr \"Škála:\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"Prostředí\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"Barva okolního prostředí:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"Energie barvy okolního prostředí:\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"Zobrazeno:\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"Transformace\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"Mesh\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"Zleva doprava:\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"Poloměr:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"Vertikální segmenty:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"Horizontální segmenty:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"Je polokoule:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"Horní poloměr:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"Dolní poloměr:\"\n\nmsgid \"Text:\"\nmsgstr \"Text:\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"Hloubka:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"Velikost pixelu:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"Krok křivky:\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"Vodorovné zarovnání:\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"Svislé zarovnání:\"\n\nmsgid \"Left\"\nmsgstr \"Vlevo\"\n\nmsgid \"Right\"\nmsgstr \"Vpravo\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"Velikost odřádkování:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"Energie:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"Negativ:\"\n\nmsgid \"Shadow:\"\nmsgstr \"Stín:\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"Dosah:\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"Náhled snímku:\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"Animovat\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"Počáteční hodnota:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"Konečná hodnota:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"Začíná pomalu a zrychluje ke konci\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"Začíná rychle a zpomaluje ke konci\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"Nejpomalejší na obou koncích, nejrychlejší uprostřed\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"Nejrychlejší na obou koncích, nejpomalejší uprostřed\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"Kvadratický (mocnina 2)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"Kubický (mocnina 3)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"Kvartický (mocnina 4)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"Kvintický (mocnina 5)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"Exponenciální (mocnina X)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"Druhá odmocnina\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"Sinusioda\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"Vrtění se kolem konců\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"Odrazení na konci\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"Vycouvání na koncích\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"Odpružení ke konci\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"Černobíle\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"Když je do aplikace vložen obrázek, je možné ho importovat jako referenční obrázek.\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"Vyberte níže referenční obrázek pro změnu jeho vlastností.\\n\"\n\"Dokud je obrázek označen, tak není možné kreslit.\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"Odebrat\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"Podržením klávesy Shift a klikem okamžite odstraníte.\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"Jste si jisti, že chcete odebrat referenční obrázek? Nebude smazán ze souborového systému.\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"Přesunout vybraný referenční obrázek doprava\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"Přesunout vybraný referenční obrázek doleva\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"Výběr referenčního obrázku na plátně\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"Přesun referenčního obrázku na plátně\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"Otočení referenčního obrázku na plátně\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"Škálování referenčního obrázku na plátně\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"Žádný\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"Obnovit transformaci\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"Pozice\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"Škála\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"Otočení\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"Filtr\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"Neprůhlednost\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"Limitování barvy\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"Povoleno\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"Efekty vrstvy\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"Přidat efekt\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"Chcete stáhnout obrázek z %s?\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"Sada dlaždic\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"Sada dlaždic:\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"Sady dlaždic\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"Nová sada dlaždic\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"Název sady dlaždic:\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"Velikost dlaždice:\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"Vyberte dlaždici k umístění na plátno.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"Úprava dlaždic na plátně.\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"Kreslit dlaždice\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"Otočit dlaždici doleva (proti směru hodinových ručiček)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"Otočit dlaždici vpravo (ve směru hodinových ručiček)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"Převrátit dlaždici vodorovně\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"Převrátit dlaždici svisle\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"Ruční\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Automaticky\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"Vrstvit\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"Velikost tlačítka dlaždice:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"Zobrazit prázdnou dlaždici:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"Nastavení dlaždice\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"Pravděpodobnost:\"\n\n"
  },
  {
    "path": "Translations/cy_GB.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=6; plural=(n == 0) ? 0 : ((n == 1) ? 1 : ((n == 2) ? 2 : ((n == 3) ? 3 : ((n == 6) ? 4 : 5))));\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: cy\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Welsh\\n\"\n\"Language: cy_GB\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/da_DK.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: da\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Danish\\n\"\n\"Language: da_DK\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"Annullér\"\n\nmsgid \"Open\"\nmsgstr \"Åbn\"\n\nmsgid \"Save\"\nmsgstr \"Gem\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Bekræft venligst...\"\n\nmsgid \"File Name:\"\nmsgstr \"Filnavn:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Projektnavn:\"\n\nmsgid \"Image Size\"\nmsgstr \"Billedstørrelse\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Lærredstørrelse\"\n\nmsgid \"Frame Size\"\nmsgstr \"Rammestørrelse\"\n\nmsgid \"Size:\"\nmsgstr \"Størrelse:\"\n\nmsgid \"Width:\"\nmsgstr \"Bredde:\"\n\nmsgid \"Height:\"\nmsgstr \"Højde:\"\n\nmsgid \"Center\"\nmsgstr \"Centrér\"\n\nmsgid \"File\"\nmsgstr \"Fil\"\n\nmsgid \"Edit\"\nmsgstr \"Redigér\"\n\nmsgid \"Select\"\nmsgstr \"Markér\"\n\nmsgid \"View\"\nmsgstr \"Vis\"\n\nmsgid \"Window\"\nmsgstr \"Vindue\"\n\nmsgid \"Image\"\nmsgstr \"Billede\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"Effekter\"\n\nmsgid \"Help\"\nmsgstr \"Hjælp\"\n\nmsgid \"New\"\nmsgstr \"Ny\"\n\nmsgid \"New...\"\nmsgstr \"Ny...\"\n\nmsgid \"Open...\"\nmsgstr \"Åbn...\"\n\nmsgid \"Save...\"\nmsgstr \"Gem...\"\n\nmsgid \"Save as...\"\nmsgstr \"Gem som...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"Importér\"\n\nmsgid \"Export\"\nmsgstr \"Eksportér\"\n\nmsgid \"Overwrite\"\nmsgstr \"Overskriv\"\n\nmsgid \"Export...\"\nmsgstr \"Eksportér...\"\n\nmsgid \"Export as...\"\nmsgstr \"Eksportér som...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Eksportér PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Eksportér PNG som...\"\n\nmsgid \"Quit\"\nmsgstr \"Afslut\"\n\nmsgid \"Undo\"\nmsgstr \"Fortryd\"\n\nmsgid \"Redo\"\nmsgstr \"Gentag\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"Kopiér\"\n\nmsgid \"Cut\"\nmsgstr \"Klip\"\n\nmsgid \"Paste\"\nmsgstr \"Indsæt\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Indsæt på plads\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"Slet\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Slet Permanent\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Flyt til Papirkurv\"\n\nmsgid \"New Brush\"\nmsgstr \"Ny Pensel\"\n\nmsgid \"Scale Image\"\nmsgstr \"Skalér Billede\"\n\nmsgid \"Pixels\"\nmsgstr \"Pixels\"\n\nmsgid \"Percentage\"\nmsgstr \"Procentdel\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"Farvetilstand:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"Farvetilstand\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"Indekseret\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"Beskær til markering\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"Beskær til indhold\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Ændr størrelse på Lærred\"\n\nmsgid \"Offset Image\"\nmsgstr \"Offset billede\"\n\nmsgid \"Offset:\"\nmsgstr \"Offset:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"Vikle om:\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"Centerrammer\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Rotér Billede\"\n\nmsgid \"Pivot x:\"\nmsgstr \"Pivot x:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"Pivot y:\"\n\nmsgid \"Smear options:\"\nmsgstr \"Muligheder for smøring:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Tolerance:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Indledende vinkel:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"Ombryd streger\"\n\nmsgid \"Clear\"\nmsgstr \"Ryd\"\n\nmsgid \"Invert\"\nmsgstr \"Invertér\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"Rediger\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"Udvid\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"Udvid markering\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"Gråtonevisning\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Spejlbillede\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Spejlvend Horisontalt\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Spejlvend vertikalt\"\n\nmsgid \"Preferences\"\nmsgstr \"Præferencer\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Felt-tilstand\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"Tile Mode Offsets\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Nulstil\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"Brug aktuel ramme\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Nulstil maske\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Vindue Opacitet\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"Vinduesopacitet virker ikke i fuldskærmstilstand.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Sidelayout\"\n\nmsgid \"Panels\"\nmsgstr \"Paneler\"\n\nmsgid \"Layouts\"\nmsgstr \"Layouts\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Flytbare Paneler\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Håndtér Layouts\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"Tilføj\"\n\nmsgid \"Add Layout\"\nmsgstr \"Tilføj Layout\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"Kopiér fra\"\n\nmsgid \"Rename\"\nmsgstr \"Omdøb\"\n\nmsgid \"Rename Layout\"\nmsgstr \"Omdøb layout\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"Nuværende layout\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Er du sikker på, at du vil slette dette layout?\"\n\nmsgid \"Widescreen\"\nmsgstr \"Widescreen\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Tallscreen\"\n\nmsgid \"Mirror View\"\nmsgstr \"Spejlvisning\"\n\nmsgid \"Show Grid\"\nmsgstr \"Vis Gitter\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Vis Pixelgitter\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Vis Linealer\"\n\nmsgid \"Show Guides\"\nmsgstr \"Vis Guider\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Vis Animationstidslinje\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Zen-Tilstand\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Fuldskærmsvisning\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Udfyld med farve:\"\n\nmsgid \"Open a File\"\nmsgstr \"Åbn en Fil\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Åbn Fil(er)\"\n\nmsgid \"Import Options\"\nmsgstr \"Importindstillinger\"\n\nmsgid \"Import as:\"\nmsgstr \"Importér som:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Anvend på alle\"\n\nmsgid \"Recent projects\"\nmsgstr \"Seneste projekter\"\n\nmsgid \"New project\"\nmsgstr \"Nyt projekt\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Spritesheet (nyt lag)\"\n\nmsgid \"New frame\"\nmsgstr \"Ny ramme\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"Nyt lag\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"Ny palet\"\n\nmsgid \"New brush\"\nmsgstr \"Ny Pensel\"\n\nmsgid \"New pattern\"\nmsgstr \"Nyt mønster\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Horisontale rammer:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Vertikale rammer:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"Startramme:\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"Ved ramme:\"\n\nmsgid \"At layer:\"\nmsgstr \"Ved lag:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Penseltype:\"\n\nmsgid \"File brush\"\nmsgstr \"Filpensel\"\n\nmsgid \"Project brush\"\nmsgstr \"Projektpensel\"\n\nmsgid \"Random brush\"\nmsgstr \"Tilfældig pensel\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Gem Sprite som .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Eksportér Sprite som .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Eksportér Sprite\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Fil Eksisterer. Vil du overskrive?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"Mappestien er ikke gyldig!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"Filnavnet er ikke gyldigt!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"Mappestien eller filnavnet er ikke gyldigt!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Eksport er i gang...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"Kan ikke indlæse fil '%s'.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Kan ikke indlæse fil '%s'.\\n\"\n\"Fejlkode: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"Kan ikke indlæse fil '%s'.\\n\"\n\"Dette er ikke en gyldig palet-fil.\"\n\nmsgid \"Frame\"\nmsgstr \"Ramme\"\n\nmsgid \"Frames:\"\nmsgstr \"Rammer:\"\n\nmsgid \"All Frames\"\nmsgstr \"Alle Rammer\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Spritesheet\"\n\nmsgid \"Animation\"\nmsgstr \"Animation\"\n\nmsgid \"Preview:\"\nmsgstr \"Forhåndsvisning:\"\n\nmsgid \"Frame:\"\nmsgstr \"Ramme:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Orientering:\"\n\nmsgid \"Browse\"\nmsgstr \"Browse\"\n\nmsgid \"Resize:\"\nmsgstr \"Tilpas størrelse:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"Kvalitet:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Annullér Eksport\"\n\nmsgid \"Alert!\"\nmsgstr \"Opmærksom!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Vælg Nuværende Mappe\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Åbn en Mappe\"\n\nmsgid \"Background:\"\nmsgstr \"Baggrund:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"Lag:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Synlige lag\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"Retning:\"\n\nmsgid \"Forward\"\nmsgstr \"Frem\"\n\nmsgid \"Backwards\"\nmsgstr \"Tilbage\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Ping-Pong\"\n\nmsgid \"Columns\"\nmsgstr \"Kolonner\"\n\nmsgid \"Columns:\"\nmsgstr \"Kolonner:\"\n\nmsgid \"Rows\"\nmsgstr \"Rækker\"\n\nmsgid \"Rows:\"\nmsgstr \"Rækker:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"Gem en fil\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"Gå til forrige mappe.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"Gå til næste mappe.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"Sti:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Mapper & Filer:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Opret Mappe\"\n\nmsgid \"File:\"\nmsgstr \"Fil:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"Avancerede indstillinger\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolation:\"\n\nmsgid \"Nearest\"\nmsgstr \"Nærmest\"\n\nmsgid \"Bilinear\"\nmsgstr \"Bilinear\"\n\nmsgid \"Cubic\"\nmsgstr \"Kubisk\"\n\nmsgid \"Trilinear\"\nmsgstr \"Trilinear\"\n\nmsgid \"Constant\"\nmsgstr \"Konstant\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"Generel\"\n\nmsgid \"Startup\"\nmsgstr \"Opstart\"\n\nmsgid \"Language\"\nmsgstr \"Sprog\"\n\nmsgid \"Interface\"\nmsgstr \"Interface\"\n\nmsgid \"Themes\"\nmsgstr \"Temaer\"\n\nmsgid \"Canvas\"\nmsgstr \"Lærred\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"Markering\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Genveje\"\n\nmsgid \"Backup\"\nmsgstr \"Backup\"\n\nmsgid \"Performance\"\nmsgstr \"Ydeevne\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"Drivere\"\n\nmsgid \"Extensions\"\nmsgstr \"Udvidelser\"\n\nmsgid \"Cursors\"\nmsgstr \"Markører\"\n\nmsgid \"Indicators\"\nmsgstr \"Indikatorer\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"Pixelorama skal genstartes før ændringer træder i kraft.\"\n\nmsgid \"On\"\nmsgstr \"Slået til\"\n\nmsgid \"Restore default value\"\nmsgstr \"Gendan standardværdi\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Glat Zoom\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Tilføjer en glattere overgang når der zoomes ind eller ud\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Tablet-trykfølsomhed:\"\n\nmsgid \"None\"\nmsgstr \"Ingen\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Påvirk Penslens Alfa\"\n\nmsgid \"Color:\"\nmsgstr \"Farve:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Guide farve:\"\n\nmsgid \"System Language\"\nmsgstr \"Systemsprog\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"Skrifttype:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"Skriftstørrelse:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Dæmp brugerflades lysstyrke ved popup-dialog\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"Mørk\"\n\nmsgid \"Gray\"\nmsgstr \"Grå\"\n\nmsgid \"Blue\"\nmsgstr \"Blå\"\n\nmsgid \"Caramel\"\nmsgstr \"Karamel\"\n\nmsgid \"Light\"\nmsgstr \"Lys\"\n\nmsgid \"Purple\"\nmsgstr \"Lilla\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"Tema\"\n\nmsgid \"Buttons\"\nmsgstr \"Knapper\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Ikonfarve fra:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Ikonfarve:\"\n\nmsgid \"Background\"\nmsgstr \"Baggrund\"\n\nmsgid \"Background color from:\"\nmsgstr \"Baggrundsfarve fra:\"\n\nmsgid \"Background color:\"\nmsgstr \"Baggrundsfarve:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"Venstre værktøjsfarve:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"Højre værktøjsfarve:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Værktøjsknap-størrelse:\"\n\nmsgid \"Small\"\nmsgstr \"Lille\"\n\nmsgid \"Big\"\nmsgstr \"Stor\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Påvirk kun det markerede\"\n\nmsgid \"Selected cels\"\nmsgstr \"Markerede celler\"\n\nmsgid \"Current cel\"\nmsgstr \"Nuværende celle\"\n\nmsgid \"Current frame\"\nmsgstr \"Nuværende ramme\"\n\nmsgid \"All frames\"\nmsgstr \"Alle rammer\"\n\nmsgid \"All projects\"\nmsgstr \"Alle projekter\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Invertér Farver\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Ændr Rød Kanal\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Ændr Grøn Kanal\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Ændr Blå Kanal\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Ændr Alpha Kanal\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Desaturation\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Kontur\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Skyggeeffekt\"\n\nmsgid \"Offset X:\"\nmsgstr \"Forskydning X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"Forskydning Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"Skyggefarve:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"Gradient\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"Lineær\"\n\nmsgid \"Radial\"\nmsgstr \"Radial\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"Overgangsstørrelse:\"\n\nmsgid \"Center:\"\nmsgstr \"Centrum:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"Type:\"\n\nmsgid \"Angle:\"\nmsgstr \"Vinkel:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Justér Nuance/Mætning/Værdi\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"Justér HSV\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Nuance:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Mætning:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Værdi:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"Rød\"\n\nmsgid \"Green\"\nmsgstr \"Grøn\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"Anvend\"\n\nmsgid \"Diagonal\"\nmsgstr \"Diagonal\"\n\nmsgid \"Place inside image\"\nmsgstr \"Placér inde i billede\"\n\nmsgid \"Thickness:\"\nmsgstr \"Tykkelse:\"\n\nmsgid \"Colors:\"\nmsgstr \"Farver:\"\n\nmsgid \"Steps:\"\nmsgstr \"Trin:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Vis Splash Screen\"\n\nmsgid \"Online Docs\"\nmsgstr \"Online Dokumentation\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Problem-Tracker\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"Ændringslog\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Om Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - Pixelate your dreams!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Udviklet af Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-nutid af Orama Interactive og bidragsydere\"\n\nmsgid \"Website\"\nmsgstr \"Hjemmeside\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"Kildekode\"\n\nmsgid \"Donate\"\nmsgstr \"Donér\"\n\nmsgid \"Developers\"\nmsgstr \"Udviklere\"\n\nmsgid \"Contributors\"\nmsgstr \"Bidragsydere\"\n\nmsgid \"Donors\"\nmsgstr \"Donorer\"\n\nmsgid \"Translators\"\nmsgstr \"Oversættere\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Licenser\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"Engelsk\"\n\nmsgid \"Greek\"\nmsgstr \"Græsk\"\n\nmsgid \"French\"\nmsgstr \"Fransk\"\n\nmsgid \"German\"\nmsgstr \"Tysk\"\n\nmsgid \"Polish\"\nmsgstr \"Polsk\"\n\nmsgid \"Portuguese\"\nmsgstr \"Portugisisk\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Brasiliansk-Portugisisk\"\n\nmsgid \"Russian\"\nmsgstr \"Russisk\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Forenklet Kinesisk\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Traditionel Kinesisk\"\n\nmsgid \"Italian\"\nmsgstr \"Italiensk\"\n\nmsgid \"Latvian\"\nmsgstr \"Lettisk\"\n\nmsgid \"Spanish\"\nmsgstr \"Spansk\"\n\nmsgid \"Catalan\"\nmsgstr \"Catalansk\"\n\nmsgid \"Esperanto\"\nmsgstr \"Esperanto\"\n\nmsgid \"Indonesian\"\nmsgstr \"Indonesisk\"\n\nmsgid \"Czech\"\nmsgstr \"Tjekkisk\"\n\nmsgid \"Arabic\"\nmsgstr \"Arabisk\"\n\nmsgid \"Turkish\"\nmsgstr \"Tyrkisk\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Norsk Bokmål\"\n\nmsgid \"Korean\"\nmsgstr \"Koreansk\"\n\nmsgid \"Hungarian\"\nmsgstr \"Ungarsk\"\n\nmsgid \"Romanian\"\nmsgstr \"Rumænsk\"\n\nmsgid \"Japanese\"\nmsgstr \"Japansk\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Ukrainsk\"\n\nmsgid \"Danish\"\nmsgstr \"Dansk\"\n\nmsgid \"Swedish\"\nmsgstr \"Svensk\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Serbisk (Kyrillisk)\"\n\nmsgid \"Dutch\"\nmsgstr \"Hollandsk\"\n\nmsgid \"Belarusian\"\nmsgstr \"Belarussisk\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"Hovedudvikler\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"UI-designer\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"Udviklere\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Kunst af: %s\"\n\nmsgid \"untitled\"\nmsgstr \"unavngivet\"\n\nmsgid \"imported\"\nmsgstr \"importeret\"\n\nmsgid \"copy\"\nmsgstr \"kopi\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Er du sikker på at du vil afslutte Pixelorama?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Ugemt Billede\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Du har ændringer, som ikke er gemt. Hvis du fortsætter vil ændringerne blive tabt.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Gem før programmet afslutter?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Gem & Afslut\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Afslut uden at gemme\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Rektangulær Markering\\n\\n\"\n\"%s for venstre museknap\\n\"\n\"%s for højre museknap\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Elliptisk Markering\\n\\n\"\n\"%s for venstre museknap\\n\"\n\"%s for højre museknap\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Polygonal Markering\\n\\n\"\n\"%s for venstre museknap\\n\"\n\"%s for højre museknap\\n\\n\"\n\"Dobbeltklik for at forbinde det sidste punkt til startpunktet\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Vælg Ud Fra Farve\\n\\n\"\n\"%s for venstre museknap\\n\"\n\"%s for højre museknap\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Magic Wand\\n\\n\"\n\"%s for venstre museknap\\n\"\n\"%s for højre museknap\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Lasso- / Fri Markering-Værktøj\\n\\n\"\n\"%s for venstre museknap\\n\"\n\"%s for højre museknap\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Flyt\\n\\n\"\n\"%s for venstre museknap\\n\"\n\"%s for højre museknap\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Zoom\\n\\n\"\n\"%s for venstre museknap\\n\"\n\"%s for højre museknap\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Panorér\\n\\n\"\n\"%s for venstre museknap\\n\"\n\"%s for højre museknap\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"Farvevælger\\n\\n\"\n\"%s for venstre museknap\\n\"\n\"%s for højre museknap\\n\\n\"\n\"Vælg en farve fra en pixel af spriten\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Blyant\\n\\n\"\n\"%s for venstre museknap\\n\"\n\"%s for højre museknap\\n\\n\"\n\"Hold %s for at lave en linje\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Viskelæder\\n\\n\"\n\"%s for venstre museknap\\n\"\n\"%s for højre museknap\\n\\n\"\n\"Hold %s for at lave en linje\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Spand\\n\\n\"\n\"%s for venstre museknap\\n\"\n\"%s for højre museknap\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Skyggelægningsværktøj\\n\\n\"\n\"%s for venstre museknap\\n\"\n\"%s for højre museknap\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Linjeværktøj\\n\\n\"\n\"%s for venstre museknap\\n\"\n\"%s for højre museknap\\n\\n\"\n\"Hold %s for at fastgøre linjens vinkel\\n\"\n\"Hold %s for at centrere formen på oprindelsespunktet af klikket\\n\"\n\"Hold %s for at fortrænge formens begyndelsespunkt\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Rektangel-værktøj\\n\\n\"\n\"%s for venstre museknap\\n\"\n\"%s for højre museknap\\n\\n\"\n\"Hold %s for at oprette en 1:1 form\\n\"\n\"Hold %s for at centrere formen på oprindelsespunktet af klikket\\n\"\n\"Hold %s for at fortrænge formens begyndelsespunkt\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Ellipse Tool\\n\\n\"\n\"%s for venstre museknap\\n\"\n\"%s for højre museknap\\n\\n\"\n\"Hold %s for at oprette en 1:1 form\\n\"\n\"Hold %s for at centrere formen på oprindelsespunktet af klikket\\n\"\n\"Hold %s for at fortrænge formens begyndelsespunkt\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"Rektangel\"\n\nmsgid \"Ellipse\"\nmsgstr \"Ellipse\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Vælg en farve til det venstre værktøj\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Vælg en farve til det højre værktøj\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Nulstil farverne til deres standardindstilling (sort for venstre, hvid for højre)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"Venstre værktøj\"\n\nmsgid \"Right tool\"\nmsgstr \"Højre værktøj\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Venstre pixel-indikator\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Vis venstre museknap pixel-indikator eller pensel på lærredet når der tegnes\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Højre pixel-indikator\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Vis højre museknap pixel-indikator eller pensel på lærredet når der tegnes\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Vis venstre værktøjsikon\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Fremviser det valgte venstre værktøjs ikon ved siden af markøren på lærredet\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Vis højre værktøjsikon\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Fremviser det valgte højre værktøjs ikon ved siden af markøren på lærredet\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"Brug krydsmarkør til lærredet\"\n\nmsgid \"Guides\"\nmsgstr \"Guider\"\n\nmsgid \"Guides color:\"\nmsgstr \"Guiders farve:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"En farve på linealguider, som vises på lærredet\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"Gitter\"\n\nmsgid \"Grid type:\"\nmsgstr \"Gitter-type:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Indstiller typen af gitteret mellem rektangulær, isometrisk eller begge\"\n\nmsgid \"Rectangular\"\nmsgstr \"Rektangulær\"\n\nmsgid \"Isometric\"\nmsgstr \"Isometrisk\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"Alle\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"Hvis deaktiveret, gitteret vil kun blive tegnet over det oprindelige billede\"\n\nmsgid \"Grid color:\"\nmsgstr \"Gitterfarve:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"En farve på gitteret\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Pixelgitter\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Vis ved zoom:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Pixelgitter farve:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"En farve på pixelgitteret\"\n\nmsgid \"Transparency\"\nmsgstr \"Transparens\"\n\nmsgid \"Checker size:\"\nmsgstr \"Tern-størrelse:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Størrelse af den gennemsigtige tern-baggrund\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Tern-farve 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"Første farve på den gennemsigtige tern-baggrund\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Tern-farve 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"Anden farve på den gennemsigtige tern-baggrund\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"Den gennemsigtige tern-baggrund følger lærredets bevægelser\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"Den gennemsigtige tern-baggrund følger lærredets zoom-niveau\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"Kantfarve 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Kantfarve 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"Indstil applikationens FPS-grænse:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"Renderer:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"Angiver rendereren/videodriveren, der anvendes. GLES2 er bedre for ældre og low-end enheder, men GLES3 kan tilbyde flere funktioner.\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"Tablet driver:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"Angiver tabletdriveren, der bruges på Windows. Hvis du har Windows Ink aktiveret, skal du vælge winink.\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Tilføj Udvidelse\"\n\nmsgid \"Enable\"\nmsgstr \"Aktivér\"\n\nmsgid \"Disable\"\nmsgstr \"Deaktivér\"\n\nmsgid \"Uninstall\"\nmsgstr \"Afinstallér\"\n\nmsgid \"Open Folder\"\nmsgstr \"Åbn Mappe\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"Pensel:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Vælg en pensel\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Pixelpensel\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Cirkelpensel\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"Brugerdefineret pensel\"\n\nmsgid \"Brush size:\"\nmsgstr \"Penselstørrelse:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Pixel Perfect\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"Udfyld indersiden\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Udfyld Form\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"Udfyld område:\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"Udfyld med:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"Valgt farve\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Mønster\"\n\nmsgid \"Offset\"\nmsgstr \"Forskydning\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Simpel Skygge\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Farvetoneskiftning\"\n\nmsgid \"Lighten\"\nmsgstr \"Lysne\"\n\nmsgid \"Darken\"\nmsgstr \"Mørkne\"\n\nmsgid \"Amount:\"\nmsgstr \"Mængde:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Lysne/Mørkne mængde\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"Vælg for:\"\n\nmsgid \"Left Color\"\nmsgstr \"Venstre Farve\"\n\nmsgid \"Right Color\"\nmsgstr \"Højre Farve\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"Indstilling:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Zoom ind\"\n\nmsgid \"Zoom out\"\nmsgstr \"Zoom ud\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"Indstillinger:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"Tilpas til ramme\"\n\nmsgid \"100% Zoom\"\nmsgstr \"100% Zoom\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"Spejling\"\n\nmsgid \"Horizontal\"\nmsgstr \"Horisontal\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Aktivér horisontal spejltegning\"\n\nmsgid \"Vertical\"\nmsgstr \"Vertikal\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Aktivér vertikal spejltegning\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"Nuværende ramme:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"Ingen løkke\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Ping-pong løkke\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"Navn:\"\n\nmsgid \"From:\"\nmsgstr \"Fra:\"\n\nmsgid \"To:\"\nmsgstr \"Til:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"Vis tidligere rammer:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"Over lærred\"\n\nmsgid \"Below canvas\"\nmsgstr \"Under lærred\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Tilføj en ny ramme\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Klon Ramme\"\n\nmsgid \"Move Left\"\nmsgstr \"Flyt til Venstre\"\n\nmsgid \"Move Right\"\nmsgstr \"Flyt til Højre\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"Lag\"\n\nmsgid \"Group\"\nmsgstr \"Gruppe\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"Lag\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Opret et nyt lag\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Fjern nuværende lag\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Flyt det nuværende lag op\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Flyt det nuværende lag ned\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Klon nuværende lag\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Sammenflet nuværende lag med det nedenfor\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"Opacitet:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"Palet\"\n\nmsgid \"Palettes\"\nmsgstr \"Paletter\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Tilføj en ny palet\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Vælg en palet\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Fortryd: Tegn\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Gentag: Tegn\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Fortryd: Skalering\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Fortryd: Tilføj Lag\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Fortryd: Fjern Lag\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Fortryd: Sammenflet Lag\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Gentag: Sammenflet Lag\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"Flyt Guide\"\n\nmsgid \"File saved\"\nmsgstr \"Fil gemt\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"Filen kunne ikke åbnes. Fejlkode %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"Filen kunne ikke gemmes. Fejlkode %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Ny Tom Palet\"\n\nmsgid \"Import Palette\"\nmsgstr \"Importér Palet\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Opret Palet Fra Nuværende Sprite\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Paletnavn:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Farvenavn:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"Fejl\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Fejl: Palet skal have et gyldigt navn.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Ugyldig Paletfil!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Redigér Palet\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"Hent kun farver fra markering\"\n\nmsgid \"Get colors from\"\nmsgstr \"Hent farver fra\"\n\nmsgid \"Patrons:\"\nmsgstr \"Patrons:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Bliv en Platinsponsor\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Bliv en Guldsponsor\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Bliv en Patron\"\n\nmsgid \"Don't show again\"\nmsgstr \"Vis ikke igen\"\n\nmsgid \"Image Options\"\nmsgstr \"Billedindstillinger\"\n\nmsgid \"Default width:\"\nmsgstr \"Standardbredde:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"Standardhøjde:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"Portræt\"\n\nmsgid \"Landscape\"\nmsgstr \"Landskab\"\n\nmsgid \"Templates:\"\nmsgstr \"Skabeloner:\"\n\nmsgid \"Preset\"\nmsgstr \"Forudindstilling\"\n\nmsgid \"Preset:\"\nmsgstr \"Forudindstilling:\"\n\nmsgid \"Default\"\nmsgstr \"Standard\"\n\nmsgid \"Custom\"\nmsgstr \"Brugerdefineret\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"Lasso- / Fri Markering-Værktøj\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"Flyt\"\n\nmsgid \"Zoom\"\nmsgstr \"Zoom\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"Farvevælger\"\n\nmsgid \"Pencil\"\nmsgstr \"Blyant\"\n\nmsgid \"Eraser\"\nmsgstr \"Viskelæder\"\n\nmsgid \"Bucket\"\nmsgstr \"Spand\"\n\nmsgid \"Shading Tool\"\nmsgstr \"Skyggelægning Værktøj\"\n\nmsgid \"Line Tool\"\nmsgstr \"Linjeværktøj\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"Rektangelværktøj\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Venstre Værktøj:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Højre Værktøj:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"minut(ter)\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"Luk\"\n\nmsgid \"Discard All\"\nmsgstr \"Kassér Alle\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Du kan ikke fjerne flere paletter!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Kan ikke fjerne paletten, fordi den ikke eksisterer!\"\n\nmsgid \"and\"\nmsgstr \"og\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Flyt den markerede ramme til venstre.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Flyt den markerede ramme til højre.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"Varighed\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"Opret en ny palet\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"Kommentar:\"\n\nmsgid \"Empty\"\nmsgstr \"Tom\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"Tilføj en ny farve\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"Fjern en valgt farve\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"Position:\"\n\nmsgid \"Tools\"\nmsgstr \"Værktøjer\"\n\nmsgid \"Main Canvas\"\nmsgstr \"Primære Lærred\"\n\nmsgid \"Second Canvas\"\nmsgstr \"Sekundære Lærred\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"Animationstidslinje\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"Lærredforhåndsvisning\"\n\nmsgid \"Color Pickers\"\nmsgstr \"Farvevælgere\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"Radius:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Auto\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/de_DE.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: de\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: German\\n\"\n\"Language: de_DE\\n\"\n\"PO-Revision-Date: 2025-11-29 21:33\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"Abbrechen\"\n\nmsgid \"Open\"\nmsgstr \"Öffnen\"\n\nmsgid \"Save\"\nmsgstr \"Speichern\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Bitte bestätigen...\"\n\nmsgid \"File Name:\"\nmsgstr \"Dateiname:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Projektname:\"\n\nmsgid \"Image Size\"\nmsgstr \"Bildgröße\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Leinwandgröße\"\n\nmsgid \"Frame Size\"\nmsgstr \"Framegröße\"\n\nmsgid \"Size:\"\nmsgstr \"Größe:\"\n\nmsgid \"Width:\"\nmsgstr \"Breite:\"\n\nmsgid \"Height:\"\nmsgstr \"Höhe:\"\n\nmsgid \"Center\"\nmsgstr \"Zentrieren\"\n\nmsgid \"File\"\nmsgstr \"Datei\"\n\nmsgid \"Edit\"\nmsgstr \"Bearbeiten\"\n\nmsgid \"Select\"\nmsgstr \"Auswählen\"\n\nmsgid \"View\"\nmsgstr \"Ansicht\"\n\nmsgid \"Window\"\nmsgstr \"Fenster\"\n\nmsgid \"Image\"\nmsgstr \"Bild\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"Projekt\"\n\nmsgid \"Effects\"\nmsgstr \"Effekte\"\n\nmsgid \"Help\"\nmsgstr \"Hilfe\"\n\nmsgid \"New\"\nmsgstr \"Neu\"\n\nmsgid \"New...\"\nmsgstr \"Neu...\"\n\nmsgid \"Open...\"\nmsgstr \"Öffnen...\"\n\nmsgid \"Save...\"\nmsgstr \"Speichern...\"\n\nmsgid \"Save as...\"\nmsgstr \"Speichern als...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"Zusammengeführte Bilder einbeziehen\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"Wenn aktiviert, werden die endgültig zusammengeführten Bilder für jeden Frame in der PXO-Datei gespeichert.\\n\"\n\"Dies vergrößert die Datei, ist aber nützlich für den Import in Drittanbieter-Software\\n\"\n\"oder den CLI-Export. Beim Laden von PXO-Dateien in Pixelorama ist diese Option nicht erforderlich.\"\n\nmsgid \"Import\"\nmsgstr \"Importieren\"\n\nmsgid \"Export\"\nmsgstr \"Exportieren\"\n\nmsgid \"Overwrite\"\nmsgstr \"Überschreiben\"\n\nmsgid \"Export...\"\nmsgstr \"Exportieren...\"\n\nmsgid \"Export as...\"\nmsgstr \"Exportieren als...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"PNG exportieren...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"PNG exportieren als...\"\n\nmsgid \"Quit\"\nmsgstr \"Beenden\"\n\nmsgid \"Undo\"\nmsgstr \"Rückgängig\"\n\nmsgid \"Redo\"\nmsgstr \"Wiederholen\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"Verlauf\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"Ausgangszustand\"\n\nmsgid \"Copy\"\nmsgstr \"Kopieren\"\n\nmsgid \"Cut\"\nmsgstr \"Ausschneiden\"\n\nmsgid \"Paste\"\nmsgstr \"Einfügen\"\n\nmsgid \"Paste in Place\"\nmsgstr \"An Ort einfügen\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"Aus der Zwischenablage einfügen\"\n\nmsgid \"Delete\"\nmsgstr \"Löschen\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Dauerhaft löschen\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"In den Papierkorb verschieben\"\n\nmsgid \"New Brush\"\nmsgstr \"Neuer Pinsel\"\n\nmsgid \"Scale Image\"\nmsgstr \"Bild skalieren\"\n\nmsgid \"Pixels\"\nmsgstr \"Pixel\"\n\nmsgid \"Percentage\"\nmsgstr \"Prozent\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"Farbraum:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"Farbraum\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"Indiziert\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"Auf Auswahl zuschneiden\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"Auf Inhalt zuschneiden\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Leinwandgröße ändern\"\n\nmsgid \"Offset Image\"\nmsgstr \"Bild verschieben\"\n\nmsgid \"Offset:\"\nmsgstr \"Versatz:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"Übergang:\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"Frames zentrieren\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Bild drehen\"\n\nmsgid \"Pivot x:\"\nmsgstr \"Drehpunkt x:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"Drehpunkt y:\"\n\nmsgid \"Smear options:\"\nmsgstr \"Verwisch-Optionen:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Toleranz:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Anfangswinkel:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"Pinselstriche umbinden\"\n\nmsgid \"Clear\"\nmsgstr \"Leeren\"\n\nmsgid \"Invert\"\nmsgstr \"Invertieren\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"Zellenbereich auswählen\"\n\nmsgid \"Modify\"\nmsgstr \"Ändern\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"Erweitern\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"Auswahl erweitern\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"Verkleinern\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"Auswahl verkleinern\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"Rahmen\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"Rahmenauswahl\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"Diamant\"\n\nmsgid \"Circle\"\nmsgstr \"Kreis\"\n\nmsgid \"Square\"\nmsgstr \"Quadrat\"\n\nmsgid \"Grayscale View\"\nmsgstr \"Graustufen-Ansicht\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Bild spiegeln\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Horizontal spiegeln\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Vertikal spiegeln\"\n\nmsgid \"Preferences\"\nmsgstr \"Einstellungen\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"Prozedural\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"Weichzeichner\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"Geladen\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"Leinwand zentrieren\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Kachelmodus\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"Kachelmodus-Versatz\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"X-Basis:\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"Y-Basis:\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"Maskierung:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Zurücksetzen\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"%s zurücksetzen\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"Aktuellen Frame verwenden\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Maske zurücksetzen\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Fensterdeckkraft\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"Fenstertransparenz funktioniert nicht im Vollbildmodus.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Panel-Layout\"\n\nmsgid \"Panels\"\nmsgstr \"Panels\"\n\nmsgid \"Layouts\"\nmsgstr \"Layouts\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Bewegliche Panels\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"Schwebend machen\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Layouts verwalten\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Vorschau\"\n\nmsgid \"Add\"\nmsgstr \"Hinzufügen\"\n\nmsgid \"Add Layout\"\nmsgstr \"Layout hinzufügen\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"%s löschen\"\n\nmsgid \"Copy from\"\nmsgstr \"Kopieren von\"\n\nmsgid \"Rename\"\nmsgstr \"Umbenennen\"\n\nmsgid \"Rename Layout\"\nmsgstr \"Layout umbenennen\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"Aktuelles Layout\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Bist du sicher, dass du dieses Layout löschen möchtest?\"\n\nmsgid \"Widescreen\"\nmsgstr \"Breitbild\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Hochbildschirm\"\n\nmsgid \"Mirror View\"\nmsgstr \"Spiegel-Ansicht\"\n\nmsgid \"Show Grid\"\nmsgstr \"Zeige Raster\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Pixelraster anzeigen\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Zeige Lineale\"\n\nmsgid \"Show Guides\"\nmsgstr \"Hilfslinien anzeigen\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"Maus-Hilfslinien anzeigen\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"Referenzbilder anzeigen\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"Ebeneneffekte anzeigen\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"Einrasten an\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"Einrasten an die rechteckige Rastergrenze\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"An rechteckige Rastermitte einrasten\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"An Hilfslinien einrasten\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"An perspektivische Hilfslinien einrasten\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Zeige Animations-Zeitleiste\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Zen-Modus\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Vollbildmodus\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Fülle mit Farbe:\"\n\nmsgid \"Open a File\"\nmsgstr \"Öffne eine Datei\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Öffne Datei(en)\"\n\nmsgid \"Import Options\"\nmsgstr \"Importoptionen\"\n\nmsgid \"Import as:\"\nmsgstr \"Importiere als:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Auf alle anwenden\"\n\nmsgid \"Recent projects\"\nmsgstr \"Letzte Projekte\"\n\nmsgid \"New project\"\nmsgstr \"Neues Projekt\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"Spritesheet (neues Projekt)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Spritesheet (neue Ebene)\"\n\nmsgid \"New frame\"\nmsgstr \"Neuer Frame\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"Zelle ersetzen\"\n\nmsgid \"New layer\"\nmsgstr \"Neue Ebene\"\n\nmsgid \"New reference image\"\nmsgstr \"Neues Referenzbild\"\n\nmsgid \"New palette\"\nmsgstr \"Neue Palette\"\n\nmsgid \"New brush\"\nmsgstr \"Neuer Pinsel\"\n\nmsgid \"New pattern\"\nmsgstr \"Neues Muster\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Horizontale Frames:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Vertikale Frames:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"Intelligentes Zerteilen\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"Schwellwert:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"Bilder, die eine Seite kleiner als dieser Wert haben, werden den Schwellwert überschreiten\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"Zusammenführungsabstand:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"Bilder, die den Schwellenwert überschreiten, werden zu einem größeren Bild zusammengefügt, wenn sie sich innerhalb dieser Distanz befinden\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"Aktualisieren\"\n\nmsgid \"Start frame:\"\nmsgstr \"Startframe:\"\n\nmsgid \"End frame:\"\nmsgstr \"End-Frame:\"\n\nmsgid \"At frame:\"\nmsgstr \"Bei dem Frame:\"\n\nmsgid \"At layer:\"\nmsgstr \"Bei der Ebene:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Pinseltyp:\"\n\nmsgid \"File brush\"\nmsgstr \"Dateipinsel\"\n\nmsgid \"Project brush\"\nmsgstr \"Projekt-Pinsel\"\n\nmsgid \"Random brush\"\nmsgstr \"Zufälliger Pinsel\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Sprite als .pxo speichern\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Sprite als .png exportieren\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Sprite exportieren\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Datei existiert schon, überschreiben?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"Die folgenden Dateien existieren bereits. Möchtest du sie überschreiben?\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"Verzeichnispfad ist ungültig!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"Dateiname ist ungültig!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"Verzeichnispfad und Dateiname sind ungültig!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Export läuft...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"Kann Datei '%s ' nicht laden.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Kann Datei nicht laden '%s'. Fehlercode: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"Datei '%s' kann nicht geladen werden.\\n\"\n\"Dies ist keine gültige Palettendatei.\"\n\nmsgid \"Frame\"\nmsgstr \"Frame\"\n\nmsgid \"Frames:\"\nmsgstr \"Frames:\"\n\nmsgid \"All Frames\"\nmsgstr \"Alle Frames\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Spritesheet\"\n\nmsgid \"Animation\"\nmsgstr \"Animation\"\n\nmsgid \"Preview:\"\nmsgstr \"Vorschau:\"\n\nmsgid \"Frame:\"\nmsgstr \"Frame:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Orientierung:\"\n\nmsgid \"Browse\"\nmsgstr \"Durchsuchen\"\n\nmsgid \"Resize:\"\nmsgstr \"Größe ändern:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"Qualität:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Export abbrechen\"\n\nmsgid \"Alert!\"\nmsgstr \"Warnung!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Wähle aktuellen Ordner\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Öffne ein Verzeichnis\"\n\nmsgid \"Background:\"\nmsgstr \"Hintergrund:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"Ausgewählte Frames\"\n\nmsgid \"Layers:\"\nmsgstr \"Ebenen:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Sichtbare Ebenen\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"Ausgewählte Ebenen\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"Pixelebene:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"Gruppenebene:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"3D-Ebene:\"\n\nmsgid \"Direction:\"\nmsgstr \"Richtung:\"\n\nmsgid \"Forward\"\nmsgstr \"Vorwärts\"\n\nmsgid \"Backwards\"\nmsgstr \"Rückwärts\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Ping-Pong\"\n\nmsgid \"Columns\"\nmsgstr \"Spalten\"\n\nmsgid \"Columns:\"\nmsgstr \"Spalten:\"\n\nmsgid \"Rows\"\nmsgstr \"Zeilen\"\n\nmsgid \"Rows:\"\nmsgstr \"Zeilen:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"Tags nach Spalte\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"Tags nach Zeile\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"Export-Größen:\"\n\nmsgid \"Save a File\"\nmsgstr \"Datei speichern\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"Zum vorherigen Ordner wechseln.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"Zum nächsten Ordner wechseln.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"Zum übergeordneten Ordner wechseln.\"\n\nmsgid \"Path:\"\nmsgstr \"Pfad:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"Dateien aktualisieren.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"Sichtbarkeit versteckter Dateien umschalten.\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Verzeichnisse & Dateien:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Erstelle Ordner\"\n\nmsgid \"File:\"\nmsgstr \"Datei:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"Alle Dateien\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"Alle erkannt\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"Pixelorama-Projekt\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"PNG-Bild\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"BMP-Bild\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"Radiance HDR-Bild\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"JPEG-Bild\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"SVG-Bild\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"TGA-Bild\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"WebP Bild\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"OpenRaster-Projekt\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"Aseprite Projekt\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"Krita-Projekt\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"Piskel-Projekt\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"Photoshop-Projekt\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"Pixelorama-Palette\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"GIMP palette\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"Erweiterte Optionen\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolation:\"\n\nmsgid \"Nearest\"\nmsgstr \"Nächster Nachbar\"\n\nmsgid \"Bilinear\"\nmsgstr \"Bilinear\"\n\nmsgid \"Cubic\"\nmsgstr \"Kubisch\"\n\nmsgid \"Trilinear\"\nmsgstr \"Trilinear\"\n\nmsgid \"Constant\"\nmsgstr \"Konstant\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"Farbraum\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"Lineares sRGB\"\n\nmsgid \"General\"\nmsgstr \"Allgemein\"\n\nmsgid \"Startup\"\nmsgstr \"Start\"\n\nmsgid \"Language\"\nmsgstr \"Sprache\"\n\nmsgid \"Interface\"\nmsgstr \"Benutzeroberfläche\"\n\nmsgid \"Themes\"\nmsgstr \"Designs\"\n\nmsgid \"Canvas\"\nmsgstr \"Leinwand\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"Zeitachse\"\n\nmsgid \"Selection\"\nmsgstr \"Auswahl\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Tastenkürzel\"\n\nmsgid \"Backup\"\nmsgstr \"Sicherung\"\n\nmsgid \"Performance\"\nmsgstr \"Leistung\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"Treiber\"\n\nmsgid \"Extensions\"\nmsgstr \"Erweiterungen\"\n\nmsgid \"Cursors\"\nmsgstr \"Mauszeiger\"\n\nmsgid \"Indicators\"\nmsgstr \"Indikatoren\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"Pixelorama muss neu gestartet werden, damit die Änderungen wirksam werden.\"\n\nmsgid \"On\"\nmsgstr \"An\"\n\nmsgid \"Restore default value\"\nmsgstr \"Standardeinstellungen wiederherstellen\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Weicher Zoom\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Fügt einen glatteren Übergang beim Zoomen hinzu\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"Ganzzahliger Zoom\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"Beschränkt den Wert auf eine ganzzahliges Vielfaches von 100%\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Tablett-Druckempfindlichkeit:\"\n\nmsgid \"None\"\nmsgstr \"Keine\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Pinseldeckkraft beeinflussen\"\n\nmsgid \"Color:\"\nmsgstr \"Farbe:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Hilfslinienfarbe:\"\n\nmsgid \"System Language\"\nmsgstr \"Systemsprache\"\n\nmsgid \"Display scale:\"\nmsgstr \"Anzeigeskalierung:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"Schriftart:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"Schriftgröße:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"Bildschirmorientierung:\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Oberfläche bei Dialogen abdunkeln\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"Benachrichtigungsbeschriftungen anzeigen\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"Systemeigene Dateidialoge verwenden\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"Wenn diese Einstellung aktiviert ist, werden die systemeigenen Dateidialoge des Betriebssystems anstelle der Dialoge von Pixelorama verwendet.\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"Einzelfenstermodus\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"Wenn diese Einstellung aktiviert ist, werden Pixeloramas Unterfenster in das Hauptfenster eingebettet, andernfalls wird jeder Dialog ein eigenes Fenster.\"\n\nmsgid \"Dark\"\nmsgstr \"Dunkel\"\n\nmsgid \"Gray\"\nmsgstr \"Grau\"\n\nmsgid \"Blue\"\nmsgstr \"Blau\"\n\nmsgid \"Caramel\"\nmsgstr \"Karamell\"\n\nmsgid \"Light\"\nmsgstr \"Hell\"\n\nmsgid \"Purple\"\nmsgstr \"Violett\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"Rosa\"\n\nmsgid \"Theme\"\nmsgstr \"Design\"\n\nmsgid \"Buttons\"\nmsgstr \"Schaltflächen\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Icon-Farbe von:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Icon-Farbe:\"\n\nmsgid \"Background\"\nmsgstr \"Hintergrund\"\n\nmsgid \"Background color from:\"\nmsgstr \"Hintergrundfarbe von:\"\n\nmsgid \"Background color:\"\nmsgstr \"Hintergrundfarbe:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"Einzelwerkzeug-Modus\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"Wenn diese Option aktiviert ist, verwendet die rechte Maustaste immer dasselbe Werkzeug wie die linke Maustaste.\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"Optionen zwischen dem linken und dem rechten Werkzeug teilen\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"Wenn dies aktiviert ist, werden die Optionen zwischen dem linken und rechten Werkzeug synchronisiert.\\n\"\n\"Zum Beispiel verwenden beide Werkzeuge dieselbe Pinselgröße, und eine Änderung bei einem Werkzeug wird sofort beim anderen übernommen.\"\n\nmsgid \"Left tool color:\"\nmsgstr \"Farbe des linken Werkzeugs:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"Farbe des rechten Werkzeugs:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Werkzeug-Schaltflächengröße:\"\n\nmsgid \"Small\"\nmsgstr \"Klein\"\n\nmsgid \"Big\"\nmsgstr \"Groß\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Nur Auswahl beeinflussen\"\n\nmsgid \"Selected cels\"\nmsgstr \"Ausgewählte Zellen\"\n\nmsgid \"Current cel\"\nmsgstr \"Aktuelle Zelle\"\n\nmsgid \"Current frame\"\nmsgstr \"Aktueller Rahmen\"\n\nmsgid \"All frames\"\nmsgstr \"Alle Frames\"\n\nmsgid \"All projects\"\nmsgstr \"Alle Projekte\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Farben umkehren\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Rot-Kanal ändern\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Grün-Kanal ändern\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Blau-Kanal ändern\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Alpha-Kanal ändern\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Entsättigung\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Umriss\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Schlagschatten\"\n\nmsgid \"Offset X:\"\nmsgstr \"Offset X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"Offset Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"Schattenfarbe:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"Gaußsche Weichzeichner\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"Weichzeichner-Typ:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"Stärke:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"Radius:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"Richtung:\"\n\nmsgid \"Gradient\"\nmsgstr \"Gradient\"\n\nmsgid \"Gradient Map\"\nmsgstr \"Verlaufsumsetzung\"\n\nmsgid \"Interpolation\"\nmsgstr \"Interpolation\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"Umkehren\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"Gleichmäßig verteilte Punkte\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"In gleiche Teile teilen\"\n\nmsgid \"Parts:\"\nmsgstr \"Teile:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"Punkt am Ende hinzufügen\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"Wenn diese Option aktiviert ist, wird der letzte Punkt am Ende des Farbverlaufs hinzugefügt.\\n\"\n\"Deaktiviere dies, wenn du den Farbverlauf für eine konstante Interpolation konvertieren möchtest, so, dass die letzte Farbe berücksichtigt wird.\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"Als Voreinstellung speichern\"\n\nmsgid \"Shape:\"\nmsgstr \"Form:\"\n\nmsgid \"Linear\"\nmsgstr \"Linear\"\n\nmsgid \"Radial\"\nmsgstr \"Radial\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"Wiederholen:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"Wiederholen\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"Gespiegelt\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"Abschneiden\"\n\nmsgid \"Transition size:\"\nmsgstr \"Übergangsgröße:\"\n\nmsgid \"Center:\"\nmsgstr \"Zentriert:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"Dithering-Muster:\"\n\nmsgid \"Type:\"\nmsgstr \"Typ:\"\n\nmsgid \"Angle:\"\nmsgstr \"Winkel:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Farbton/Sättigung/Wert anpassen\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"HSV anpassen\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Farbton:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Sättigung:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Wert:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"Helligkeit/Kontrast anpassen\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"Helligkeit:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"Kontrast:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"Rot-Wert:\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"Grün-Wert:\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"Blau-Wert:\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"Tönungsfarbe:\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"Tönungsstärke:\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"Farbkurven\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"Kanal:\"\n\nmsgid \"Red\"\nmsgstr \"Rot\"\n\nmsgid \"Green\"\nmsgstr \"Grün\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"Wert\"\n\nmsgid \"Presets\"\nmsgstr \"Voreinstellungen\"\n\nmsgid \"Apply\"\nmsgstr \"Übernehmen\"\n\nmsgid \"Diagonal\"\nmsgstr \"Diagonal\"\n\nmsgid \"Place inside image\"\nmsgstr \"Platziere in Bild\"\n\nmsgid \"Thickness:\"\nmsgstr \"Dicke:\"\n\nmsgid \"Colors:\"\nmsgstr \"Farben:\"\n\nmsgid \"Steps:\"\nmsgstr \"Schritte:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"Palettieren\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"Pixelieren\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"Posterisieren\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"Posterisierungsstufen:\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"Dither-Intensität:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Zeige Splash Screen\"\n\nmsgid \"Online Docs\"\nmsgstr \"Online Docs\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Fehlerverfolgung\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"Backup wiederherstellen\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"Vergangene Sitzungen\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"Doppelklicken um eine ganze Sitzung oder ein bestimmtes Projekt zu laden.\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"Sitzungen\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"Projekte\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"(Aktuelle Sitzung)\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"Editor-Datenordner öffnen\"\n\nmsgid \"Changelog\"\nmsgstr \"Änderungen\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Über Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"Unterstütze Pixeloramas Entwicklung\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - Verpixele deine Träume!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Entwickelt von Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"@2019–heute Orama Interactive und Mitwirkende\"\n\nmsgid \"Website\"\nmsgstr \"Website\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"Quellcode\"\n\nmsgid \"Donate\"\nmsgstr \"Spenden\"\n\nmsgid \"Developers\"\nmsgstr \"Entwickler\"\n\nmsgid \"Contributors\"\nmsgstr \"Beitragende\"\n\nmsgid \"Donors\"\nmsgstr \"Spender\"\n\nmsgid \"Translators\"\nmsgstr \"Übersetzungen\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Lizenzen\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"Lizenz\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"Godot-Lizenzen\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"Drittanbieter-Lizenzen\"\n\nmsgid \"English\"\nmsgstr \"Englisch\"\n\nmsgid \"Greek\"\nmsgstr \"Griechisch\"\n\nmsgid \"French\"\nmsgstr \"Französisch\"\n\nmsgid \"German\"\nmsgstr \"Deutsch\"\n\nmsgid \"Polish\"\nmsgstr \"Polnisch\"\n\nmsgid \"Portuguese\"\nmsgstr \"Portugiesisch\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Brasilianisches Portugiesisch\"\n\nmsgid \"Russian\"\nmsgstr \"Russisch\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Chinesisch (Vereinfacht)\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Traditionelles Chinesisch\"\n\nmsgid \"Italian\"\nmsgstr \"Italienisch\"\n\nmsgid \"Latvian\"\nmsgstr \"Lettisch\"\n\nmsgid \"Spanish\"\nmsgstr \"Spanisch\"\n\nmsgid \"Catalan\"\nmsgstr \"Katalanisch\"\n\nmsgid \"Esperanto\"\nmsgstr \"Esperanto\"\n\nmsgid \"Indonesian\"\nmsgstr \"Indonesisch\"\n\nmsgid \"Czech\"\nmsgstr \"Tschechisch\"\n\nmsgid \"Arabic\"\nmsgstr \"Arabisch\"\n\nmsgid \"Turkish\"\nmsgstr \"Türkisch\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Norwegisch Bokmål\"\n\nmsgid \"Korean\"\nmsgstr \"Koreanisch\"\n\nmsgid \"Hungarian\"\nmsgstr \"Ungarisch\"\n\nmsgid \"Romanian\"\nmsgstr \"Rumänisch\"\n\nmsgid \"Japanese\"\nmsgstr \"Japanisch\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Ukrainisch\"\n\nmsgid \"Danish\"\nmsgstr \"Dänisch\"\n\nmsgid \"Swedish\"\nmsgstr \"Schwedisch\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Serbisch (Kyrillisch)\"\n\nmsgid \"Dutch\"\nmsgstr \"Niederländisch\"\n\nmsgid \"Belarusian\"\nmsgstr \"Belarussisch\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"Leitender Entwickler\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"UI Designer\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"Autoren\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Grafik von: %s\"\n\nmsgid \"untitled\"\nmsgstr \"unbenannt\"\n\nmsgid \"imported\"\nmsgstr \"importiert\"\n\nmsgid \"copy\"\nmsgstr \"Kopie\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Bist du sicher, dass du Pixelorama beenden möchtest?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Ungespeichertes Bild\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Du hast ungespeicherte Änderungen. Wenn du fortfährst, gehen deine bisherigen Fortschritte verloren.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Vor dem Beenden speichern?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"Projekt %s hat ungespeicherte Änderungen. Wie möchtest du vorgehen?\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Speichern & Beenden\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Ohne Speichern beenden\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Rechteckige Auswahl\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Elliptische Auswahl\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Polygonale Auswahl\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\\n\\n\"\n\"Doppelklick, um den letzten Punkt mit dem Startpunkt zu verbinden\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Nach Farbe wählen\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Zauberstab\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Lasso- / Freies Auswahl-Werkzeug\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Auswahl durch Zeichnen\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Verschieben\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Zoom\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Ansicht verschieben\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"Farbwähler\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\\n\\n\"\n\"Wähle eine Farbe aus einem Pixel des Sprites\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"Zuschneiden\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Bleistift\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\\n\\n\"\n\"%s halten, um eine Linie zu ziehen\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Radiergummi\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\\n\\n\"\n\"%s halten, um eine Linie zu ziehen\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Füllen\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Schattierungs-Werkzeug\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Linienwerkzeug\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\\n\\n\"\n\"%s halten, um den Linienwinkel einzurasten\\n\"\n\"%s halten, um die Form auf den Ursprung des Klicks zu zentrieren\\n\"\n\"%s halten, um den Ursprung der Form zu verschieben\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"Kurvenwerkzeug\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\\n\\n\"\n\"Zeichnet Bézierkurven\\n\"\n\"Drücke %s/%s, um neue Punkte hinzuzufügen\\n\"\n\"Doppelklick beendet das Zeichnen der Kurve\\n\"\n\"Drücken und Ziehen steuert die Krümmung\\n\"\n\"Drücke %s, um den zuletzt hinzugefügten Punkt zu entfernen\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Rechteckwerkzeug\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\\n\\n\"\n\"%s halten, um eine 1:1 Form zu erstellen\\n\"\n\"%s halten, um die Form auf dem Klick-Ursprung zu zentrieren\\n\"\n\"%s halten, um den Ursprung der Form zu verschieben\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Ellipsenwerkzeug\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\\n\\n\"\n\"%s halten, um eine 1:1 Form zu erstellen\\n\"\n\"%s halten, um die Form auf dem Klick-Ursprung zu zentrieren\\n\"\n\"%s halten, um die Form zu verschieben\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"Isometrische Box Werkzeug\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\\n\\n\"\n\"Zeichnet eine isometrische Box\\n\"\n\"Drücke %s/%s, um einen Basispunkt hinzuzufügen\\n\"\n\"Halte %s gedrückt, um den Winkel des Basispunktes einrasten zu lassen\\n\"\n\"Halte %s gedrückt, um den Ursprung der Form zu verschieben\\n\"\n\"Drücke %s, um die zuletzt hinzugefügte Basis zu bearbeiten\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Text\\n\\n\"\n\"%s für die linke Maustaste\\n\"\n\"%s für die rechte Maustaste\"\n\nmsgid \"Rectangle\"\nmsgstr \"Rechteck\"\n\nmsgid \"Ellipse\"\nmsgstr \"Ellipse\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Wähle eine Farbe für das linke Werkzeug\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Wähle eine Farbe für das rechte Werkzeug\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"Tauscht die linke und rechte Farbe.\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"Durchschnittsfarbe:\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Setzt die Farben auf den Standardzustand zurück (schwarz für links, weiß für rechts)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"Wähle eine Farbe aus dem Anwendungsfenster.\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"Gib einen Hex-Code („\\n\"\n\"#ff0000\\\") oder einen Farbnamen („red\\\") ein.\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"Wähle eine Picker-Form.\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"Farboptionen\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"Wähle einen Auswahlmodus.\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"Farbige Schieberegler\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"Farbfelder\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"Letzte Farben\"\n\nmsgid \"Left tool\"\nmsgstr \"Linkes Werkzeug\"\n\nmsgid \"Right tool\"\nmsgstr \"Rechtes Werkzeug\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Linke Pixelanzeige\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Zeigt linke Mausanzeige oder Pinsel beim Zeichnen auf der Leinwand\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Rechte Pixelanzeige\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Zeigt rechte Mausanzeige oder Pinsel beim Zeichnen auf der Leinwand\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Linkes Werkzeugsymbol anzeigen\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Zeigt ein Symbol des ausgewählten linken Werkzeugs neben dem Cursor auf der Leinwand an\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Rechtes Werkzeugsymbol anzeigen\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Zeigt ein Symbol des ausgewählten rechten Werkzeugs neben dem Cursor auf der Leinwand an\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"Mauszeiger des Systems verwenden\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"Kreuz-Mauszeiger für die Leinwand benutzen\"\n\nmsgid \"Guides\"\nmsgstr \"Hilfslinien\"\n\nmsgid \"Guides color:\"\nmsgstr \"Hilfslinienfarbe:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Die Farbe der auf der Leinwand angezeigten Hilfslinien\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"Einrasten\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"Einrastabstand:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"Dies ist der Abstand in Bildschirmpixeln, ab dem das Einrasten an Hilfslinien und Rastern aktiviert wird.\"\n\nmsgid \"Grid\"\nmsgstr \"Raster\"\n\nmsgid \"Grid type:\"\nmsgstr \"Rastertyp:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Legt den Rastertyp fest: Rechteckig, Isometrisch oder beides\"\n\nmsgid \"Rectangular\"\nmsgstr \"Rechteckig\"\n\nmsgid \"Isometric\"\nmsgstr \"Isometrisch\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"Hexagonal\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"Hexagonal (Spitze oben)\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"Hexagonal (Flache Seite oben)\"\n\nmsgid \"All\"\nmsgstr \"Alle\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"Sichtbare Raster:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"Raster bearbeiten:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"Rastergröße:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"Rasterversatz:\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"Legt den Versatz des Rasters vom Ursprung der Leinwand fest (linke obere Ecke des Bilds)\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"Über Kachel-Modus zeichnen:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"Wenn deaktiviert, wird das Raster nur über das Originalbild gezeichnet\"\n\nmsgid \"Grid color:\"\nmsgstr \"Rasterfarbe:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"Eine Farbe des Gitters\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Pixelraster\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Bei Zoom anzeigen:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"Legt den minimalen Zoom fest, bei dem das Pixelraster angezeigt wird\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Pixelrasterfarbe:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"Eine Farbe des Pixelrasters\"\n\nmsgid \"Transparency\"\nmsgstr \"Transparenz\"\n\nmsgid \"Checker size:\"\nmsgstr \"Schachbrettgröße:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Größe des transparenten Schachbretthintergrunds\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Schachbrettfarbe 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"Erste Farbe des transparenten Schachbretthintergrunds\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Schachbrettfarbe 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"Zweite Farbe des transparenten Schachbretthintergrunds\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"Der Leinwandbewegung folgen\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"Das Schachbrettmuster folgt der Bewegung der Leinwand\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"Dem Zoomlevel der Leinwand folgen\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"Das Schachbrettmuster folgt dem Zoomlevel der Leinwand\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"Ebene auswählen, wenn auf eine ihrer Schaltflächen geklickt wird:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"Onion Skinning: Vorherige Farbe:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"Onion Skinning: Zukünftige Farbe:\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"Animierte Auswahlrahmen\"\n\nmsgid \"Border color 1:\"\nmsgstr \"Rahmenfarbe 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Rahmenfarbe 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"Transparenz der Transformationsvorschau:\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Es können nur benutzerdefinierte Voreinstellungen geändert werden\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"FPS-Limit festlegen:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"Legt das Limit der Bilder pro Sekunde fest. Je niedriger die Zahl, desto geringer die CPU-Auslastung, aber die Anwendung wird langsamer, ruckelt und reagiert träge. 0 bedeutet kein Limit.\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"Max. Rückgängig-Schritte:\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"Anwendung pausieren, wenn sie den Fokus verliert\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"Wenn dies aktiviert ist, zeichnet die Anwendung den Bildschirm kontinuierlich neu, auch wenn sie nicht verwendet wird. Das Ausschalten senkt die CPU- und GPU-Nutzung im Leerlauf.\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"Kontinuierlich aktualisieren\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"Wenn dies eingeschaltet ist, wird die Anwendung den Bildschirm kontinuierlich neu zeichnen, auch wenn er nicht verwendet wird. Das Ausschalten hilft, die CPU- und GPU-Nutzung zu senken, wenn die Applikation im Moment nicht verwendet wird.\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"Fenstertransparenz aktivieren\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"Wenn aktiviert, kann das Anwendungsfenster transparent werden. Dies beeinträchtigt die Performance, also lass es deaktiviert, wenn du es nicht benötigst.\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"Dummy-Audio-Treiber verwenden\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"Renderer:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"Bestimmt den zu verwendenden Renderer/Video-Treiber. GLES2 ist besser für ältere und Low-End-Geräte, aber GLES3 kann mehr Funktionen bieten.\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"Tablet-Treiber:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"Gibt den auf Windows verwendeten Tablet-Treiber an. Wenn du Windows Ink aktiviert hast, wähle winink.\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Erweiterung hinzufügen\"\n\nmsgid \"Enable\"\nmsgstr \"Aktivieren\"\n\nmsgid \"Disable\"\nmsgstr \"Deaktivieren\"\n\nmsgid \"Uninstall\"\nmsgstr \"Deinstallieren\"\n\nmsgid \"Open Folder\"\nmsgstr \"Ordner öffnen\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"Online erkunden\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"Erweiterungs-Explorer\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"Suchen...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"Schlagwörter:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"Problem mit einer Erweiterung melden\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"Herunterladen\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"Repository-Links:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"Daten werden aus dem Remote-Repository abgerufen.\\n\"\n\"Bitte warten.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"Informationen konnten nicht vom Remote-Repository abgerufen werden.\\n\\n\"\n\"- Stelle sicher, dass du mit dem Internet verbunden bist.\\n\"\n\"- Wenn du die Flatpak-Version von Pixelorama verwendest, musst du ihr die Berechtigung erteilen, sich mit dem Internet zu verbinden.\\n\"\n\"Dazu kannst du den folgenden Befehl im Terminal ausführen:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"Alternativ kannst du Flatseal herunterladen und dort die Berechtigungen für Flatpak-Apps festlegen.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"Informationen konnten nicht vom Remote-Repository abgerufen werden.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"Repository-Link einfügen, der vom Repository-Besitzer angegeben wurde. Wenn es leer bleibt, wird er automatisch entfernt.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"Bist du sicher, dass du diese Erweiterung aktivieren willst? Achte darauf, dass du nur Erweiterungen von Quellen aktivierst, denen du vertraust.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"Bist du sicher, dass du diese Erweiterung löschen willst?\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"Dynamik\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"Stabilisator\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"Druck\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"Geschwindigkeit\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"Alpha\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"Größe\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"Wertgrenzen\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"Schwellenwerte\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"Anfang\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"Ende\"\n\nmsgid \"Brush:\"\nmsgstr \"Pinsel:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Wähle einen Pinsel\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"Standard-Pinsel\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Pixel-Pinsel\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Kreis-Pinsel\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Gefüllter Kreis-Pinsel\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"Projekt-Pinsel\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"Dateipinsel\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"Schnee\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"Zufällige Dateipinsel\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"Gras\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"Stern\"\n\nmsgid \"Custom brush\"\nmsgstr \"Benutzerdefinierter Pinsel\"\n\nmsgid \"Brush size:\"\nmsgstr \"Pinselgröße:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"Drehoptionen\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"Spiegeln:\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"Drehen:\"\n\nmsgid \"Overwrite color\"\nmsgstr \"Farbe überschreiben\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Überschreibt die Farbe, anstatt sie zu verblenden. Diese Option ist nur bei nicht vollständig deckenden Farben relevant\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Pixel Perfect\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"Pixel Perfect\\n\"\n\"Macht Linien glatter, indem überschüssige Pixel an den Kanten entfernt werden\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"Alpha sperren\"\n\nmsgid \"Fill inside\"\nmsgstr \"Form füllen\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"Abstand\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"Abstand X:\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"Abstand Y:\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Füllform\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"Füllt die gezeichnete Form mit Farbe, anstatt nur die Kontur zu zeichnen\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"Dichte:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"Pinselfarbe von:\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: Farbe von dem Pinsel selbst, 100: die aktuell ausgewählte Farbe\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"Fülle Bereich:\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"Zusammenhängender Bereich\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"Ähnliche Farben\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"Ganze Auswahl\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"Alle Ebenen beim Füllen einbeziehen\"\n\nmsgid \"Fill with:\"\nmsgstr \"Füllen mit:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"Ausgewählte Farbe\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Muster\"\n\nmsgid \"Offset\"\nmsgstr \"Offset\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Einfaches Schattieren\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Farbtonverschiebung\"\n\nmsgid \"Lighten\"\nmsgstr \"Erhellen\"\n\nmsgid \"Darken\"\nmsgstr \"Verdunkeln\"\n\nmsgid \"Amount:\"\nmsgstr \"Menge:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Erhellen/Verdunkeln Menge\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"Farbe ersetzen\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"Bitte wähle eine Farbe aus der Palette.\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"Anzahl Farben rechts:\"\n\nmsgid \"Pick for:\"\nmsgstr \"Wähle für:\"\n\nmsgid \"Left Color\"\nmsgstr \"Linke Farbe\"\n\nmsgid \"Right Color\"\nmsgstr \"Rechte Farbe\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"Auswahlmodus:\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"Oberste Farbe\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"Aktuelle Ebene\"\n\nmsgid \"Mode:\"\nmsgstr \"Modus:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Vergrößern\"\n\nmsgid \"Zoom out\"\nmsgstr \"Verkleinern\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"Einzel\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"Verkettet\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"Verkettet: Erzeugt eine Kette von mehreren Bézierkurven, ähnlich wie das Kurvenwerkzeug von Krita.\\n\"\n\"Einzeln: Erzeugt eine einzelne Bézierkurve, ähnlich wie das Kurvenwerkzeug von Aseprite.\"\n\nmsgid \"Options\"\nmsgstr \"Optionen\"\n\nmsgid \"Options:\"\nmsgstr \"Optionen:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"An Frame anpassen\"\n\nmsgid \"100% Zoom\"\nmsgstr \"100% Zoom\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"Auswahl ersetzen\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"Zur Auswahl hinzufügen\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"Von Auswahl entfernen\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"Schnittmenge der Auswahlen\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"Style:\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"Normal\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"Fett\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"Kursiv\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"Fett Kursiv\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"Anti-Aliasing\"\n\nmsgid \"Grayscale\"\nmsgstr \"Graustufen\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"Kantenfarbe\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"Werkzeugfarbe\"\n\nmsgid \"Adjusted average\"\nmsgstr \"Angepasster Durchschnitt\"\n\nmsgid \"Blend at interface\"\nmsgstr \"An den Kanten verblenden\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"Linke Seite\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"Rechte Seite\"\n\nmsgid \"Mirroring\"\nmsgstr \"Spiegeln\"\n\nmsgid \"Horizontal\"\nmsgstr \"Horizontal\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Horizontal gespiegeltes Zeichnen aktivieren\"\n\nmsgid \"Vertical\"\nmsgstr \"Vertikal\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Vertikal gespiegeltes Zeichnen aktivieren\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"Diagonal (↗) gespiegeltes Zeichnen aktivieren\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"Diagonal (↘) gespiegeltes Zeichnen aktivieren\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"Zur Leinwandmitte verschieben\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"Zur Ansichtsmitte verschieben\"\n\nmsgid \"Current frame:\"\nmsgstr \"Aktueller Frame:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"Animationsmodus:\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"Aktueller Frame als Spritesheet\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"Zum ersten Frame springen\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"Zum vorherigen Frame wechseln\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"Animation rückwärts abspielen\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"Animation vorwärts abspielen\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"Zum nächsten Frame wechseln\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"Zum letzten Frame springen\"\n\nmsgid \"Timeline settings\"\nmsgstr \"Timeline-Einstellungen\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Onion Skinning aktivieren/deaktivieren\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"Wie viele Bilder pro Sekunde (FPS) soll die Vorschau haben?\\n\"\n\"Je höher der Wert, desto schneller läuft die Animation.\"\n\nmsgid \"No loop\"\nmsgstr \"Keine Wiederholung\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Schleife\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Ping-Pong-Schleife\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Onion Skinning:\"\n\nmsgid \"Past Frames\"\nmsgstr \"Vorherige Frames\"\n\nmsgid \"Future Frames\"\nmsgstr \"Zukünftige Frames\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Frame-Tags verwalten\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Frame Tag-Eigenschaften\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Neuen Frame-Tag hinzufügen\"\n\nmsgid \"Name:\"\nmsgstr \"Name:\"\n\nmsgid \"From:\"\nmsgstr \"Von:\"\n\nmsgid \"To:\"\nmsgstr \"Bis:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"Animation nur auf Frames mit demselben Tag abspielen\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Tag %s (Frame %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Tag %s (Frames %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Falls ausgewählt, wird die Animation nur auf Frames mit demselben Tag abgespielt.\\n\"\n\"Andernfalls wird die Animation für alle Frames abgespielt und Tags werden ignoriert.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"Zellengröße:\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"Farbmodus\"\n\nmsgid \"Show past frames:\"\nmsgstr \"Vorherige Frames anzeigen:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"Zukünftige Frames anzeigen:\"\n\nmsgid \"Above canvas\"\nmsgstr \"Über der Leinwand\"\n\nmsgid \"Below canvas\"\nmsgstr \"Unter der Leinwand\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"Damit eine Ebene Onion Skinning ignoriert, einfach das Suffix \\\\\\\"_io\\\\\\\" an den Namen anhängen.\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Neuen Frame hinzufügen\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Frame entfernen\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Frame duplizieren\"\n\nmsgid \"Move Left\"\nmsgstr \"Nach links bewegen\"\n\nmsgid \"Move Right\"\nmsgstr \"Nach rechts bewegen\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"Frame Tag hinzufügen\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"Pixel auswählen\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"Zellen verknüpfen mit\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"Zellenverknüpfung aufheben\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"Audio hier abspielen\"\n\nmsgid \"Properties\"\nmsgstr \"Eigenschaften\"\n\nmsgid \"Project Properties\"\nmsgstr \"Projekteinstellungen\"\n\nmsgid \"Frame properties\"\nmsgstr \"Frame-Eigenschaften\"\n\nmsgid \"Layer properties\"\nmsgstr \"Ebenen-Eigenschaften\"\n\nmsgid \"Cel properties\"\nmsgstr \"Zelleigenschaften\"\n\nmsgid \"Tag properties\"\nmsgstr \"Tag-Eigenschaften\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"Neuer Tag\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"Tag importieren\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"Frames umkehren\"\n\nmsgid \"Layer\"\nmsgstr \"Ebene\"\n\nmsgid \"Group\"\nmsgstr \"Gruppe\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"Tilemap\"\n\nmsgid \"Audio\"\nmsgstr \"Audio\"\n\nmsgid \"Layers\"\nmsgstr \"Ebenen\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"Clipping-Maske\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"Abflachen\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"Sichtbare abflachen\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Neue Ebene erstellen\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"Pixelebene hinzufügen\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"Gruppenebene hinzufügen\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"3D-Ebene hinzufügen\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"Tilemap-Ebene hinzufügen\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"Audio-Ebene hinzufügen\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Aktuelle Ebene entfernen\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Aktuelle Ebene nach oben bewegen\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Aktuelle Ebene nach unten bewegen\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Aktuelle Ebene duplizieren\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Aktuelle Ebene mit der darunterliegenden zusammenführen\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"Mischmodus:\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"Durchreichen\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"Normal\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"Löschen\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"Multiplizieren\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"Color burn\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"Linear nachbelichten\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"Bildschirm\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"Farbig abwedeln\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"Kontrast\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"Overlay\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"Weiches Licht\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"Hartes Licht\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"Invertierung\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"Differenz\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"Exklusion\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"Subtrahieren\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"Dividieren\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"Komponente\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"Farbton\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"Sättigung\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"Farbe\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"Helligkeit\"\n\nmsgid \"Opacity:\"\nmsgstr \"Deckkraft:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"Kachelmodus-Deckkraft:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Sichtbarkeit der Ebene umschalten\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Ebene sperren/entsperren\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Frame: %s, Ebene: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"Automatische Verknüpfung neuer Zellen beim Erstellen neuer Frames aktivieren/deaktivieren\\n\\n\"\n\"Verknüpfte Zellen teilen Inhalte über mehrere Frames\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"Gruppe aus- / einklappen\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"Audiodatei:\"\n\nmsgid \"Load file\"\nmsgstr \"Datei laden\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"Abspielen im Frame:\"\n\nmsgid \"Palette\"\nmsgstr \"Palette\"\n\nmsgid \"Palettes\"\nmsgstr \"Paletten\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Füge eine neue Palette hinzu\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Bearbeite ausgewählte Palette\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Wähle eine Palette\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Rückgängig: Zeichnen\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Wiederholen: Zeichnen\"\n\nmsgid \"Undo: Select\"\nmsgstr \"Rückgängig: Auswahl\"\n\nmsgid \"Redo: Select\"\nmsgstr \"Wiederholen: Auswahl\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Rückgängig: Skalieren\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Wiederholen: Skalieren\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Rückgängig: Ebene hinzufügen\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Wiederholen: Ebene hinzufügen\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Rückgängig: Ebene entfernen\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Wiederholen: Ebene entfernen\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Rückgängig: Ebene zusammenfügen\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Wiederholen: Ebene zusammenfügen\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Rückgängig: Ebenenreihenfolge ändern\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Wiederholen: Ebenenreihenfolge ändern\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Rückgängig: Frame hinzufügen\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Wiederholen: Frame hinzufügen\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Rückgängig: Frame entfernen\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Wiederholen: Frame entfernen\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Rückgängig: Framereihenfolge ändern\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Wiederholen: Framereihenfolge ändern\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Rückgängig: benutzerdefinierten Pinsel löschen\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Wiederholen: benutzerdefinierten Pinsel löschen\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"Rückgängig: Frame-Tag ändern\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"Wiederholen: Frame-Tag ändern\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"Rückgängig: Lösche Frame-Tag\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"Wiederholen: Lösche Frame-Tag\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"Rückgängig: Frame-Dauer ändern\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"Wiederholen: Frame-Dauer ändern\"\n\nmsgid \"Move Guide\"\nmsgstr \"Hilfslinie verschieben\"\n\nmsgid \"File saved\"\nmsgstr \"Datei gespeichert\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"Backup gespeichert\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"Datei konnte nicht geöffnet werden. Fehlercode %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"Datei konnte nicht gespeichert werden. Fehlercode %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"Video-Export fehlgeschlagen. Bitte sicherstellen, dass FFMPEG korrekt installiert ist.\"\n\nmsgid \"File(s) exported\"\nmsgstr \"Datei(en) exportiert\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Neue leere Palette\"\n\nmsgid \"Import Palette\"\nmsgstr \"Importiere Palette\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Palette aus aktuellem Sprite erstellen\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Palettenname\"\n\nmsgid \"Color Name:\"\nmsgstr \"Farbnamen:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"Aktuelle linke und rechte Farben verwenden\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Neue leere Palette erstellen?\"\n\nmsgid \"Error\"\nmsgstr \"Fehler\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Fehler: Palette muss einen gültigen Namen haben.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Nicht gültige Palettendatei!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Bearbeite Palette\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"Erstelle Farben mit Alpha-Komponente\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"Farben nur aus Auswahl holen\"\n\nmsgid \"Get colors from\"\nmsgstr \"Farben holen von\"\n\nmsgid \"Patrons:\"\nmsgstr \"Patrons:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"Möchtest du, dass dein Name oder dein Unternehmen auf dem Startbildschirm angezeigt wird?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Werde ein Platin-Sponsor\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Werde ein Gold-Sponsor\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Werde ein Patron\"\n\nmsgid \"Don't show again\"\nmsgstr \"Beim nächsten Start nicht mehr anzeigen\"\n\nmsgid \"Image Options\"\nmsgstr \"Bild Optionen\"\n\nmsgid \"Default width:\"\nmsgstr \"Standardbreite:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"Eine Standardbreite eines neuen Bildes\"\n\nmsgid \"Default height:\"\nmsgstr \"Standardhöhe:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"Eine Standardhöhe eines neuen Bildes\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Standardfüllfarbe:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"Eine Standard-Hintergrundfarbe eines neuen Bildes\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"Alle in den Einstellungen verfügbaren Optionen zurücksetzen\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"Timeline-Optionen zurücksetzen\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"Alle Werkzeugoptionen zurücksetzen\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"Alle Erweiterungen entfernen\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"Alle Sicherungen entfernen\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"Löschen der zuletzt geöffneten Dateiliste\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"Seitenverhältnis sperren\"\n\nmsgid \"Portrait\"\nmsgstr \"Hochformat\"\n\nmsgid \"Landscape\"\nmsgstr \"Querformat\"\n\nmsgid \"Templates:\"\nmsgstr \"Vorlagen:\"\n\nmsgid \"Preset\"\nmsgstr \"Voreinstellung\"\n\nmsgid \"Preset:\"\nmsgstr \"Voreinstellung:\"\n\nmsgid \"Default\"\nmsgstr \"Standard\"\n\nmsgid \"Custom\"\nmsgstr \"Benutzerdefiniert\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Rechteckige Auswahl\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"Elliptische Auswahl\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"Polygonale Auswahl\"\n\nmsgid \"Select By Color\"\nmsgstr \"Nach Farbe auswählen\"\n\nmsgid \"Magic Wand\"\nmsgstr \"Zauberstab\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"Lasso- / Freihandauswahl-Werkzeug\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"Nach Zeichnung auswählen\"\n\nmsgid \"Move\"\nmsgstr \"Bewegen\"\n\nmsgid \"Zoom\"\nmsgstr \"Zoom\"\n\nmsgid \"Pan\"\nmsgstr \"Schwenk\"\n\nmsgid \"Color Picker\"\nmsgstr \"Farbauswahl\"\n\nmsgid \"Pencil\"\nmsgstr \"Stift\"\n\nmsgid \"Eraser\"\nmsgstr \"Radierer\"\n\nmsgid \"Bucket\"\nmsgstr \"Eimer\"\n\nmsgid \"Shading Tool\"\nmsgstr \"Schattierungs-Werkzeug\"\n\nmsgid \"Line Tool\"\nmsgstr \"Linien-Werkzeug\"\n\nmsgid \"Curve Tool\"\nmsgstr \"Kurven-Werkzeug\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"Rechteck-Werkzeug\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"Ellipsen-Werkzeug\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"Isometrisches Box-Werkzeug\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Farben tauschen\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Tastenkürzel festlegen\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Taste oder Tastenkombination drücken, um das Kürzel festzulegen\"\n\nmsgid \"Already assigned\"\nmsgstr \"Bereits zugewiesen\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Linkes Werkzeug:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Ein Werkzeug, das der linken Maustaste zugewiesen ist\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Rechtes Werkzeug:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Ein Werkzeug, das der rechten Maustaste zugewiesen ist\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"Letzte Projektdatei konnte nicht gefunden werden.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"Projektdatei nicht gefunden.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Es wurde noch kein Projekt in Pixelorama gespeichert oder geöffnet!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Letztes Projekt öffnen\"\n\nmsgid \"Open last project...\"\nmsgstr \"Letztes Projekt öffnen...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Beim Starten letztes Projekt laden\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Öffnet das zuletzt geöffnete Projekt beim Start\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"Beenden bestätigen\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"FFMPEG-Pfad\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Autospeichern aktivieren\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Autospeicherintervall:\"\n\nmsgid \"minute(s)\"\nmsgstr \"Minute(n)\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"JSON-Daten exportieren\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"Ebenen teilen\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"Frame-Tags in den Dateinamen aufnehmen\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"Neuen Ordner für jeden Frame-Tag erstellen\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"Erstellt mehrere Dateien, aber jede Datei wird in einem anderen Ordner gespeichert, der seinem Frame Tag entspricht\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"Trennzeichen(n):\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"Die Zeichen, die den Dateinamen und die Frame-Nummer trennen\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"Bilder zuschneiden\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"Schneidet die exportierten Bilder auf ihren sichtbaren Bereich zu, wobei jedes Pixel mit einem Alphakanal ungleich null als sichtbar gilt.\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"Bildinhalt auf Auswahl zuschneiden\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"Nur Inhalte exportieren, die innerhalb der Grenzen eines ausgewählten Bereichs liegen.\"\n\nmsgid \"Close\"\nmsgstr \"Schließen\"\n\nmsgid \"Discard All\"\nmsgstr \"Alle verwerfen\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"Pixelorama wurde beim letzten Mal nicht ordnungsgemäß geschlossen. Möchtest du eine vorherige Sitzung wiederherstellen?\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"Backup neu geladen\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Aktuell ausgewählte Palette entfernen\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"Bist du sicher, dass du diese Palette entfernen möchtest? (Kann nicht rückgängig gemacht werden)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Du kannst keine weiteren Paletten entfernen!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Die Palette kann nicht entfernt werden, da sie nicht existiert!\"\n\nmsgid \"and\"\nmsgstr \"und\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Ausgewählten Frame nach links verschieben.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Ausgewählten Frame nach rechts verschieben.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"Frame-Dauer:\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"Benutzerdaten:\"\n\nmsgid \"Duration\"\nmsgstr \"Dauer\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"Auf beiden Achsen gekachelt\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"In X-Achse gekachelt\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"In Y-Achse gekachelt\"\n\nmsgid \"Create a new palette\"\nmsgstr \"Neue Palette erstellen\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"Neue Projektpalette erstellen\"\n\nmsgid \"Comment:\"\nmsgstr \"Kommentar:\"\n\nmsgid \"Empty\"\nmsgstr \"Leer\"\n\nmsgid \"From Current Palette\"\nmsgstr \"Aus aktueller Palette\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"Aus aktuellem Sprite\"\n\nmsgid \"From Current Selection\"\nmsgstr \"Aus aktueller Auswahl\"\n\nmsgid \"Add a new color\"\nmsgstr \"Neue Farbe hinzufügen\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"Eine ausgewählte Farbe entfernen\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"Palette sortieren\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"Farben umkehren\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"Nach Farbton sortieren\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"Nach Sättigung sortieren\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"Nach Wert sortieren\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"Nach Helligkeit sortieren\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"Nach Rot sortieren\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"Nach Grün sortieren\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"Nach Blau sortieren\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"Nach Alpha sortieren\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"Eine Palette mit dem gleichen Namen und Pfad existiert bereits!\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"Palettenname ist erforderlich!\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"Das Verringern der Palettengröße setzt die Farbpositionen zurück.\\n\"\n\"Farben, die nicht in die neue Größe passen, gehen verloren!\"\n\nmsgid \"Position:\"\nmsgstr \"Position:\"\n\nmsgid \"Tools\"\nmsgstr \"Werkzeuge\"\n\nmsgid \"Main Canvas\"\nmsgstr \"Hauptleinwand\"\n\nmsgid \"Second Canvas\"\nmsgstr \"Zweite Leinwand\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"Animations-Zeitleiste\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"Leinwand-Vorschau\"\n\nmsgid \"Color Pickers\"\nmsgstr \"Farbauswähler\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"Globale Werkzeugoptionen\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"Optionen des linken Werkzeugs\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"Optionen des rechten Werkzeugs\"\n\nmsgid \"Reference Images\"\nmsgstr \"Referenzbilder\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"Perspektiven-Editor\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"Zeichnungsaufnahme\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"Kacheln\"\n\nmsgid \"Crop\"\nmsgstr \"Zuschneiden\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"Leinwandgröße ändern\"\n\nmsgid \"Margins\"\nmsgstr \"Abstände\"\n\nmsgid \"Position + Size\"\nmsgstr \"Position + Größe\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"Festes Seitenverhältnis\"\n\nmsgid \"Margins:\"\nmsgstr \"Abstände:\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"Seitenverhältnis:\"\n\nmsgid \"Top:\"\nmsgstr \"Oben:\"\n\nmsgid \"Bottom:\"\nmsgstr \"Unten:\"\n\nmsgid \"Left:\"\nmsgstr \"Links:\"\n\nmsgid \"Right:\"\nmsgstr \"Rechts:\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"Feste Größe\\n\\n\"\n\"Wenn aktiviert, verschiebt das Werkzeug auf der Leinwand nur den Zuschneiderahmen.\\n\\n\"\n\"Wenn deaktiviert, wird der Rahmen auf der Leinwand neu aufgezogen.\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"3D-Form bearbeiten\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"Box\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"Kugel\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"Kapsel\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"Zylinder\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"Prisma\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"Torus\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"Ebene\"\n\nmsgid \"Text\"\nmsgstr \"Text\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"Gerichtetes Licht\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"Spotlicht\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"Punktlicht\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"Eigenes Modell\"\n\nmsgid \"Selected object:\"\nmsgstr \"Ausgewähltes Objekt:\"\n\nmsgid \"Add new object\"\nmsgstr \"Neues Objekt hinzufügen\"\n\nmsgid \"Remove object\"\nmsgstr \"Objekt entfernen\"\n\nmsgid \"Camera\"\nmsgstr \"Kamera\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"Projektion:\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"Perspektive\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"Orthogonal\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"Frustum\"\n\nmsgid \"Rotation:\"\nmsgstr \"Rotation:\"\n\nmsgid \"Scale:\"\nmsgstr \"Skala:\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"Umgebung\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"Umgebungsfarbe:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"Energie der Umgebungsfarbe:\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"Sichtbar:\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"Transformieren\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"Mesh\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"Links nach rechts:\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"Radius:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"Radiale Segmente:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"Ringe:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"Ist Halbkugel:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"Oberer Radius:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"Unterer Radius:\"\n\nmsgid \"Text:\"\nmsgstr \"Text:\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"Tiefe:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"Pixelgröße:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"Kurvenschritt:\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"Horizontale Ausrichtung:\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"Vertikale Ausrichtung:\"\n\nmsgid \"Left\"\nmsgstr \"Links\"\n\nmsgid \"Right\"\nmsgstr \"Rechts\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"Zeilenabstand:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"Energie:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"Negativ:\"\n\nmsgid \"Shadow:\"\nmsgstr \"Schatten:\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"Reichweite:\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"Animierbare Eigenschaften\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"Vorschau-Frame:\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"Animieren\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"Anfangswert:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"Endwert:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"Easing-Typ:\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"Startet langsam und beschleunigt sich zum Ende\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"Startet schnell und verlangsamt sich gegen Ende\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"Am langsamsten an beiden Enden, schnell in der Mitte\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"Schnell an beiden Enden, langsam in der Mitte\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"Quadratisch (hoch 2)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"Kubisch (hoch 3)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"Quartik (hoch  4)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"Quintisch (hoch 5)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"Exponentiell (hoch x)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"Quadratwurzel\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"Sinus\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"Wackeln an den Kanten\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"Am Ende abprallen\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"Zurückziehen am Ende\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"Zum Ende federn\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"Monochrom\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"Beim Öffnen eines Bildes kann es als Referenz importiert werden.\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"Wähle unten ein Bild aus, um dessen Eigenschaften zu ändern.\\n\"\n\"Beachte, dass du nicht zeichnen kannst, während ein Referenzbild ausgewählt ist.\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"Entfernen\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"Halte die Umschalttaste gedrückt, während du drückst, um sofort zu entfernen.\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"Bist du sicher, dass du dieses Referenzbild entfernen möchtest? Es wird nicht aus deinem Dateisystem gelöscht.\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"Ausgewähltes Referenzbild nach rechts verschieben\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"Ausgewähltes Referenzbild nach links verschieben\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"Wählt ein Referenzbild auf der Leinwand aus\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"Ausgewähltes Referenzbild verschieben\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"Ausgewähltes Referenzbild drehen\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"Ausgewähltes Referenzbild skalieren\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"keine\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"Transformation zurücksetzen\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"Position\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"Skalierung\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"Rotation\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"Filter\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"Deckkraft\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"Farbbegrenzung\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"Aktiviert\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"Ebeneneffekte\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"Effekt hinzufügen\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"Möchtest du das Bild von %s herunterladen?\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"Kachelset\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"Kachelset:\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"Kachelsets\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"Neues Kachelset\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"Name des Kachelsets:\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"Kachelgröße:\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"Kachelform:\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"Kachellayout:\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"Kachelversatz-Achse:\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"Bestimmt die Versatzachse für alle Formen mit Halbversatz (Isometrisch & Hexagonal).\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"Gestapelt\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"Gestapelt (versetzt)\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"Treppe rechts\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"Treppe unten\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"Raute rechts\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"Raute unten\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"Nur-Platzierungsmodus:\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"Die Aktivierung des Nur-Platzieren-Modus ist eine dauerhafte Aktion. Sobald aktiviert, kannst du nur noch Kacheln platzieren und vorhandene Kacheln auf dieser Ebene nicht mehr bearbeiten.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"Wähle eine Kachel, um sie auf der Leinwand zu platzieren.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"Kacheln auf der Leinwand bearbeiten.\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"Kacheln zeichnen\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"Kachel nach links drehen (gegen den Uhrzeigersinn)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"Kachel nach rechts drehen (im Uhrzeigersinn)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"Kachel horizontal spiegeln\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"Kachel vertikal spiegeln\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"Manuell\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Auto\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"Stapeln\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"Größe der Kachel-Schaltfläche:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"Leere Kachel anzeigen:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"Kacheleigenschaften\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"Wahrscheinlichkeit:\"\n\n"
  },
  {
    "path": "Translations/el_GR.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: el\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Greek\\n\"\n\"Language: el_GR\\n\"\n\"PO-Revision-Date: 2025-11-06 14:33\\n\"\n\nmsgid \"OK\"\nmsgstr \"Εντάξει\"\n\nmsgid \"Cancel\"\nmsgstr \"Άκυρο\"\n\nmsgid \"Open\"\nmsgstr \"Άνοιγμα\"\n\nmsgid \"Save\"\nmsgstr \"Αποθήκευση\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Παρακαλώ επιβεβαιώστε...\"\n\nmsgid \"File Name:\"\nmsgstr \"Όνομα αρχείου:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Όνομα έργου:\"\n\nmsgid \"Image Size\"\nmsgstr \"Μέγεθος εικόνας\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Μέγεθος Καμβά\"\n\nmsgid \"Frame Size\"\nmsgstr \"Μέγεθος Καρέ\"\n\nmsgid \"Size:\"\nmsgstr \"Μέγεθος:\"\n\nmsgid \"Width:\"\nmsgstr \"Πλάτος:\"\n\nmsgid \"Height:\"\nmsgstr \"Ύψος:\"\n\nmsgid \"Center\"\nmsgstr \"Κέντρο\"\n\nmsgid \"File\"\nmsgstr \"Αρχείο\"\n\nmsgid \"Edit\"\nmsgstr \"Επεξεργασία\"\n\nmsgid \"Select\"\nmsgstr \"Επιλογή\"\n\nmsgid \"View\"\nmsgstr \"Προβολή\"\n\nmsgid \"Window\"\nmsgstr \"Παράθυρο\"\n\nmsgid \"Image\"\nmsgstr \"Εικόνα\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"Έργο\"\n\nmsgid \"Effects\"\nmsgstr \"Εφέ\"\n\nmsgid \"Help\"\nmsgstr \"Βοήθεια\"\n\nmsgid \"New\"\nmsgstr \"Νέο\"\n\nmsgid \"New...\"\nmsgstr \"Νέο...\"\n\nmsgid \"Open...\"\nmsgstr \"Άνοιγμα...\"\n\nmsgid \"Save...\"\nmsgstr \"Αποθήκευση...\"\n\nmsgid \"Save as...\"\nmsgstr \"Αποθήκευση ως...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"Συμπερίληψη αναμεμειγμένων εικόνων\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"Αν είναι ενεργοποιημένο, οι τελικές αναμεμειγμένες εικόνες αποθηκεύονται επίσης στο pxo, για κάθε καρέ.\\n\"\n\"Αυτό κάνει το αρχείο pxo μεγαλύτερο και είναι χρήσιμο για την εισαγωγή από λογισμικό τρίτων\\n\"\n\"ή για την εξαγωγή μέσω CLI. Η φόρτωση αρχείων pxo στο Pixelorama δεν χρειάζεται αυτή την επιλογή να είναι ενεργοποιημένη.\"\n\nmsgid \"Import\"\nmsgstr \"Εισαγωγή\"\n\nmsgid \"Export\"\nmsgstr \"Εξαγωγή\"\n\nmsgid \"Overwrite\"\nmsgstr \"Αντικατάσταση\"\n\nmsgid \"Export...\"\nmsgstr \"Εξαγωγή...\"\n\nmsgid \"Export as...\"\nmsgstr \"Εξαγωγή ως...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Εξαγωγή PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Εξαγωγή PNG ως...\"\n\nmsgid \"Quit\"\nmsgstr \"Έξοδος\"\n\nmsgid \"Undo\"\nmsgstr \"Αναίρεση\"\n\nmsgid \"Redo\"\nmsgstr \"Ακύρωση αναίρεσης\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"Ιστορικό αναίρεσης\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"Αρχική κατάσταση\"\n\nmsgid \"Copy\"\nmsgstr \"Αντιγραφή\"\n\nmsgid \"Cut\"\nmsgstr \"Αποκοπή\"\n\nmsgid \"Paste\"\nmsgstr \"Επικόλληση\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Επιτόπια επικόλληση\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"Επικόλληση από το πρόχειρο\"\n\nmsgid \"Delete\"\nmsgstr \"Διαγραφή\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Οριστική διαγραφή\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Μετακίνηση στον κάδο απορριμμάτων\"\n\nmsgid \"New Brush\"\nmsgstr \"Νέο πινέλο\"\n\nmsgid \"Scale Image\"\nmsgstr \"Κλιμάκωση εικόνας\"\n\nmsgid \"Pixels\"\nmsgstr \"Εικονοστοιχεία\"\n\nmsgid \"Percentage\"\nmsgstr \"Ποσοστό\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"Λειτουργία χρώματος:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"Λειτουργία χρώματος\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"Ευρετήριο\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"Περικοπή στην επιλογή\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"Περικοπή στο περιεχόμενο\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Αλλαγή μεγέθους καμβά\"\n\nmsgid \"Offset Image\"\nmsgstr \"Μετατόπιση Εικόνας\"\n\nmsgid \"Offset:\"\nmsgstr \"Μετατόπιση:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"Αναδίπλωση:\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"Κεντράρισμα καρέ\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Περιστροφή εικόνας\"\n\nmsgid \"Pivot x:\"\nmsgstr \"Άξονας x:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"Άξονας y:\"\n\nmsgid \"Smear options:\"\nmsgstr \"Επιλογές απλώματος:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Ανοχή:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Αρχική γωνία:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"Τύλιγμα γραμμών\"\n\nmsgid \"Clear\"\nmsgstr \"Εκκαθάριση\"\n\nmsgid \"Invert\"\nmsgstr \"Αντιστροφή\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"Επιλέξτε περιοχή cel\"\n\nmsgid \"Modify\"\nmsgstr \"Τροποποίηση\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"Επέκταση\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"Επέκταση επιλογής\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"Συρρίκνωση\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"Συρρίκνωση επιλογής\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"Περίγραμμα\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"Περίγραμμα επιλογής\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"Ρόμβος\"\n\nmsgid \"Circle\"\nmsgstr \"Κύκλος\"\n\nmsgid \"Square\"\nmsgstr \"Τετράγωνο\"\n\nmsgid \"Grayscale View\"\nmsgstr \"Προβολή σε κλίμακα γκρι\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Αναστροφή εικόνας\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Οριζόντια αναστροφή\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Κάθετη αναστροφή\"\n\nmsgid \"Preferences\"\nmsgstr \"Προτιμήσεις\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"Διαδικαστικά\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"Θόλωμα\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"Φορτωμένα\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"Κεντράρισμα Καμβά\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Λειτουργία μοτίβου\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"Μετατόπιση λειτουργίας μοτίβου\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"Βάση Χ:\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"Βάση Υ:\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"Μάσκα:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Επαναφορά\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"Επαναφορά %s\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"Χρήση τρέχοντος καρέ\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Επαναφορά μάσκας\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Αδιαφάνεια παραθύρου\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"Η αδιαφάνεια παραθύρου δε λειτουργεί σε λειτουργία πλήρους οθόνης.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Διάταξη Πλαισίου\"\n\nmsgid \"Panels\"\nmsgstr \"Πλαίσια\"\n\nmsgid \"Layouts\"\nmsgstr \"Διατάξεις\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Κινητά πλαίσια\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"Δημιουργία αιωρούμενου παραθύρου\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Διαχείριση διατάξεων\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Προεπισκόπηση\"\n\nmsgid \"Add\"\nmsgstr \"Προσθήκη\"\n\nmsgid \"Add Layout\"\nmsgstr \"Προσθήκη διάταξης\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"Διαγραφή %s\"\n\nmsgid \"Copy from\"\nmsgstr \"Αντιγραφή από\"\n\nmsgid \"Rename\"\nmsgstr \"Μετονομασία\"\n\nmsgid \"Rename Layout\"\nmsgstr \"Μετονομασία διάταξης\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"Τρέχουσα διάταξη\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν τη διάταξη;\"\n\nmsgid \"Widescreen\"\nmsgstr \"Οριζόντια\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Κάθετη\"\n\nmsgid \"Mirror View\"\nmsgstr \"Αναστροφή προβολής\"\n\nmsgid \"Show Grid\"\nmsgstr \"Εμφάνιση πλέγματος\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Εμφάνιση pixel πλέγματος\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Εμφάνιση χαράκων\"\n\nmsgid \"Show Guides\"\nmsgstr \"Εμφάνιση οδηγών\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"Εμφάνιση οδηγών ποντικιού\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"Εμφάνιση εικόνων αναφοράς\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"Εμφάνιση εφέ στρώσης\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"Προσκόλληση σε\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"Προσκόλληση στο όριο του ορθογώνιου πλέγματος\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"Προσκόλληση στο κέντρο του ορθογώνιου πλέγματος\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"Προσκόλληση στους οδηγούς\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"Προσκόλληση στους οδηγούς προοπτικής\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Εμφάνιση χρονοδιαγράμματος\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Λειτουργία ζεν\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Λειτουργία πλήρους οθόνης\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Γέμισμα με χρώμα:\"\n\nmsgid \"Open a File\"\nmsgstr \"Άνοιγμα αρχείου\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Άνοιγμα αρχείου/ων\"\n\nmsgid \"Import Options\"\nmsgstr \"Επιλογές Εισαγωγής\"\n\nmsgid \"Import as:\"\nmsgstr \"Εισαγωγή ως:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Εφαρμογή σε όλα\"\n\nmsgid \"Recent projects\"\nmsgstr \"Πρόσφατα έργα\"\n\nmsgid \"New project\"\nmsgstr \"Νέο έργο\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"Φύλλο καρέ (νέο έργο)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Φύλλο καρέ (νέα στρώση)\"\n\nmsgid \"New frame\"\nmsgstr \"Νέο καρέ\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"Αντικατάσταση cel\"\n\nmsgid \"New layer\"\nmsgstr \"Νέα στρώση\"\n\nmsgid \"New reference image\"\nmsgstr \"Νέα εικόνα αναφοράς\"\n\nmsgid \"New palette\"\nmsgstr \"Νέα παλέτα\"\n\nmsgid \"New brush\"\nmsgstr \"Νέο πινέλο\"\n\nmsgid \"New pattern\"\nmsgstr \"Νέο μοτίβο\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Οριζόντια καρέ:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Κάθετα καρέ:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"Έξυπνος τεμαχισμός\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"Όριο:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"Εικόνες που έχουν οποιαδήποτε πλευρά μικρότερη από αυτή την τιμή θα διασχίζουν το όριο\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"Απόσταση συγχώνευσης:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"Εικόνες που διέσχιζαν το όριο θα συγχωνευτούν σε μια μεγαλύτερη εικόνα, αν βρίσκονται μέσα σε αυτή την απόσταση\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"Ανανέωση\"\n\nmsgid \"Start frame:\"\nmsgstr \"Καρέ έναρξης:\"\n\nmsgid \"End frame:\"\nmsgstr \"Τελικό καρέ:\"\n\nmsgid \"At frame:\"\nmsgstr \"Στο καρέ:\"\n\nmsgid \"At layer:\"\nmsgstr \"Στη στρώση:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Τύπος πινέλου:\"\n\nmsgid \"File brush\"\nmsgstr \"Πινέλο από αρχείο\"\n\nmsgid \"Project brush\"\nmsgstr \"Πινέλο από project\"\n\nmsgid \"Random brush\"\nmsgstr \"Τυχαίο πινέλο\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Αποθήκευση εικόνας ως .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Εξαγωγή εικόνας ως .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Εξαγωγή εικόνας\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Το άρχειο υπάρχει, να γίνει αντικατάσταση;\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"Τα ακόλουθα αρχεία υπάρχουν ήδη. Θέλετε να τα αντικαταστήσετε;\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"Η διαδρομή του φακέλου δεν είναι έγκυρη!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"Το όνομα του αρχείου δεν είναι έγκυρο!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"Η διαδρομή του φακέλου και το όνομα του αρχείου δεν είναι έγκυρα!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Εξαγωγή σε εξέλιξη...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"Αδυναμία φόρτωσης του αρχείου '%s'.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Δεν είναι δυνατή η φόρτωση του αρχείου '%s'.\\n\"\n\"Κωδικός σφάλματος: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"Αδυναμία φόρτωσης του αρχείου '%s'.\\n\"\n\"Αυτό δεν είναι έγκυρο αρχείο παλέτας.\"\n\nmsgid \"Frame\"\nmsgstr \"Καρέ\"\n\nmsgid \"Frames:\"\nmsgstr \"Καρέ:\"\n\nmsgid \"All Frames\"\nmsgstr \"Όλα τα καρέ\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Φύλλο καρέ\"\n\nmsgid \"Animation\"\nmsgstr \"Κίνηση\"\n\nmsgid \"Preview:\"\nmsgstr \"Προεπισκόπηση:\"\n\nmsgid \"Frame:\"\nmsgstr \"Καρέ:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Προσανατολισμός:\"\n\nmsgid \"Browse\"\nmsgstr \"Περιήγηση\"\n\nmsgid \"Resize:\"\nmsgstr \"Αλλαγή μεγέθους:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"Ποιότητα:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Ακύρωση Εξαγωγής\"\n\nmsgid \"Alert!\"\nmsgstr \"Προειδοποίηση!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Επιλογή του τρέχοντα φακέλου\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Άνοιγμα Φακέλου\"\n\nmsgid \"Background:\"\nmsgstr \"Υπόβαθρο:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"Επιλεγμένα καρέ\"\n\nmsgid \"Layers:\"\nmsgstr \"Στρώσεις:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Ορατές στρώσεις\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"Επιλεγμένες στρώσεις\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"Στρώση εικονοστοιχείων:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"Στρώση ομάδας:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"Στρώση 3Δ:\"\n\nmsgid \"Direction:\"\nmsgstr \"Κατεύθυνση:\"\n\nmsgid \"Forward\"\nmsgstr \"Μπροστά\"\n\nmsgid \"Backwards\"\nmsgstr \"Ανάποδα\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Πινγκ-Πονγκ\"\n\nmsgid \"Columns\"\nmsgstr \"Στήλες\"\n\nmsgid \"Columns:\"\nmsgstr \"Στήλες:\"\n\nmsgid \"Rows\"\nmsgstr \"Σειρές\"\n\nmsgid \"Rows:\"\nmsgstr \"Σειρές:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"Ετικέτες ανά στήλη\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"Ετικέτες ανά γραμμή\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"Διαστάσεις εξαγωγής:\"\n\nmsgid \"Save a File\"\nmsgstr \"Αποθήκευση αρχείου\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"Μετάβαση στον προηγούμενο φάκελο.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"Μετάβαση στον επόμενο φάκελο.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"Μετάβαση στον γονικό φάκελο.\"\n\nmsgid \"Path:\"\nmsgstr \"Διαδρομή:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"Ανανέωση αρχείων.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"Εναλλαγή ορατότητας των κρυφών αρχείων.\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Φάκελοι & Αρχεία:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Δημιουργία Φακέλου\"\n\nmsgid \"File:\"\nmsgstr \"Αρχείο:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"Όλα τα αρχεία\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"Όλα τα αναγνωρισμένα\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"Έργο Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"Εικόνα PNG\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"Εικόνα BMP\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"Εικόνα Radiance HDR\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"Εικόνα JPEG\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"Εικόνα SVG\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"Εικόνα TGA\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"Εικόνα WebP\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"Έργο OpenRaster\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"Έργο Aseprite\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"Έργο Krita\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"Έργο Piskel\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"Έργο Photoshop\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"Παλέτα Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"Παλέτα GIMP\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"Σύνθετες επιλογές\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Παρεμβολή:\"\n\nmsgid \"Nearest\"\nmsgstr \"Χωρίς\"\n\nmsgid \"Bilinear\"\nmsgstr \"Διγραμμική\"\n\nmsgid \"Cubic\"\nmsgstr \"Κυβική\"\n\nmsgid \"Trilinear\"\nmsgstr \"Τριγραμμική\"\n\nmsgid \"Constant\"\nmsgstr \"Σταθερή\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"Χρωματικός χώρος\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"Γραμμικό sRGB\"\n\nmsgid \"General\"\nmsgstr \"Γενικά\"\n\nmsgid \"Startup\"\nmsgstr \"Εκκίνηση\"\n\nmsgid \"Language\"\nmsgstr \"Γλώσσα\"\n\nmsgid \"Interface\"\nmsgstr \"Περιβάλλον\"\n\nmsgid \"Themes\"\nmsgstr \"Θέματα\"\n\nmsgid \"Canvas\"\nmsgstr \"Καμβάς\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"Χρονοδιάγραμμα\"\n\nmsgid \"Selection\"\nmsgstr \"Επιλογή\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Συντομεύσεις\"\n\nmsgid \"Backup\"\nmsgstr \"Αντίγραφο ασφαλείας\"\n\nmsgid \"Performance\"\nmsgstr \"Επίδοση\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"Οδηγοί\"\n\nmsgid \"Extensions\"\nmsgstr \"Επεκτάσεις\"\n\nmsgid \"Cursors\"\nmsgstr \"Κέρσορες\"\n\nmsgid \"Indicators\"\nmsgstr \"Δείκτες\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"Το Pixelorama πρέπει να επανεκκινηθεί για να τεθούν σε ισχύ οι αλλαγές.\"\n\nmsgid \"On\"\nmsgstr \"Ενεργό\"\n\nmsgid \"Restore default value\"\nmsgstr \"Επαναφορά εργοστασιακής τιμής\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Ομαλό ζουμ\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Κάνει την μετάβαση στην μεγέθυνση ή σμίκρυνση πιο ομαλή\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"Ακέραιη μεγέθυνση\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"Περιορίζει την τιμή ως ακέραιο πολλαπλάσιο του 100%\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Ευαισθησία πίεσης tablet:\"\n\nmsgid \"None\"\nmsgstr \"Καθόλου\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Επηρεάζει την αδιαφάνεια του πινέλου\"\n\nmsgid \"Color:\"\nmsgstr \"Χρώμα:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Χρώμα οδηγών:\"\n\nmsgid \"System Language\"\nmsgstr \"Γλώσσα Συστήματος\"\n\nmsgid \"Display scale:\"\nmsgstr \"Κλίμακα εμφάνισης:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"Γραμματοσειρά:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"Μέγεθος γραμματοσειράς:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"Προσανατολισμός οθόνης:\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Σκοτείνιασμα περιβάλλοντος όταν εμφανίζεται αναδυόμενο παράθυρο\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"Εμφάνιση ειδοποιήσεων\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"Χρήση εγγενών παραθύρων αρχείων\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"Όταν αυτή η ρύθμιση είναι ενεργοποιημένη, χρησιμοποιούνται τα εγγενή παράθυρα αρχείων του λειτουργικού συστήματος, αντί των παραθύρων του Pixelorama.\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"Λειτουργία ενός παραθύρου\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"Όταν αυτή η ρύθμιση είναι ενεργοποιημένη, τα υποπαράθυρα του Pixelorama θα ενσωματωθούν στο κύριο παράθυρο, αλλιώς κάθε παράθυρο θα είναι ξεχωριστό.\"\n\nmsgid \"Dark\"\nmsgstr \"Σκούρο\"\n\nmsgid \"Gray\"\nmsgstr \"Γκρι\"\n\nmsgid \"Blue\"\nmsgstr \"Μπλε\"\n\nmsgid \"Caramel\"\nmsgstr \"Καραμέλα\"\n\nmsgid \"Light\"\nmsgstr \"Φωτεινό\"\n\nmsgid \"Purple\"\nmsgstr \"Μωβ\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"Τριανταφυλλί\"\n\nmsgid \"Theme\"\nmsgstr \"Θέμα\"\n\nmsgid \"Buttons\"\nmsgstr \"Κουμπιά\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Χρώμα εικονιδίων από:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Χρώμα εικονιδίων:\"\n\nmsgid \"Background\"\nmsgstr \"Υπόβαθρο\"\n\nmsgid \"Background color from:\"\nmsgstr \"Χρώμα υποβάθρου από:\"\n\nmsgid \"Background color:\"\nmsgstr \"Χρώμα υποβάθρου:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"Λειτουργία ενός εργαλείου\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"Αν είναι ενεργοποιημένο, το δεξί κουμπί του ποντικιού θα ενεργοποιεί πάντα το ίδιο εργαλείο με το αριστερό κουμπί του ποντικιού.\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"Κοινή χρήση επιλογών μεταξύ αριστερών και δεξιών εργαλείων\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"Αν αυτό είναι ενεργοποιημένο, οι επιλογές θα συγχρονίζονται μεταξύ του αριστερού και του δεξιού εργαλείου.\\n\"\n\"Για παράδειγμα, και τα δύο εργαλεία θα μοιράζονται το ίδιο μέγεθος βούρτσας, και η αλλαγή του σε ένα εργαλείο θα αλλάξει αμέσως και το άλλο.\"\n\nmsgid \"Left tool color:\"\nmsgstr \"Χρώμα αριστερού εργαλείου:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"Χρώμα δεξιού εργαλείου:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Μέγεθος κουμπιών εργαλείων:\"\n\nmsgid \"Small\"\nmsgstr \"Μικρά\"\n\nmsgid \"Big\"\nmsgstr \"Μεγάλα\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Επηρεάζει μόνο την επιλογή\"\n\nmsgid \"Selected cels\"\nmsgstr \"Επιλεγμένα cels\"\n\nmsgid \"Current cel\"\nmsgstr \"Τρέχον cel\"\n\nmsgid \"Current frame\"\nmsgstr \"Τρέχον καρέ\"\n\nmsgid \"All frames\"\nmsgstr \"Όλα τα καρέ\"\n\nmsgid \"All projects\"\nmsgstr \"Όλα τα έργα\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Αντιστροφή χρωμάτων\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Τροποποίηση Κόκκινου Καναλιού\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Τροποποίηση Πράσινου Καναλιού\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Τροποποίηση Μπλε Καναλιού\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Τροποποίηση Καναλιού Διαφάνειας\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Αποκορεσμός\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Περίγραμμα\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Πίπτουσα σκιά\"\n\nmsgid \"Offset X:\"\nmsgstr \"Μετατόπιση X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"Μετατόπιση Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"Χρώμα σκιάς:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"Θόλωση Gauss\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"Τύπος θόλωσης:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"Ποσότητα θόλωσης:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"Ακτίνα θόλωσης:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"Κατεύθυνση θόλωσης:\"\n\nmsgid \"Gradient\"\nmsgstr \"Διαβάθμιση\"\n\nmsgid \"Gradient Map\"\nmsgstr \"Χάρτης διαβαθμίσεων\"\n\nmsgid \"Interpolation\"\nmsgstr \"Παρεμβολή\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"Αντιστροφή\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"Ίση κατανομή σημείων\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"Χωρίστε σε ίσα τμήματα\"\n\nmsgid \"Parts:\"\nmsgstr \"Τμήματα:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"Προσθήκη σημείου στο τέλος\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"Αν αυτό είναι ενεργοποιημένο, το τελευταίο σημείο προστίθεται στο τέλος της διαβάθμισης.\\n\"\n\"Απενεργοποιήστε το αν θέλετε να μετατρέψετε τη διαβάθμιση για συνεχή παρεμβολή, έτσι ώστε το τελευταίο χρώμα να ληφθεί υπόψη.\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"Αποθήκευση στις προεπιλογές\"\n\nmsgid \"Shape:\"\nmsgstr \"Σχήμα:\"\n\nmsgid \"Linear\"\nmsgstr \"Γραμμική\"\n\nmsgid \"Radial\"\nmsgstr \"Ακτινική\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"Επανάληψη:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"Επανάληψη\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"Κατοπτρισμός\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"Περικοπή\"\n\nmsgid \"Transition size:\"\nmsgstr \"Μέγεθος μετάβασης:\"\n\nmsgid \"Center:\"\nmsgstr \"Κέντρο:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"Μοτίβο χρωματικής αντιπαράθεσης:\"\n\nmsgid \"Type:\"\nmsgstr \"Είδος:\"\n\nmsgid \"Angle:\"\nmsgstr \"Γωνία:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Ρύθμιση απόχρωσης/κορεσμού/τιμής\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"Ρύθμιση HSV\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Απόχρωση:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Κορεσμός:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Τιμή:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"Ρύθμιση φωτεινότητας/αντίθεσης\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"Φωτεινότητα:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"Αντίθεση:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"Κόκκινη τιμή:\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"Πράσινη τιμή:\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"Μπλε τιμή:\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"Απόχρωση:\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"Παράγοντας απόχρωσης:\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"Καμπύλες χρώματος\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"Κανάλι:\"\n\nmsgid \"Red\"\nmsgstr \"Κόκκινο\"\n\nmsgid \"Green\"\nmsgstr \"Πράσινο\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"Τιμή\"\n\nmsgid \"Presets\"\nmsgstr \"Προκαθορισμένα\"\n\nmsgid \"Apply\"\nmsgstr \"Εφαρμογή\"\n\nmsgid \"Diagonal\"\nmsgstr \"Διαγώνιος\"\n\nmsgid \"Place inside image\"\nmsgstr \"Τοποθέτηση μέσα στην εικόνα\"\n\nmsgid \"Thickness:\"\nmsgstr \"Πάχος:\"\n\nmsgid \"Colors:\"\nmsgstr \"Χρώματα:\"\n\nmsgid \"Steps:\"\nmsgstr \"Βαθμίδες:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"Παλετοποίηση\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"Δημιουργία εικονοστοιχείων\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"Αφίσα\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"Επίπεδα αφίσας:\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"Ένταση χρωματικής αντιπαράθεσης:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Εμφάνιση οθόνης εκκίνησης\"\n\nmsgid \"Online Docs\"\nmsgstr \"Ηλεκτρονική τεκμηρίωση\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Καταγραφές προβλημάτων\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"Επαναφορά αντιγράφου\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"Προηγούμενες συνεδρίες\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"Κάντε διπλό κλικ για να φορτώσετε μια ολόκληρη συνεδρία ή ένα συγκεκριμένο έργο.\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"Συνεδρίες\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"Έργα\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"(Τρέχουσα Συνεδρία)\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"Άνοιγμα φακέλου δεδομένων προγράμματος\"\n\nmsgid \"Changelog\"\nmsgstr \"Καταγραφές αλλαγών\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Σχετικά με το Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"Υποστηρίξτε την ανάπτυξη του Pixelorama\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - Pixelate your dreams!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Φτιαγμένο από την Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-παρόν από Orama Interactive και συνεισφέροντες\"\n\nmsgid \"Website\"\nmsgstr \"Ιστοσελίδα\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"Πηγαίος κώδικας\"\n\nmsgid \"Donate\"\nmsgstr \"Κάντε μια δωρεά\"\n\nmsgid \"Developers\"\nmsgstr \"Προγραμματιστές\"\n\nmsgid \"Contributors\"\nmsgstr \"Συνεισφέροντες\"\n\nmsgid \"Donors\"\nmsgstr \"Δωρητές\"\n\nmsgid \"Translators\"\nmsgstr \"Μεταφραστές\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Άδειες\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"Άδεια\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"Άδειες Godot\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"Άδειες τρίτων\"\n\nmsgid \"English\"\nmsgstr \"Αγγλικά\"\n\nmsgid \"Greek\"\nmsgstr \"Ελληνικά\"\n\nmsgid \"French\"\nmsgstr \"Γαλλικά\"\n\nmsgid \"German\"\nmsgstr \"Γερμανικά\"\n\nmsgid \"Polish\"\nmsgstr \"Πολωνικά\"\n\nmsgid \"Portuguese\"\nmsgstr \"Πορτογαλικά\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Πορτογαλικά Βραζιλίας\"\n\nmsgid \"Russian\"\nmsgstr \"Ρωσικά\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Κινέζικα Απλοποιημένα\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Κινεζικά Παραδοσιακά\"\n\nmsgid \"Italian\"\nmsgstr \"Ιταλικά\"\n\nmsgid \"Latvian\"\nmsgstr \"Λετονικά\"\n\nmsgid \"Spanish\"\nmsgstr \"Ισπανικά\"\n\nmsgid \"Catalan\"\nmsgstr \"Καταλανικά\"\n\nmsgid \"Esperanto\"\nmsgstr \"Εσπεράντο\"\n\nmsgid \"Indonesian\"\nmsgstr \"Ινδονησιακά\"\n\nmsgid \"Czech\"\nmsgstr \"Τσεχικά\"\n\nmsgid \"Arabic\"\nmsgstr \"Αραβικά\"\n\nmsgid \"Turkish\"\nmsgstr \"Τουρκικά\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Νορβηγικά Μποκμάλ\"\n\nmsgid \"Korean\"\nmsgstr \"Κορεάτικα\"\n\nmsgid \"Hungarian\"\nmsgstr \"Ουγγρικά\"\n\nmsgid \"Romanian\"\nmsgstr \"Ρουμανικά\"\n\nmsgid \"Japanese\"\nmsgstr \"Ιαπωνικά\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Ουκρανικά\"\n\nmsgid \"Danish\"\nmsgstr \"Δανικά\"\n\nmsgid \"Swedish\"\nmsgstr \"Σουηδικά\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Σερβικά (Κυριλλικά)\"\n\nmsgid \"Dutch\"\nmsgstr \"Ολλανδικά\"\n\nmsgid \"Belarusian\"\nmsgstr \"Λευκορωσικά\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"Επικεφαλής προγραμματιστής\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"Σχεδιαστής UI\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"Δημιουργοί\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Ζωγραφιά από: %s\"\n\nmsgid \"untitled\"\nmsgstr \"άτιτλο\"\n\nmsgid \"imported\"\nmsgstr \"εισαγόμενο\"\n\nmsgid \"copy\"\nmsgstr \"αντίγραφο\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Σίγουρα θέλετε να βγείτε από το Pixelorama;\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Μη αποθηκευμένη εικόνα\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Έχετε μη αποθηκευμένες αλλαγές. Εάν προχωρήσετε, η πρόοδος που έχετε πραγματοποιήσει θα χαθεί.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Αποθήκευση πριν την έξοδο;\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"Το έργο %s έχει μη αποθηκευμένη πρόοδο. Πώς θέλετε να προχωρήσετε;\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Αποθήκευση & έξοδος\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Έξοδος χωρίς αποθήκευση\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Ορθογώνια επιλογή\\n\\n\"\n\"%s για το αριστερό κουμπί ποντικιού\\n\"\n\"%s για το δεξί κουμπί ποντικιού\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Ελλειπτική επιλογή\\n\\n\"\n\"%s για το αριστερό κουμπί ποντικιού\\n\"\n\"%s για το δεξί κουμπί ποντικιού\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Πολυγωνική επιλογή\\n\\n\"\n\"%s για αριστερό πλήκτρο του ποντικιού\\n\"\n\"%s για δεξί πλήκτρο του ποντικιού\\n\\n\"\n\"Διπλό κλικ για σύνδεση του τελευταίου σημείου στο σημείο εκκίνησης\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Επιλογή κατά χρώμα\\n\\n\"\n\"%s για το αριστερό κουμπί ποντικιού\\n\"\n\"%s για το δεξί κουμπί ποντικιού\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Μαγικό ραβδί\\n\\n\"\n\"%s για το αριστερό κουμπί ποντικιού\\n\"\n\"%s για το δεξί κουμπί ποντικιού\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Ελεύθερη επιλογή\\n\\n\"\n\"%s για το αριστερό κουμπί ποντικιού\\n\"\n\"%s για το δεξί κουμπί ποντικιού\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Επιλογή κατά χρώμα\\n\\n\"\n\"%s για το αριστερό κουμπί ποντικιού\\n\"\n\"%s για το δεξί κουμπί ποντικιού\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Μετακίνηση\\n\\n\"\n\"%s για το αριστερό κουμπί ποντικιού\\n\"\n\"%s για το δεξί κουμπί ποντικιού\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Ζουμ (Μεγέθυνση)\\n\\n\"\n\"%s για το αριστερό κουμπί ποντικιού\\n\"\n\"%s για το δεξί κουμπί ποντικιού\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Μετακίνηση κάμερας\\n\\n\"\n\"%s για το αριστερό κουμπί ποντικιού\\n\"\n\"%s για το δεξί κουμπί ποντικιού\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"Επιλογέας χρωμάτων\\n\\n\"\n\"%s για αριστερό πλήκτρο του ποντικιού\\n\"\n\"%s για δεξί πλήκτρο του ποντικιού\\n\\n\"\n\"Επιλέξτε ένα χρώμα από ένα εικονοστοιχείο του αντικειμένου\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"Περικοπή\\n\\n\"\n\"%s για το αριστερό κουμπί ποντικιού\\n\"\n\"%s για το δεξί κουμπί ποντικιού\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Μολύβι\\n\\n\"\n\"%s για το αριστερό κουμπί ποντικιού\\n\"\n\"%s για το δεξί κουμπί ποντικιού\\n\\n\"\n\"Κρατήστε %s για να τραβήξετε μια γραμμή\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Γόμα\\n\\n\"\n\"%s για το αριστερό κουμπί ποντικιού\\n\"\n\"%s για το δεξί κουμπί ποντικιού\\n\\n\"\n\"Κρατήστε %s για να τραβήξετε μια γραμμή\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Κουβάς\\n\\n\"\n\"%s για το αριστερό κουμπί ποντικιού\\n\"\n\"%s για το δεξί κουμπί ποντικιού\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Εργαλείο σκίασης\\n\\n\"\n\"%s για το αριστερό κουμπί ποντικιού\\n\"\n\"%s για το δεξί κουμπί ποντικιού\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Εργαλείο γραμμής\\n\\n\"\n\"%s για το αριστερό πλήκτρο του ποντικιού\\n\"\n\"%s για το δεξί πλήκτρο του ποντικιού\\n\\n\"\n\"Κρατήστε το %s για να περιορίσετε τη γωνία της γραμμής\\n\"\n\"Κρατήστε το %s για να κεντράρετε το σχήμα στην αρχή του κλικ\\n\"\n\"Κρατήστε το %s για να μετακινήσετε την προέλευση του σχήματος\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"Εργαλείο καμπύλης\\n\\n\"\n\"%s για το αριστερό πλήκτρο του ποντικιού\\n\"\n\"%s για το δεξί πλήκτρο του ποντικιού\\n\\n\"\n\"Ζωγραφίζει καμπύλες μπεζιέ\\n\"\n\"Πατήστε το %s/%s για να προσθέσετε νέα σημεία\\n\"\n\"Διπλό κλικ για να ολοκληρωθεί ο σχεδιασμός της καμπύλης\\n\"\n\"Πατήστε και σύρετε για να ελέγξετε την καμπυλότητα\\n\"\n\"Πατήστε το %s για να διαγράψετε το τελευταίο σημείο\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Ορθογώνιο εργαλείο\\n\\n\"\n\"%s για το αριστερό πλήκτρο του ποντικιού\\n\"\n\"%s για το δεξί πλήκτρο του ποντικιού\\n\\n\"\n\"Κρατήστε το %s για να δημιουργηθεί ένα 1:1 σχήμα\\n\"\n\"Κρατήστε το %s για να κεντράρετε το σχήμα στην αρχή του κλικ\\n\"\n\"Κρατήστε το %s για να μετακινήσετε την προέλευση του σχήματος\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Εργαλείο έλλειψης\\n\\n\"\n\"%s για το αριστερό πλήκτρο του ποντικιού\\n\"\n\"%s για το δεξί πλήκτρο του ποντικιού\\n\\n\"\n\"Κρατήστε το %s για να δημιουργηθεί ένα 1:1 σχήμα\\n\"\n\"Κρατήστε το %s για να κεντράρετε το σχήμα στην αρχή του κλικ\\n\"\n\"Κρατήστε το %s για να μετακινήσετε την προέλευση του σχήματος\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"Εργαλείο ισομετρικού κουτιού\\n\\n\"\n\"%s για το αριστερό πλήκτρο του ποντικιού\\n\"\n\"%s για το δεξί πλήκτρο του ποντικιού\\n\\n\"\n\"Σχεδιάζει ένα ισομετρικό κουτί\\n\"\n\"Πατήστε %s/%s για να προσθέσετε ένα σημείο βάσης\\n\"\n\"Κρατήστε το %s για να κολλήσετε τη γωνία του σημείου βάσης\\n\"\n\"Κρατήστε πατημένο το %s για να μετατοπίσετε την θέση του σχήματος\\n\"\n\"Πατήστε %s για να επεξεργαστείτε την τελευταία προστιθέμενη βάση\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Κείμενο\\n\\n\"\n\"%s για το αριστερό κουμπί ποντικιού\\n\"\n\"%s για το δεξί κουμπί ποντικιού\"\n\nmsgid \"Rectangle\"\nmsgstr \"Ορθογώνιο\"\n\nmsgid \"Ellipse\"\nmsgstr \"Έλλειψη\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Επιλέξτε ένα χρώμα για το αριστερό εργαλείο\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Επιλέξτε ένα χρώμα για το δεξί εργαλείο\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"Εναλλαγή μεταξύ αριστερού και δεξιού χρώματος.\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"Μέσος όρος χρώματος:\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Επαναφορά των χρωμάτων στην αρχική τους κατάσταση (μαύρο για το αριστερό, άσπρο για το δεξί)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"Επιλέξτε ένα χρώμα από το παράθυρο της εφαρμογής.\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"Εισάγετε έναν δεκαεξαδικό κωδικό (\\\"#ff0000\\\") ή χρώμα με όνομα (\\\"red\\\").\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"Επιλέξτε ένα σχήμα επιλογέα.\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"Επιλογές χρώματος\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"Επιλέξτε μια λειτουργία επιλογής.\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"Χρωματιστά sliders\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"Swatches\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"Πρόσφατα χρώματα\"\n\nmsgid \"Left tool\"\nmsgstr \"Αριστερό εργαλείο\"\n\nmsgid \"Right tool\"\nmsgstr \"Δεξί εργαλείο\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Δείκτης αριστερού πιξελ\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Εμφάνιση δείκτη για το εικονοστοιχείο ή το πινέλο πάνω στον καμβά που αντιστοιχεί στο αριστερό κουμπί του ποντικιού\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Δείκτης δεξιού πιξελ\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Εμφάνιση δείκτη για το εικονοστοιχείο ή το πινέλο πάνω στον καμβά που αντιστοιχεί στο δεξί κουμπί του ποντικιού\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Εμφάνιση αριστερού εικονιδίου εργαλείου\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Εμφανίζει ένα εικονίδιο του επιλεγμένου αριστερού εργαλείου δίπλα στο κέρσορα στον καμβά\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Εμφάνιση δεξιού εικονιδίου εργαλείου\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Εμφανίζει ένα εικονίδιο του επιλεγμένου δεξιού εργαλείου δίπλα στο κέρσορα στον καμβά\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"Χρήση κερσόρων του λειτουργικού συστήματος\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"Χρήση σταυρού κέρσορα για τον καμβά\"\n\nmsgid \"Guides\"\nmsgstr \"Οδηγοί\"\n\nmsgid \"Guides color:\"\nmsgstr \"Χρώμα οδηγών:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Το χρώμα των οδηγών που φαίνεται στο καμβά\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"Προσκόλληση\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"Απόσταση προσκόλλησης:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"Αυτή είναι η απόσταση σε εικονοστοιχεία οθόνης όπου ενεργοποιείται η προσκόλληση στους οδηγούς και στο πλέγμα.\"\n\nmsgid \"Grid\"\nmsgstr \"Πλέγμα\"\n\nmsgid \"Grid type:\"\nmsgstr \"Είδος πλέγματος:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Ορίζει το είδος του πλέγματος ανάμεσα σε ορθογωνικό, ισομετρικό ή και τα δύο\"\n\nmsgid \"Rectangular\"\nmsgstr \"Ορθογωνικό\"\n\nmsgid \"Isometric\"\nmsgstr \"Ισομετρικό\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"Εξαγωνικό\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"Εξαγωνική (μυτερή κορυφή)\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"Εξαγωνική (επίπεδη κορυφή)\"\n\nmsgid \"All\"\nmsgstr \"Όλα\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"Ορατά πλέγματα:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"Επεξεργασμένο πλέγμα:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"Μέγεθος πλέγματος:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"Μετατόπιση πλέγματος:\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"Ορίζει τη μετατόπιση του πλέγματος από την προέλευση του καμβά (πάνω αριστερή γωνία της εικόνας)\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"Εμφάνιση πάνω από τη λειτουργία μοτίβου:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"Εάν είναι απενεργοποιημένο, το πλέγμα θα εμφανίζεται μόνο πάνω από την αρχική εικόνα\"\n\nmsgid \"Grid color:\"\nmsgstr \"Χρώμα πλέγματος:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"Το χρώμα του πλέγματος που φαίνεται στον καμβά\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Pixel πλέγμα\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Εμφάνιση στο επίπεδο μεγέθυνσης:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"Ορίζει το ελάχιστο επίπεδο μεγέθυνσης (ζουμ) στο οποίο θα εμφανίζεται το pixel πλέγμα\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Χρώμα pixel πλέγματος:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"Το χρώμα του pixel πλέγματος που φαίνεται στον καμβά\"\n\nmsgid \"Transparency\"\nmsgstr \"Διαφάνεια\"\n\nmsgid \"Checker size:\"\nmsgstr \"Μέγεθος σκακιέρας:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Μέγεθος του διάφανου υποβάθρου - σκακιέρα\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Χρώμα σκακιέρας 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"Πρώτο χρώμα του διάφανου υποβάθρου - σκακιέρα\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Χρώμα σκακιέρας 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"Δεύτερο χρώμα του διάφανου υποβάθρου - σκακιέρα\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"Να ακολουθεί τη κίνηση του καμβά\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"Το διάφανο υπόβαθρο - σκακιέρα να ακολουθεί τη κίνηση του καμβά\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"Να ακολουθεί το επίπεδο μεγέθυνσης (ζουμ) του καμβά\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"Το διάφανο υπόβαθρο - σκακιέρα να ακολουθεί το επίπεδο μεγέθυνσης (ζουμ) του καμβά\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"Επιλογή στρώσης όταν πατιέται ένα από τα κουμπιά της:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"Παρελθοντικό χρώμα onion skinning:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"Μελλοντικό χρώμα onion skinning:\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"Κίνηση περιγράμματος επιλογής\"\n\nmsgid \"Border color 1:\"\nmsgstr \"Χρώμα περιγράμματος 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Χρώμα περιγράμματος 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"Αδιαφάνεια προεπισκόπησης μετασχηματισμού:\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Μόνο η προσαρμοσμένη προεπιλογή μπορεί να τροποποιηθεί\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"Ορισμός ορίου FPS εφαρμογής:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"Ορίζει το όριο των καρέ της εφαρμογής ανά δευτερόλεπτο. Όσο μικρότερος είναι ο αριθμός, τόσο χαμηλότερη είναι η χρήση της CPU, αλλά η εφαρμογή γίνεται πιο αργή, ασταθής και λιγότερο ανταποκρινόμενη. 0 σημαίνει ότι δεν υπάρχει όριο.\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"Μέγιστα βήματα αναίρεσης:\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"Παύση εφαρμογής όταν χάνει την εστίαση\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"Αν είναι ενεργοποιημένο, όταν το παράθυρο της εφαρμογής χάνει την εστίαση του, γίνεται παύση της εφαρμογής. Αυτό βοηθά στη μείωση της χρήσης του επεξεργαστή (CPU) όταν βρίσκεται σε αδράνεια. Η εφαρμογή συνεχίζεται όταν το ποντίκι εισέρχεται στο παράθυρο της.\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"Συνεχής ανανέωση\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"Αν είναι ενεργοποιημένο, η εφαρμογή θα ανανεώνει την οθόνη συνεχώς, ακόμα και αν δε χρησιμοποιείται. Η απενεργοποίηση αυτής της λειτουργίας βοηθά στη μείωση της χρήσης CPU και GPU όταν είναι αδρανείς.\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"Ενεργοποίηση διαφάνειας παραθύρου\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"Αν ενεργοποιηθεί, το παράθυρο της εφαρμογής μπορεί να γίνει διαφανές. Αυτό επηρεάζει τις επιδόσεις, οπότε κρατήστε το απενεργοποιημένο αν δεν το χρειάζεστε.\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"Χρήση εικονικού οδηγού ήχου\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"Οδηγός βίντεο:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"Καθορίζει το πρόγραμμα οδήγησης βίντεο που χρησιμοποιείται. Το GLES2 είναι καλύτερο για παλαιότερες και χαμηλού επιπέδου συσκευές, αλλά το GLES3 μπορεί να προσφέρει περισσότερες δυνατότητες.\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"Οδηγός ταμπλέτας:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"Καθορίζει το πρόγραμμα οδήγησης ταμπλέτας που χρησιμοποιείται στα Windows. Εάν έχετε ενεργοποιημένο το Windows Ink, επιλέξτε winink.\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Προσθήκη επέκτασης\"\n\nmsgid \"Enable\"\nmsgstr \"Ενεργοποίηση\"\n\nmsgid \"Disable\"\nmsgstr \"Απενεργοποίηση\"\n\nmsgid \"Uninstall\"\nmsgstr \"Απεγκατάσταση\"\n\nmsgid \"Open Folder\"\nmsgstr \"Άνοιγμα φακέλου\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"Εξερευνήστε online\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"Περιηγητής επεκτάσεων\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"Αναζήτηση...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"Ετικέτες:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"Αναφορά προβλήματος επέκτασης\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"Λήψη\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"Σύνδεσμοι αποθετηρίων:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"Λήψη πληροφοριών από το απομακρυσμένο αποθετήριο.\\n\"\n\"Παρακαλώ περιμένετε.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"Δεν είναι δυνατή η λήψη πληροφοριών από το απομακρυσμένο αποθετήριο.\\n\\n\"\n\"- Βεβαιωθείτε ότι είστε συνδεδεμένοι στο διαδίκτυο.\\n\"\n\"- Εάν χρησιμοποιείτε την έκδοση Flatpak του Pixelorama, θα πρέπει να του παραχωρήσετε άδεια για σύνδεση στο διαδίκτυο. Για να το κάνετε αυτό, μπορείτε να εκτελέσετε την ακόλουθη εντολή στο τερματικό σας:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"Εναλλακτικά, μπορείτε να κατεβάσετε το Flatseal και να ορίσετε δικαιώματα για εφαρμογές Flatpak εκεί.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"Δεν είναι δυνατή η λήψη πληροφοριών από το απομακρυσμένο αποθετήριο.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"Επικόλληση συνδέσμου αποθετηρίου, που δίνεται από τον ιδιοκτήτη αποθετηρίου. Αν αφεθεί κενό, θα αφαιρεθεί αυτόματα.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"Είστε βέβαιοι ότι θέλετε να ενεργοποιήσετε αυτή την επέκταση; Βεβαιωθείτε ότι ενεργοποιείτε επεκτάσεις μόνο από πηγές που εμπιστεύεστε.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την επέκταση;\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"Δυναμικές\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"Σταθεροποιητής\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"Πίεση\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"Ταχύτητα\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"Διαφάνεια\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"Μέγεθος\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"Όρια τιμών\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"Όρια\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"Αρχή\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"Τέλος\"\n\nmsgid \"Brush:\"\nmsgstr \"Πινέλο:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Επιλέξτε ένα πινέλο\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"Προεπιλεγμένα πινέλα\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Πινέλο εικονοστοιχείου\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Πινέλο κύκλου\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Πινέλου κύκλου με γέμισμα\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"Πινέλα έργου\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"Πινέλα από αρχείο\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"Χιόνι\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"Τυχαία πινέλα από αρχείο\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"Γρασίδι\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"Αστέρι\"\n\nmsgid \"Custom brush\"\nmsgstr \"Προσαρμοσμένο πινέλο\"\n\nmsgid \"Brush size:\"\nmsgstr \"Μέγεθος πινέλου:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"Επιλογές περιστροφής\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"Αναστροφή:\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"Περιστροφή:\"\n\nmsgid \"Overwrite color\"\nmsgstr \"Αντικατάσταση χρώματος\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Αντικαθιστά το χρώμα αντί να το συνδυάζει. Αυτή η επιλογή σχετίζεται μόνο με χρώματα που δεν είναι πλήρως αδιαφανή\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Pixel Perfect\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"Pixel Perfect\\n\"\n\"Κάνει τις γραμμές ομαλές αφαιρώντας τα επιπλέον εικονοστοιχεία στα άκρα\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"Κλείδωμα διαφάνειας\"\n\nmsgid \"Fill inside\"\nmsgstr \"Εσωτερικό γέμισμα\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"Απόσταση\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"Κενό X:\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"Κενό Y:\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Γέμισμα Σχήματος\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"Γεμίζει το σχεδιασμένο σχήμα με χρώμα, αντί να σχεδιαστεί ένα άδειο σχήμα\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"Πυκνότητα:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"Χρώμα πινέλου από:\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: Χρώμα από το πινέλο, 100: επιλεγμένο χρώμα\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"Περιοχή γεμίσματος:\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"Παρόμοια περιοχή\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"Παρόμοια χρώματα\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"Ολόκληρη επιλογή\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"Γέμισμα περιοχών από τη συγχώνευση όλων των στρώσεων\"\n\nmsgid \"Fill with:\"\nmsgstr \"Γέμισμα με:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"Επιλεγμένο χρώμα\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Μοτίβο\"\n\nmsgid \"Offset\"\nmsgstr \"Μετατόπιση\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Απλή Σκίαση\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Μετατόπιση Απόχρωσης\"\n\nmsgid \"Lighten\"\nmsgstr \"Φώτισμα\"\n\nmsgid \"Darken\"\nmsgstr \"Σκούρημα\"\n\nmsgid \"Amount:\"\nmsgstr \"Ποσό:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Ποσό φωτίσματος ή σκουρήματος\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"Αντικατάσταση χρώματος\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"Παρακαλώ επιλέξτε ένα χρώμα από την παλέτα.\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"Δεξιά χρώματα:\"\n\nmsgid \"Pick for:\"\nmsgstr \"Επιλογή για το:\"\n\nmsgid \"Left Color\"\nmsgstr \"Αριστερό Χρώμα\"\n\nmsgid \"Right Color\"\nmsgstr \"Δεξί Χρώμα\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"Λειτουργία επιλογής:\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"Πάνω χρώμα\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"Τρέχον στρώμα\"\n\nmsgid \"Mode:\"\nmsgstr \"Λειτουργία:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Μεγέθυνση\"\n\nmsgid \"Zoom out\"\nmsgstr \"Σμίκρυνση\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"Μονό\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"Αλυσοδεμένο\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"Αλυσοδεμένο: Κάνει μια αλυσίδα από πολλαπλές καμπύλες μπεζιέ, παρόμοιο με το εργαλείο καμπύλης Krita.\\n\"\n\"Μόνο: Κάνει μια ενιαία καμπύλη μπεζιέ, παρόμοια με το εργαλείο καμπύλης του Aseprite.\"\n\nmsgid \"Options\"\nmsgstr \"Επιλογές\"\n\nmsgid \"Options:\"\nmsgstr \"Επιλογές:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"Προσαρμογή στην οθόνη\"\n\nmsgid \"100% Zoom\"\nmsgstr \"100% Ζουμ\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"Αντικατάσταση επιλογής\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"Προσθήκη στην επιλογή\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"Αφαίρεση από την επιλογή\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"Διασύνδεση των επιλογών\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"Στυλ:\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"Κανονικό\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"Έντονo\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"Πλάγιο\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"Έντονο πλάγιο\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"Εξομάλυνση\"\n\nmsgid \"Grayscale\"\nmsgstr \"Κλίμακα του γκρι\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"Χρώμα άκρου\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"Χρώμα εργαλείου\"\n\nmsgid \"Adjusted average\"\nmsgstr \"Προσαρμοσμένος μέσος όρος\"\n\nmsgid \"Blend at interface\"\nmsgstr \"Ανάμειξη στη διεπαφή\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"Αριστερή όψη\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"Δεξιά όψη\"\n\nmsgid \"Mirroring\"\nmsgstr \"Κατοπτρισμός\"\n\nmsgid \"Horizontal\"\nmsgstr \"Οριζόντια\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Ενεργοποίηση ζωγραφικής με οριζόντιο κατοπτρισμό\"\n\nmsgid \"Vertical\"\nmsgstr \"Κάθετα\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Ενεργοποίηση ζωγραφικής με κάθετο κατοπτρισμό\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"Ενεργοποίηση ζωγραφικής με διαγώνιο (↗) κατοπτρισμό\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"Ενεργοποίηση ζωγραφικής με διαγώνιο (↘) κατοπτρισμό\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"Μετακίνηση στο κέντρο του καμβά\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"Μετακίνηση στο κέντρο της προβολής\"\n\nmsgid \"Current frame:\"\nmsgstr \"Τρέχον καρέ:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"Λειτουργία κίνησης:\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"Τρέχον πλαίσιο ως φύλλο καρέ\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"Μετάβαση στο πρώτο καρέ\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"Μετάβαση στο προηγούμενο καρέ\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"Αναπαραγωγή της κίνησης προς τα πίσω\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"Αναπαραγωγή της κίνησης προς τα εμπρός\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"Μετάβαση στο επόμενο καρέ\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"Μετάβαση στο τελευταίο καρέ\"\n\nmsgid \"Timeline settings\"\nmsgstr \"Ρυθμίσεις χρονοδιαγράμματος\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Ενεργοποίηση/απενεργοποίηση Onion Skinning\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"Πόσα καρέ ανά δευτερόλεπτο (FPS) να είναι η προεπισκόπηση της κίνησης;\\n\"\n\"Όσο περισσότερα FPS, τόσο πιο γρήγορα παίζει η κίνηση.\"\n\nmsgid \"No loop\"\nmsgstr \"Καμία επανάληψη\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Κυκλική επανάληψη\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Επανάληψη πινγκ-πονγκ\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Onion Skinning:\"\n\nmsgid \"Past Frames\"\nmsgstr \"Παρελθοντικά καρέ\"\n\nmsgid \"Future Frames\"\nmsgstr \"Μελλοντικά καρέ\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Διαχείριση ετικετών καρέ\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Ιδιότητες ετικετών καρέ\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Προσθήκη νέας ετικέτας καρέ\"\n\nmsgid \"Name:\"\nmsgstr \"Όνομα:\"\n\nmsgid \"From:\"\nmsgstr \"Από:\"\n\nmsgid \"To:\"\nmsgstr \"Έως:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"Η κίνηση παίζει μόνο σε καρέ της ίδιας καρτέλας\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Ετικέτα %s (Καρέ %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Ετικέτα %s (Καρέ %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Αν είναι επιλεγμένο, η κίνηση παίζει μόνο σε καρέ που έχουν την ίδια καρτέλα.\\n\"\n\"Αλλιώς, η κίνηση θα παίζει σε όλα τα καρέ, αγνοώντας τις καρτέλες.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"Μέγεθος cel:\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"Λειτουργία χρώματος\"\n\nmsgid \"Show past frames:\"\nmsgstr \"Εμφάνιση προηγούμενων καρέ:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"Εμφάνιση επόμενων καρέ:\"\n\nmsgid \"Above canvas\"\nmsgstr \"Πάνω από καμβά\"\n\nmsgid \"Below canvas\"\nmsgstr \"Κάτω από καμβά\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"Αν θέλετε ένα στρώμα να αγνοήσει το onion skinning απλά προσθέστε το επίθημα \\\"_io\\\" στο όνομά του.\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Προσθήκη νέου καρέ\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Διαγραφή καρέ\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Κλωνοποίηση καρέ\"\n\nmsgid \"Move Left\"\nmsgstr \"Μετακίνηση αριστερά\"\n\nmsgid \"Move Right\"\nmsgstr \"Μετακίνηση δεξιά\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"Προσθήκη Ετικέτας Καρέ\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"Επιλογή εικονοστοιχείων\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"Σύνδεση cels με\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"Αποσύνδεση cels\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"Αναπαραγωγή ήχου εδώ\"\n\nmsgid \"Properties\"\nmsgstr \"Ιδιότητες\"\n\nmsgid \"Project Properties\"\nmsgstr \"Ιδιότητες έργου\"\n\nmsgid \"Frame properties\"\nmsgstr \"Ιδιότητες καρέ\"\n\nmsgid \"Layer properties\"\nmsgstr \"Ιδιότητες στρώσης\"\n\nmsgid \"Cel properties\"\nmsgstr \"Ιδιότητες cel\"\n\nmsgid \"Tag properties\"\nmsgstr \"Ιδιότητες ετικέτας\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"Νέα ετικέτα\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"Εισαγωγή ετικέτας\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"Αντιστροφή καρέ\"\n\nmsgid \"Layer\"\nmsgstr \"Στρώση\"\n\nmsgid \"Group\"\nmsgstr \"Ομάδα\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"Χάρτης πλακιδίων\"\n\nmsgid \"Audio\"\nmsgstr \"Ήχος\"\n\nmsgid \"Layers\"\nmsgstr \"Στρώσεις\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"Μάσκα αποκοπής\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"Ισοπέδωση\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"Ισοπέδωση ορατών\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Δημιουργία νέας στρώσης\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"Προσθήκη στρώσης εικονοστοιχείων\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"Προσθήκη στρώσης ομάδας\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"Προσθήκη τρισδιάστατης στρώσης\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"Προσθήκη στρώσης χάρτη πλακιδίων\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"Προσθήκη ηχητικής στρώσης\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Διαγραφή της τρέχουσας στρώσης\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Μετακίνηση της τρέχουσας στρώσης προς τα πάνω\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Μετακίνηση της τρέχουσας στρώσης προς τα κάτω\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Κλωνοποίηση της τρέχουσας στρώσης\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Συγχώνευση της τρέχουσας στρώσης με την από κάτω\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"Λειτουργία στρώσης:\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"Διέλευση\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"Κανονικό\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"Διαγραφή\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"Πολλαπλασιασμός\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"Χρωματικό κάψιμο\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"Γραμμικό κάψιμο\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"Οθόνη\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"Χρωματική υπεκφυγή\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"Αντίθεση\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"Επικάλυψη\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"Ήπιο φως\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"Σκληρό φως\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"Αναστροφή\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"Διαφορά\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"Αποκλεισμός\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"Αφαίρεση\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"Διαίρεση\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"Συστατικό\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"Απόχρωση\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"Κορεσμός\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"Χρώμα\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"Φωτεινότητα\"\n\nmsgid \"Opacity:\"\nmsgstr \"Αδιαφάνεια:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"Αδιαφάνεια λειτουργίας μοτίβου:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Εναλλαγή της ορατότητας της στρώσης\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Κλείδωμα/ξεκλείδωμα της στρώσης\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Καρέ: %s, Στρώση: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"Ενεργοποίηση/απενεργοποίηση αυτόματης σύνδεσης νέων cels κατά τη δημιουργία νέων καρέ\\n\\n\"\n\"Τα συνδεδεμένα cels κάνουν κοινή χρήση περιεχομένου σε πολλαπλά καρέ\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"Ανάπτυξη/σύμπτυξη ομάδας\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"Αρχείο ήχου:\"\n\nmsgid \"Load file\"\nmsgstr \"Φόρτωση αρχείου\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"Αναπαραγωγή στο καρέ:\"\n\nmsgid \"Palette\"\nmsgstr \"Παλέτα\"\n\nmsgid \"Palettes\"\nmsgstr \"Παλέτες\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Νέα παλέτα\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Επεξεργασία παλέτας\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Επιλογή παλέτας\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Αναίρεση: Ζωγραφική\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Ακύρωση αναίρεσης: Ζωγραφική\"\n\nmsgid \"Undo: Select\"\nmsgstr \"Αναίρεση: Επιλογή\"\n\nmsgid \"Redo: Select\"\nmsgstr \"Ακύρωση αναίρεσης: Επιλογή\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Αναίρεση: Κλιμάκωση\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Ακύρωση αναίρεσης: Κλιμάκωση\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Αναίρεση: Προσθήκη στρώσης\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Ακύρωση αναίρεσης: Προσθήκη στρώσης\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Αναίρεση: Διαγραφή στρώσης\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Ακύρωση αναίρεσης: Διαγραφή στρώσης\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Αναίρεση: Συγχώνευση στρώσης\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Ακύρωση αναίρεσης: Συγχώνευση στρώσης\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Αναίρεση: Αλλαγή σειράς στρώσης\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Ακύρωση αναίρεσης: Αλλαγή σειράς στρώσης\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Αναίρεση: Προσθήκη καρέ\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Ακύρωση αναίρεσης: Προσθήκη καρέ\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Αναίρεση: Διαγραφή καρέ\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Ακύρωση αναίρεσης: Διαγραφή καρέ\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Αναίρεση: Αλλαγή σειράς καρέ\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Ακύρωση αναίρεσης: Αλλαγή σειράς καρέ\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Αναίρεση: Διαγραφή προσαρμοσμένου πινέλου\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Ακύρωση αναίρεσης: Διαγραφή προσαρμοσμένου πινέλου\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"Αναίρεση: Τροποποίηση ετικέτας καρέ\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"Ακύρωση αναίρεσης: Τροποποίηση ετικέτας καρέ\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"Αναίρεση: Διαγραφή ετικέτας καρέ\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"Ακύρωση αναίρεσης: Διαγραφή ετικέτας καρέ\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"Αναίρεση: Αλλαγή διάρκειας καρέ\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"Ακύρωση αναίρεσης: Αλλαγή διάρκειας καρέ\"\n\nmsgid \"Move Guide\"\nmsgstr \"Μετακίνηση βοηθού\"\n\nmsgid \"File saved\"\nmsgstr \"Το αρχείο αποθηκεύτηκε\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"Αποθηκεύτηκε ένα αντίγραφο ασφαλείας\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"Απέτυχε το άνοιγμα του αρχείου. Κωδικός σφάλματος %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"Απέτυχε η αποθήκευση του αρχείου. Κωδικός σφάλματος %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"Αποτυχία εξαγωγής του βίντεο. Βεβαιωθείτε ότι το FFMPEG έχει εγκατασταθεί σωστά.\"\n\nmsgid \"File(s) exported\"\nmsgstr \"Έγινε εξαγωγή αρχείων\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Νέα Κενή Παλέτα\"\n\nmsgid \"Import Palette\"\nmsgstr \"Εισαγωγή Παλέτας\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Δημιουργία παλέτας από την τρέχουσα εικόνα\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Όνομα Παλέτας:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Όνομα Χρώματος:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"Χρήση των επιλεγμένων χρωμάτων (αριστερού & δεξιού)\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Δημιουργία νέας κενής παλέτας;\"\n\nmsgid \"Error\"\nmsgstr \"Σφάλμα\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Σφάλμα: Η παλέτα πρέπει να έχει έγκυρο όνομα.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Μη έγκυρο αρχείο παλέτας!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Επεξεργασία Παλέτας\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"Δημιουργία χρωμάτων με στοιχεία αδιαφάνειας\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"Χρώματα μόνο από την επιλογή\"\n\nmsgid \"Get colors from\"\nmsgstr \"Χρώματα από\"\n\nmsgid \"Patrons:\"\nmsgstr \"Patrons:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"Θέλετε το όνομά σας ή της εταιρείας σας να φαίνεται στην οθόνη εκκίνησης;\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Γίνετε Πλατινένιος Χορηγός\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Γίνετε Χρυσός Χορηγός\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Γίνετε Χορηγός\"\n\nmsgid \"Don't show again\"\nmsgstr \"Να μην εμφανιστεί ξανά\"\n\nmsgid \"Image Options\"\nmsgstr \"Επιλογές εικόνας\"\n\nmsgid \"Default width:\"\nmsgstr \"Προεπιλεγμένο πλάτος:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"Το προεπιλεγμένο πλάτος των καινούριων εικόνων\"\n\nmsgid \"Default height:\"\nmsgstr \"Προεπιλεγμένο ύψος:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"Το προεπιλεγμένο ύψος των καινούριων εικόνων\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Προεπιλεγμένο γέμισμα με χρώμα:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"Το προεπιλεγμένο χρώμα των καινούριων εικόνων\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"Επαναφορά όλων των επιλογών που βρίσκονται στις προτιμήσεις\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"Επαναφορά επιλογών χρονοδιαγράμματος\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"Επαναφορά όλων των επιλογών εργαλείων\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"Διαγραφή όλων των επεκτάσεων\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"Διαγραφή όλων των αντιγράφων ασφαλείας\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"Εκκαθάριση της λίστας αρχείων που ανοίχθηκαν πρόσφατα\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"Κλείδωμα αναλογίας διαστάσεων\"\n\nmsgid \"Portrait\"\nmsgstr \"Κατακόρυφος προσανατολισμός\"\n\nmsgid \"Landscape\"\nmsgstr \"Οριζόντιος προσανατολισμός\"\n\nmsgid \"Templates:\"\nmsgstr \"Πρότυπα:\"\n\nmsgid \"Preset\"\nmsgstr \"Προκαθορισμένο\"\n\nmsgid \"Preset:\"\nmsgstr \"Προκαθορισμένο:\"\n\nmsgid \"Default\"\nmsgstr \"Προεπιλογή\"\n\nmsgid \"Custom\"\nmsgstr \"Προσαρμοσμένο\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Ορθογώνια επιλογή\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"Ελλειπτική επιλογή\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"Πολυγωνική επιλογή\"\n\nmsgid \"Select By Color\"\nmsgstr \"Επιλογή κατά χρώμα\"\n\nmsgid \"Magic Wand\"\nmsgstr \"Μαγικό ραβδί\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"Ελεύθερη επιλογή\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"Επιλογή βάσει σχεδίασης\"\n\nmsgid \"Move\"\nmsgstr \"Μετακίνηση\"\n\nmsgid \"Zoom\"\nmsgstr \"Ζουμ\"\n\nmsgid \"Pan\"\nmsgstr \"Μετακίνηση κάμερας\"\n\nmsgid \"Color Picker\"\nmsgstr \"Επιλογέας χρωμάτων\"\n\nmsgid \"Pencil\"\nmsgstr \"Μολύβι\"\n\nmsgid \"Eraser\"\nmsgstr \"Γόμα\"\n\nmsgid \"Bucket\"\nmsgstr \"Κουβάς\"\n\nmsgid \"Shading Tool\"\nmsgstr \"Εργαλείο σκίασης\"\n\nmsgid \"Line Tool\"\nmsgstr \"Εργαλείο γραμμής\"\n\nmsgid \"Curve Tool\"\nmsgstr \"Εργαλείο καμπύλης\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"Ορθογώνιο εργαλείο\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"Εργαλείο έλλειψης\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"Εργαλείο ισομετρικού κουτιού\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Εναλλαγή χρωμάτων\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Επιλέξτε μια συντόμευση\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Πατήστε ένα πλήκτρο ή συνδυασμό πλήκτρων για να ορίσετε τη συντόμευση\"\n\nmsgid \"Already assigned\"\nmsgstr \"Έχει ήδη εκχωρηθεί\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Αριστερό εργαλείο:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Το εργαλείο που έχει εκχωρηθεί στο αριστερό κουμπί του ποντικιού\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Δεξί εργαλείο:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Το εργαλείο που έχει εκχωρηθεί στο δεξί κουμπί του ποντικιού\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"Δεν είναι δυνατή η εύρεση του τελευταίου αρχείου έργου.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"Δεν είναι δυνατή η εύρεση του αρχείου έργου.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Δεν έχετε αποθηκεύσει ούτε ανοίξει κανένα έργο στο Pixelorama ακόμη!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Άνοιγμα τελευταίου έργου\"\n\nmsgid \"Open last project...\"\nmsgstr \"Άνοιγμα τελευταίου έργου...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Άνοιγμα τελευταίου έργου κατά την εκκίνηση\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Ανοίγει το τελευταίο έργο κατά την εκκίνηση\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"Επιβεβαίωση εξόδου\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"Διαδρομή FFMPEG\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Ενεργοποίηση αυτόματης αποθήκευσης\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Χρονικό διάστημα αυτόματης αποθήκευσης:\"\n\nmsgid \"minute(s)\"\nmsgstr \"λεπτό(ά)\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"Εξαγωγή δεδομένων JSON\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"Διαχωρισμός στρώσεων\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"Συμπερίληψη ετικετών καρέ στο όνομα αρχείου\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"Δημιουργία νέου φακέλου για κάθε ετικέτα καρέ\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"Δημιουργεί πολλά αρχεία, αλλά κάθε αρχείο αποθηκεύεται σε διαφορετικό φάκελο που αντιστοιχεί σε κάθε ετικέτα καρέ\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"Διαχωριστικοί χαρακτήρες:\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"Οι χαρακτήρες που διαχωρίζουν το όνομα του αρχείου και τον αριθμό του καρέ\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"Περικοπή εικόνων\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"Περικοπή των εξαγόμενων εικόνων στο ορατό τμήμα τους, θεωρώντας κάθε pixel με ένα μη μηδενικό alpha κανάλι ως ορατό.\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"Αποκοπή περιεχομένου εικόνας στην επιλογή\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"Εξαγωγή μόνο περιεχομένου που βρίσκεται εντός των ορίων μιας επιλεγμένης περιοχής.\"\n\nmsgid \"Close\"\nmsgstr \"Κλείσιμο\"\n\nmsgid \"Discard All\"\nmsgstr \"Απόρριψη όλων\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"Το Pixelorama δεν έκλεισε σωστά την προηγούμενη φορά. Θα θέλατε να επαναφέρετε μια προηγούμενη συνεδρία;\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"Το αντίγραφο ασφαλείας επαναφορτώθηκε\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Διαγραφή παλέτας\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτή τη παλέτα; (Δεν είναι δυνατή η αναίρεση αυτής της ενέργειας)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Δεν μπορείτε να διαγράψετε άλλες παλέτες!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Δεν γίνεται να διαγραφεί η παλέτα, επειδή δεν υπάρχει!\"\n\nmsgid \"and\"\nmsgstr \"και\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Μετακίνηση του επιλεγμένου καρέ προς τα αριστερά.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Μετακίνηση του επιλεγμένου καρέ προς τα δεξιά.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"Διάρκεια καρέ:\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"Δεδομένα χρήστη:\"\n\nmsgid \"Duration\"\nmsgstr \"Διάρκεια\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"Επανάληψη και στους 2 άξονες\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"Επανάληψη στον άξονα Χ\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Επανάληψη στον άξονα Y\"\n\nmsgid \"Create a new palette\"\nmsgstr \"Δημιουργία νέας παλέτας\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"Δημιουργία νέας παλέτας έργου\"\n\nmsgid \"Comment:\"\nmsgstr \"Σχόλια:\"\n\nmsgid \"Empty\"\nmsgstr \"Κενή\"\n\nmsgid \"From Current Palette\"\nmsgstr \"Από την τρέχουσα παλέτα\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"Από την τρέχουσα εικόνα\"\n\nmsgid \"From Current Selection\"\nmsgstr \"Από την τρέχουσα επιλογή\"\n\nmsgid \"Add a new color\"\nmsgstr \"Προσθήκη νέου χρώματος\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"Αφαίρεση επιλεγμένου χρώματος\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"Ταξινόμηση παλέτας\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"Αντιστροφή χρωμάτων\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"Ταξινόμηση κατά απόχρωσης\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"Ταξινόμηση κατά κορεσμού\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"Ταξινόμηση κατά τιμής\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"Ταξινόμηση κατά φωτεινότητα\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"Ταξινόμηση κατά κόκκινου\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"Ταξινόμηση κατά πράσινου\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"Ταξινόμηση κατά μπλε\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"Ταξινόμηση κατά αδιαφάνειας\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"Υπάρχει ήδη παλέτα με το ίδιο όνομα και διαδρομή!\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"Απαιτείται όνομα παλέτας!\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"Η μείωση του μεγέθους της παλέτας θα επηρεάσει τις θέσεις των χρωμάτων. Τα χρώματα που δε χωρούν στο νέο μέγεθος της παλέτας θα χαθούν!\"\n\nmsgid \"Position:\"\nmsgstr \"Θέση:\"\n\nmsgid \"Tools\"\nmsgstr \"Εργαλεία\"\n\nmsgid \"Main Canvas\"\nmsgstr \"Κύριος καμβάς\"\n\nmsgid \"Second Canvas\"\nmsgstr \"Δεύτερος καμβάς\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"Χρονοδιάγραμμα\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"Προεπισκόπηση καμβά\"\n\nmsgid \"Color Pickers\"\nmsgstr \"Επιλογείς χρωμάτων\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"Καθολικές επιλογές εργαλείων\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"Επιλογές αριστερού εργαλείου\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"Επιλογές δεξιού εργαλείου\"\n\nmsgid \"Reference Images\"\nmsgstr \"Εικόνες αναφοράς\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"Επεξεργαστής προοπτικής\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"Καταγραφή\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"Πλακίδια\"\n\nmsgid \"Crop\"\nmsgstr \"Περικοπή\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"Αλλαγή μεγέθους καμβά\"\n\nmsgid \"Margins\"\nmsgstr \"Περιθώρια\"\n\nmsgid \"Position + Size\"\nmsgstr \"Θέση και μέγεθος\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"Κλείδωμα αναλογίας διαστάσεων\"\n\nmsgid \"Margins:\"\nmsgstr \"Περιθώρια:\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"Αναλογία διαστάσεων:\"\n\nmsgid \"Top:\"\nmsgstr \"Πάνω:\"\n\nmsgid \"Bottom:\"\nmsgstr \"Κάτω:\"\n\nmsgid \"Left:\"\nmsgstr \"Αριστερά:\"\n\nmsgid \"Right:\"\nmsgstr \"Δεξιά:\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"Κλειδωμένο μέγεθος\\n\\n\"\n\"Όταν είναι ενεργοποιημένο, η χρήση του εργαλείου στον καμβά μετακινεί το ορθογώνιο περικοπής.\\n\\n\"\n\"Όταν είναι απενεργοποιημένο, η χρήση του εργαλείου στον καμβά σχεδιάζει το ορθογώνιο.\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"Επεξεργασία 3Δ σχημάτων\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"Κουτί\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"Σφαίρα\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"Κάψουλα\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"Κύλινδρος\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"Πρίσμα\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"Τόρος\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"Επίπεδο\"\n\nmsgid \"Text\"\nmsgstr \"Κείμενο\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"Κατευθυντήριο φως\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"Φακός\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"Φως σημείου\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"Προσαρμοσμένο μοντέλο\"\n\nmsgid \"Selected object:\"\nmsgstr \"Επιλεγμένο αντικείμενο:\"\n\nmsgid \"Add new object\"\nmsgstr \"Προσθήκη αντικειμένου\"\n\nmsgid \"Remove object\"\nmsgstr \"Αφαίρεση αντικειμένου\"\n\nmsgid \"Camera\"\nmsgstr \"Κάμερα\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"Προβολή:\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"Προοπτική\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"Ορθογώνια\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"Frustum\"\n\nmsgid \"Rotation:\"\nmsgstr \"Περιστροφή:\"\n\nmsgid \"Scale:\"\nmsgstr \"Κλιμάκωση:\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"Περιβάλλον\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"Χρώμα περιβάλλοντος:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"Ενέργεια χρώματος περιβάλλοντος:\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"Ορατό:\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"Μετασχηματισμός\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"Πλέγμα\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"Αριστερά προς δεξιά:\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"Ακτίνα:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"Ακτινικά τμήματα:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"Δακτύλιοι:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"Είναι ημισφαίριο:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"Πάνω ακτίνα:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"Κάτω ακτίνα:\"\n\nmsgid \"Text:\"\nmsgstr \"Κείμενο:\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"Βάθος:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"Μέγεθος εικονοστοιχείου:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"Βήμα καμπυλότητας:\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"Οριζόντια στοίχιση:\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"Κάθετη στοίχιση:\"\n\nmsgid \"Left\"\nmsgstr \"Αριστερά\"\n\nmsgid \"Right\"\nmsgstr \"Δεξιά\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"Διάστιχο γραμμών:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"Ενέργεια:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"Αρνητικό:\"\n\nmsgid \"Shadow:\"\nmsgstr \"Σκιά:\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"Εμβέλεια:\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"Κινούμενες Ιδιότητες\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"Προεπισκόπηση καρέ:\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"Κίνηση\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"Αρχική τιμή:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"Τελική τιμή:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"Τύπος ομαλής μετάβασης:\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"Ξεκινά αργά και επιταχύνει προς το τέλος\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"Ξεκινά γρήγορα και επιβραδύνει προς το τέλος\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"Χαμηλότερο και στα δύο άκρα, γρήγορα στη μέση\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"Γρήγορα και στα δύο άκρα, αργά στη μέση\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"Τετραγωνική (δύναμη του 2)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"Κυβική (δύναμη του 3)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"Δύναμη του 4\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"Δύναμη του 5\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"Εκθετική (δύναμη του x)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"Τετραγωνική ρίζα\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"Ημίτονο\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"Κίνηση γύρω από τις άκρες\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"Αναπήδηση στο τέλος\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"Υποχώρηση στα άκρα\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"Αναπήδηση προς το τέλος\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"Μονόχρωμο\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"Όταν ανοίγει μια εικόνα, μπορεί να εισαχθεί ως αναφορά.\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"Επιλέξτε μια εικόνα παρακάτω για να αλλάξετε τις ιδιότητές της.\\n\"\n\"Σημειώστε ότι δεν μπορείτε να σχεδιάσετε ενώ έχει επιλεγεί μια εικόνα αναφοράς.\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"Αφαίρεση\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"Κρατήστε πατημένο το Shift για άμεση αφαίρεση.\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"Είστε βέβαιοι ότι θέλετε να καταργήσετε αυτή την εικόνα αναφοράς? Δεν θα διαγραφεί από το σύστημα αρχείων σας.\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"Μετακίνηση της επιλεγμένης εικόνας αναφοράς στα δεξιά\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"Μετακίνηση της επιλεγμένης εικόνας αναφοράς προς τα αριστερά\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"Επιλέγει μια εικόνα αναφοράς στον καμβά\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"Μετακίνηση της επιλεγμένης εικόνας αναφοράς\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"Περιστροφή της επιλεγμένης εικόνας αναφοράς\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"Κλιμάκωση της επιλεγμένης εικόνας αναφοράς\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"κανένα\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"Επαναφορά μετατροπής\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"Τοποθεσία\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"Κλιμάκωση\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"Περιστροφή\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"Φίλτρο\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"Αδιαφάνεια\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"Περιορισμός χρωμάτων\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"Ενεργό\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"Εφέ στρώσης\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"Προσθήκη εφέ\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"Θέλετε να κάνετε λήψη της εικόνας από %s;\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"Συλλογή πλακιδίων\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"Συλλογή πλακιδίων:\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"Συλλογές πλακιδίων\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"Νέα συλλογή πλακιδίων\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"Όνομα συλλογής πλακιδίων:\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"Μέγεθος πλακιδίου:\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"Σχήμα πλακιδίου:\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"Διάταξη πλακιδίων:\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"Άξονας μετατόπισης πλακιδίων:\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"Για όλα τα σχήματα μισής μετατόπισης (ισομετρικά & εξαγωνικά), καθορίζεται ο άξονας μετατόπισης.\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"Στοιβαγμένη\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"Στοιβαγμένη μετατόπιση\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"Σκάλες δεξιά\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"Σκάλες κάτω\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"Διαμάντι δεξιά\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"Διαμάντι κάτω\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"Λειτουργία μόνο για τοποθέτηση:\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"Η ενεργοποίηση της λειτουργίας μόνο για τοποθέτηση είναι μια μόνιμη ενέργεια. Μόλις ενεργοποιηθεί, θα είστε σε θέση να τοποθετήσετε πλακίδια και δε θα μπορείτε να τροποποιήσετε τα υπάρχοντα πλακίδια πια σε αυτή τη στρώση.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"Επιλέξτε ένα πλακίδιο για να το τοποθετήσετε στον καμβά.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"Τροποποίηση πλακιδίων στον καμβά.\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"Σχεδίαση πλακιδίων\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"Περιστροφή πλακιδίου αριστερά\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"Περιστροφή πλακιδίου δεξιά\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"Οριζόντια αναστροφή πλακιδίου\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"Κατακόρυφη αναστροφή πλακιδίου\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"Χειροκίνητο\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Αυτόματο\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"Στοίβα\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"Μέγεθος κουμπιού πλακιδίων:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"Εμφάνιση κενού πλακιδίου:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"Ιδιότητες πλακιδίου\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"Πιθανότητα:\"\n\n"
  },
  {
    "path": "Translations/en.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: Pixelorama\\n\"\n\"Last-Translator: Overloaded\\n\"\n\"Language-Team: none\\n\"\n\"Language: en\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"Cancel\"\n\nmsgid \"Open\"\nmsgstr \"Open\"\n\nmsgid \"Save\"\nmsgstr \"Save\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Please Confirm...\"\n\nmsgid \"Image Size\"\nmsgstr \"Image Size\"\n\nmsgid \"Width:\"\nmsgstr \"Width:\"\n\nmsgid \"Height:\"\nmsgstr \"Height:\"\n\nmsgid \"File\"\nmsgstr \"File\"\n\nmsgid \"Edit\"\nmsgstr \"Edit\"\n\nmsgid \"View\"\nmsgstr \"View\"\n\nmsgid \"Image\"\nmsgstr \"Image\"\n\nmsgid \"Effects\"\nmsgstr \"Effects\"\n\nmsgid \"Help\"\nmsgstr \"Help\"\n\nmsgid \"New...\"\nmsgstr \"New...\"\n\nmsgid \"Open...\"\nmsgstr \"Open...\"\n\nmsgid \"Save...\"\nmsgstr \"Save...\"\n\nmsgid \"Save as...\"\nmsgstr \"Save as...\"\n\nmsgid \"Import PNG...\"\nmsgstr \"Import PNG...\"\n\nmsgid \"Export\"\nmsgstr \"Export\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Export PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Export PNG as...\"\n\nmsgid \"Quit\"\nmsgstr \"Quit\"\n\nmsgid \"Undo\"\nmsgstr \"Undo\"\n\nmsgid \"Redo\"\nmsgstr \"Redo\"\n\nmsgid \"Scale Image\"\nmsgstr \"Scale Image\"\n\nmsgid \"Crop Image\"\nmsgstr \"Crop Image\"\n\nmsgid \"Clear Selection\"\nmsgstr \"Clear Selection\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Flip Horizontal\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Flip Vertical\"\n\nmsgid \"Preferences\"\nmsgstr \"Preferences\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Tile Mode\"\n\nmsgid \"Show Grid\"\nmsgstr \"Show Grid\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Show Rulers\"\n\nmsgid \"Show Guides\"\nmsgstr \"Show Guides\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Fill with color:\"\n\nmsgid \"Open a File\"\nmsgstr \"Open a File\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Open File(s)\"\n\nmsgid \"IMPORT_FILE_LABEL\"\nmsgstr \"Import as new frame\"\n\nmsgid \"IMPORT_SPRITESHEET\"\nmsgstr \"Import as a spritesheet\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Save Sprite as .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Export Sprite as .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Export Sprite\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"File Exists, Overwrite?\"\n\nmsgid \"Resize:\"\nmsgstr \"Resize:\"\n\nmsgid \"EXPORT_CURRENT_FRAME_LABEL\"\nmsgstr \"Export current frame\"\n\nmsgid \"EXPORT_FRAMES_AS_MULTIPLE_FILES_LABEL\"\nmsgstr \"Export all frames as multiple files\"\n\nmsgid \"EXPORT_FRAMES_AS_SPRITESHEET_LABEL\"\nmsgstr \"Export all frames as a spritesheet (single file)\"\n\nmsgid \"Columns\"\nmsgstr \"Columns\"\n\nmsgid \"Rows\"\nmsgstr \"Rows\"\n\nmsgid \"Path:\"\nmsgstr \"Path:\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Directories & Files:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Create Folder\"\n\nmsgid \"File:\"\nmsgstr \"File:\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolation:\"\n\nmsgid \"Nearest\"\nmsgstr \"Nearest\"\n\nmsgid \"Bilinear\"\nmsgstr \"Bilinear\"\n\nmsgid \"Cubic\"\nmsgstr \"Cubic\"\n\nmsgid \"Trilinear\"\nmsgstr \"Trilinear\"\n\nmsgid \"Language\"\nmsgstr \"Language\"\n\nmsgid \"Themes\"\nmsgstr \"Themes\"\n\nmsgid \"Guides & Grid\"\nmsgstr \"Guides & Grid\"\n\nmsgid \"Language options\"\nmsgstr \"Language options\"\n\nmsgid \"Theme options\"\nmsgstr \"Theme options\"\n\nmsgid \"Grid options\"\nmsgstr \"Grid options\"\n\nmsgid \"Color:\"\nmsgstr \"Color:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Guide color:\"\n\nmsgid \"System Language\"\nmsgstr \"System Language\"\n\nmsgid \"Dark\"\nmsgstr \"Dark\"\n\nmsgid \"Gray\"\nmsgstr \"Gray\"\n\nmsgid \"Gold\"\nmsgstr \"Gold\"\n\nmsgid \"Light\"\nmsgstr \"Light\"\n\nmsgid \"Invert colors\"\nmsgstr \"Invert colors\"\n\nmsgid \"Desaturation\"\nmsgstr \"Desaturation\"\n\nmsgid \"Outline\"\nmsgstr \"Outline\"\n\nmsgid \"Diagonal\"\nmsgstr \"Diagonal\"\n\nmsgid \"Place inside image\"\nmsgstr \"Place inside image\"\n\nmsgid \"Thickness:\"\nmsgstr \"Thickness:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"View Splash Screen\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Issue Tracker\"\n\nmsgid \"Changelog\"\nmsgstr \"Changelog\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"About Pixelorama\"\n\nmsgid \"MADEBY_LABEL\"\nmsgstr \"Developed by Orama Interactive\"\n\nmsgid \"Website\"\nmsgstr \"Website\"\n\nmsgid \"Donate\"\nmsgstr \"Donate\"\n\nmsgid \"Developers\"\nmsgstr \"Developers\"\n\nmsgid \"Contributors\"\nmsgstr \"Contributors\"\n\nmsgid \"Donors\"\nmsgstr \"Donors\"\n\nmsgid \"Development Team\"\nmsgstr \"Development Team\"\n\nmsgid \"Lead Programmer\"\nmsgstr \"Lead Programmer\"\n\nmsgid \"UI Designer\"\nmsgstr \"UI Designer\"\n\nmsgid \"GitHub Contributors\"\nmsgstr \"GitHub Contributors\"\n\nmsgid \"Art by\"\nmsgstr \"Art by\"\n\nmsgid \"untitled\"\nmsgstr \"untitled\"\n\nmsgid \"imported\"\nmsgstr \"imported\"\n\nmsgid \"copy\"\nmsgstr \"copy\"\n\nmsgid \"QUIT_LABEL\"\nmsgstr \"Are you sure you want to exit Pixelorama?\"\n\nmsgid \"Utility Tools\"\nmsgstr \"Utility Tools\"\n\nmsgid \"RECTSELECT_HT\"\nmsgstr \"\"\n\"Rectangular Selection\\n\"\n\"\\n\"\n\"R for left mouse button\\n\"\n\"Alt + R for right mouse button\\n\"\n\"\\n\"\n\"Press Shift to move the content\"\n\nmsgid \"COLORPICKER_HT\"\nmsgstr \"\"\n\"Color Picker\\n\"\n\"Select a color from a pixel of the sprite\\n\"\n\"\\n\"\n\"O for left mouse button\\n\"\n\"Alt + O for right mouse button\"\n\nmsgid \"Draw Tools\"\nmsgstr \"Draw Tools\"\n\nmsgid \"PENCIL_HT\"\nmsgstr \"\"\n\"Pencil\\n\"\n\"\\n\"\n\"P for left mouse button\\n\"\n\"Alt + P for right mouse button\\n\"\n\"\\n\"\n\"Hold Shift to make a line\"\n\nmsgid \"ERASER_HT\"\nmsgstr \"\"\n\"Eraser\\n\"\n\"\\n\"\n\"E for left mouse button\\n\"\n\"Alt + E for right mouse button\\n\"\n\"\\n\"\n\"Hold Shift to make a line\"\n\nmsgid \"BUCKET_HT\"\nmsgstr \"\"\n\"Bucket\\n\"\n\"\\n\"\n\"B for left mouse button\\n\"\n\"Alt + B for right mouse button\"\n\nmsgid \"LD_HT\"\nmsgstr \"\"\n\"Lighten/Darken\\n\"\n\"\\n\"\n\"U for left mouse button\\n\"\n\"Alt + U for right mouse button\"\n\nmsgid \"LEFTCOLOR_HT\"\nmsgstr \"Choose a color for the left tool\"\n\nmsgid \"RIGHTCOLOR_HT\"\nmsgstr \"Choose a color for the right tool\"\n\nmsgid \"COLORSWITCH_HT\"\nmsgstr \"\"\n\"Switch left and right colors\\n\"\n\"(X)\"\n\nmsgid \"COLORDEFAULTS_HT\"\nmsgstr \"\"\n\"Reset the colors to their default state (black for left, white for right)\"\n\nmsgid \"Raw Mode\"\nmsgstr \"Raw Mode\"\n\nmsgid \"Left tool options\"\nmsgstr \"Left tool options\"\n\nmsgid \"Right tool options\"\nmsgstr \"Right tool options\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Left pixel indicator\"\n\nmsgid \"Show tool icon\"\nmsgstr \"Show tool icon\"\n\nmsgid \"LEFT_INDIC_HT\"\nmsgstr \"Show left mouse pixel indicator or brush on the canvas when drawing\"\n\nmsgid \"RIGHT_INDIC_HT\"\nmsgstr \"Show right mouse pixel indicator or brush on the canvas when drawing\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Right pixel indicator\"\n\nmsgid \"Brush:\"\nmsgstr \"Brush:\"\n\nmsgid \"BRUSH_HT\"\nmsgstr \"Select a brush\"\n\nmsgid \"Brush: Pixel\"\nmsgstr \"Brush: Pixel\"\n\nmsgid \"Brush: Circle\"\nmsgstr \"Brush: Circle\"\n\nmsgid \"Brush: Filled Circle\"\nmsgstr \"Brush: Filled Circle\"\n\nmsgid \"Custom brush\"\nmsgstr \"Custom brush\"\n\nmsgid \"Brush size:\"\nmsgstr \"Brush size:\"\n\nmsgid \"Brush color from\"\nmsgstr \"Brush color from\"\n\nmsgid \"COLORFROM_HT\"\nmsgstr \"0: Color from the brush itself, 100: the currently selected color\"\n\nmsgid \"Fill area:\"\nmsgstr \"Fill area:\"\n\nmsgid \"Area of the same color\"\nmsgstr \"Area of the same color\"\n\nmsgid \"All pixels of the same color\"\nmsgstr \"All pixels of the same color\"\n\nmsgid \"Lighten\"\nmsgstr \"Lighten\"\n\nmsgid \"Darken\"\nmsgstr \"Darken\"\n\nmsgid \"Amount:\"\nmsgstr \"Amount:\"\n\nmsgid \"LDAMOUNT_HT\"\nmsgstr \"Lighten/Darken amount\"\n\nmsgid \"Pick for:\"\nmsgstr \"Pick for:\"\n\nmsgid \"Left Color\"\nmsgstr \"Left Color\"\n\nmsgid \"Right Color\"\nmsgstr \"Right Color\"\n\nmsgid \"Mirroring\"\nmsgstr \"Mirroring\"\n\nmsgid \"Horizontal\"\nmsgstr \"Horizontal\"\n\nmsgid \"HORIZMIRROR_HT\"\nmsgstr \"Enable horizontal mirrored drawing\"\n\nmsgid \"VERTMIRROR_HT\"\nmsgstr \"Enable vertical mirrored drawing\"\n\nmsgid \"Vertical\"\nmsgstr \"Vertical\"\n\nmsgid \"Current frame:\"\nmsgstr \"Current frame:\"\n\nmsgid \"Current frame: 1/1\"\nmsgstr \"Current frame: 1/1\"\n\nmsgid \"FIRSTFRAME_HT\"\nmsgstr \"\"\n\"Jump to the first frame\\n\"\n\"(Ctrl+Home)\"\n\nmsgid \"PREVIOUSFRAME_HT\"\nmsgstr \"\"\n\"Go to the previous frame\\n\"\n\"(Ctrl+Left)\"\n\nmsgid \"PLAYBACKWARDS_HT\"\nmsgstr \"\"\n\"Play the animation backwards (from end to beginning)\\n\"\n\"(F4)\"\n\nmsgid \"PLAYFORWARD_HT\"\nmsgstr \"\"\n\"Play the animation forward (from beginning to end)\\n\"\n\"(F5)\"\n\nmsgid \"NEXTFRAME_HT\"\nmsgstr \"\"\n\"Go to the next frame\\n\"\n\"(Ctrl+Right)\"\n\nmsgid \"LASTFRAME_HT\"\nmsgstr \"\"\n\"Jump to the last frame\\n\"\n\"(Ctrl+End)\"\n\nmsgid \"FPS_HT\"\nmsgstr \"\"\n\"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\n\nmsgid \"No loop\"\nmsgstr \"No loop\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Cycle loop\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Ping-pong loop\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Onion Skinning:\"\n\nmsgid \"Past Frames\"\nmsgstr \"Past Frames\"\n\nmsgid \"Future Frames\"\nmsgstr \"Future Frames\"\n\nmsgid \"Blue-Red Mode\"\nmsgstr \"Blue-Red Mode\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Add a new frame\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Remove Frame\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Clone Frame\"\n\nmsgid \"Move Left\"\nmsgstr \"Move Left\"\n\nmsgid \"Move Right\"\nmsgstr \"Move Right\"\n\nmsgid \"Layer\"\nmsgstr \"Layer\"\n\nmsgid \"Layers\"\nmsgstr \"Layers\"\n\nmsgid \"LAYERNEW_HT\"\nmsgstr \"Create a new layer\"\n\nmsgid \"LAYERREMOVE_HT\"\nmsgstr \"Remove current layer\"\n\nmsgid \"LAYERUP_HT\"\nmsgstr \"Move up the current layer\"\n\nmsgid \"LAYERDOWN_HT\"\nmsgstr \"Move down the current layer\"\n\nmsgid \"LAYERCLONE_HT\"\nmsgstr \"Clone current layer\"\n\nmsgid \"LAYERMERGE_HT\"\nmsgstr \"Merge current layer with the one below\"\n\nmsgid \"Opacity:\"\nmsgstr \"Opacity:\"\n\nmsgid \"LAYERVISIBILITY_HT\"\nmsgstr \"Toggle layer's visibility\"\n\nmsgid \"Palette\"\nmsgstr \"Palette\"\n\nmsgid \"Palettes\"\nmsgstr \"Palettes\"\n\nmsgid \"NEWPALETTE_HT\"\nmsgstr \"Add a new palette\"\n\nmsgid \"EDITPALETTE_HT\"\nmsgstr \"Edit currently selected palette\"\n\nmsgid \"CHOOSEPALETTE_HT\"\nmsgstr \"Choose a palette\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Undo: Draw\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Redo: Draw\"\n\nmsgid \"Undo: Rectangle Select\"\nmsgstr \"Undo: Rectangle Select\"\n\nmsgid \"Redo: Rectangle Select\"\nmsgstr \"Redo: Rectangle Select\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Undo: Scale\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Redo: Scale\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Undo: Add Layer\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Redo: Add Layer\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Undo: Remove Layer\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Redo: Remove Layer\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Undo: Merge Layer\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Redo: Merge Layer\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Undo: Change Layer Order\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Redo: Change Layer Order\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Undo: Add Frame\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Redo: Add Frame\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Undo: Remove Frame\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Redo: Remove Frame\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Undo: Change Frame Order\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Redo: Change Frame Order\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Undo: Delete Custom Brush\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Redo: Delete Custom Brush\"\n\nmsgid \"Move Guide\"\nmsgstr \"Move Guide\"\n\nmsgid \"File saved\"\nmsgstr \"File saved\"\n\nmsgid \"File exported\"\nmsgstr \"File exported\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"New Empty Palette\"\n\nmsgid \"Import Palette\"\nmsgstr \"Import Palette\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Palette Name:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Color Name:\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Create a new empty palette?\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Error: Palette must have a valid name.\"\n\nmsgid \"Error: Palette named '%s' already exists!\"\nmsgstr \"Error: Palette named '%s' already exists!\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Invalid Palette file!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Edit Palette\"\n\nmsgid \"Patrons:\"\nmsgstr \"Patrons:\"\n\nmsgid \"Changes\"\nmsgstr \"Changes\"\n\nmsgid \"Platinum Sponsor\"\nmsgstr \"Platinum Sponsor\"\n\nmsgid \"Gold Sponsors\"\nmsgstr \"Gold Sponsors\"\n\nmsgid \"Platinum Sponsor Placeholder\"\nmsgstr \"Platinum Sponsor Placeholder\"\n\nmsgid \"Gold Sponsors Placeholder\"\nmsgstr \"Gold Sponsors Placeholder\"\n\nmsgid \"Don't show again\"\nmsgstr \"Don't show again\"\n\nmsgid \"Take this spot!\"\nmsgstr \"Take this spot!\"\n\n#~ msgid \"Don't show on the next startup\"\n#~ msgstr \"Don't show on the next startup\"\n\n#~ msgid \"Language:\"\n#~ msgstr \"Language:\"\n\n#~ msgid \"SPLITSCREEN_HT\"\n#~ msgstr \"\"\n#~ \"Split screen\\n\"\n#~ \"\\n\"\n#~ \"Show second canvas\"\n\n#~ msgid \"SPLITSCREEN_HIDE_HT\"\n#~ msgstr \"\"\n#~ \"Split screen\\n\"\n#~ \"\\n\"\n#~ \"Hide second canvas\"\n\nmsgid \"Image Options\"\nmsgstr \"Image Options\"\n\nmsgid \"Default Width:\"\nmsgstr \"Default Width:\"\n\nmsgid \"Default Height:\"\nmsgstr \"Default Height:\"\n\nmsgid \"Default Fill Color:\"\nmsgstr \"Default Fill Color:\"\n\nmsgid \"Lock aspect ratio:\"\nmsgstr \"Lock aspect ratio:\"\n\nmsgid \"Templates:\"\nmsgstr \"Templates:\"\n"
  },
  {
    "path": "Translations/en_PT.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: en-PT\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Pirate English\\n\"\n\"Language: en_PT\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/en_US.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Language: en\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: English\\n\"\n\"Language: en_US\\n\"\n\"PO-Revision-Date: 2020-05-01 16:46\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\nmsgid \"Import...\"\nmsgstr \"\"\n\nmsgid \"Import PNG...\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Crop Image\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Clear Selection\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import as new frame\"\nmsgstr \"\"\n\nmsgid \"Import as a spritesheet\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"File %s already exists. Overwrite?\"\nmsgstr \"\"\n\nmsgid \"Directory path or file name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"All frames as multiple files\"\nmsgstr \"\"\n\nmsgid \"All frames as a single file animation\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Gold\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Invert colors\"\nmsgstr \"\"\n\nmsgid \"Desaturation\"\nmsgstr \"\"\n\nmsgid \"Outline\"\nmsgstr \"\"\n\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Development Team\"\nmsgstr \"\"\n\nmsgid \"Lead Programmer\"\nmsgstr \"\"\n\nmsgid \"UI Designer\"\nmsgstr \"\"\n\nmsgid \"GitHub Contributors\"\nmsgstr \"\"\n\nmsgid \"Art by\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"You have unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Utility Tools\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Press %s to move the content\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\"\n\"Select a color from a pixel of the sprite\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Draw Tools\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\nmsgid \"Switch left and right colors\\n\"\n\"(%s)\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\nmsgid \"Grid width:\"\nmsgstr \"\"\n\nmsgid \"Sets how far apart are vertical lines of the grid\"\nmsgstr \"\"\n\nmsgid \"Grid height:\"\nmsgstr \"\"\n\nmsgid \"Sets how far apart are horizontal lines of the grid\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\nmsgid \"Brush: Pixel\"\nmsgstr \"\"\n\nmsgid \"Brush: Circle\"\nmsgstr \"\"\n\nmsgid \"Brush: Filled Circle\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\nmsgid \"Brush color from\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\nmsgid \"Fill area:\"\nmsgstr \"\"\n\nmsgid \"Same color area\"\nmsgstr \"\"\n\nmsgid \"Same color pixels\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\nmsgid \"Selected Color\"\nmsgstr \"\"\n\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Current frame: 1/1\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\\n\"\n\"(%s)\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\\n\"\n\"(%s)\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards (from end to beginning)\\n\"\n\"(%s)\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward (from beginning to end)\\n\"\n\"(%s)\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\\n\"\n\"(%s)\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\\n\"\n\"(%s)\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\nmsgid \"Blue-Red Mode\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Link Cel\"\nmsgstr \"\"\n\nmsgid \"Unlink Cel\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Enable/disable cel linking\\n\\n\"\n\"Linked cels are being shared across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Rectangle Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Rectangle Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\nmsgid \"File autosaved\"\nmsgstr \"\"\n\nmsgid \"File failed to open\"\nmsgstr \"\"\n\nmsgid \"File failed to save\"\nmsgstr \"\"\n\nmsgid \"File exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Error: Palette named '%s' already exists!\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Changes\"\nmsgstr \"\"\n\nmsgid \"Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Gold Sponsors\"\nmsgstr \"\"\n\nmsgid \"Platinum Sponsor Placeholder\"\nmsgstr \"\"\n\nmsgid \"Gold Sponsors Placeholder\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Take this spot!\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio:\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Create new directory for each frame tag\"\nmsgstr \"\"\n\nmsgid \"Creates multiple files but every file is stored in different directory that corresponds to its frame tag\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Autosaved backup for %s was found.\\n\"\n\"Do you want to reload it?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/eo_UY.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: eo\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Esperanto\\n\"\n\"Language: eo_UY\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"Bone\"\n\nmsgid \"Cancel\"\nmsgstr \"Nuligi\"\n\nmsgid \"Open\"\nmsgstr \"Malfermi\"\n\nmsgid \"Save\"\nmsgstr \"Konservi\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Bonvolu konfirmu...\"\n\nmsgid \"File Name:\"\nmsgstr \"Nomo de dosiero:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Nomo de projekto:\"\n\nmsgid \"Image Size\"\nmsgstr \"Mezuro de bildo\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Grando de la tolo\"\n\nmsgid \"Frame Size\"\nmsgstr \"Dimensio de filmero\"\n\nmsgid \"Size:\"\nmsgstr \"Grandeco:\"\n\nmsgid \"Width:\"\nmsgstr \"Larĝo:\"\n\nmsgid \"Height:\"\nmsgstr \"Alto:\"\n\nmsgid \"Center\"\nmsgstr \"Centro\"\n\nmsgid \"File\"\nmsgstr \"Dosiero\"\n\nmsgid \"Edit\"\nmsgstr \"Redakti\"\n\nmsgid \"Select\"\nmsgstr \"Elekti\"\n\nmsgid \"View\"\nmsgstr \"Montri\"\n\nmsgid \"Window\"\nmsgstr \"Fenestro\"\n\nmsgid \"Image\"\nmsgstr \"Bildo\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"Efektoj\"\n\nmsgid \"Help\"\nmsgstr \"Helpo\"\n\nmsgid \"New\"\nmsgstr \"Nova\"\n\nmsgid \"New...\"\nmsgstr \"Nova...\"\n\nmsgid \"Open...\"\nmsgstr \"Malfermi...\"\n\nmsgid \"Save...\"\nmsgstr \"Konservi...\"\n\nmsgid \"Save as...\"\nmsgstr \"Konservi kiel...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"Importi\"\n\nmsgid \"Export\"\nmsgstr \"Eksporti\"\n\nmsgid \"Overwrite\"\nmsgstr \"Superskribi\"\n\nmsgid \"Export...\"\nmsgstr \"Eksporti...\"\n\nmsgid \"Export as...\"\nmsgstr \"Eksporti kiel...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Eksporti PNGn...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Eksporti PNGn kiel...\"\n\nmsgid \"Quit\"\nmsgstr \"Eliri\"\n\nmsgid \"Undo\"\nmsgstr \"Malfari\"\n\nmsgid \"Redo\"\nmsgstr \"Refari\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"Kopii\"\n\nmsgid \"Cut\"\nmsgstr \"Eltondi\"\n\nmsgid \"Paste\"\nmsgstr \"Enmeti\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Enmeti en lokon\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"Forigi\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"Nova peniko\"\n\nmsgid \"Scale Image\"\nmsgstr \"Skali bildon\"\n\nmsgid \"Pixels\"\nmsgstr \"Rastrumeroj\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Ŝanĝi la dimensiojn de la tavolo\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Turni bildon\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Renversi bildon\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Speguli horizontale\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Speguli vertikale\"\n\nmsgid \"Preferences\"\nmsgstr \"Agordoj\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Kahela reĝimo\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"Uzu aktualan filmeron\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Poziciaro de paneloj\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"Poziciaroj\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Administri poziciarojn\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"Aldoni\"\n\nmsgid \"Add Layout\"\nmsgstr \"Aldoni poziciaron\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Ĉu vi vere volas forigi tiun ĉi poziciaron?\"\n\nmsgid \"Widescreen\"\nmsgstr \"Larĝekrana\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Altekrana\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"Montri kradreton\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Montri liniilojn\"\n\nmsgid \"Show Guides\"\nmsgstr \"Montri direktliniojn\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Montri animacian kronologion\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Zena reĝimo\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Plenigi per koloro:\"\n\nmsgid \"Open a File\"\nmsgstr \"Malfermi dosieron\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Malfermi dosiero(j)n\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"Nova filmero\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"Nova paletro\"\n\nmsgid \"New brush\"\nmsgstr \"Nova peniko\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Horizontalaj filmeroj:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Vertikalaj filmeroj:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"Komenca filmero:\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"En filmero:\"\n\nmsgid \"At layer:\"\nmsgstr \"En tavolo:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Tipo de pentriko:\"\n\nmsgid \"File brush\"\nmsgstr \"Dosiera peniko\"\n\nmsgid \"Project brush\"\nmsgstr \"Projekta peniko\"\n\nmsgid \"Random brush\"\nmsgstr \"Hazarda peniko\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Konservi spriton kiel .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Elporti spriton kiel .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Elporti spriton\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Dosiero ekzistas, ĉu rekonservi?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Esportado estas faradata...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"Oni ne povas legi la dosieron '%s'.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Ne povas ŝarĝi dosieron '%s'.\\n\"\n\"Kodo de eraro: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"Oni ne povas legi la dosieron '%s'.\\n\"\n\"Ĝi ne estas ĝusta paletra dosiero.\"\n\nmsgid \"Frame\"\nmsgstr \"Kadro\"\n\nmsgid \"Frames:\"\nmsgstr \"Kadroj:\"\n\nmsgid \"All Frames\"\nmsgstr \"Ĉiuj kadroj\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"Animacio\"\n\nmsgid \"Preview:\"\nmsgstr \"Antaŭvido:\"\n\nmsgid \"Frame:\"\nmsgstr \"Kadro:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Orientiĝo:\"\n\nmsgid \"Browse\"\nmsgstr \"Foliumo\"\n\nmsgid \"Resize:\"\nmsgstr \"Reskali:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Nuligi eksporton\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Malfermi dosierujon\"\n\nmsgid \"Background:\"\nmsgstr \"Fono:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"Direkto:\"\n\nmsgid \"Forward\"\nmsgstr \"Antaŭen\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"Kolumnoj\"\n\nmsgid \"Columns:\"\nmsgstr \"Kolumnoj:\"\n\nmsgid \"Rows\"\nmsgstr \"Vicoj\"\n\nmsgid \"Rows:\"\nmsgstr \"Vicoj:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"Vojo:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Dosieroj kaj -ujoj:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Krei dosierujon\"\n\nmsgid \"File:\"\nmsgstr \"Dosiero:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolado:\"\n\nmsgid \"Nearest\"\nmsgstr \"Plej proksima\"\n\nmsgid \"Bilinear\"\nmsgstr \"Dulinia\"\n\nmsgid \"Cubic\"\nmsgstr \"Kuba\"\n\nmsgid \"Trilinear\"\nmsgstr \"Trilinia\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"Ĝeneralaj\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"Lingvo\"\n\nmsgid \"Interface\"\nmsgstr \"Interfaco\"\n\nmsgid \"Themes\"\nmsgstr \"Temoj\"\n\nmsgid \"Canvas\"\nmsgstr \"Kanvaso\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"Elektaĵo\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Fulmoklavoj\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"Musmontriloj\"\n\nmsgid \"Indicators\"\nmsgstr \"Indikatoroj\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Senskua skalado\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"Neniu\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"Koloro:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Koloro de direktlinioj:\"\n\nmsgid \"System Language\"\nmsgstr \"Sistema lingvo\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"Malhela\"\n\nmsgid \"Gray\"\nmsgstr \"Griza\"\n\nmsgid \"Blue\"\nmsgstr \"Blua\"\n\nmsgid \"Caramel\"\nmsgstr \"Karamela\"\n\nmsgid \"Light\"\nmsgstr \"Hela\"\n\nmsgid \"Purple\"\nmsgstr \"Purpura\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"Temo\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Koloro de piktogramoj el:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Koloro de piktogramoj:\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"Koloro de la fono el:\"\n\nmsgid \"Background color:\"\nmsgstr \"Koloro de la fono:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"Koloro de la maldekstra ilo:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"Koloro de la dekstra ilo:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Grandeco de la ilaj butonoj:\"\n\nmsgid \"Small\"\nmsgstr \"Malgranda\"\n\nmsgid \"Big\"\nmsgstr \"Granda\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Nur post elektado\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"Aktuala filmero\"\n\nmsgid \"All frames\"\nmsgstr \"Ĉiuj filmeroj\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Konturoj\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Ĵeti ombron\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"Koloro de la ombro:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"Gradiento\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"Lineara\"\n\nmsgid \"Radial\"\nmsgstr \"Radiusa\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"Centro:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"Ŝablono de punktismo:\"\n\nmsgid \"Type:\"\nmsgstr \"Tipo:\"\n\nmsgid \"Angle:\"\nmsgstr \"Angulo:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"Apliki\"\n\nmsgid \"Diagonal\"\nmsgstr \"Diagonala\"\n\nmsgid \"Place inside image\"\nmsgstr \"Meti ene en la bildo\"\n\nmsgid \"Thickness:\"\nmsgstr \"Dikeco:\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"Enreta dokumentaro\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"Ŝanĝprotokolo\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Pri Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Ellaborita de Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"Retejo\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"Donaci\"\n\nmsgid \"Developers\"\nmsgstr \"Ellaborantoj\"\n\nmsgid \"Contributors\"\nmsgstr \"Kontribuantoj\"\n\nmsgid \"Donors\"\nmsgstr \"Donintoj\"\n\nmsgid \"Translators\"\nmsgstr \"Tradukistoj\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"Angla\"\n\nmsgid \"Greek\"\nmsgstr \"Greka\"\n\nmsgid \"French\"\nmsgstr \"Franca\"\n\nmsgid \"German\"\nmsgstr \"Germana\"\n\nmsgid \"Polish\"\nmsgstr \"Pola\"\n\nmsgid \"Portuguese\"\nmsgstr \"Portugala\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Brazila portugala\"\n\nmsgid \"Russian\"\nmsgstr \"Rusa\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Ĉina (simpligita)\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Ĉina (tradicia)\"\n\nmsgid \"Italian\"\nmsgstr \"Itala\"\n\nmsgid \"Latvian\"\nmsgstr \"Latva\"\n\nmsgid \"Spanish\"\nmsgstr \"Hispana\"\n\nmsgid \"Catalan\"\nmsgstr \"Kataluna\"\n\nmsgid \"Esperanto\"\nmsgstr \"Esperanto\"\n\nmsgid \"Indonesian\"\nmsgstr \"Indonezia\"\n\nmsgid \"Czech\"\nmsgstr \"Ĉeĥa\"\n\nmsgid \"Arabic\"\nmsgstr \"Araba\"\n\nmsgid \"Turkish\"\nmsgstr \"Turka\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Norvega (Bokmål)\"\n\nmsgid \"Korean\"\nmsgstr \"Korea\"\n\nmsgid \"Hungarian\"\nmsgstr \"Hungara\"\n\nmsgid \"Romanian\"\nmsgstr \"Rumana\"\n\nmsgid \"Japanese\"\nmsgstr \"Japana\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Ukraina\"\n\nmsgid \"Danish\"\nmsgstr \"Dana\"\n\nmsgid \"Swedish\"\nmsgstr \"Sveda\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Serba (cirila)\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"UIa desegnilo\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"sennoma\"\n\nmsgid \"imported\"\nmsgstr \"enportita\"\n\nmsgid \"copy\"\nmsgstr \"kopii\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Ĉu vi vere volas eliri Pixeloraman?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Nekonservita bildo\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Vi havas nekonservitajn ŝanĝojn. Se vi daŭrigos, la progreso de vi farita perdiĝos.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Ĉu konservi antaŭ elirado?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Konservi kaj eliri\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Eliri sen konservado\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"Maldekstra ilo\"\n\nmsgid \"Right tool\"\nmsgstr \"Dekstra ilo\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Indikatoro de maldekstra rastrumero\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Indikatoro de dekstra rastrumero\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"Ĉiuj\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"Agordas la kvoto de renoviĝoj de bildo po sekundo. Ju malpli estas la numero, des malpli multe da procesora tempo estas uzata, sed la programo iĝas malpli rapida kaj reagema. 0 signifas, ke ne ekzistas limo.\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"Malfermi dosierujon\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"Peniko:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Elekti penikon\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Rastrumera peniko\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Ronda peniko\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Plena ronda peniko\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"Propra peniklo\"\n\nmsgid \"Brush size:\"\nmsgstr \"Grandeco de la peniko:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Superskribas koloron anstataŭ miksi ĝin kun suba koloro. La opcio nur estas konsiderata, kiam la koloroj ne estas tute opakaj\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Rastumera precizemo\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Ŝablono\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"Sumo:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"Maldekstra koloro\"\n\nmsgid \"Right Color\"\nmsgstr \"Dekstra koloro\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"Agordoj:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"Spegulado\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"Vertikala\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"Aktuala filmero:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"Estintaj kadroj\"\n\nmsgid \"Future Frames\"\nmsgstr \"Estontaj kadroj\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Aldoni novan kadron\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Forigi kadron\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Kloni kadron\"\n\nmsgid \"Move Left\"\nmsgstr \"Movi maldekstren\"\n\nmsgid \"Move Right\"\nmsgstr \"Movi dekstren\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"Tavolo\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"Tavoloj\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Krei novan tavolon\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"Opakeco:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Fiksi/malfiksi tavolon\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"Paletro\"\n\nmsgid \"Palettes\"\nmsgstr \"Paletroj\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Aldoni novan paletron\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Elekti paletron\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Malfaritas: Pentri\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Refaritas: Pentri\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Malfaritas: Skali\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Refaritas: Skali\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Malfaritas: Aldoni tavolon\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Refaritas: Aldoni tavolon\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Malfaritas: Forigi tavolon\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Refaritas: Forigi tavolon\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Malfaritas: Kunfandi tavolon\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Refaritas: Kunfandi tavolon\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Malfaritas: Ŝanĝi ordon de tavoloj\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Refaritas: Ŝanĝi ordon de tavoloj\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Malfaritas: Aldoni kadron\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Refaritas: Aldoni filmeron\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Malfaritas: Forigi filmeron\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Refaritas: Forigi filmeron\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Malfaritas: Ŝanĝi ordon de filmeroj\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Refaritas: Ŝanĝi ordon de filmeroj\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Malfaritas: Forigi propran penikon\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Refaritas: Forigi propran penikon\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"Malfari: Ŝanĝi daŭron de filmero\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"Refari: Ŝanĝi daŭron de filmero\"\n\nmsgid \"Move Guide\"\nmsgstr \"Movi direktlinion\"\n\nmsgid \"File saved\"\nmsgstr \"Dosiero konservitas\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Nova malplena paletro\"\n\nmsgid \"Import Palette\"\nmsgstr \"Enporti paletron\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Nomo de paletro:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Nomo de koloro:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Ĉu krei novan malplenan paletron?\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Eraro: Paletro devas havi veran nomon.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Malvera dosiero de paletro!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Redakti paletron\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"Patronoj:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Iĝi Patrono\"\n\nmsgid \"Don't show again\"\nmsgstr \"Ne montri denove\"\n\nmsgid \"Image Options\"\nmsgstr \"Bildagordoj\"\n\nmsgid \"Default width:\"\nmsgstr \"Defaŭlta larĝo:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"Defaŭlta larĝo de nova bildo\"\n\nmsgid \"Default height:\"\nmsgstr \"Defaŭlta alto:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"Defaŭlta alto de nova bildo\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Defaŭlta plenigkoloro:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"Defaŭlta fona koloro de nova bildo\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"Ŝablonoj:\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"Defaŭta\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"Kolora elektilo\"\n\nmsgid \"Pencil\"\nmsgstr \"Krajono\"\n\nmsgid \"Eraser\"\nmsgstr \"Skrapileto\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Interŝanĝi kolorojn\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Meti la ligilon\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Premu klavon aŭ kombinaĵon de klavoj por meti la ligilon\"\n\nmsgid \"Already assigned\"\nmsgstr \"Jam asignitas\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Maldekstra ilo:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Ilo, asignita al la musa maldekstra butono\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Dekstra ilo:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Ilo, asignita al la musa dekstra butono\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"Ne povas trovi dosieron de la lasta projekto.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Vi ankoraŭ ne konservis aŭ malfermis iun ajn projekton en Pixelorama!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Malfermi lastan projekton\"\n\nmsgid \"Open last project...\"\nmsgstr \"Malfermi lastan projekton...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Malfermi lastan projekton dum startigo\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Malfermas lastan apertigitan projekton dum startigo\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Ŝalti aŭtokonservadon\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Aŭtokonserva intervalo:\"\n\nmsgid \"minute(s)\"\nmsgstr \"minuto(j)\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"Fermi\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Vi ne povas forigi pli da paletroj!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Ne povas forigi la paletron, ĉar ĝi ne ekzistas!\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Movas la elektitan filmeron maldekstren.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Movas la elektitan filmeron dekstren.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"Radiuso:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Aŭtomata\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/es_ES.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: es-ES\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Spanish\\n\"\n\"Language: es_ES\\n\"\n\"PO-Revision-Date: 2025-11-04 19:25\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"Cancelar\"\n\nmsgid \"Open\"\nmsgstr \"Abrir\"\n\nmsgid \"Save\"\nmsgstr \"Guardar\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Confirma por favor...\"\n\nmsgid \"File Name:\"\nmsgstr \"Nombre del archivo:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Nombre del proyecto:\"\n\nmsgid \"Image Size\"\nmsgstr \"Tamaño de la imagen\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Tamaño del lienzo\"\n\nmsgid \"Frame Size\"\nmsgstr \"Tamaño de los fotogramas\"\n\nmsgid \"Size:\"\nmsgstr \"Tamaño:\"\n\nmsgid \"Width:\"\nmsgstr \"Ancho:\"\n\nmsgid \"Height:\"\nmsgstr \"Alto:\"\n\nmsgid \"Center\"\nmsgstr \"Centro\"\n\nmsgid \"File\"\nmsgstr \"Archivo\"\n\nmsgid \"Edit\"\nmsgstr \"Editar\"\n\nmsgid \"Select\"\nmsgstr \"Seleccionar\"\n\nmsgid \"View\"\nmsgstr \"Ver\"\n\nmsgid \"Window\"\nmsgstr \"Ventana\"\n\nmsgid \"Image\"\nmsgstr \"Imagen\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"Proyecto\"\n\nmsgid \"Effects\"\nmsgstr \"Efectos\"\n\nmsgid \"Help\"\nmsgstr \"Ayuda\"\n\nmsgid \"New\"\nmsgstr \"Nuevo\"\n\nmsgid \"New...\"\nmsgstr \"Nuevo...\"\n\nmsgid \"Open...\"\nmsgstr \"Abrir...\"\n\nmsgid \"Save...\"\nmsgstr \"Guardar...\"\n\nmsgid \"Save as...\"\nmsgstr \"Guardar como...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"Incluir imágenes mezcladas\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"Si está activado, las imágenes mezcladas finales también se almacenarán en el pxo, por cada fotograma. Esto hace que el archivo pxo sea más grande, y es útil para la importación mediante software de terceros o la exportación CLI. No es necesario que esta opción esté habilitada para cargar archivos pxo en Pixelorama.\"\n\nmsgid \"Import\"\nmsgstr \"Importar\"\n\nmsgid \"Export\"\nmsgstr \"Exportar\"\n\nmsgid \"Overwrite\"\nmsgstr \"Sobrescribir\"\n\nmsgid \"Export...\"\nmsgstr \"Exportar...\"\n\nmsgid \"Export as...\"\nmsgstr \"Exportar como...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Exportar PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Exportar PNG como...\"\n\nmsgid \"Quit\"\nmsgstr \"Salir\"\n\nmsgid \"Undo\"\nmsgstr \"Deshacer\"\n\nmsgid \"Redo\"\nmsgstr \"Rehacer\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"Historial de deshacer\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"Estado inicial\"\n\nmsgid \"Copy\"\nmsgstr \"Copiar\"\n\nmsgid \"Cut\"\nmsgstr \"Cortar\"\n\nmsgid \"Paste\"\nmsgstr \"Pegar\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Copiar en lugar\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"Pegar desde el portapapeles\"\n\nmsgid \"Delete\"\nmsgstr \"Borrar\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Eliminar permanentemente\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Mover a la papelera\"\n\nmsgid \"New Brush\"\nmsgstr \"Nuevo pincel\"\n\nmsgid \"Scale Image\"\nmsgstr \"Escalar imagen\"\n\nmsgid \"Pixels\"\nmsgstr \"Píxeles\"\n\nmsgid \"Percentage\"\nmsgstr \"Porcentaje\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"Modo de color:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"Modo de color\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"Indexado\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"Recortar según la selección\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"Recortar según los contenidos\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Redimensionar lienzo\"\n\nmsgid \"Offset Image\"\nmsgstr \"Desplazar imagen\"\n\nmsgid \"Offset:\"\nmsgstr \"Desplazamiento:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"Envolver alrededor:\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"Centrar fotogramas\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Rotar Imagen\"\n\nmsgid \"Pivot x:\"\nmsgstr \"Pivote x:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"Pivote y:\"\n\nmsgid \"Smear options:\"\nmsgstr \"Opciones de Smear:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Tolerancia:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Ángulo inicial:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"Envolver pinceladas\"\n\nmsgid \"Clear\"\nmsgstr \"Limpiar\"\n\nmsgid \"Invert\"\nmsgstr \"Invertir\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"Seleccionar área de la celda\"\n\nmsgid \"Modify\"\nmsgstr \"Modificar\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"Expandir\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"Expandir selección\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"Encoger\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"Encoger selección\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"Borde\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"Selección de borde\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"Diamante\"\n\nmsgid \"Circle\"\nmsgstr \"Círculo\"\n\nmsgid \"Square\"\nmsgstr \"Cuadrado\"\n\nmsgid \"Grayscale View\"\nmsgstr \"Ver en escala de grises\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Voltear Imagen\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Voltear horizontalmente\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Voltear verticalmente\"\n\nmsgid \"Preferences\"\nmsgstr \"Preferencias\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"Procedural\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"Desenfoque\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"Cargado\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"Centrar el lienzo\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Modo mosaico\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"Desplazamiento del modo mosaico\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"Base X:\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"Base Y:\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"Máscara:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Reiniciar\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"Reestablecer %s\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"Utilizar fotograma actual\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Restablecer máscara\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Opacidad de ventana\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"La opacidad de la ventana no funciona en el modo pantalla completa.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Diseño del panel\"\n\nmsgid \"Panels\"\nmsgstr \"Paneles\"\n\nmsgid \"Layouts\"\nmsgstr \"Diseños\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Paneles móviles\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"Convertir en flotante\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Gestionar diseños\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Vista previa\"\n\nmsgid \"Add\"\nmsgstr \"Añadir\"\n\nmsgid \"Add Layout\"\nmsgstr \"Añadir diseño\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"Eliminar %s\"\n\nmsgid \"Copy from\"\nmsgstr \"Copiar desde\"\n\nmsgid \"Rename\"\nmsgstr \"Renombrar\"\n\nmsgid \"Rename Layout\"\nmsgstr \"Renombrar diseño\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"Diseño actual\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"¿Estás seguro de que quieres eliminar este diseño?\"\n\nmsgid \"Widescreen\"\nmsgstr \"Pantalla ancha\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Pantalla alta\"\n\nmsgid \"Mirror View\"\nmsgstr \"Vista de espejo\"\n\nmsgid \"Show Grid\"\nmsgstr \"Mostrar cuadrícula\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Mostrar cuadrícula de píxeles\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Mostrar reglas\"\n\nmsgid \"Show Guides\"\nmsgstr \"Mostrar guías\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"Mostrar guías de ratón\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"Mostrar imágenes de referencia\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"Mostrar efectos de capa\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"Ajustar a\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"Ajustar a límite de cuadrícula rectangular\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"Ajustar a centro de cuadrícula rectangular\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"Ajustar a las guías\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"Ajustar a las guías de perspectiva\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Mostrar línea de tiempo de animación\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Modo zen\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Modo de pantalla completa\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Rellenar con color:\"\n\nmsgid \"Open a File\"\nmsgstr \"Abrir un archivo\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Abrir archivo(s)\"\n\nmsgid \"Import Options\"\nmsgstr \"Opciones de importación\"\n\nmsgid \"Import as:\"\nmsgstr \"Importar como:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Aplicar a todo\"\n\nmsgid \"Recent projects\"\nmsgstr \"Proyectos recientes\"\n\nmsgid \"New project\"\nmsgstr \"Nuevo proyecto\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"Hoja de sprites (nuevo proyecto)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Hoja de sprites (nueva capa)\"\n\nmsgid \"New frame\"\nmsgstr \"Nuevo fotograma\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"Remplazar celda\"\n\nmsgid \"New layer\"\nmsgstr \"Nueva capa\"\n\nmsgid \"New reference image\"\nmsgstr \"Nueva imagen de referencia\"\n\nmsgid \"New palette\"\nmsgstr \"Nueva paleta\"\n\nmsgid \"New brush\"\nmsgstr \"Nuevo pincel\"\n\nmsgid \"New pattern\"\nmsgstr \"Nuevo patrón\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Fotogramas horizontales:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Fotogramas verticales:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"Rebanado inteligente\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"Umbral:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"Las imágenes que tienen un lado menor que este valor superarán el umbral\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"Distancia de fusión:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"Las imágenes que hayan cruzado el umbral se fusionarán en una imagen más grande, si se encuentran dentro de esta distancia\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"Actualizar\"\n\nmsgid \"Start frame:\"\nmsgstr \"Fotograma inicial:\"\n\nmsgid \"End frame:\"\nmsgstr \"Fotograma final:\"\n\nmsgid \"At frame:\"\nmsgstr \"En el fotograma:\"\n\nmsgid \"At layer:\"\nmsgstr \"En la capa:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Tipo de pincel:\"\n\nmsgid \"File brush\"\nmsgstr \"Guardar como pincel\"\n\nmsgid \"Project brush\"\nmsgstr \"Pincel del proyecto\"\n\nmsgid \"Random brush\"\nmsgstr \"Pincel al azar\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Guardar sprite como .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Exportar sprite como .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Exportar Sprite\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Si el archivo existe, ¿sobreescribirlo?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"Los siguientes archivos ya existen. ¿Deseas sobreescribirlos? %s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"¡La ruta del directorio no es válida!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"¡El nombre del archivo no es válido!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"¡La ruta del directorio y el nombre de archivo no son válidos!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Exportación en progreso...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"No se puede cargar el archivo '%s'.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"No se puede cargar el archivo '%s'.\\n\"\n\"Código de error: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"No se puede cargar el archivo '%s'.\\n\"\n\"Este no es un archivo de paleta válido.\"\n\nmsgid \"Frame\"\nmsgstr \"Fotograma\"\n\nmsgid \"Frames:\"\nmsgstr \"Fotogramas:\"\n\nmsgid \"All Frames\"\nmsgstr \"Todos los fotogramas\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Spritesheet\"\n\nmsgid \"Animation\"\nmsgstr \"Animación\"\n\nmsgid \"Preview:\"\nmsgstr \"Vista previa:\"\n\nmsgid \"Frame:\"\nmsgstr \"Fotograma:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Orientación:\"\n\nmsgid \"Browse\"\nmsgstr \"Explorar\"\n\nmsgid \"Resize:\"\nmsgstr \"Redimensionar:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"Calidad:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Cancelar exportación\"\n\nmsgid \"Alert!\"\nmsgstr \"¡Alerta!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Seleccionar carpeta actual\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Abrir un directorio\"\n\nmsgid \"Background:\"\nmsgstr \"Fondo:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"Fotogramas seleccionados\"\n\nmsgid \"Layers:\"\nmsgstr \"Capas:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Capas visibles\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"Capas seleccionadas\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"Capa de píxeles:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"Capa de grupo:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"Capa 3D:\"\n\nmsgid \"Direction:\"\nmsgstr \"Dirección:\"\n\nmsgid \"Forward\"\nmsgstr \"Hacia adelante\"\n\nmsgid \"Backwards\"\nmsgstr \"Reversa\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Ping Pong\"\n\nmsgid \"Columns\"\nmsgstr \"Columnas\"\n\nmsgid \"Columns:\"\nmsgstr \"Columnas:\"\n\nmsgid \"Rows\"\nmsgstr \"Filas\"\n\nmsgid \"Rows:\"\nmsgstr \"Filas:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"Etiquetas por columna\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"Etiquetas por fila\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"Exportar dimensiones:\"\n\nmsgid \"Save a File\"\nmsgstr \"Guardar un archivo\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"Ir a la carpeta anterior.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"Ir a la carpeta siguiente.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"Ir a la carpeta superior.\"\n\nmsgid \"Path:\"\nmsgstr \"Ruta:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"Actualizar archivos.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"Alterna la visibilidad de los archivos ocultos.\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Directorios y archivos:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Crear carpeta\"\n\nmsgid \"File:\"\nmsgstr \"Archivo:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"Todos los archivos\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"Todos los reconocidos\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"Proyecto de Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"Imagen PNG\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"Imagen BMP\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"Imagen Radiance HDR\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"Imagen JPEG\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"Imagen SVG\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"Imagen TGA\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"Imagen WebP\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"Proyecto de OpenRaster\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"Proyecto de Aseprite\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"Proyecto de Krita\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"Proyecto de Piskel\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"Proyecto de Photoshop\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"Paleta de Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"Paleta de GIMP\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"Opciones avanzadas\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolación:\"\n\nmsgid \"Nearest\"\nmsgstr \"Más cercano\"\n\nmsgid \"Bilinear\"\nmsgstr \"Bilineal\"\n\nmsgid \"Cubic\"\nmsgstr \"Cúbico\"\n\nmsgid \"Trilinear\"\nmsgstr \"Trilineal\"\n\nmsgid \"Constant\"\nmsgstr \"Constante\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"Espacio de color\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"SRGB lineal\"\n\nmsgid \"General\"\nmsgstr \"General\"\n\nmsgid \"Startup\"\nmsgstr \"Inicio\"\n\nmsgid \"Language\"\nmsgstr \"Idioma\"\n\nmsgid \"Interface\"\nmsgstr \"Interfaz\"\n\nmsgid \"Themes\"\nmsgstr \"Temas\"\n\nmsgid \"Canvas\"\nmsgstr \"Lienzo\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"Línea de tiempo\"\n\nmsgid \"Selection\"\nmsgstr \"Selección\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Teclas de acceso directo\"\n\nmsgid \"Backup\"\nmsgstr \"Copia de seguridad\"\n\nmsgid \"Performance\"\nmsgstr \"Rendimiento\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"Controladores\"\n\nmsgid \"Extensions\"\nmsgstr \"Extensiones\"\n\nmsgid \"Cursors\"\nmsgstr \"Cursores\"\n\nmsgid \"Indicators\"\nmsgstr \"Indicadores\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"Pixelorama debe ser reiniciado para que los cambios surtan efecto.\"\n\nmsgid \"On\"\nmsgstr \"Activar\"\n\nmsgid \"Restore default value\"\nmsgstr \"Restaurar valor predeterminado\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Zoom suavizado\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Añade una transición más suave cuando se acerca o aleja\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"Zoom en enteros\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"Restringe el valor para que sea un múltiplo entero de 100%\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Sensibilidad de la presión de la tableta:\"\n\nmsgid \"None\"\nmsgstr \"Ninguno\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Afectar opacidad del pincel\"\n\nmsgid \"Color:\"\nmsgstr \"Color:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Color de guía:\"\n\nmsgid \"System Language\"\nmsgstr \"Idioma del sistema\"\n\nmsgid \"Display scale:\"\nmsgstr \"Escala de la interfaz:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"Fuente:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"Tamaño de la fuente:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"Orientación de la pantalla:\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Atenuar interface al abrir ventana emergente\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"Mostrar etiquetas de notificaciones\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"Utilizar diálogos de archivos nativos\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"Cuando esta opción está activada, se utilizan los diálogos de archivos nativos del sistema operativo, en lugar de los personalizados de Pixelorama.\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"Modo de ventana única\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"Cuando esta opción está activada, las subventanas de Pixelorama serán embebidas en la ventana principal, de lo contrario cada diálogo será su propia ventana separada.\"\n\nmsgid \"Dark\"\nmsgstr \"Oscuro\"\n\nmsgid \"Gray\"\nmsgstr \"Gris\"\n\nmsgid \"Blue\"\nmsgstr \"Azul\"\n\nmsgid \"Caramel\"\nmsgstr \"Caramelo\"\n\nmsgid \"Light\"\nmsgstr \"Claro\"\n\nmsgid \"Purple\"\nmsgstr \"Morado\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"Rosa\"\n\nmsgid \"Theme\"\nmsgstr \"Tema\"\n\nmsgid \"Buttons\"\nmsgstr \"Botones\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Color del icono de:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Color del icono:\"\n\nmsgid \"Background\"\nmsgstr \"Fondo\"\n\nmsgid \"Background color from:\"\nmsgstr \"Color del fondo:\"\n\nmsgid \"Background color:\"\nmsgstr \"Color de fondo:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"Modo de herramienta única\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"Si está activado, el botón derecho del ratón siempre activará la misma herramienta que el botón izquierdo del ratón.\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"Sincronizar opciones entre las herramientas izquierda y derecha\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"Si está activado, se sincronizarán las opciones entre las herramientas izquierda y derecha.\\n\"\n\"Por ejemplo, ambas herramientas compartirán el mismo tamaño de pincel, y cambiarlo en una herramienta lo cambiará instantáneamente en la otra.\"\n\nmsgid \"Left tool color:\"\nmsgstr \"Color de la herramienta izquierda:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"Color de la herramienta derecha:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Tamaño de boton de herramienta:\"\n\nmsgid \"Small\"\nmsgstr \"Pequeño\"\n\nmsgid \"Big\"\nmsgstr \"Grande\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Sólo afecta a la selección\"\n\nmsgid \"Selected cels\"\nmsgstr \"Celdas seleccionadas\"\n\nmsgid \"Current cel\"\nmsgstr \"Celda actual\"\n\nmsgid \"Current frame\"\nmsgstr \"Fotograma actual\"\n\nmsgid \"All frames\"\nmsgstr \"Todos los fotogramas\"\n\nmsgid \"All projects\"\nmsgstr \"Todos los proyectos\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Invertir colores\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Modificar canal rojo\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Modificar canal verde\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Modificar canal azul\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Modificar canal alfa\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Desaturación\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Silueta\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Sombra paralela\"\n\nmsgid \"Offset X:\"\nmsgstr \"Desplazamiento en X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"Desplazamiento en Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"Color de la sombra:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"Desenfoque gaussiano\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"Tipo de desenfoque:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"Nivel de desenfoque:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"Radio de desenfoque:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"Dirección de desenfoque:\"\n\nmsgid \"Gradient\"\nmsgstr \"Degradado\"\n\nmsgid \"Gradient Map\"\nmsgstr \"Mapa de degradado\"\n\nmsgid \"Interpolation\"\nmsgstr \"Interpolación\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"Invertir\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"Distribuir puntos equitativamente\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"Dividir en partes iguales\"\n\nmsgid \"Parts:\"\nmsgstr \"Partes:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"Añadir punto al final\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"Si está activado, el último punto se añade al final del degradado.\\n\"\n\"Desactiva esto si deseas convertir el degradado para que tenga interpolación constante, de forma que el último color sea tomado en cuenta.\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"Guardar en preajustes\"\n\nmsgid \"Shape:\"\nmsgstr \"Forma:\"\n\nmsgid \"Linear\"\nmsgstr \"Lineal\"\n\nmsgid \"Radial\"\nmsgstr \"Radial\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"Repetir:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"Repetir\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"Espejo\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"Truncar\"\n\nmsgid \"Transition size:\"\nmsgstr \"Tamaño de transición:\"\n\nmsgid \"Center:\"\nmsgstr \"Centro:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"Patrón del tramado:\"\n\nmsgid \"Type:\"\nmsgstr \"Tipo:\"\n\nmsgid \"Angle:\"\nmsgstr \"Ángulo:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Ajustar Matiz/Saturación/Valor\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"Ajustar HSV\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Matiz:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Saturación:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Valor:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"Ajustar brillo/contraste\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"Brillo:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"Contraste:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"Valor rojo:\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"Valor verde:\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"Valor azul:\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"Color de tinte:\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"Factor de efecto de tinte:\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"Curvas de color\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"Canal:\"\n\nmsgid \"Red\"\nmsgstr \"Rojo\"\n\nmsgid \"Green\"\nmsgstr \"Verde\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"Valor\"\n\nmsgid \"Presets\"\nmsgstr \"Ajustes por defecto\"\n\nmsgid \"Apply\"\nmsgstr \"Aplicar\"\n\nmsgid \"Diagonal\"\nmsgstr \"Diagonal\"\n\nmsgid \"Place inside image\"\nmsgstr \"Colocar dentro de la imagen\"\n\nmsgid \"Thickness:\"\nmsgstr \"Grosor:\"\n\nmsgid \"Colors:\"\nmsgstr \"Colores:\"\n\nmsgid \"Steps:\"\nmsgstr \"Pasos:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"Paletizar\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"Pixelizar\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"Posterizar\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"Posterizar niveles:\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"Intensidad de difuminado:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Mostrar Pantalla de bienvenida\"\n\nmsgid \"Online Docs\"\nmsgstr \"Documentación en línea\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Gestor de Problemas\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"Restaurar copia de seguridad\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"Sesiones anteriores\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"Haz doble clic para cargar una sesión entera, o un proyecto específico.\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"Sesiones\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"Proyectos\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"(Sesión actual)\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"Abrir carpeta de datos del editor\"\n\nmsgid \"Changelog\"\nmsgstr \"Registro de cambios\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Acerca de Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"Apoya el desarrollo de Pixelorama\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - ¡Pixela tus sueños!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Desarrollado por Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-presente por Orama Interactive y colaboradores\"\n\nmsgid \"Website\"\nmsgstr \"Sitio Web\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"Código fuente\"\n\nmsgid \"Donate\"\nmsgstr \"Donar\"\n\nmsgid \"Developers\"\nmsgstr \"Desarrolladores\"\n\nmsgid \"Contributors\"\nmsgstr \"Colaboradores\"\n\nmsgid \"Donors\"\nmsgstr \"Donantes\"\n\nmsgid \"Translators\"\nmsgstr \"Traductores\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Licencias\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"Licencia\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"Licencias de Godot\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"Licencias de terceros\"\n\nmsgid \"English\"\nmsgstr \"Inglés\"\n\nmsgid \"Greek\"\nmsgstr \"Griego\"\n\nmsgid \"French\"\nmsgstr \"Francés\"\n\nmsgid \"German\"\nmsgstr \"Alemán\"\n\nmsgid \"Polish\"\nmsgstr \"Polaco\"\n\nmsgid \"Portuguese\"\nmsgstr \"Portugués\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Portugués brasileño\"\n\nmsgid \"Russian\"\nmsgstr \"Ruso\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Chino (simplificado)\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Chino tradicional\"\n\nmsgid \"Italian\"\nmsgstr \"Italiano\"\n\nmsgid \"Latvian\"\nmsgstr \"Letón\"\n\nmsgid \"Spanish\"\nmsgstr \"Español\"\n\nmsgid \"Catalan\"\nmsgstr \"Catalán\"\n\nmsgid \"Esperanto\"\nmsgstr \"Esperanto\"\n\nmsgid \"Indonesian\"\nmsgstr \"Indonesio\"\n\nmsgid \"Czech\"\nmsgstr \"Checo\"\n\nmsgid \"Arabic\"\nmsgstr \"Árabe\"\n\nmsgid \"Turkish\"\nmsgstr \"Turco\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Bokmål noruego\"\n\nmsgid \"Korean\"\nmsgstr \"Coreano\"\n\nmsgid \"Hungarian\"\nmsgstr \"Húngaro\"\n\nmsgid \"Romanian\"\nmsgstr \"Rumano\"\n\nmsgid \"Japanese\"\nmsgstr \"Japonés\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Ucraniano\"\n\nmsgid \"Danish\"\nmsgstr \"Danés\"\n\nmsgid \"Swedish\"\nmsgstr \"Sueco\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Serbio (Cirílico)\"\n\nmsgid \"Dutch\"\nmsgstr \"Holandés\"\n\nmsgid \"Belarusian\"\nmsgstr \"Bielorruso\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"Desarrollador principal\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"Diseñador de IU\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"Autores\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Arte por: %s\"\n\nmsgid \"untitled\"\nmsgstr \"sin título\"\n\nmsgid \"imported\"\nmsgstr \"importado\"\n\nmsgid \"copy\"\nmsgstr \"copiar\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"¿Estás seguro de que quieres salir de Pixelorama?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Imagen sin guardad\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Tienes cambios sin guardar. Si sigues, perderás todo tu progreso.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"¿Guardar antes de salir?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"El proyecto %s tiene progreso sin guardar. ¿Cómo deseas proceder?\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Guardar y salir\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Salir sin guardar\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Selección rectangular\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Selección elíptica\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Selección poligonal\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\\n\\n\"\n\"Haz doble clic para conectar el último punto al punto inicial\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Seleccionar por color\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Varita mágica\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Lazo/Herramienta de Selección Libre\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Seleccionar por dibujo\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Mover\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Zoom\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Vista\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"Selector de Color\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\\n\\n\"\n\"Selecciona un color de un píxel del sprite\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"Recortar\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\\n\\n\"\n\"Redimensiona el lienzo\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Lápiz\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\\n\\n\"\n\"Mantén pulsado %s para crear una línea\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Borrador\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\\n\\n\"\n\"Mantén pulsado %s para crear una línea\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Cubo de pintura\\n\\n\"\n\"%s para botón izquierdo del ratón\\n\"\n\"%s para botón derecho del ratón\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Herramienta de Sombreado\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Herramienta de Línea\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\\n\\n\"\n\"Mantén pulsado %s para ajustar el ángulo de la línea\\n\"\n\"Mantén pulsado %s para centrar la forma en el origen del clic\\n\"\n\"Mantén pulsado %s para desplazar el origen de la forma\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"Herramienta de Curva\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\\n\\n\"\n\"Dibuja curvas de bezier\\n\"\n\"Presiona %s/%s para añadir nuevos puntos\\n\"\n\"Haz doble clic para terminar de dibujar la curva\\n\"\n\"Presiona y arrastra para controlar la curvatura\\n\"\n\"Presiona %s para eliminar el último punto añadido\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Herramienta de Rectángulo\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\\n\\n\"\n\"Mantén pulsado %s para crear una forma 1:1\\n\"\n\"Mantén pulsado %s para centrar la forma en el origen del clic\\n\"\n\"Mantén pulsado %s para desplazar el origen de la forma\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Herramienta de Elipse\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\\n\\n\"\n\"Mantén pulsado %s para crear una forma 1:1\\n\"\n\"Mantén pulsado %s para centrar la forma en el origen del clic\\n\"\n\"Mantén pulsado %s para desplazar el origen de la forma\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"Herramienta de Caja Isométrica\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\\n\\n\"\n\"Dibuja una caja isómica\\n\"\n\"Presiona %s/%s para añadir un punto base\\n\"\n\"Mantén pulsado %s para ajustar el ángulo del punto base\\n\"\n\"Mantén pulsado %s para desplazar el origen de la forma\\n\"\n\"Presiona %s para editar la última base añadida\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Texto\\n\\n\"\n\"%s para el botón izquierdo del ratón\\n\"\n\"%s para el botón derecho del ratón\"\n\nmsgid \"Rectangle\"\nmsgstr \"Rectángulo\"\n\nmsgid \"Ellipse\"\nmsgstr \"Elipse\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Elegir un color para la herramienta izquierda\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Elegir un color para la herramienta derecha\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"Cambia los colores izquierdo y derecho.\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"Color promedio:\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Restablecer los colores a su estado predeterminado (negro a la izquierda, blanco a la derecha)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"Elige un color de la ventana de la aplicación.\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"Introduce un código hexadecimal (\\\"#ff0000\\\") o nombre de color en inglés (\\\"red\\\").\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"Selecciona una forma de selector.\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"Opciones de color\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"Selecciona un modo de selector.\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"Controles deslizantes colorizados\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"Muestras\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"Colores recientes\"\n\nmsgid \"Left tool\"\nmsgstr \"Herramienta izquierda\"\n\nmsgid \"Right tool\"\nmsgstr \"Herramienta derecha\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Indicador de píxel izquierdo\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Mostrar el indicador de píxeles del clic izquierdo o el borrador en el lienzo al dibujar\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Indicador de píxel derecho\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Mostrar el indicador de píxeles del clic derecho o el borrador en el lienzo al dibujar\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Mostrar icono de herramienta izquierda\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Muestra un icono de la herramienta izquierda seleccionada junto al cursor en el lienzo\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Mostrar icono de herramienta derecha\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Muestra un icono de la herramienta derecha seleccionada junto al cursor en el lienzo\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"Usar cursores nativos del ratón\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"Usar cursor cruzado para el lienzo\"\n\nmsgid \"Guides\"\nmsgstr \"Guías\"\n\nmsgid \"Guides color:\"\nmsgstr \"Color de guías:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Un color de las guías de reglas que se muestran en el lienzo\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"Ajuste\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"Distancia de ajuste:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"Esta es la distancia en píxeles de la pantalla en la que se activa el ajuste de guía y cuadrícula.\"\n\nmsgid \"Grid\"\nmsgstr \"Cuadrícula\"\n\nmsgid \"Grid type:\"\nmsgstr \"Tipo de cuadrícula:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Establece el tipo de cuadrícula entre rectangular, isométrico o ambas\"\n\nmsgid \"Rectangular\"\nmsgstr \"Rectangular\"\n\nmsgid \"Isometric\"\nmsgstr \"Isométrico\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"Hexagonal\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"Hexagonal (puntiagudo)\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"Hexagonal (punta plana)\"\n\nmsgid \"All\"\nmsgstr \"Todo\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"Cuadrículas visibles:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"Cuadrícula en edición:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"Tamaño de la cuadrícula:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"Desplazamiento de cuadrícula:\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"Establece el desplazamiento de la cuadrícula desde el origen del lienzo (esquina superior izquierda de la imagen)\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"Dibujar en el Modo Mosaico:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"Si está desactivado, la cuadrícula se dibujará sólo sobre la imagen original\"\n\nmsgid \"Grid color:\"\nmsgstr \"Color de cuadrícula:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"Un color de la cuadrícula\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Cuadrícula de Píxeles\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Mostrar con zoom:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"Establece el zoom mínimo con el que se mostrará la cuadrícula de píxeles\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Color de la cuadrícula de píxeles:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"Un color de la cuadrícula de píxeles\"\n\nmsgid \"Transparency\"\nmsgstr \"Transparencia\"\n\nmsgid \"Checker size:\"\nmsgstr \"Tamaño del fondo de cuadrícula:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Tamaño del fondo de cuadrícula transparente\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Color 1 del fondo:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"Primer color del fondo transparente\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Color 2 del fondo:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"Segundo color del fondo transparente\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"Seguir el movimiento del lienzo\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"El fondo de la cuadrícula transparente sigue el movimiento del lienzo\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"Seguir el nivel de zoom del lienzo\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"El verificador transparente sigue el nivel de zoom del lienzo\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"Seleccionar capa al hacer clic en uno de sus botones:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"Color anterior del papel cebolla:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"Color futuro del papel cebolla:\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"Bordes de selección animados\"\n\nmsgid \"Border color 1:\"\nmsgstr \"Color del borde 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Color del borde 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"Alfa de vista previa de transformaciones:\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Sólo se puede modificar el ajuste preestablecido\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"Establecer el límite de FPS de la aplicación:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"Establece el límite de fotogramas por segundo de la aplicación. Cuanto menor sea el número, menor será el uso de la CPU, pero la aplicación se vuelve más lenta, entrecortada y sin respuesta. 0 significa que no hay límite.\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"Deshaceres máximos:\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"Pausar la aplicación cuando pierde el enfoque\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"Si se activa esta opción, cuando la ventana de la aplicación pierde el enfoque, se detiene. Esto ayuda a reducir el uso de la CPU cuando está inactiva. La aplicación no se detiene cuando el ratón entra en la ventana de la aplicación.\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"Actualizar continuamente\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"Si se activa esta opción, la aplicación volverá a dibujar la pantalla continuamente, aunque no se utilice. Apagar esto ayuda a reducir el uso de CPU y GPU cuando está inactiva.\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"Activar transparencia de ventana\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"Si está activado, la ventana de la aplicación puede ser transparente. Esto afecta al rendimiento, así que mantenlo apagado si no lo necesitas.\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"Usar controlador de audio de pruebas\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"Procesador:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"Especifica el procesador/controlador de video que se está usando. GLES2 es mejor para dispositivos antiguos y de gama baja, pero GLES3 puede ofrecer más funciones.\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"Controlador de tableta:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"Especifica el controlador de tableta usado en Windows. Si tienes Windows Ink activado, selecciona winink.\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Agregar Extensión\"\n\nmsgid \"Enable\"\nmsgstr \"Activar\"\n\nmsgid \"Disable\"\nmsgstr \"Desactivar\"\n\nmsgid \"Uninstall\"\nmsgstr \"Desinstalar\"\n\nmsgid \"Open Folder\"\nmsgstr \"Abrir Carpeta\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"Explorar en línea\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"Explorador de extensiones\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"Buscar...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"Etiquetas:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"Reportar un problema con una extensión\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"Descargar\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"Enlaces del repositorio:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"Obteniendo datos del repositorio remoto.\\n\"\n\"Por favor espera.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"No se puede obtener información del repositorio remoto.\\n\\n\"\n\"- Asegúrate de estar conectado a internet.\\n\"\n\"- Si usas la versión Flatpak de Pixelorama, debes otorgarle permiso para conectarse a internet. Para ello, ejecuta el siguiente comando en tu terminal:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"Alternativamente, puedes descargar Flatseal y establecer permisos para las aplicaciones Flatpak allí.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"No se puede obtener información del repositorio remoto.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"Pega el enlace del repositorio, dado por el propietario del repositorio. Si se deja vacío, se eliminará automáticamente.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"¿Estás seguro de que deseas activar esta extensión? Asegúrate de activar sólo las extensiones de las fuentes en las que confíes.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"¿Estás seguro de que deseas eliminar esta extensión?\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"Dinámicas\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"Estabilizador\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"Presión\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"Velocidad\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"Alfa\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"Dimensión\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"Límites del valor\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"Límites\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"Inicio\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"Final\"\n\nmsgid \"Brush:\"\nmsgstr \"Pincel:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Seleccionar un pincel\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"Pinceles predeterminados\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Pincel de píxeles\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Pincel circular\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Pincel de círculos con relleno\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"Pinceles del proyecto\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"Pinceles del archivo\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"Nieve\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"Pinceles del archivo aleatorios\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"Césped\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"Estrella\"\n\nmsgid \"Custom brush\"\nmsgstr \"Pincel Personalizado\"\n\nmsgid \"Brush size:\"\nmsgstr \"Tamaño del pincel:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"Opciones de rotación\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"Voltear:\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"Rotar:\"\n\nmsgid \"Overwrite color\"\nmsgstr \"Sobrescribir color\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Sobrescribe el color en lugar de mezclarlo. Esta opción solo es relevante con colores que no son totalmente opacos\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Pixelado perfecto\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"Pixel Perfect hace que las líneas sean suaves eliminando los píxeles sobrantes en los bordes\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"Bloquear alfa\"\n\nmsgid \"Fill inside\"\nmsgstr \"Rellenar el interior\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"Espaciado\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"Espacio X:\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"Espacio Y:\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Rellena forma\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"Rellena de color la forma dibujada, en lugar de dibujar una forma hueca\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"Densidad:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"Color de pincel de:\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: Color del propio pincel, 100: el color seleccionado actualmente\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"Rellenar área:\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"Área Similar\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"Colores similares\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"Selección completa\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"Rellenar regiones de la fusión de todas las capas\"\n\nmsgid \"Fill with:\"\nmsgstr \"Rellenar con:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"Color seleccionado\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Patrón\"\n\nmsgid \"Offset\"\nmsgstr \"Desplazamiento\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Sombreado Simple\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Cambio de Tonalidad\"\n\nmsgid \"Lighten\"\nmsgstr \"Aclarar\"\n\nmsgid \"Darken\"\nmsgstr \"Oscurecer\"\n\nmsgid \"Amount:\"\nmsgstr \"Cantidad:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Cantidad de iluminación/oscuridad\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"Reemplazo de color\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"Por favor, seleccione un color de la paleta.\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"Colores a la derecha:\"\n\nmsgid \"Pick for:\"\nmsgstr \"Elegir para:\"\n\nmsgid \"Left Color\"\nmsgstr \"Color izquierdo\"\n\nmsgid \"Right Color\"\nmsgstr \"Color derecho\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"Modo de selección:\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"Color superior\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"Capa actual\"\n\nmsgid \"Mode:\"\nmsgstr \"Modo:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Acercar\"\n\nmsgid \"Zoom out\"\nmsgstr \"Alejar\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"Único\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"Encadenado\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"Encadenado: Hace una cadena de múltiples curvas bezier, similar a la herramienta de curva de Krita.\\n\"\n\"Sencilla: Hace una sola curva bezier, similar a la herramienta de curva de Aseprite.\"\n\nmsgid \"Options\"\nmsgstr \"Opciones\"\n\nmsgid \"Options:\"\nmsgstr \"Opciones:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"Ajustar al fotograma\"\n\nmsgid \"100% Zoom\"\nmsgstr \"100% de zoom\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"Reemplazar selección\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"Añadir a la selección\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"Restar a la selección\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"Intersección de las selecciones\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"Estilo:\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"Normal\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"Negrita\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"Cursiva\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"Negrita cursiva\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"Antialiasing\"\n\nmsgid \"Grayscale\"\nmsgstr \"Escala de grises\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"Color del borde\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"Color de herramienta\"\n\nmsgid \"Adjusted average\"\nmsgstr \"Promedio ajustado\"\n\nmsgid \"Blend at interface\"\nmsgstr \"Mezclar en interfaz\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"Cara izquierda\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"Cara derecha\"\n\nmsgid \"Mirroring\"\nmsgstr \"Espejar\"\n\nmsgid \"Horizontal\"\nmsgstr \"Horizontal\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Activar dibujo de espejo horizontal\"\n\nmsgid \"Vertical\"\nmsgstr \"Vertical\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Activar dibujo de espejo vertical\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"Activar dibujo de espejo diagonal (↗)\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"Activar dibujo de espejo diagonal (↘)\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"Mover al centro del lienzo\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"Mover al centro de la vista\"\n\nmsgid \"Current frame:\"\nmsgstr \"Fotograma actual:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"Modo de animación:\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"Fotograma actual como hoja de sprites\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"Saltar al primer fotograma\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"Ir al fotograma anterior\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"Reproducir la animación hacia atrás\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"Reproducir la animación hacia adelante\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"Ir al fotograma siguiente\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"Saltar al último fotograma\"\n\nmsgid \"Timeline settings\"\nmsgstr \"Configuración de la línea de tiempo\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Activar/desactivar Papel Cebolla\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"¿A cuántos fotogramas por segundo debe reproducirse la vista previa de la animación?\\n\"\n\"Cuantos más FPS, más rápido se reproduce la animación.\"\n\nmsgid \"No loop\"\nmsgstr \"Ningún bucle\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Bucle de ciclo\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Bucle ping-pong\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Papel Cebolla:\"\n\nmsgid \"Past Frames\"\nmsgstr \"Fotogramas Anteriores\"\n\nmsgid \"Future Frames\"\nmsgstr \"Fotogramas Posteriores\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Administrar etiquetas de fotogramas\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Propiedades de las Etiquetas de los Fotogramas\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Añadir nueva etiqueta de fotograma\"\n\nmsgid \"Name:\"\nmsgstr \"Nombre:\"\n\nmsgid \"From:\"\nmsgstr \"Desde:\"\n\nmsgid \"To:\"\nmsgstr \"Hasta:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"La animación sólo se reproduce en fotogramas de la misma etiqueta\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Etiqueta %s (Fotograma %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Etiqueta %s (Fotogramas %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Si se selecciona, la animación se reproduce sólo en los fotogramas que tienen la misma etiqueta.\\n\"\n\"Si no es así, la animación se reproducirá para todos los fotogramas, ignorando las etiquetas.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"Tamaño de celda:\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"Modo de Color\"\n\nmsgid \"Show past frames:\"\nmsgstr \"Mostrar fotogramas pasados:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"Mostrar fotogramas futuros:\"\n\nmsgid \"Above canvas\"\nmsgstr \"Encima del lienzo\"\n\nmsgid \"Below canvas\"\nmsgstr \"Debajo del lienzo\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"Si deseas que una capa ignore multiples capas al mismo tiempo simplemente añade \\\"_io\\\" al final del nombre de la capa.\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Añadir un nuevo fotograma\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Eliminar fotograma\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Clonar Fotograma\"\n\nmsgid \"Move Left\"\nmsgstr \"Mover a la izquierda\"\n\nmsgid \"Move Right\"\nmsgstr \"Mover a la derecha\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"Seleccionar píxeles\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"Enlazar celdas a\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"Desenlazar celdas\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"Reproducir audio aquí\"\n\nmsgid \"Properties\"\nmsgstr \"Propiedades\"\n\nmsgid \"Project Properties\"\nmsgstr \"Propiedades del proyecto\"\n\nmsgid \"Frame properties\"\nmsgstr \"Propiedades de los fotogramas\"\n\nmsgid \"Layer properties\"\nmsgstr \"Propiedades de la capa\"\n\nmsgid \"Cel properties\"\nmsgstr \"Propiedades de la celda\"\n\nmsgid \"Tag properties\"\nmsgstr \"Propiedades de etiqueta\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"Nueva etiqueta\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"Importar etiqueta\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"Fotogramas inversos\"\n\nmsgid \"Layer\"\nmsgstr \"Capa\"\n\nmsgid \"Group\"\nmsgstr \"Agrupar\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"Tilemap\"\n\nmsgid \"Audio\"\nmsgstr \"Audio\"\n\nmsgid \"Layers\"\nmsgstr \"Capas\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"Máscara de recorte\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"Aplanar\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"Aplanar visible\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Crear nueva capa\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"Agregar nueva capa\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"Agregar capa de grupo\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"Agregar nueva capa 3D\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"Añadir capa de Tilemap\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"Añadir capa de audio\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Eliminar capa actual\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Mover capa hacia arriba\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Mover capa hacia abajo\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Clonar capa actual\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Combinar la capa actual con la de abajo\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"Modo de fusión:\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"Pasar a través\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"Normal\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"Borrar\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"Multiplicar\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"Subexposición de color\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"Subexposición lineal\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"Pantalla\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"Sobreexposición de color\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"Contraste\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"Superposición\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"Luz suave\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"Luz dura\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"Inversión\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"Diferencia\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"Exclusión\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"Sustraer\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"Dividir\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"Componente\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"Matiz\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"Saturación\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"Color\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"Luminosidad\"\n\nmsgid \"Opacity:\"\nmsgstr \"Opacidad:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"Opacidad del modo mosaico:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Alternar visibilidad de capa(s)\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Bloquear/desbloquear capa\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Fotograma: %s, Capa: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"Activar/desactivar el enlace automático de nuevas celdas al crear nuevos fotogramas\\n\\n\"\n\"Las celdas enlazadas comparten contenido a través de múltiples fotogramas\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"Expandir/contraer grupo\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"Archivo de audio:\"\n\nmsgid \"Load file\"\nmsgstr \"Cargar archivo\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"Reproducir en fotograma:\"\n\nmsgid \"Palette\"\nmsgstr \"Paleta\"\n\nmsgid \"Palettes\"\nmsgstr \"Paletas\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Añadir una nueva paleta\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Editar la paleta seleccionada\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Elegir una paleta\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Deshacer: Dibujar\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Rehacer: Dibujar\"\n\nmsgid \"Undo: Select\"\nmsgstr \"Deshacer: selección\"\n\nmsgid \"Redo: Select\"\nmsgstr \"Rehacer: Selección\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Deshacer: Escalar\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Rehacer: Escalar\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Deshacer: Añadir capa\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Rehacer: Añadir capa\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Deshacer: Eliminar capa\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Rehacer: Eliminar Capa\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Deshacer: Combinar Capa\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Rehacer: Combinar Capa\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Deshacer: cambiar el orden de la capa\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Rehacer: cambiar orden de la capa\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Deshacer: Añadir fotograma\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Rehacer: Añadir fotograma\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Deshacer: Eliminar fotograma\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Rehacer: Eliminar fotograma\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Deshacer: cambiar el orden del fotograma\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Rehacer: cambiar el orden del fotograma\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Deshacer: Eliminar Pincel Personalizado\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Rehacer: Eliminar Pincel Personalizado\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"Deshacer: Modificar la etiqueta del fotograma\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"Rehacer: Modificar la etiqueta del fotograma\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"Deshacer: Eliminar etiqueta de fotograma\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"Rehacer: Eliminar la etiqueta del fotograma\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"Deshacer: Cambiar la duración de los fotogramas\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"Rehacer: Cambiar la duración de los fotogramas\"\n\nmsgid \"Move Guide\"\nmsgstr \"Mover Guía\"\n\nmsgid \"File saved\"\nmsgstr \"Archivo guardado\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"Copia de seguridad guardada\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"No se pudo abrir el archivo. Código de error %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"No se pudo guardar el archivo. Código de error %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"No se pudo exportar el vídeo. Asegúrate de que FFMPEG está instalado correctamente.\"\n\nmsgid \"File(s) exported\"\nmsgstr \"Archivo(s) exportado(s)\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Nueva Paleta Vacía\"\n\nmsgid \"Import Palette\"\nmsgstr \"Importar Paleta\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Crear paleta a partir del sprite actual\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Nombre de la Paleta:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Nombre del Color:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"Usar los colores actuales de izquierda y derecha\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"¿Crear una nueva paleta vacía?\"\n\nmsgid \"Error\"\nmsgstr \"Error\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Error: La paleta debe contener un nombre válido.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Archivo de paleta no válido!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Editar Paleta\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"Crear colores con componente alfa\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"Tomar colores sólo de la selección\"\n\nmsgid \"Get colors from\"\nmsgstr \"Obtener colores de\"\n\nmsgid \"Patrons:\"\nmsgstr \"Patrons:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"¿Quieres que tu nombre o tu empresa se muestren en la pantalla de inicio?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Conviértete en Patrocinador Platinum\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Conviértete en Patrocinador Gold\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Conviértete en Patron\"\n\nmsgid \"Don't show again\"\nmsgstr \"No mostrar de nuevo\"\n\nmsgid \"Image Options\"\nmsgstr \"Opciones de imagen\"\n\nmsgid \"Default width:\"\nmsgstr \"Ancho predeterminado:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"Un ancho por defecto de una nueva imagen\"\n\nmsgid \"Default height:\"\nmsgstr \"Altura predeterminada:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"Altura predeterminada de una nueva imagen\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Color de relleno predeterminado:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"Un color de fondo predeterminado de una nueva imagen\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"Reestablecer todas las opciones disponibles en Preferencias\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"Reestablecer opciones de línea de tiempo\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"Reestablecer todas las opciones de herramienta\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"Eliminar todas las extensiones\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"Eliminar todas las copias de seguridad\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"Limpiar la lista de archivos abiertos recientemente\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"Bloquear relación de aspecto\"\n\nmsgid \"Portrait\"\nmsgstr \"Retrato\"\n\nmsgid \"Landscape\"\nmsgstr \"Paisaje\"\n\nmsgid \"Templates:\"\nmsgstr \"Plantillas:\"\n\nmsgid \"Preset\"\nmsgstr \"Ajuste preestablecido\"\n\nmsgid \"Preset:\"\nmsgstr \"Ajuste preestablecido:\"\n\nmsgid \"Default\"\nmsgstr \"Predeterminado\"\n\nmsgid \"Custom\"\nmsgstr \"Personalizado\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Selección rectangular\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"Selección Elíptica\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"Selección Poligonal\"\n\nmsgid \"Select By Color\"\nmsgstr \"Seleccionar Por Color\"\n\nmsgid \"Magic Wand\"\nmsgstr \"Varita Mágica\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"Lazo / Herramienta de Selección Libre\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"Seleccionar por dibujo\"\n\nmsgid \"Move\"\nmsgstr \"Mover\"\n\nmsgid \"Zoom\"\nmsgstr \"Zoom\"\n\nmsgid \"Pan\"\nmsgstr \"Vista\"\n\nmsgid \"Color Picker\"\nmsgstr \"Selector de color\"\n\nmsgid \"Pencil\"\nmsgstr \"Lápiz\"\n\nmsgid \"Eraser\"\nmsgstr \"Borrador\"\n\nmsgid \"Bucket\"\nmsgstr \"Cubo de pintura\"\n\nmsgid \"Shading Tool\"\nmsgstr \"Herramienta de Sombreado\"\n\nmsgid \"Line Tool\"\nmsgstr \"Herramienta de Línea\"\n\nmsgid \"Curve Tool\"\nmsgstr \"Herramienta de curva\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"Herramienta de Rectángulo\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"Herramienta de Elipse\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"Herramienta de Caja Isométrica\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Cambiar colores\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Selecciona el acceso directo\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Presione una tecla o una combinación de teclas para establecer el acceso directo\"\n\nmsgid \"Already assigned\"\nmsgstr \"Ya asignado\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Herramienta izquierda:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Una herramienta asignada al botón izquierdo del mouse\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Herramienta derecha:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Una herramienta asignada al botón derecho del mouse\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"No se pudo encontrar el último archivo de proyecto.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"No se puede encontrar el archivo del proyecto.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"¡No has guardado o abierto ningún proyecto en Pixelorama aún!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Abrir el último proyecto\"\n\nmsgid \"Open last project...\"\nmsgstr \"Abrir el último proyecto...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Abrir el último proyecto al iniciar\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Abre el último proyecto abierto al iniciar\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"Confirmación de salida\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"Ruta de FFMPEG\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Activar guardado automático\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Intervalo de guardado automático:\"\n\nmsgid \"minute(s)\"\nmsgstr \"minuto(s)\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"Exportar datos JSON\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"Dividir capas\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"Incluir el nombre del fotograma en el archivo\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"Crear un nuevo directorio para cada etiqueta de fotograma\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"Crea múltiples archivos, pero cada archivo se almacena en un directorio diferente que corresponde a su etiqueta de fotograma\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"Separar carácter(es):\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"El(los) carácter(es) que separan Él nombre del archivo y Él número de fotograma\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"Recortar imágenes\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"Recorta las imágenes exportadas a su porción visible, considerando cada píxel con un canal de alfa diferente a cero como visible.\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"Recortar contenido de la imagen a la selección\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"Solo exportar contenido que está dentro de los los límites de un área seleccionada.\"\n\nmsgid \"Close\"\nmsgstr \"Cerrar\"\n\nmsgid \"Discard All\"\nmsgstr \"Descartar Todo\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"Pixelorama no se cerró correctamente la última vez. ¿Te gustaría restaurar una sesión anterior?\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"Copia de seguridad cargada\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Eliminar la paleta seleccionada\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"¿Estás seguro que quieres eliminar esta paleta? (No se puede deshacer)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"¡No puedes eliminar más paletas!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"¡No se puede quitar la paleta, porque no existe!\"\n\nmsgid \"and\"\nmsgstr \"y\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Mueve el fotograma seleccionado hacia la izquierda.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Mueve el fotograma seleccionado hacia la derecha.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"Duración de los fotogramas:\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"Datos del usuario:\"\n\nmsgid \"Duration\"\nmsgstr \"Duración\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"Mosaico en Ambos Ejes\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"Mosaico en el Eje X\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Mosaico en el Eje Y\"\n\nmsgid \"Create a new palette\"\nmsgstr \"Crear una nueva paleta\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"Crear una nueva paleta de proyecto\"\n\nmsgid \"Comment:\"\nmsgstr \"Comentario:\"\n\nmsgid \"Empty\"\nmsgstr \"Vacío\"\n\nmsgid \"From Current Palette\"\nmsgstr \"Desde la Paleta actual\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"Desde el Sprite Actual\"\n\nmsgid \"From Current Selection\"\nmsgstr \"Desde la Selección Actual\"\n\nmsgid \"Add a new color\"\nmsgstr \"Añadir nuevo color\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"Eliminar un color seleccionado\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"Ordenar paleta\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"Invertir colores\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"Ordenar por matiz\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"Ordenar por saturación\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"Ordenar por valor\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"Ordenar por luminosidad\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"Ordenar por rojo\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"Ordenar por verde\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"Ordenar por azul\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"Ordenar por alfa\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"¡Ya existe una paleta con el mismo nombre y ruta!\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"¡El nombre de la paleta es requerido!\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"Reducir el tamaño de la paleta restablecerá las posiciones de los colores. \\n\"\n\"¡Los colores que no quepan en el tamaño de la nueva paleta se perderán!\"\n\nmsgid \"Position:\"\nmsgstr \"Posición:\"\n\nmsgid \"Tools\"\nmsgstr \"Herramientas\"\n\nmsgid \"Main Canvas\"\nmsgstr \"Lienzo Principal\"\n\nmsgid \"Second Canvas\"\nmsgstr \"Lienzo Secundario\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"Timeline de Animación\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"Previsualizar Lienzo\"\n\nmsgid \"Color Pickers\"\nmsgstr \"Selectores de Color\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"Opciones de Herramienta Globales\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"Opciones de Herramienta Izquierda\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"Opciones de Herramienta Derecha\"\n\nmsgid \"Reference Images\"\nmsgstr \"Imágenes de referencia\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"Editor de perspectiva\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"Grabador\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"Mosaicos\"\n\nmsgid \"Crop\"\nmsgstr \"Recortar\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"Redimensionar el lienzo\"\n\nmsgid \"Margins\"\nmsgstr \"Márgenes\"\n\nmsgid \"Position + Size\"\nmsgstr \"Posición + Dimensiones\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"Bloquear proporción\"\n\nmsgid \"Margins:\"\nmsgstr \"Márgenes:\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"Proporción:\"\n\nmsgid \"Top:\"\nmsgstr \"Parte superior:\"\n\nmsgid \"Bottom:\"\nmsgstr \"Parte Inferior:\"\n\nmsgid \"Left:\"\nmsgstr \"Izquierda:\"\n\nmsgid \"Right:\"\nmsgstr \"Derecha:\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"Tamaño bloqueado\\n\\n\"\n\"Cuando está activado, usar la herramienta en el lienzo solo moverá el rectángulo de recorte.\\n\\n\"\n\"Cuando está desactivado, usar la herramienta en el lienzo dibujará el rectángulo.\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"Editar forma 3D\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"Cuadro\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"Esfera\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"Cápsula\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"Cilindro\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"Prisma\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"Rosca\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"Plano\"\n\nmsgid \"Text\"\nmsgstr \"Texto\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"Luz direccional\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"Destacar\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"Punto de luz\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"Modelo personalizado\"\n\nmsgid \"Selected object:\"\nmsgstr \"Objetos seleccionados:\"\n\nmsgid \"Add new object\"\nmsgstr \"Añadir un nuevo objeto\"\n\nmsgid \"Remove object\"\nmsgstr \"Remover objeto\"\n\nmsgid \"Camera\"\nmsgstr \"Cámara\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"Proyección:\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"Perspectiva\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"Ortogonal\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"Tronco\"\n\nmsgid \"Rotation:\"\nmsgstr \"Rotación:\"\n\nmsgid \"Scale:\"\nmsgstr \"Escala:\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"Ambiente\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"Color de ambiente:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"Energía de color ambiental:\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"Visible:\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"Transformar\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"Malla\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"Izquierda a derecha:\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"Radio:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"Segmentos radiales:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"Anillos:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"Es hemisferio:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"Radio superior:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"Radio inferior:\"\n\nmsgid \"Text:\"\nmsgstr \"Texto:\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"Profundidad:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"Tamaño del píxel:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"Nivel de curva:\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"Alineación horizontal:\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"Alineación vertical:\"\n\nmsgid \"Left\"\nmsgstr \"Izquierda\"\n\nmsgid \"Right\"\nmsgstr \"Derecha\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"Interlineado:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"Energía:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"Negativo:\"\n\nmsgid \"Shadow:\"\nmsgstr \"Sombra:\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"Rango:\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"Propiedades Animables\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"Previsualizar fotograma:\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"Animar\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"Valor inicial:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"Valor final:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"Tipo base:\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"Empieza lentamente y acelera hacia el final\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"Comienza rápidamente y desciende hacia el final\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"Lento en ambos extremos, rápido en medio\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"Rápido en ambos extremos, lento en medio\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"Cuadrático (potencia de 2)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"Cúbico (potencia de 3)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"Cuártico (potencia de 4)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"Quíntico (potencia de 5)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"Exponencial (potencia de x)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"Raíz cuadrada\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"Seno\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"Estrechar alrededor de los bordes\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"Rebotar al final\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"Sincronizar al final\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"Movimiento súbito en el final\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"Monocromático\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"Al abrir una imagen, se puede importar como una referencia.\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"Selecciona una imagen a continuación para cambiar sus propiedades.\\n\"\n\"Ten en cuenta que no puedes dibujar mientras una imagen de referencia está seleccionada.\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"Eliminar\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"Mantén pulsado Shift mientras presionas para eliminar al instante.\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"¿Estás seguro de que deseas eliminar esta imagen de referencia? No será eliminada de tu sistema de archivos.\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"Mover la imagen de referencia seleccionada a la derecha\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"Mover la imagen de referencia seleccionada a la izquierda\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"Selecciona una imagen de referencia en el lienzo\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"Mover la imagen de referencia seleccionada\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"Rotar la imagen de referencia seleccionada\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"Escalar la imagen de referencia seleccionada\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"ninguna\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"Reestablecer transformación\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"Posición\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"Escala\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"Rotación\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"Filtro\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"Opacidad\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"Compresión de colores\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"Activado\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"Efectos de la capa\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"Añadir efecto\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"¿Deseas descargar la imagen desde %s?\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"Set de mosaicos\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"Tileset:\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"Tilesets\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"Nuevo tileset\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"Nombre del tileset:\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"Tamaño de mosaico:\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"Forma de mosaico:\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"Diseño de mosaico:\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"Eje de desplazamiento de los mosaicos:\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"Para todas las formas a medio desplazamiento (isométricas y hexagonales), determina el eje de desplazamiento.\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"Apilado\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"Desplazamiento apilado\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"Escaleras a la derecha\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"Escaleras abajo\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"Diamante a la derecha\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"Diamante abajo\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"Modo de solo colocar:\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"Activar el modo de sólo colocar es una acción permanente. Una vez activado, sólo podrás colocar los mosaicos, y ya no podrás modificar los mosaicos existentes en esta capa.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"Selecciona un mosaico para colocarlo en el lienzo.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"Modifica los mosaicos en el lienzo.\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"Dibujar mosaicos\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"Rotar mosaico a la izquierda (en sentido antihorario)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"Rotar mosaico a la derecha (en sentido horario)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"Voltar mosaico horizontalmente\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"Voltear mosaico verticalmente\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"Manual\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Automático\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"Pila\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"Tamaño de botón de mosaico:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"Mostrar mosaico vacío:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"Propiedades del mosaico\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"Probabilidad:\"\n\n"
  },
  {
    "path": "Translations/et_EE.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: et\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Estonian\\n\"\n\"Language: et_EE\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/fa_IR.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: fa\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Persian\\n\"\n\"Language: fa_IR\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"باشه\"\n\nmsgid \"Cancel\"\nmsgstr \"لغو\"\n\nmsgid \"Open\"\nmsgstr \"گشودن\"\n\nmsgid \"Save\"\nmsgstr \"ذخیره‌سازی\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"خواهشمندیم تایید کنید...\"\n\nmsgid \"File Name:\"\nmsgstr \"نام پرونده:\"\n\nmsgid \"Project Name:\"\nmsgstr \"نام پروژه:\"\n\nmsgid \"Image Size\"\nmsgstr \"اندازهٔ تصویر\"\n\nmsgid \"Canvas Size\"\nmsgstr \"اندازهٔ بوم\"\n\nmsgid \"Frame Size\"\nmsgstr \"اندازهٔ فریم\"\n\nmsgid \"Size:\"\nmsgstr \"اندازه:\"\n\nmsgid \"Width:\"\nmsgstr \"پهنا:\"\n\nmsgid \"Height:\"\nmsgstr \"بلندا:\"\n\nmsgid \"Center\"\nmsgstr \"کانون\"\n\nmsgid \"File\"\nmsgstr \"پرونده\"\n\nmsgid \"Edit\"\nmsgstr \"ویرایش\"\n\nmsgid \"Select\"\nmsgstr \"گزینش\"\n\nmsgid \"View\"\nmsgstr \"نما\"\n\nmsgid \"Window\"\nmsgstr \"پنجره\"\n\nmsgid \"Image\"\nmsgstr \"تصویر\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"پروژه\"\n\nmsgid \"Effects\"\nmsgstr \"جلوه‌ها\"\n\nmsgid \"Help\"\nmsgstr \"کمک\"\n\nmsgid \"New\"\nmsgstr \"نو\"\n\nmsgid \"New...\"\nmsgstr \"نو...\"\n\nmsgid \"Open...\"\nmsgstr \"گشودن...\"\n\nmsgid \"Save...\"\nmsgstr \"ذخیره‌سازی...\"\n\nmsgid \"Save as...\"\nmsgstr \"ذخیره‌سازی با نام...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"دربرگرفتن تصویرهای درآمیخته\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"اگر به‌کارافتاده باشد، تصویرهای درآمیخهٔ پایانی برای هر فریم در PXO نیز انبار می‌شوند.\\n\"\n\"این کار پروندهٔ PXO را بزرگتر کرده و برای درون‌برد نرم‌افزارهای شخص ثالث کاربردی‌ست.\\n\"\n\"یا برون‌برد CLI. بار کردن پرونده‌های PXO در پیکسِلوراما نیازمند به‌کارافتاده بودن این گزینه نیست.\"\n\nmsgid \"Import\"\nmsgstr \"درون‌برد\"\n\nmsgid \"Export\"\nmsgstr \"برون‌برد\"\n\nmsgid \"Overwrite\"\nmsgstr \"بازنویسی\"\n\nmsgid \"Export...\"\nmsgstr \"برون‌برد...\"\n\nmsgid \"Export as...\"\nmsgstr \"برون‌برد با نام...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"برون‌برد PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"برون‌برد PNG با نام...\"\n\nmsgid \"Quit\"\nmsgstr \"برونرفت\"\n\nmsgid \"Undo\"\nmsgstr \"بازگردانی\"\n\nmsgid \"Redo\"\nmsgstr \"بازانجامیدن\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"روگرفت\"\n\nmsgid \"Cut\"\nmsgstr \"برش\"\n\nmsgid \"Paste\"\nmsgstr \"چسباندن\"\n\nmsgid \"Paste in Place\"\nmsgstr \"چسباندن در جا\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"چسباندن از بریده‌دان\"\n\nmsgid \"Delete\"\nmsgstr \"زدایش\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"زدایش همیشگی\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"فرستادن به زباله‌دان\"\n\nmsgid \"New Brush\"\nmsgstr \"قلم‌موی نو\"\n\nmsgid \"Scale Image\"\nmsgstr \"دگرش اندازهٔ تصویر\"\n\nmsgid \"Pixels\"\nmsgstr \"پیکسل‌ها\"\n\nmsgid \"Percentage\"\nmsgstr \"درصد\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"حالت رنگ:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"حالت رنگ\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"اندیس‌شده\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"برش دادن تا برگزیده\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"برش دادن تا محتوا\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"دگرش اندازهٔ بوم\"\n\nmsgid \"Offset Image\"\nmsgstr \"بازه از مبدا تصویر\"\n\nmsgid \"Offset:\"\nmsgstr \"بازه از مبدا:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"پیچاندن پیرامون:\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"فریم‌های کانونی\"\n\nmsgid \"Rotate Image\"\nmsgstr \"چرخش تصویر\"\n\nmsgid \"Pivot x:\"\nmsgstr \"لولای x:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"لولای y:\"\n\nmsgid \"Smear options:\"\nmsgstr \"گزینه‌های مالش:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"تاب‌آوری:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"زاویهٔ آغازین:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"کوبه‌های پیچاندن\"\n\nmsgid \"Clear\"\nmsgstr \"پاک کردن\"\n\nmsgid \"Invert\"\nmsgstr \"واروندن\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"گزینش منطقهٔ سِل\"\n\nmsgid \"Modify\"\nmsgstr \"پیرایش\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"گسترش\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"گسترش برگزیده\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"کوچک کردن\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"کوچک کردن برگزیده\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"مرز\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"مرزدار کردن برگزیده\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"الماس\"\n\nmsgid \"Circle\"\nmsgstr \"دایره\"\n\nmsgid \"Square\"\nmsgstr \"مربع\"\n\nmsgid \"Grayscale View\"\nmsgstr \"نمای درجه‌خاکستری\"\n\nmsgid \"Mirror Image\"\nmsgstr \"آیینه‌سازی تصویر\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"واژگون کردن افقی\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"واژگون کردن عمودی\"\n\nmsgid \"Preferences\"\nmsgstr \"گرایش‌ها\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"روالی\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"تاری\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"بارشده\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"بوم کانونی\"\n\nmsgid \"Tile Mode\"\nmsgstr \"حالت کاشی\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"بازه از مبداها حالت کاشی\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"پایهٔ x:\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"پایهٔ y:\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"ماسک زدن:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"بازنشاندن\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"بازنداندن %s\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"به‌کارگیری فریم کنونی\"\n\nmsgid \"Reset Mask\"\nmsgstr \"بازنشاندن ماسک\"\n\nmsgid \"Window Opacity\"\nmsgstr \"کدری پنجره\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"کدری پنجره در حالت تمام‌صفحه کار نمی‌کند.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"چیدمان پهنه\"\n\nmsgid \"Panels\"\nmsgstr \"پهنه‌ها\"\n\nmsgid \"Layouts\"\nmsgstr \"چیدمان‌ها\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"پهنه‌های جابه‌جایی‌پذیر\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"شناورسازی\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"مدیریت چیدمان‌ها\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"پیش‌نمایش\"\n\nmsgid \"Add\"\nmsgstr \"افزودن\"\n\nmsgid \"Add Layout\"\nmsgstr \"افزودن چیدمان\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"زدایش %s\"\n\nmsgid \"Copy from\"\nmsgstr \"روگرفت از\"\n\nmsgid \"Rename\"\nmsgstr \"بازنامگذاری\"\n\nmsgid \"Rename Layout\"\nmsgstr \"بازنامگذاری چیدمان\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"چیدمان کنونی\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"آیا از زدایش این چیدمان مطمئنید؟\"\n\nmsgid \"Widescreen\"\nmsgstr \"صفحهٔ پهن\"\n\nmsgid \"Tallscreen\"\nmsgstr \"صفحهٔ بلند\"\n\nmsgid \"Mirror View\"\nmsgstr \"نمای آیینه‌ای\"\n\nmsgid \"Show Grid\"\nmsgstr \"نمایش توری\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"نمایش توری پیکسلی\"\n\nmsgid \"Show Rulers\"\nmsgstr \"نمایش خط‌کش‌ها\"\n\nmsgid \"Show Guides\"\nmsgstr \"نمایش راهنما\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"نمایش راهنمای موشی\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"نمایش تصویرهای بازبرد\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"نمایاندن جلوه‌های لایه‌ای\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"چفتاندن به\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"چفتاندن به مرز توری مستطیلی\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"چفتاندن به کانون توری مستطیلی\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"چفتاندن به راهنما\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"چفتاندن به پرسپیکتیو راهنما\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"نمایش خط زمانی پویانمایی\"\n\nmsgid \"Zen Mode\"\nmsgstr \"حالت آرامش\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"حالت تمام‌صفحه\"\n\nmsgid \"Fill with color:\"\nmsgstr \"پر کردن با رنگ:\"\n\nmsgid \"Open a File\"\nmsgstr \"گشودن یک پرونده\"\n\nmsgid \"Open File(s)\"\nmsgstr \"گشودن پرونده(ها)\"\n\nmsgid \"Import Options\"\nmsgstr \"درون‌برد گزینه‌ها\"\n\nmsgid \"Import as:\"\nmsgstr \"درون‌برد به‌عنوان:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"به‌کاربندی بر همه\"\n\nmsgid \"Recent projects\"\nmsgstr \"پروژه‌های اخیر\"\n\nmsgid \"New project\"\nmsgstr \"پروژهٔ نو\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"اسپرایت‌برگ (پروژهٔ نو)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"اسپرایت‌برگ (لایهٔ نو)\"\n\nmsgid \"New frame\"\nmsgstr \"فریم نو\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"جایگزینی سِل\"\n\nmsgid \"New layer\"\nmsgstr \"لایهٔ نو\"\n\nmsgid \"New reference image\"\nmsgstr \"تصویر بازبرد نو\"\n\nmsgid \"New palette\"\nmsgstr \"تخته‌رنگ نو\"\n\nmsgid \"New brush\"\nmsgstr \"قلم‌موی نو\"\n\nmsgid \"New pattern\"\nmsgstr \"الگوی نو\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"فریم‌های افقی:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"فریم‌های عمودی\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"برش هوشمند\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"آستانه:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"تصویرهایی که هر کدام از پهلوهایشان کوچکتر از این مقدار باشد از آستانه رد خواهند شد.\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"یکپارچه‌سازی فاصله:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"تصویرهایی که از آستانه رد شده‌اند اگر در محدوده باشند در تصویر بزرگتری یکپارچه خواهند شد\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"نوگردانی\"\n\nmsgid \"Start frame:\"\nmsgstr \"فریم آغاز:\"\n\nmsgid \"End frame:\"\nmsgstr \"فریم پایان:\"\n\nmsgid \"At frame:\"\nmsgstr \"در فریم:\"\n\nmsgid \"At layer:\"\nmsgstr \"در لایهٔ:\"\n\nmsgid \"Brush type:\"\nmsgstr \"گونهٔ قلم‌مو:\"\n\nmsgid \"File brush\"\nmsgstr \"قلم‌موی پرونده\"\n\nmsgid \"Project brush\"\nmsgstr \"قلم‌موی پروژه\"\n\nmsgid \"Random brush\"\nmsgstr \"قلم‌موی تصادفی\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"ذخیره‌سازی اسپرایت به‌عنوان .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"برون‌برد اسپرایت به‌عنوان .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"برون‌برد اسپرایت\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"پرونده وجود دارد، بازنویسی شود؟\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"پرونده‌های زیر هم‌اکنون وجود دارند. آیا می‌خواهید آنها را بازنویسی کنید؟\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"مسیر پوشه‌دان معتبر نیست!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"نام پرونده معتبر نیست!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"مسیر پوشه‌دان و نام پرونده معتبر نیستند!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"برون‌برد در جریان است...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"ناتوانی در بار کردن پروندهٔ «%s».\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"ناتوانی در بار کردن پروندهٔ «%s».\\n\"\n\"کد خطا: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"ناتوانی در بار کردن پروندهٔ «%s».\\n\"\n\"این پروندهٔ تخته‌رنگ معتبر نیست.\"\n\nmsgid \"Frame\"\nmsgstr \"فریم\"\n\nmsgid \"Frames:\"\nmsgstr \"فریم‌ها:\"\n\nmsgid \"All Frames\"\nmsgstr \"همهٔ فریم‌ها\"\n\nmsgid \"Spritesheet\"\nmsgstr \"اسپرایت‌برگ\"\n\nmsgid \"Animation\"\nmsgstr \"پویانمایی\"\n\nmsgid \"Preview:\"\nmsgstr \"پیش‌نمایش:\"\n\nmsgid \"Frame:\"\nmsgstr \"فریم:\"\n\nmsgid \"Orientation:\"\nmsgstr \"جهت:\"\n\nmsgid \"Browse\"\nmsgstr \"مرور\"\n\nmsgid \"Resize:\"\nmsgstr \"تغییر اندازه:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"کیفیت:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"لغو برون‌برد\"\n\nmsgid \"Alert!\"\nmsgstr \"هشدار!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"گزینش پوشهٔ کنونی\"\n\nmsgid \"Open a Directory\"\nmsgstr \"گشودن پوشه‌دان\"\n\nmsgid \"Background:\"\nmsgstr \"پس‌زمینه:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"فریم‌های برگزیده\"\n\nmsgid \"Layers:\"\nmsgstr \"لایه‌ها:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"لایه‌های پدیدار\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"لایه‌های برگزیده\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"لایهٔ پیکسل:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"لایهٔ گروه:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"لایهٔ سه‌بعدی:\"\n\nmsgid \"Direction:\"\nmsgstr \"سو:\"\n\nmsgid \"Forward\"\nmsgstr \"پیش‌رو\"\n\nmsgid \"Backwards\"\nmsgstr \"روبه‌پشت\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"پینگ‌پنگ\"\n\nmsgid \"Columns\"\nmsgstr \"ستون‌ها\"\n\nmsgid \"Columns:\"\nmsgstr \"ستون‌ها:\"\n\nmsgid \"Rows\"\nmsgstr \"ردیف‌ها\"\n\nmsgid \"Rows:\"\nmsgstr \"ردیف‌ها:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"برچسب‌ها بر پایهٔ ستون\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"برچسب‌ها بر پایهٔ ردیف\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"برون‌برد ابعاد:\"\n\nmsgid \"Save a File\"\nmsgstr \"ذخیره‌سازی یک پرونده\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"رفتن به پوشهٔ پیشین.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"رفتن به پوشهٔ بعدی.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"رفتن به پوشهٔ والد.\"\n\nmsgid \"Path:\"\nmsgstr \"مسیر:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"نوگردانی پرونده‌ها.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"روشن/خاموش کردن پدیداری پرونه‌های پنهان‌شده.\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"پوشه‌دان‌ها و پرونده‌ها:\"\n\nmsgid \"Create Folder\"\nmsgstr \"ساخت پوشه\"\n\nmsgid \"File:\"\nmsgstr \"پرونده:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"همهٔ پرونده‌ها\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"همهٔ شناخته‌شده‌ها\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"پروژهٔ پیکسلوراما\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"تصویر پی.ان.جی\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"تصویر بی.ام.پی\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"تصویر جِی.پی.ای.جی\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"تصویر اس.وی.جی\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"تصویر تی.جی.اِی\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"تصویر وب‌پی\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"پروژهٔ اِیسپرایت\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"تخته‌رنگ پیکسلوراما\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"تخته‌رنگ گیمپ\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"گزینه‌های پیشرفته\"\n\nmsgid \"Interpolation:\"\nmsgstr \"میان‌یابی:\"\n\nmsgid \"Nearest\"\nmsgstr \"نزدیک‌ترین\"\n\nmsgid \"Bilinear\"\nmsgstr \"دوخطی\"\n\nmsgid \"Cubic\"\nmsgstr \"مکعبی\"\n\nmsgid \"Trilinear\"\nmsgstr \"سه‌خطی\"\n\nmsgid \"Constant\"\nmsgstr \"ثابت\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"فضای رنگ\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"عمومی\"\n\nmsgid \"Startup\"\nmsgstr \"راه‌اندازی\"\n\nmsgid \"Language\"\nmsgstr \"زبان\"\n\nmsgid \"Interface\"\nmsgstr \"میانای کاربری\"\n\nmsgid \"Themes\"\nmsgstr \"زمینه‌ها\"\n\nmsgid \"Canvas\"\nmsgstr \"بوم\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"خط زمانی\"\n\nmsgid \"Selection\"\nmsgstr \"برگزیده‌ها\"\n\nmsgid \"Shortcuts\"\nmsgstr \"میانبر‌ها\"\n\nmsgid \"Backup\"\nmsgstr \"نسخهٔ پشتیبان\"\n\nmsgid \"Performance\"\nmsgstr \"کارایی\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"افزونه‌ها\"\n\nmsgid \"Cursors\"\nmsgstr \"نشانگرها\"\n\nmsgid \"Indicators\"\nmsgstr \"نشانه‌ها\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"برای انجام گرفتن تغییرها پیکسلوراما باید بازراه‌اندازی شود.\"\n\nmsgid \"On\"\nmsgstr \"روشن\"\n\nmsgid \"Restore default value\"\nmsgstr \"بازگردانی ارزش پیش‌فرض\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"بزرگنمایی نرم\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"گذار نرم‌تری را هنگام بزرگنمایی یا کوچکنمایی می‌افزاید\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"بزرگنمایی صحیح\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"حساسیت فشار تبلت:\"\n\nmsgid \"None\"\nmsgstr \"هیچ‌کدام\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"رنگ:\"\n\nmsgid \"Guide color:\"\nmsgstr \"رنگ راهنما:\"\n\nmsgid \"System Language\"\nmsgstr \"زبان دستگاه\"\n\nmsgid \"Display scale:\"\nmsgstr \"مقیاس نمایشگر:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"قلم:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"اندازهٔ قلم:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"نمایش برچسب اعلان‌ها\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"حالت تک‌پنجره\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"تاریک\"\n\nmsgid \"Gray\"\nmsgstr \"خاکستری\"\n\nmsgid \"Blue\"\nmsgstr \"آبی\"\n\nmsgid \"Caramel\"\nmsgstr \"کاراملی\"\n\nmsgid \"Light\"\nmsgstr \"روشن\"\n\nmsgid \"Purple\"\nmsgstr \"بنفش\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"رنگ گلی\"\n\nmsgid \"Theme\"\nmsgstr \"زمینه\"\n\nmsgid \"Buttons\"\nmsgstr \"دکمه‌ها\"\n\nmsgid \"Icon color from:\"\nmsgstr \"رنگ نماد از:\"\n\nmsgid \"Icon color:\"\nmsgstr \"رنگ نماد:\"\n\nmsgid \"Background\"\nmsgstr \"پس‌زمینه\"\n\nmsgid \"Background color from:\"\nmsgstr \"رنگ پس‌زمینه از:\"\n\nmsgid \"Background color:\"\nmsgstr \"رنگ پس‌زمینه:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"گزینه‌های هم‌رسانی میان ابزارهای چپ و راست\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"رنگ ابزار چپ:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"رنگ ابزار راست:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"اندازهٔ دکمهٔ ابزار:\"\n\nmsgid \"Small\"\nmsgstr \"کوچک\"\n\nmsgid \"Big\"\nmsgstr \"بزرگ\"\n\nmsgid \"Only affect selection\"\nmsgstr \"اثرگذاری تنها بر روی برگزیده‌ها\"\n\nmsgid \"Selected cels\"\nmsgstr \"گزینش سل‌ها\"\n\nmsgid \"Current cel\"\nmsgstr \"سل کنونی\"\n\nmsgid \"Current frame\"\nmsgstr \"فریم کنونی\"\n\nmsgid \"All frames\"\nmsgstr \"همهٔ فریم‌ها\"\n\nmsgid \"All projects\"\nmsgstr \"همهٔ پروژه‌ها\"\n\nmsgid \"Invert Colors\"\nmsgstr \"وارون کردن رنگ‌ها\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"اشباع‌زدایی\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"پیراخط\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"سایه برجسته\"\n\nmsgid \"Offset X:\"\nmsgstr \"بازه از مبدا ایکس:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"بازه از مبدا ایگرگ:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"رنگ سایه:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"تاری گاسی\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"گونهٔ تاری:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"مقدار تاری:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"شعاع تاری:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"سوی تاری:\"\n\nmsgid \"Gradient\"\nmsgstr \"گرادیان\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"میان‌یابی\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"پخش برابروار نقطه‌ها\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"تقسیم کردن به پاره‌های برابر\"\n\nmsgid \"Parts:\"\nmsgstr \"پاره‌ها:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"افزودن نقطه به پایان\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"ذخیره‌سازی در پیش‌نشانده‌ها\"\n\nmsgid \"Shape:\"\nmsgstr \"شکل:\"\n\nmsgid \"Linear\"\nmsgstr \"خطی:\"\n\nmsgid \"Radial\"\nmsgstr \"شعاعی\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"تکرار:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"تکرار\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"آینه\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"اندازهٔ گذار:\"\n\nmsgid \"Center:\"\nmsgstr \"مرکز:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"گونه:\"\n\nmsgid \"Angle:\"\nmsgstr \"زاویه:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"میزان کردن فام/اشباع رنگ/ارزش\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"میزان کردن اچ.اس.وی\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"فام:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"اشباع رنگ:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"ارزش:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"میزان کردن درخشندگی/کنتراست\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"درخشندگی:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"کنتراست:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"ارزش قرمز:\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"ارزش سبز:\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"ارزش آبی:\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"رنگِ رنگ‌آمیزه:\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"منحنی‌های رنگ\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"کانال:\"\n\nmsgid \"Red\"\nmsgstr \"قرمز\"\n\nmsgid \"Green\"\nmsgstr \"سبز\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"ارزش\"\n\nmsgid \"Presets\"\nmsgstr \"پیش‌نشانده‌ها\"\n\nmsgid \"Apply\"\nmsgstr \"به‌کاربندی\"\n\nmsgid \"Diagonal\"\nmsgstr \"اُریبی\"\n\nmsgid \"Place inside image\"\nmsgstr \"گذاشتن درون تصویر\"\n\nmsgid \"Thickness:\"\nmsgstr \"کلفتی:\"\n\nmsgid \"Colors:\"\nmsgstr \"رنگ‌ها:\"\n\nmsgid \"Steps:\"\nmsgstr \"گام‌ها:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"تخته‌رنگاندن\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"پیکسل‌سازی\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"دیدن صفحهٔ معرفی\"\n\nmsgid \"Online Docs\"\nmsgstr \"مستندات برخط\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"ردیاب مشکل\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"گشودن پوشهٔ دادهٔ ویراستار\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"دربارهٔ پیکسلوراما\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"پشتیبانی از توسعهٔ پیکسلوراما\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"پیکسلوراما - رویاهایتان را پیکسلی کنید!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"توسعه‌یافته به‌دست اوراما اینترکتیو\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©۲۰۱۹-اکنون توسط اوراما اینترکتیو و مشارکت‌کنندگان\"\n\nmsgid \"Website\"\nmsgstr \"وبگاه\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"کد منبع\"\n\nmsgid \"Donate\"\nmsgstr \"پشتیبانی مالی\"\n\nmsgid \"Developers\"\nmsgstr \"توسعه‌دهندگان\"\n\nmsgid \"Contributors\"\nmsgstr \"مشارکت‌کنندگان\"\n\nmsgid \"Donors\"\nmsgstr \"پشتیبانان مالی\"\n\nmsgid \"Translators\"\nmsgstr \"ترجمه‌گران\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"پروانه‌ها\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"پروانه\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"پروانه‌های گودوت\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"پروانه‌های شخص ثالث\"\n\nmsgid \"English\"\nmsgstr \"انگلیسی\"\n\nmsgid \"Greek\"\nmsgstr \"یونانی\"\n\nmsgid \"French\"\nmsgstr \"فرانسه‌ای\"\n\nmsgid \"German\"\nmsgstr \"آلمانی\"\n\nmsgid \"Polish\"\nmsgstr \"لهستانی\"\n\nmsgid \"Portuguese\"\nmsgstr \"پرتغالی\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"پرتغالی برزیل\"\n\nmsgid \"Russian\"\nmsgstr \"روسی\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"چینی ساده‌شده\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"چینی سنتی\"\n\nmsgid \"Italian\"\nmsgstr \"ایتالیایی\"\n\nmsgid \"Latvian\"\nmsgstr \"لتونیایی\"\n\nmsgid \"Spanish\"\nmsgstr \"اسپانیایی\"\n\nmsgid \"Catalan\"\nmsgstr \"کاتالونیایی\"\n\nmsgid \"Esperanto\"\nmsgstr \"اسپرانتو\"\n\nmsgid \"Indonesian\"\nmsgstr \"اندونزیایی\"\n\nmsgid \"Czech\"\nmsgstr \"چکی\"\n\nmsgid \"Arabic\"\nmsgstr \"عربی\"\n\nmsgid \"Turkish\"\nmsgstr \"ترکی\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"نروژی کتابی\"\n\nmsgid \"Korean\"\nmsgstr \"کره‌ای\"\n\nmsgid \"Hungarian\"\nmsgstr \"مجارستانی\"\n\nmsgid \"Romanian\"\nmsgstr \"رومانیایی\"\n\nmsgid \"Japanese\"\nmsgstr \"ژاپنی\"\n\nmsgid \"Ukrainian\"\nmsgstr \"اوکراینی\"\n\nmsgid \"Danish\"\nmsgstr \"دانمارکی\"\n\nmsgid \"Swedish\"\nmsgstr \"سوئدی\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"صربستانی (سیریلیک\"\n\nmsgid \"Dutch\"\nmsgstr \"هلندی\"\n\nmsgid \"Belarusian\"\nmsgstr \"بلاروسی\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"توسعه‌دهندهٔ ارشد\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"طراح میانای کاربری\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"پدید‌آورنگان\"\n\nmsgid \"Art by: %s\"\nmsgstr \"نگاره از: %s\"\n\nmsgid \"untitled\"\nmsgstr \"بی‌عنوان\"\n\nmsgid \"imported\"\nmsgstr \"درون‌بردشده\"\n\nmsgid \"copy\"\nmsgstr \"روگرفت\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"آیا از بیرون رفتن از پیکسلوراما مطمئنید؟\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"تصویر ذخیره‌سازی‌نشده\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"تغییرهای ذخیره‌نشده دارید. اگر ادامه دهید پیشرفت‌تان از دست خواهد رفت.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"ذخیره‌سازی پیش از خروج؟\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"پروژهٔ %s پیشرفت ذخیره‌نشده دارد. چگونه می‌خواهید ادامه دهید؟\"\n\nmsgid \"Save & Exit\"\nmsgstr \"ذخیره‌سازی و خروج\"\n\nmsgid \"Exit without saving\"\nmsgstr \"خروج بی‌ذخیره‌سازی\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"گزینش مستطیلی\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"گزینش بیضی‌ای\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"گزینش چندضلعی‌ای\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\\n\\n\"\n\"برای اتصال دادن آخرین نقطه به نخستین نقطه جفت‌کلیک کنید\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"گزینش بر پایهٔ رنگ\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"چوب جادویی\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"ابزار آزادگزینی/کمند\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"گزینش با کشیدن\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"جابه‌جایی\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"بزرگنمایی\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"رنگ‌گزین\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\\n\\n\"\n\"رنگی را از پیکسلی در اسپرایت برمی‌گزیند\\n\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"برش دادن\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\\n\\n\"\n\"اندازهٔ بوم را تغییر می‌دهد\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"مداد\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\\n\\n\"\n\"برای خط صاف %s را نگه دارید\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"پاک‌کن\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\\n\\n\"\n\"برای خط صاف %s را نگه دارید\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"سطل رنگ\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"ابزار سایه‌زنی\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"ابزار منحنی\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\\n\\n\"\n\"منحنی بزیه می‌کشد\\n\"\n\"برای افزودن نقطه‌های نو %s/%s را بفشارید\\n\"\n\"برای پایان دادن به منحنی‌کشی جفت‌کلیک کنید\\n\"\n\"برای کنترل کردن انحنا بفشارید و بکشانید\\n\"\n\"برای برچیدن آخرین نقطهٔ افزوده %s را بفشارید\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"ابزار مستطیل\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\\n\\n\"\n\"برای ساخت مستطیل ۱:۱ %s را بفشارید\\n\"\n\"برای مرکز قرار دادن جایگاه کلیک به‌عنوان مبدا شکل %s را بفشارید\\n\"\n\"برای جابه‌جایی مبدا شکل %s را بفشارید\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"ابزار بیضی\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\\n\\n\"\n\"برای ساخت شکل ۱:۱ %s را بفشارید\\n\"\n\"برای مرکز قرار دادن جایگاه کلیک به‌عنوان مبدا شکل %s را بفشارید\\n\"\n\"برای جابه‌جایی مبدا شکل %s را بفشارید\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"نوشتار\\n\\n\"\n\"%s برای چپ‌کلیک\\n\"\n\"%s برای راست‌کلیک\"\n\nmsgid \"Rectangle\"\nmsgstr \"مستطیل\"\n\nmsgid \"Ellipse\"\nmsgstr \"بیضی\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"گزینش رنگ برای ابزار چپ\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"گزینش رنگ برای ابزار راست\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"رنگ‌های چپ و راست را تعویض کنید.\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"رنگ میانگین\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"رنگ‌ها را به وضعیت پیش‌فرض‌شان برگردانید (سیاه برای چپ و سفید برای راست)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"رنگی را از پنجرهٔ برنامه برگزینید.\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"شکل رنگ‌گزین را برگزینید.\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"گزینه‌های رنگ\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"حالت رنگ‌گزین را برگزینید.\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"رنگ‌های اخیر\"\n\nmsgid \"Left tool\"\nmsgstr \"ابزار چپ\"\n\nmsgid \"Right tool\"\nmsgstr \"ابزار راست\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"نشانهٔ پیکسل چپ\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"نمایش نشانهٔ پیکسل چپ موس یا قلم‌مو روی بوم هنگام کشیدن\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"نشانهٔ پیکسل راست\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"نمایش نشانهٔ پیکسل راست موس یا قلم‌مو روی بوم هنگام کشیدن\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"نمایش نماد ابزار چپ\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"نماد ابزار برگزیدهٔ چپ را کنار نشانگر روی بوم نمایش می‌دهد\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"نمایش نماد ابزار راست\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"نماد ابزار برگزیدهٔ راست را کنار نشانگر روی بوم نمایش می‌دهد\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"به‌کارگیری نشانگر موس بومی\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"راهنماها\"\n\nmsgid \"Guides color:\"\nmsgstr \"رنگ راهنماها:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"چفت\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"فاصلهٔ چفت:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"این فاصله‌ای میان پیکسل‌های صفحه است که راهنما و چفت توری فعال می‌شوند.\"\n\nmsgid \"Grid\"\nmsgstr \"توری\"\n\nmsgid \"Grid type:\"\nmsgstr \"گونهٔ توری:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"گونهٔ توری را میان مستطیلی، ایزومتری یا هردو می‌نشاند\"\n\nmsgid \"Rectangular\"\nmsgstr \"مستطیلی\"\n\nmsgid \"Isometric\"\nmsgstr \"ایزومتری\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"شش‌ضلعی‌وار\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"شش‌ضلعی‌وار (سرتیز)\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"شش‌ضلعی‌وار (سرتخت)\"\n\nmsgid \"All\"\nmsgstr \"همه\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"توری‌های پدیدار:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"توری در حال ویرایش:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"اندازهٔ توری:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"بازه از مبدای توری:\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"بازه از مبدای توری را نسبت به مبدای بوم (گوشهٔ چپ بالای تصویر) می‌نشاند\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"کشیدن در حالت کاشی:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"اگر ازکارافتاده باشد، توری تنها روی تصویر اصلی کشیده خواهد شد\"\n\nmsgid \"Grid color:\"\nmsgstr \"رنگ توری:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"رنگی از توری\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"توری پیکسلی\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"نمایش در کوچکنمایی:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"کمترین میزان کوچکنمایی‌ای که توری پیکسلی در آن نمایش داده خواهد شد را می‌نشاند\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"رنگ توری پیکسلی\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"ترانمایی\"\n\nmsgid \"Checker size:\"\nmsgstr \"اندازهٔ شطرنجی:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"اندازهٔ پس‌زمینهٔ شطرنجی ترانما\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"رنگ ۱ شطرنجی:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"نخستین رنگ پس‌زمینهٔ شطرنجی ترانما\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"رنگ ۲ شطرنجی:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"دومین رنگ پس‌زمینهٔ شطرنجی ترانما\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"دنبال کردن جنبش بوم\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"پس‌زمینهٔ شطرنجی جنبش بوم را دنبال می‌کند\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"رنگ گذشتهٔ پوست‌پیازی:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"رنگ آیندهٔ‌ پوست‌پیازی:\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"افزودن افزونه\"\n\nmsgid \"Enable\"\nmsgstr \"به‌کاراندازی\"\n\nmsgid \"Disable\"\nmsgstr \"ازکاراندازی\"\n\nmsgid \"Uninstall\"\nmsgstr \"حذف نصب\"\n\nmsgid \"Open Folder\"\nmsgstr \"گشودن پوشه\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"کاوش آنلاین\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"کاوشگر افزونه\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"جستجو...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"برچسب‌ها:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"مشکل افزونه‌ای را گزارش دهید\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"بارگیری\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"پیوندهای مخزن:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"خودکار\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/fi_FI.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: fi\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Finnish\\n\"\n\"Language: fi_FI\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"Peruuta\"\n\nmsgid \"Open\"\nmsgstr \"Avaa\"\n\nmsgid \"Save\"\nmsgstr \"Tallenna\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Vahvista...\"\n\nmsgid \"File Name:\"\nmsgstr \"Tiedoston nimi:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Projektin nimi:\"\n\nmsgid \"Image Size\"\nmsgstr \"Kuvan koko\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Piirtoalueen Koko\"\n\nmsgid \"Frame Size\"\nmsgstr \"Kehyksen koko\"\n\nmsgid \"Size:\"\nmsgstr \"Koko:\"\n\nmsgid \"Width:\"\nmsgstr \"Leveys:\"\n\nmsgid \"Height:\"\nmsgstr \"Korkeus:\"\n\nmsgid \"Center\"\nmsgstr \"Keskitetty\"\n\nmsgid \"File\"\nmsgstr \"Tiedosto\"\n\nmsgid \"Edit\"\nmsgstr \"Muokkaa\"\n\nmsgid \"Select\"\nmsgstr \"Valitse\"\n\nmsgid \"View\"\nmsgstr \"Näytä\"\n\nmsgid \"Window\"\nmsgstr \"Ikkuna\"\n\nmsgid \"Image\"\nmsgstr \"Kuva\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"Tehosteet\"\n\nmsgid \"Help\"\nmsgstr \"Ohje\"\n\nmsgid \"New\"\nmsgstr \"Uusi\"\n\nmsgid \"New...\"\nmsgstr \"Uusi...\"\n\nmsgid \"Open...\"\nmsgstr \"Avaa...\"\n\nmsgid \"Save...\"\nmsgstr \"Tallenna...\"\n\nmsgid \"Save as...\"\nmsgstr \"Tallenna nimellä...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"Sisällytä yhdistetyt kuvat\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"Tuo\"\n\nmsgid \"Export\"\nmsgstr \"Vie\"\n\nmsgid \"Overwrite\"\nmsgstr \"Ylikirjoita\"\n\nmsgid \"Export...\"\nmsgstr \"Vie...\"\n\nmsgid \"Export as...\"\nmsgstr \"Vie nimellä...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Vie PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Vie PNG nimellä...\"\n\nmsgid \"Quit\"\nmsgstr \"Poistu\"\n\nmsgid \"Undo\"\nmsgstr \"Kumoa\"\n\nmsgid \"Redo\"\nmsgstr \"Palauta\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"Kopioi\"\n\nmsgid \"Cut\"\nmsgstr \"Leikkaa\"\n\nmsgid \"Paste\"\nmsgstr \"Liitä\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Liitä paikalleen\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"Poista\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Poista pysyvästi\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Siirrä roskakoriin\"\n\nmsgid \"New Brush\"\nmsgstr \"Uusi Sivellin\"\n\nmsgid \"Scale Image\"\nmsgstr \"Skaalaa Kuva\"\n\nmsgid \"Pixels\"\nmsgstr \"Pikselit\"\n\nmsgid \"Percentage\"\nmsgstr \"Prosentti\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Pystynäyttö\"\n\nmsgid \"Mirror View\"\nmsgstr \"Peilinäkymä\"\n\nmsgid \"Show Grid\"\nmsgstr \"Näytä ruudukko\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Näytä Pikseliruudukko\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Näytä Viivaimet\"\n\nmsgid \"Show Guides\"\nmsgstr \"Näytä Ohjeet\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"Näytä Hiiren Ohjeet\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"Näytä Tason Tehosteet\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"Kiinnitä Kohteeseen\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"Kiinnitä suorakulmainen ruudukon raja\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"Kiinnitä suorakulmaisen ruudukon keskustaan\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"Tarraa ohjeisiin\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/fil_PH.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n > 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: fil\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Filipino\\n\"\n\"Language: fil_PH\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/fr_FR.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n > 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: fr\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: French\\n\"\n\"Language: fr_FR\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"Annuler\"\n\nmsgid \"Open\"\nmsgstr \"Ouvrir\"\n\nmsgid \"Save\"\nmsgstr \"Sauvegarder\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Veuillez confirmer...\"\n\nmsgid \"File Name:\"\nmsgstr \"Nom du fichier :\"\n\nmsgid \"Project Name:\"\nmsgstr \"Nom du projet :\"\n\nmsgid \"Image Size\"\nmsgstr \"Taille de l'image\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Taille du Canevas\"\n\nmsgid \"Frame Size\"\nmsgstr \"Taille de la frame\"\n\nmsgid \"Size:\"\nmsgstr \"Taille :\"\n\nmsgid \"Width:\"\nmsgstr \"Largeur :\"\n\nmsgid \"Height:\"\nmsgstr \"Hauteur :\"\n\nmsgid \"Center\"\nmsgstr \"Centrer\"\n\nmsgid \"File\"\nmsgstr \"Fichier\"\n\nmsgid \"Edit\"\nmsgstr \"Édition\"\n\nmsgid \"Select\"\nmsgstr \"Sélectionner\"\n\nmsgid \"View\"\nmsgstr \"Affichage\"\n\nmsgid \"Window\"\nmsgstr \"Fenêtre\"\n\nmsgid \"Image\"\nmsgstr \"Image\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"Projet\"\n\nmsgid \"Effects\"\nmsgstr \"Effets\"\n\nmsgid \"Help\"\nmsgstr \"Aide\"\n\nmsgid \"New\"\nmsgstr \"Nouveau\"\n\nmsgid \"New...\"\nmsgstr \"Nouveau...\"\n\nmsgid \"Open...\"\nmsgstr \"Ouvrir...\"\n\nmsgid \"Save...\"\nmsgstr \"Enregistrer...\"\n\nmsgid \"Save as...\"\nmsgstr \"Enregistrer sous...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"Inclure les images fusionnées\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"Si activée, les rendus finals mélangés sont aussi stockés dans le pxo, pour chaque Frame.\\n\"\n\"Cela rend le fichier pxo plus volumineux et est utile pour les importations par un logiciel tiers ou les exportations en ligne de commande. Le chargement de fichiers pxo dans Pixelorama ne nécessite pas que cette option soit activée.\"\n\nmsgid \"Import\"\nmsgstr \"Importer\"\n\nmsgid \"Export\"\nmsgstr \"Exporter\"\n\nmsgid \"Overwrite\"\nmsgstr \"Écraser\"\n\nmsgid \"Export...\"\nmsgstr \"Exporter...\"\n\nmsgid \"Export as...\"\nmsgstr \"Exporter en tant que...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Exporter au format PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Exporter une image PNG comme...\"\n\nmsgid \"Quit\"\nmsgstr \"Quitter\"\n\nmsgid \"Undo\"\nmsgstr \"Annuler\"\n\nmsgid \"Redo\"\nmsgstr \"Rétablir\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"Copier\"\n\nmsgid \"Cut\"\nmsgstr \"Couper\"\n\nmsgid \"Paste\"\nmsgstr \"Coller\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Coller en place\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"Supprimer\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Supprimer définitivement\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Déplacer vers la corbeille\"\n\nmsgid \"New Brush\"\nmsgstr \"Nouveau pinceau\"\n\nmsgid \"Scale Image\"\nmsgstr \"Redimensionner l'image\"\n\nmsgid \"Pixels\"\nmsgstr \"Pixels\"\n\nmsgid \"Percentage\"\nmsgstr \"Pourcentage\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"Recadrer selon la Sélection\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"Recadrer selon le Contenu\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Redimensionner le canevas\"\n\nmsgid \"Offset Image\"\nmsgstr \"Décalage de l'image\"\n\nmsgid \"Offset:\"\nmsgstr \"Décalage :\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"Envelopper :\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"Centrer les Frames\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Pivoter l'image\"\n\nmsgid \"Pivot x:\"\nmsgstr \"Pivot x:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"Pivot y:\"\n\nmsgid \"Smear options:\"\nmsgstr \"Options Smear:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Tolérance :\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Angle initial :\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"Effacer\"\n\nmsgid \"Invert\"\nmsgstr \"Inverser\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"Agrandir\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"Agrandir la sélection\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"Rétrécir\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"Rétrécir la sélection\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"Diamant\"\n\nmsgid \"Circle\"\nmsgstr \"Cercle\"\n\nmsgid \"Square\"\nmsgstr \"Carré\"\n\nmsgid \"Grayscale View\"\nmsgstr \"Affichage en niveaux de gris\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Retourner l'Image\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Miroir horizontal\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Miroir vertical\"\n\nmsgid \"Preferences\"\nmsgstr \"Préférences\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"Centrer le Canevas\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Mode tuile\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"Mode Tuiles Décalées\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Réinitialiser\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"Utiliser la Frame actuelle\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Réinitialiser Masque\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Opacité de la fenêtre\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"L'opacité des fenêtres ne fonctionne pas en mode plein écran.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Disposition des sections\"\n\nmsgid \"Panels\"\nmsgstr \"Panneaux\"\n\nmsgid \"Layouts\"\nmsgstr \"Dispositions\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Panneaux Amovibles\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Gérer les dispositions\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Aperçu\"\n\nmsgid \"Add\"\nmsgstr \"Ajouter\"\n\nmsgid \"Add Layout\"\nmsgstr \"Ajouter Disposition\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"Copier à partir de\"\n\nmsgid \"Rename\"\nmsgstr \"Renommer\"\n\nmsgid \"Rename Layout\"\nmsgstr \"Renommer la disposition\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"Disposition actuelle\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Êtes-vous sûr de vouloir supprimer cette disposition ?\"\n\nmsgid \"Widescreen\"\nmsgstr \"En largeur\"\n\nmsgid \"Tallscreen\"\nmsgstr \"En hauteur\"\n\nmsgid \"Mirror View\"\nmsgstr \"Vue Miroir\"\n\nmsgid \"Show Grid\"\nmsgstr \"Afficher la grille\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Afficher la grille des pixels\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Afficher les règles\"\n\nmsgid \"Show Guides\"\nmsgstr \"Afficher les guides\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"Afficher les Guides de Souris\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"Afficher les Effets de Calque\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"Aimanter à\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"Aimanter aux Bords de la Grille Rectangulaire\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"Aimanter au Centre de la Grille Rectangulaire\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"Aimanter aux Guides\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"Aimanter aux Guides de Perspective\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Afficher la Timeline d'Animation\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Mode Zen\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Mode plein écran\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Remplir avec la couleur :\"\n\nmsgid \"Open a File\"\nmsgstr \"Ouvrir un fichier\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Ouvrir des fichiers\"\n\nmsgid \"Import Options\"\nmsgstr \"Options d'import\"\n\nmsgid \"Import as:\"\nmsgstr \"Importer en tant que :\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Appliquer à tous\"\n\nmsgid \"Recent projects\"\nmsgstr \"Projets récents\"\n\nmsgid \"New project\"\nmsgstr \"Nouveau projet\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"Spritesheet (nouveau projet)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Spritesheet (nouveau calque)\"\n\nmsgid \"New frame\"\nmsgstr \"Nouvelle frame\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"Remplacer le Cellulo\"\n\nmsgid \"New layer\"\nmsgstr \"Nouveau calque\"\n\nmsgid \"New reference image\"\nmsgstr \"Nouvelle image de référence\"\n\nmsgid \"New palette\"\nmsgstr \"Nouvelle palette\"\n\nmsgid \"New brush\"\nmsgstr \"Nouveau pinceau\"\n\nmsgid \"New pattern\"\nmsgstr \"Nouveau motif\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Frames horizontales :\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Frames verticales :\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"Découpage intelligent\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"Seuil :\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"Distance de fusion :\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"Actualiser\"\n\nmsgid \"Start frame:\"\nmsgstr \"Frame de début:\"\n\nmsgid \"End frame:\"\nmsgstr \"Frame de fin :\"\n\nmsgid \"At frame:\"\nmsgstr \"À la frame:\"\n\nmsgid \"At layer:\"\nmsgstr \"À la couche:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Type de pinceau :\"\n\nmsgid \"File brush\"\nmsgstr \"Fichier du Pinceau\"\n\nmsgid \"Project brush\"\nmsgstr \"Pinceau du projet\"\n\nmsgid \"Random brush\"\nmsgstr \"Pinceau aléatoire\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Enregistrer le sprite au format .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Exporter le Sprite en .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Exporter le sprite\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Le fichier existe déjà, voulez-vous le remplacer ?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"Les fichiers suivants existent déjà. Souhaitez-vous les remplacer ?\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"Chemin du répertoire invalide !\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"Nom de fichier invalide !\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"Chemin du répertoire et nom du fichier invalides !\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Export en cours...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"Impossible de charger le fichier '%s'.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Impossible de charger le fichier '%s'.\\n\"\n\"Code d'erreur: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"Impossible de charger le fichier '%s'.\\n\"\n\"Ce n'est pas un fichier de palette valide.\"\n\nmsgid \"Frame\"\nmsgstr \"Frame\"\n\nmsgid \"Frames:\"\nmsgstr \"Frames :\"\n\nmsgid \"All Frames\"\nmsgstr \"Toutes les frames\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Spritesheet\"\n\nmsgid \"Animation\"\nmsgstr \"Animation\"\n\nmsgid \"Preview:\"\nmsgstr \"Aperçu :\"\n\nmsgid \"Frame:\"\nmsgstr \"Frame :\"\n\nmsgid \"Orientation:\"\nmsgstr \"Orientation :\"\n\nmsgid \"Browse\"\nmsgstr \"Parcourir\"\n\nmsgid \"Resize:\"\nmsgstr \"Redimensionner :\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"Qualité :\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Annuler l'exportation\"\n\nmsgid \"Alert!\"\nmsgstr \"Alerte !\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Sélectionner le dossier actuel\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Ouvrir un répertoire\"\n\nmsgid \"Background:\"\nmsgstr \"Arrière-plan :\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"Frames sélectionnées\"\n\nmsgid \"Layers:\"\nmsgstr \"Calques :\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Calques visibles\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"Calques sélectionnés\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"Calque de pixel:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"Calque de Groupe:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"Calque 3D:\"\n\nmsgid \"Direction:\"\nmsgstr \"Direction :\"\n\nmsgid \"Forward\"\nmsgstr \"En avant\"\n\nmsgid \"Backwards\"\nmsgstr \"En Arrière\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Ping-Pong\"\n\nmsgid \"Columns\"\nmsgstr \"Colonnes\"\n\nmsgid \"Columns:\"\nmsgstr \"Colonnes :\"\n\nmsgid \"Rows\"\nmsgstr \"Lignes\"\n\nmsgid \"Rows:\"\nmsgstr \"Lignes :\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"Tags par colonne\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"Tags par ligne\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"Dimensions d'export :\"\n\nmsgid \"Save a File\"\nmsgstr \"Enregistrer un fichier\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"Aller au dossier précédent.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"Aller au dossier suivant.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"Aller au dossier parent.\"\n\nmsgid \"Path:\"\nmsgstr \"Chemin :\"\n\nmsgid \"Refresh files.\"\nmsgstr \"Rafraîchir les fichiers.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"Activer/désactiver la visibilité des fichiers cachés.\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Répertoires et fichiers :\"\n\nmsgid \"Create Folder\"\nmsgstr \"Créer un Dossier\"\n\nmsgid \"File:\"\nmsgstr \"Fichier :\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"Tous les fichiers\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"Projet Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"Image PNG\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"Image BMP\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"Image JPEG\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"Image SVG\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"Image TGA\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"Image WebP\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"Palette Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"Palette GIMP\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"Options avancées\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolation :\"\n\nmsgid \"Nearest\"\nmsgstr \"Le plus proche\"\n\nmsgid \"Bilinear\"\nmsgstr \"Bilinéaire\"\n\nmsgid \"Cubic\"\nmsgstr \"Cubique\"\n\nmsgid \"Trilinear\"\nmsgstr \"Trilinéaire\"\n\nmsgid \"Constant\"\nmsgstr \"Constant\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"Général\"\n\nmsgid \"Startup\"\nmsgstr \"Démarrage\"\n\nmsgid \"Language\"\nmsgstr \"Langue\"\n\nmsgid \"Interface\"\nmsgstr \"Interface\"\n\nmsgid \"Themes\"\nmsgstr \"Thèmes\"\n\nmsgid \"Canvas\"\nmsgstr \"Canevas\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"Timeline\"\n\nmsgid \"Selection\"\nmsgstr \"Sélection\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Raccourcis\"\n\nmsgid \"Backup\"\nmsgstr \"Sauvegarde\"\n\nmsgid \"Performance\"\nmsgstr \"Performance\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"Pilotes\"\n\nmsgid \"Extensions\"\nmsgstr \"Extensions\"\n\nmsgid \"Cursors\"\nmsgstr \"Curseurs\"\n\nmsgid \"Indicators\"\nmsgstr \"Indicateurs\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"Pixelorama doit être redémarré pour que les modifications prennent effet.\"\n\nmsgid \"On\"\nmsgstr \"Activé\"\n\nmsgid \"Restore default value\"\nmsgstr \"Restaurer la valeur par défaut\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Zoom fluide\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Ajoute une transition plus douce lors d'un zoom avant ou arrière\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"Zoom entier\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"Restreint la valeur à un multiple entier de 100%\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Sensibilité à la pression de la tablette :\"\n\nmsgid \"None\"\nmsgstr \"Aucune\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Affecter l'Alpha du pinceau\"\n\nmsgid \"Color:\"\nmsgstr \"Couleur :\"\n\nmsgid \"Guide color:\"\nmsgstr \"Couleur du guide :\"\n\nmsgid \"System Language\"\nmsgstr \"Langue système\"\n\nmsgid \"Display scale:\"\nmsgstr \"Taille d'Affichage:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"Police:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"Taille de police :\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Assombrir l'arrière-plan derrière une boite de dialogue\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"Utiliser les boîtes de dialogue de fichier natives\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"Lorsque ce paramètre est activé, les boîtes de dialogue de fichier natives au système d'exploitation seront utilisées au lieu de celles personnalisés de Pixelorama.\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"Mode fenêtre unique\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"Lorsque ce paramètre est activé, les sous-fenêtres de Pixelorama seront intégrées dans la fenêtre principale, sinon chaque boîte de dialogue sera sa propre fenêtre.\"\n\nmsgid \"Dark\"\nmsgstr \"Sombre\"\n\nmsgid \"Gray\"\nmsgstr \"Gris\"\n\nmsgid \"Blue\"\nmsgstr \"Bleu\"\n\nmsgid \"Caramel\"\nmsgstr \"Caramel\"\n\nmsgid \"Light\"\nmsgstr \"Clair\"\n\nmsgid \"Purple\"\nmsgstr \"Violet\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"Rose\"\n\nmsgid \"Theme\"\nmsgstr \"Thème\"\n\nmsgid \"Buttons\"\nmsgstr \"Boutons\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Couleur de l'icône depuis:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Couleur de l'icône:\"\n\nmsgid \"Background\"\nmsgstr \"Arrière-plan\"\n\nmsgid \"Background color from:\"\nmsgstr \"Couleur d'arrière-plan à partir de :\"\n\nmsgid \"Background color:\"\nmsgstr \"Couleur d'arrière-plan :\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"Couleur de l'outil gauche:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"Couleur de l’outil droit:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Taille des outils:\"\n\nmsgid \"Small\"\nmsgstr \"Petit\"\n\nmsgid \"Big\"\nmsgstr \"Grand\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Affecter uniquement la sélection\"\n\nmsgid \"Selected cels\"\nmsgstr \"Cellulo sélectionné\"\n\nmsgid \"Current cel\"\nmsgstr \"Cellulo actuel\"\n\nmsgid \"Current frame\"\nmsgstr \"Frame actuelle\"\n\nmsgid \"All frames\"\nmsgstr \"Toutes les frames\"\n\nmsgid \"All projects\"\nmsgstr \"Tous les projets\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Inverser les couleurs\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Modifier le Canal Rouge\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Modifier le Canal Vert\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Modifier le Canal Bleu\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Modifier le Canal Alpha\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Désaturation\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Contour\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Ombre portée\"\n\nmsgid \"Offset X:\"\nmsgstr \"Décalage X :\"\n\nmsgid \"Offset Y:\"\nmsgstr \"Décalage Y :\"\n\nmsgid \"Shadow color:\"\nmsgstr \"Couleur d'ombre :\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"Flou gaussien\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"Type de flou :\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"Taux de flou :\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"Rayon du flou :\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"Direction du flou :\"\n\nmsgid \"Gradient\"\nmsgstr \"Dégradé\"\n\nmsgid \"Gradient Map\"\nmsgstr \"Carte de dégradés\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"Diviser en parties égales\"\n\nmsgid \"Parts:\"\nmsgstr \"Parties :\"\n\nmsgid \"Add point at the end\"\nmsgstr \"Ajouter les points en fin\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"Si cette option est activée, le dernier point est ajouté à la fin du dégradé.\\n\"\n\"Désactivez-la si vous souhaitez convertir le dégradé pour avoir une interpolation constante, afin que la dernière couleur soit prise en compte.\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"Forme :\"\n\nmsgid \"Linear\"\nmsgstr \"Linéaire\"\n\nmsgid \"Radial\"\nmsgstr \"Radial\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"Répéter :\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"Répéter \"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"Miroir\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"Tronquer\"\n\nmsgid \"Transition size:\"\nmsgstr \"Taille de transition :\"\n\nmsgid \"Center:\"\nmsgstr \"Centre :\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"Motif de Tramage:\"\n\nmsgid \"Type:\"\nmsgstr \"Type:\"\n\nmsgid \"Angle:\"\nmsgstr \"Angle :\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Ajuster la Teinte/Saturation/Valeur\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"Ajuster TSV\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Teinte :\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Saturation :\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Valeur :\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"Ajuster la luminosité / le contraste\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"Luminosité :\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"Contraste :\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"Valeur rouge :\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"Valeur verte :\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"Valeur bleue :\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"Couleur de teinte :\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"Facteur d'effet de teinte :\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"Rouge\"\n\nmsgid \"Green\"\nmsgstr \"Vert\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"Appliquer\"\n\nmsgid \"Diagonal\"\nmsgstr \"Diagonale\"\n\nmsgid \"Place inside image\"\nmsgstr \"Placer à l'intérieur de l'image\"\n\nmsgid \"Thickness:\"\nmsgstr \"Épaisseur:\"\n\nmsgid \"Colors:\"\nmsgstr \"Couleurs:\"\n\nmsgid \"Steps:\"\nmsgstr \"Étapes:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"Pixeliser\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"Postériser\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"Niveaux de postérisation:\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"Densité du Tramage:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Voir l'écran d'accueil\"\n\nmsgid \"Online Docs\"\nmsgstr \"Documentation en ligne\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Suivi des problèmes\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"Ouvrir le dossier des données de l'éditeur\"\n\nmsgid \"Changelog\"\nmsgstr \"Journal des modifications\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"À propos de Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"Soutenir le développement de Pixelorama\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - Pixélisez vos rêves !\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Développé par Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-présent par Orama Interactive et contributeurs\"\n\nmsgid \"Website\"\nmsgstr \"Site Web\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"Code source\"\n\nmsgid \"Donate\"\nmsgstr \"Faire un don\"\n\nmsgid \"Developers\"\nmsgstr \"Développeurs\"\n\nmsgid \"Contributors\"\nmsgstr \"Contributeurs\"\n\nmsgid \"Donors\"\nmsgstr \"Donateurs\"\n\nmsgid \"Translators\"\nmsgstr \"Traducteurs\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Licences\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"Anglais\"\n\nmsgid \"Greek\"\nmsgstr \"Grec\"\n\nmsgid \"French\"\nmsgstr \"Français\"\n\nmsgid \"German\"\nmsgstr \"Allemand\"\n\nmsgid \"Polish\"\nmsgstr \"Polonais\"\n\nmsgid \"Portuguese\"\nmsgstr \"Portugais\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Portugais du Brésil\"\n\nmsgid \"Russian\"\nmsgstr \"Russe\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Chinois simplifié\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Chinois traditionnel\"\n\nmsgid \"Italian\"\nmsgstr \"Italien\"\n\nmsgid \"Latvian\"\nmsgstr \"Letton\"\n\nmsgid \"Spanish\"\nmsgstr \"Espagnol\"\n\nmsgid \"Catalan\"\nmsgstr \"Catalan\"\n\nmsgid \"Esperanto\"\nmsgstr \"Esperanto\"\n\nmsgid \"Indonesian\"\nmsgstr \"Indonésien\"\n\nmsgid \"Czech\"\nmsgstr \"Tchèque\"\n\nmsgid \"Arabic\"\nmsgstr \"Arabe\"\n\nmsgid \"Turkish\"\nmsgstr \"Turc\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Norvégien Bokmål\"\n\nmsgid \"Korean\"\nmsgstr \"Coréen\"\n\nmsgid \"Hungarian\"\nmsgstr \"Hongrois\"\n\nmsgid \"Romanian\"\nmsgstr \"Roumain\"\n\nmsgid \"Japanese\"\nmsgstr \"Japonais\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Ukrainien\"\n\nmsgid \"Danish\"\nmsgstr \"Danois\"\n\nmsgid \"Swedish\"\nmsgstr \"Suédois\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Serbe (Cyrillique)\"\n\nmsgid \"Dutch\"\nmsgstr \"Néerlandais\"\n\nmsgid \"Belarusian\"\nmsgstr \"Biélorusse\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"Développeur Principal\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"Designer de l'interface\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"Auteurs\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Auteur : %s\"\n\nmsgid \"untitled\"\nmsgstr \"sans titre\"\n\nmsgid \"imported\"\nmsgstr \"importé\"\n\nmsgid \"copy\"\nmsgstr \"copier\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Voulez-vous vraiment quitter Pixelorama ?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Image non sauvegardée\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Vous avez des modifications non enregistrées. Si vous continuez, les changements que vous avez réalisés seront perdus.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Enregistrer avant de quitter?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"Le projet %s a des progrès non enregistrés. Comment voulez-vous procéder ?\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Enregistrer et quitter\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Quitter sans enregistrer\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Selection rectangulaire\\n\"\n\"%s pour le clic gauche\\n\"\n\"%s pour le clic droit\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Sélection elliptique\\n\\n\"\n\"%s pour le clic gauche\\n\"\n\"%s pour le clic droit\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Sélection polygonale\\n\\n\"\n\"%s pour le bouton gauche de la souris\\n\"\n\"%s pour le bouton droit de la souris\\n\\n\"\n\"Double-cliquez pour relier le dernier point au point de départ\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Sélectionner par couleur\\n\\n\"\n\"%s pour le clic gauche\\n\"\n\"%s pour le clic droit\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Baguette magique\\n\\n\"\n\"%s pour le clic gauche\\n\"\n\"%s pour le clic droit\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Lasso / Outil de sélection à main levée\\n\\n\"\n\"%s pour le clic gauche\\n\"\n\"%s pour le clic droit\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Déplacer\\n\\n\"\n\"%s pour le clic gauche\\n\"\n\"%s pour le clic droit\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Zoom\\n\\n\"\n\"%s pour le bouton de souris gauche\\n\"\n\"%s pour le bouton de souris droit\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Déplacer\\n\\n\"\n\"%s pour le bouton gauche de la souris\\n\"\n\"%s pour le bouton droit de la souris\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"Pipette\\n\\n\"\n\"%s pour le bouton gauche de la souris\\n\"\n\"%s pour le bouton droit de la souris\\n\\n\"\n\"Sélectionnez une couleur à partir d'un pixel du sprite\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Crayon\\n\\n\"\n\"%s pour le bouton gauche de la souris\\n\"\n\"%s pour le bouton droit de la souris\\n\\n\"\n\"Maintenez %s. appuyée pour dessiner une ligne\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Gomme\\n\\n\"\n\"%s pour le bouton gauche de la souris\\n\"\n\"%s pour le bouton droit de la souris\\n\\n\"\n\"Maintenez %s. appuyée pour dessiner une ligne\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Seau de remplissage\\n\\n\"\n\"%s pour le bouton gauche de la souris\\n\"\n\"%s pour le bouton droit de la souris\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Outil d'ombrage\\n\\n\"\n\"%s pour le clic gauche\\n\"\n\"%s pour le clic droit\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Outil de ligne\\n\\n\"\n\"%s pour le clic gauche\\n\"\n\"%s pour le clic droit\\n\\n\"\n\"Maintenir %s pour contraindre l'angle du trait\\n\"\n\"Maintenir %s pour centrer le trait sur l'origine du clic\\n\"\n\"Maintenir %s pour déplacer le début du trait\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Outil rectangle\\n\\n\"\n\"%s pour le clic gauche\\n\"\n\"%s pour le clic droit\\n\\n\"\n\"Maintenir %s pour contraindre le ratio à 1:1\\n\"\n\"Maintenir %s pour centrer la forme sur l'origine du clic\\n\"\n\"Maintenir %s pour déplacer la forme\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Outil ellipse\\n\\n\"\n\"%s pour le clic gauche\\n\"\n\"%s pour le clic droit\\n\\n\"\n\"Maintenir %s pour contraindre le ratio à 1:1\\n\"\n\"Maintenir %s pour centrer la forme sur l'origine du clic\\n\"\n\"Maintenir %s pour déplacer la forme\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Texte\\n\\n\"\n\"%s pour le bouton gauche de la souris\\n\"\n\"%s pour le bouton droit de la souris\"\n\nmsgid \"Rectangle\"\nmsgstr \"Rectangle\"\n\nmsgid \"Ellipse\"\nmsgstr \"Ellipse\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Choisissez une couleur pour l'outil gauche\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Choisissez une couleur pour l'outil droit\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"Inverser les couleurs de gauche et droite.\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"Couleur moyenne :\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Réinitialise les couleurs à leur état initial (noir pour l'outil gauche, blanc pour l'outil droit)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"Entrer le code hexadécimal (\\\"#ff0000\\\") ou le nom de la couleur (\\\"rouge\\\").\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"Sélectionner une forme de Pipette.\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"Options de couleur\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"Sélectionnez un mode de pipette.\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"Couleurs récentes\"\n\nmsgid \"Left tool\"\nmsgstr \"Outil gauche\"\n\nmsgid \"Right tool\"\nmsgstr \"Outil droit\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Indicateur de pixel gauche\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Affiche un indicateur de pixel ou de brosse pour l'outil gauche lorsque vous dessinez\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Indicateur de pixel droit\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Affiche un indicateur de pixel ou de brosse pour l'outil droit lorsque vous dessinez\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Afficher l'icône de l'outil de gauche\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Affiche une icône de l'outil de gauche sélectionné à côté du curseur sur le canevas\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Afficher l'icône de l'outil de droite\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Affiche une icône de l'outil de droite sélectionné à côté du curseur sur le canevas\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"Utiliser des curseurs de souris natifs\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"Utiliser le curseur croisé pour la toile\"\n\nmsgid \"Guides\"\nmsgstr \"Guides\"\n\nmsgid \"Guides color:\"\nmsgstr \"Couleur des guides:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Une couleur des guides de règle affichée sur le canevas\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"Aimantation\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"Distance d'Aimantation:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"C'est la distance en pixels (d'écran) d'activation de l'effet d'aimantation des guides et des grilles.\"\n\nmsgid \"Grid\"\nmsgstr \"Grille\"\n\nmsgid \"Grid type:\"\nmsgstr \"Type de grille :\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Définit le type de grille entre rectangulaire, isométrique ou les deux\"\n\nmsgid \"Rectangular\"\nmsgstr \"Rectangulaire\"\n\nmsgid \"Isometric\"\nmsgstr \"Isométrique\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"Tous\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"Décalage de la grille :\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"Définit le décalage depuis l'origine du canevas (en haut à gauche de l'image)\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"Afficher par dessus le mode tuile:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"Si désactivé, la grille ne sera affichée que au dessus de l'image originale\"\n\nmsgid \"Grid color:\"\nmsgstr \"Couleur de la grille:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"Une couleur de la grille\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Grille des pixels\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Afficher au zoom :\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"Définit le zoom minimal à partir duquel la grille de pixels sera affichée\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Couleur de la grille de pixels :\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"Une couleur de la grille de pixels\"\n\nmsgid \"Transparency\"\nmsgstr \"Transparence\"\n\nmsgid \"Checker size:\"\nmsgstr \"Taille du damier:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Taille du fond en damier transparent\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Couleur du damier 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"Première couleur du fond en damier transparent\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Couleur du damier 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"Seconde couleur du fond en damier transparent\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"Suivre le mouvement du canevas\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"Le damier transparent suit le mouvement du canevas\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"Suivre le niveau de zoom du canevas\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"Le damier transparent suit le niveau de zoom du canevas\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"Sélectionner le calque en cliquant sur l'un de ses boutons :\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"Peau d'oignon couleur passée :\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"Peau d'oignon couleur future :\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"Bords de sélection animés\"\n\nmsgid \"Border color 1:\"\nmsgstr \"Couleur du bord 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Couleur du bord 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Seul le préréglage personnalisé peut être modifié\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"Définir la limite FPS de l'application :\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"Définit la limite d'images par seconde de l'application. Plus le nombre est bas, plus l'utilisation du processeur est faible, mais l'application devient plus lente, saccadée et non réactive. 0 signifie qu'il n'y a pas de limite.\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"Étapes max d'annulation :\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"Met l'application en pause quand elle perd le focus\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"Si activé, l'application est mise en pause quand le focus est perdu. Cela aide à réduire l'usage du processeur en période d'inactivité. L'application sort de pause quand la souris entre à nouveau dans sa fenêtre.\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"Mettre à jour en continu\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"Si cette option est activée, l'application redessine l'écran en permanence, même si elle n'est pas utilisée. Désactiver cette option permet de réduire l'utilisation du processeur et du GPU en cas d'inactivité.\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"Activer la transparence de fenêtre\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"Si cette option est activée, la fenêtre d'application peut devenir transparente. Cela affecte les performances, donc désactivez-la si vous n'en avez pas besoin.\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"Moteur de rendu :\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"Spécifie le pilote de rendu / vidéo utilisé. GLES2 est meilleur pour les périphériques plus anciens et bas de gamme, mais GLES3 peut offrir plus de fonctionnalités.\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"Pilote de tablette :\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"Spécifie le pilote de tablette utilisé sur Windows. Si Windows Ink est activée, sélectionnez winink.\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Ajouter l’extension\"\n\nmsgid \"Enable\"\nmsgstr \"Activer\"\n\nmsgid \"Disable\"\nmsgstr \"Désactiver\"\n\nmsgid \"Uninstall\"\nmsgstr \"Désinstaller\"\n\nmsgid \"Open Folder\"\nmsgstr \"Ouvrir le dossier\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"Explorer en ligne\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"Dynamiques\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"Stabilisateur\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"Pression\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"Vélocité\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"Alpha\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"Taille\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"Valeurs limites\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"Seuils\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"Début\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"Fin\"\n\nmsgid \"Brush:\"\nmsgstr \"Brosse :\"\n\nmsgid \"Select a brush\"\nmsgstr \"Sélectionnez une brosse\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Pinceau pixel\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Pinceau circulaire\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Pinceau circulaire plein\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"Neige\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"Herbe\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"Étoile\"\n\nmsgid \"Custom brush\"\nmsgstr \"Brosse personnalisée\"\n\nmsgid \"Brush size:\"\nmsgstr \"Taille de la brosse :\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"Recouvrir couleur\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Écrase la couleur au lieu de la mélanger. Cette option n'est pertinente que pour les couleurs qui ne sont pas totalement opaques\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Pixel Parfait\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"Pixel Perfect\\n\"\n\"Rend les lignes lisses en supprimant les pixels supplémentaires sur les bords\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"Verrouiller l'alpha\"\n\nmsgid \"Fill inside\"\nmsgstr \"Remplir à l’intérieur\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"Espacement\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"Espace X:\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"Espace Y:\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Forme de remplissage\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"Remplit la forme avec de la couleur au lieu de ne dessiner que le contour\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"Densité :\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0 : Couleur depuis la brosse elle-même, 100 : la couleur actuellement sélectionnée\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"Remplir la zone :\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"Zone similaire\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"Couleurs similaires\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"Sélection entière\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"Remplir avec:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"Couleur sélectionnée\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Motif\"\n\nmsgid \"Offset\"\nmsgstr \"Décalage\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Ombrage simple\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Changement de teinte\"\n\nmsgid \"Lighten\"\nmsgstr \"Éclaircir\"\n\nmsgid \"Darken\"\nmsgstr \"Assombrir\"\n\nmsgid \"Amount:\"\nmsgstr \"Quantité :\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Quantité d'éclaircissement/assombrissement\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"Choisir pour:\"\n\nmsgid \"Left Color\"\nmsgstr \"Couleur à gauche\"\n\nmsgid \"Right Color\"\nmsgstr \"Couleur à droite\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"Mode:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Zoom avant\"\n\nmsgid \"Zoom out\"\nmsgstr \"Zoom arrière\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"Options\"\n\nmsgid \"Options:\"\nmsgstr \"Options :\"\n\nmsgid \"Fit to frame\"\nmsgstr \"Ajuster à la frame\"\n\nmsgid \"100% Zoom\"\nmsgstr \"Zoom 100%\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"Remplacer la sélection\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"Ajouter à la sélection\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"Soustraire à la sélection\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"Intersection des sélections\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"Style :\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"Normal\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"Gras\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"Italique\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"Gras Italique\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"Anticrénelage\"\n\nmsgid \"Grayscale\"\nmsgstr \"Niveau de gris\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"Miroir\"\n\nmsgid \"Horizontal\"\nmsgstr \"Horizontal\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Dessine avec un miroir horizontal\"\n\nmsgid \"Vertical\"\nmsgstr \"Vertical\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Dessine avec un miroir vertical\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"Déplacer vers le centre du canevas\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"Déplacer au centre de la vue\"\n\nmsgid \"Current frame:\"\nmsgstr \"Frame actuelle :\"\n\nmsgid \"Animation mode:\"\nmsgstr \"Mode d'animation :\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"Frame actuelle en spritesheet\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"Aller à la première image\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"Aller à l'image précédente\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"Jouer l'animation à l'envers\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"Jouer l'animation à l'endroit\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"Aller à l'image suivante\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"Aller à la dernière frame\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Activer/désactiver la peau d'oignon\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"Combien d'images par seconde pour l'aperçu de l'animation ?\\n\"\n\"Plus cette valeur est élevée, plus l'animation sera jouée rapidement.\"\n\nmsgid \"No loop\"\nmsgstr \"Pas de bouclage\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Bouclage en cycle\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Bouclage en ping-pong\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Peau d'oignon :\"\n\nmsgid \"Past Frames\"\nmsgstr \"Frames précédentes\"\n\nmsgid \"Future Frames\"\nmsgstr \"Frames suivantes\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Gérer les tags de la frame\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Propriétés du tag de la frame\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Ajouter un nouveau tag à la frame\"\n\nmsgid \"Name:\"\nmsgstr \"Nom :\"\n\nmsgid \"From:\"\nmsgstr \"De :\"\n\nmsgid \"To:\"\nmsgstr \"À :\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"L'animation ne joue que sur les frames du même tag\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Tag %s (Frame %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Tag %s (Frames %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Si sélectionné, l'animation ne joue que sur les frames partageant le même tag.\\n\"\n\"Si ce n'est pas le cas, l'animation sera jouée sur toutes les frames, ignorant les tags.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"Taille de la cellule :\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"Mode couleur\"\n\nmsgid \"Show past frames:\"\nmsgstr \"Afficher les frames précédentes:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"Afficher les frames suivantes:\"\n\nmsgid \"Above canvas\"\nmsgstr \"Au dessus du canevas\"\n\nmsgid \"Below canvas\"\nmsgstr \"En dessous du canevas\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"Si vous voulez qu'un calque ignore la peau d'oignon, ajoutez simplement le suffixe « _io » dans son nom.\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Ajouter une frame\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Supprimer la frame\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Cloner la frame\"\n\nmsgid \"Move Left\"\nmsgstr \"Déplacer vers la gauche\"\n\nmsgid \"Move Right\"\nmsgstr \"Déplacer vers la droite\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"Propriétés\"\n\nmsgid \"Project Properties\"\nmsgstr \"Propriétés du projet\"\n\nmsgid \"Frame properties\"\nmsgstr \"Propriétés de la frame\"\n\nmsgid \"Layer properties\"\nmsgstr \"Propriétés du calque\"\n\nmsgid \"Cel properties\"\nmsgstr \"Propriétés du Cellulo\"\n\nmsgid \"Tag properties\"\nmsgstr \"Propriétés du tag\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"Nouveau tag\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"Inverser les frames\"\n\nmsgid \"Layer\"\nmsgstr \"Calque\"\n\nmsgid \"Group\"\nmsgstr \"Groupe\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"Calques\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Créer un calque\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"Ajouter un Calque de Pixel\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"Ajouter un Calque de Groupe\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"Ajouter un Calque 3D\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Supprimer le calque\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Déplacer le calque vers le haut\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Déplacer le calque vers le cas\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Cloner le calque\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Fusionner le calque vers le bas\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"Mode de fusion :\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"Passer à travers\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"Normal\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"Effacer\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"Multiplier / Multiply\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"Densité de Couleur + / Color Burn\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"Densité Linéaire + / Linear Burn\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"Superposition / Screen\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"Densité de Couleur - / Color Dodge\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"Contraste / Contrast\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"Incrustation / Overlay\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"Lumière Douce / Soft Light\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"Lumière Dure / Hard Light\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"Inversion / Inversion\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"Différence / Difference\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"Exclusion / Exclusion\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"Soustraction / Subtract\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"Diviser / Divide\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"Composant / Component\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"Teinte\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"Saturation\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"Couleur \"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"Luminosité\"\n\nmsgid \"Opacity:\"\nmsgstr \"Opacité:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"Opacité du mode tuile :\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Afficher/Masquer le calque\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Verrouiller/déverrouiller le calque\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Frame : %s, Calque : %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"Activer/désactiver la liaison automatique des nouveaux Cellulos lors de la création de nouvelles Frames.\\n\\n\"\n\"Les Cellulos liés partagent le contenu sur plusieurs Frames\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"Développer / réduire le groupe\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"Palette\"\n\nmsgid \"Palettes\"\nmsgstr \"Palettes\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Ajouter une nouvelle palette\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Modifier la palette sélectionnée\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Choisir une palette\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Annuler : Dessin\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Refaire : Dessin\"\n\nmsgid \"Undo: Select\"\nmsgstr \"Annuler : Sélectionner\"\n\nmsgid \"Redo: Select\"\nmsgstr \"Rétablir : Sélectionner\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Annuler : Redimensionner l'image\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Refaire : Redimensionner l'image\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Annuler : Ajouter un calque\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Refaire : Ajouter un calque\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Annuler : Supprimer le calque\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Refaire : Supprimer le calque\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Annuler : Fusionner le calque\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Refaire : Fusionner le calque\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Annuler : Modifier l'ordre des calques\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Refaire : Modifier l'ordre des calques\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Annuler : Ajouter une frame\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Refaire : Ajouter une frame\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Annuler : Supprimer une frame\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Refaire : Supprimer une frame\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Annuler : Modifier l'ordre des frames\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Refaire : Modifier l'ordre des frames\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Annuler : Supprimer la brosse personnalisée\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Refaire : Supprimer la brosse personnalisée\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"Annuler : Modifier le tag de la frame\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"Refaire : Modifier le tag de la frame\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"Annuler : Supprimer le tag de la frame\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"Refaire : Supprimer le tag de la frame\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"Annuler : Changer la durée de la frame\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"Refaire : Changer la durée de la frame\"\n\nmsgid \"Move Guide\"\nmsgstr \"Déplacer le guide\"\n\nmsgid \"File saved\"\nmsgstr \"Fichier enregistré\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"Ouverture du fichier échouée. Code d’erreur %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"Enregistrement du fichier échoué. Code d’erreur %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"La vidéo n'a pas pu être exportée. Assurez-vous que FFMPEG est installé correctement.\"\n\nmsgid \"File(s) exported\"\nmsgstr \"Fichier(s) exporté(s)\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Nouvelle palette vide\"\n\nmsgid \"Import Palette\"\nmsgstr \"Importer une palette\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Créer une palette à partir du sprite actuel\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Nom de la palette:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Nom de la couleur:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"Utiliser les couleurs actuelles de gauche et de droite\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Créer une nouvelle palette vide?\"\n\nmsgid \"Error\"\nmsgstr \"Erreur\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Erreur: La palette doit avoir un nom valide.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Fichier Palette invalide!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Modifier la palette\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"Créer des couleurs avec une composante alpha\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"Obtenir des couleurs uniquement depuis la sélection\"\n\nmsgid \"Get colors from\"\nmsgstr \"Obtenir des couleurs depuis\"\n\nmsgid \"Patrons:\"\nmsgstr \"Patrons:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"Vous voulez que votre nom ou votre entreprise soit affiché sur l'écran de démarrage?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Devenez sponsor de Platine\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Devenez un Gold Sponsor\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Devenez un Patreon\"\n\nmsgid \"Don't show again\"\nmsgstr \"Ne plus afficher\"\n\nmsgid \"Image Options\"\nmsgstr \"Options d'image\"\n\nmsgid \"Default width:\"\nmsgstr \"Largeur par défaut:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"La largeur par défaut d'une nouvelle image\"\n\nmsgid \"Default height:\"\nmsgstr \"Hauteur par défaut:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"La largeur par défaut d'une nouvelle image\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Couleur de remplissage par défaut:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"Une couleur de fond par défaut d'une nouvelle image\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"Enlever toutes les extensions\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"Verrouiller les proportions\"\n\nmsgid \"Portrait\"\nmsgstr \"Portrait\"\n\nmsgid \"Landscape\"\nmsgstr \"Paysage\"\n\nmsgid \"Templates:\"\nmsgstr \"Modèles:\"\n\nmsgid \"Preset\"\nmsgstr \"Préréglage\"\n\nmsgid \"Preset:\"\nmsgstr \"Préréglage:\"\n\nmsgid \"Default\"\nmsgstr \"Par défaut\"\n\nmsgid \"Custom\"\nmsgstr \"Personnalisé\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Sélection rectangulaire\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"Sélection elliptique\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"Sélection polygonale\"\n\nmsgid \"Select By Color\"\nmsgstr \"Sélectionner par couleur\"\n\nmsgid \"Magic Wand\"\nmsgstr \"Baguette magique\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"Lasso / Outil de sélection libre\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"Déplacer\"\n\nmsgid \"Zoom\"\nmsgstr \"Zoom\"\n\nmsgid \"Pan\"\nmsgstr \"Déplacer\"\n\nmsgid \"Color Picker\"\nmsgstr \"Pipette\"\n\nmsgid \"Pencil\"\nmsgstr \"Crayon\"\n\nmsgid \"Eraser\"\nmsgstr \"Gomme\"\n\nmsgid \"Bucket\"\nmsgstr \"Seau de remplissage\"\n\nmsgid \"Shading Tool\"\nmsgstr \"Outil d'ombrage\"\n\nmsgid \"Line Tool\"\nmsgstr \"Outil ligne\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"Outil rectangle\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"Outil ellipse\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Changer les couleurs\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Définir le raccourci\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Appuyez sur une touche ou une combinaison de touches pour définir le raccourci\"\n\nmsgid \"Already assigned\"\nmsgstr \"Déjà attribué\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Outil Gauche:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Un outil assigné au bouton gauche de la souris\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Outil Droit:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Un outil assigné au bouton droit de la souris\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"Impossible de trouver le dernier fichier du projet.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"Impossible de trouver le fichier du projet.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Vous n'avez pas encore enregistré ou ouvert de projet dans Pixelorama !\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Ouvrir le dernier projet\"\n\nmsgid \"Open last project...\"\nmsgstr \"Ouvrir le dernier projet...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Charger le dernier projet au démarrage\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Charger le dernier projet au démarrage\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"Confirmation de fermeture\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"Chemin FFMPEG\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Activer la sauvegarde automatique\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Intervalle de l'enregistrement automatique :\"\n\nmsgid \"minute(s)\"\nmsgstr \"minute(s)\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"Exporter les données JSON\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"Séparer les calques\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"Inclure les tags de frame dans le nom du fichier\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"Créer un nouveau dossier pour chaque tag de frame\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"Créé plusieurs fichiers, mais chaque fichier est stocké dans le dossier correspondant à leurs tags de frame\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"Caractère(s) de séparation :\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"Le ou les caractères qui séparent le nom du fichier et le numéro de frame\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"Fermer\"\n\nmsgid \"Discard All\"\nmsgstr \"Tout abandonner\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"Sauvegarde rechargée\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Supprimer la palette actuellement sélectionnée\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"Êtes-vous sûr de vouloir supprimer cette palette ? (Opération irréversible)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Vous ne pouvez pas supprimer plus de palettes!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Impossible de supprimer la palette, car elle n'existe pas !\"\n\nmsgid \"and\"\nmsgstr \"et\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Déplacer la frame sélectionnée vers la gauche.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Déplacer la frame sélectionnée vers la droite.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"Durée de la frame :\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"Données utilisateur :\"\n\nmsgid \"Duration\"\nmsgstr \"Durée\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"Mode Tuile sur les Deux Axes\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"Mode Tuile sur l'Axe X\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Mode Tuile sur l'Axe Y\"\n\nmsgid \"Create a new palette\"\nmsgstr \"Créer une nouvelle palette\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"Commentaire :\"\n\nmsgid \"Empty\"\nmsgstr \"Vide\"\n\nmsgid \"From Current Palette\"\nmsgstr \"À partir de la palette actuelle\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"À partir du sprite actuel\"\n\nmsgid \"From Current Selection\"\nmsgstr \"À partir de la sélection actuelle\"\n\nmsgid \"Add a new color\"\nmsgstr \"Ajouter une nouvelle couleur\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"Supprimer une couleur sélectionnée\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"Trier la palette\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"Inverser les Couleurs / Reverse colors\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"Trier par teinte\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"Trier par saturation\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"Trier par valeur\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"Trier par rouge\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"Trier par vert\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"Trier par bleu\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"Trier par alpha\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"Une palette avec le même nom et le même chemin existe déjà !\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"Le nom de la palette est obligatoire !\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"Réduire la taille de la palette réinitialisera les positions des couleurs.\\n\"\n\"Les couleurs qui ne rentrent pas dans la nouvelle taille de palette seront perdues !\"\n\nmsgid \"Position:\"\nmsgstr \"Position :\"\n\nmsgid \"Tools\"\nmsgstr \"Outils\"\n\nmsgid \"Main Canvas\"\nmsgstr \"Canevas principal\"\n\nmsgid \"Second Canvas\"\nmsgstr \"Canevas secondaire\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"Timeline d'Animation\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"Aperçu du canevas\"\n\nmsgid \"Color Pickers\"\nmsgstr \"Pipettes\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"Options Générales des Outils\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"Options de l'Outil Gauche\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"Options de l'Outil Droit\"\n\nmsgid \"Reference Images\"\nmsgstr \"Images de référence\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"Éditeur de perspective\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"Capture Vidéo\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"Recadrer\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"Redimensionner le canevas\"\n\nmsgid \"Margins\"\nmsgstr \"Marges\"\n\nmsgid \"Position + Size\"\nmsgstr \"Position + Taille\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"Verrouiller le Rapport d'Aspect\"\n\nmsgid \"Margins:\"\nmsgstr \"Marges :\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"Rapport d'Aspect:\"\n\nmsgid \"Top:\"\nmsgstr \"Haut:\"\n\nmsgid \"Bottom:\"\nmsgstr \"Bas:\"\n\nmsgid \"Left:\"\nmsgstr \"Gauche :\"\n\nmsgid \"Right:\"\nmsgstr \"Droite :\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"Taille verrouillée\\n\\n\"\n\"Lorsqu'il est activé, l'utilisation de l'outil sur le canevas ne fera que déplacer le rectangle de recadrage.\\n\\n\"\n\"Lorsqu'il est désactivé, l'utilisation de l'outil sur le canevas dessine le rectangle.\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"Éditeur 3D\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"Boîte\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"Sphère\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"Capsule\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"Cylindre\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"Prisme\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"Tore\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"Plan\"\n\nmsgid \"Text\"\nmsgstr \"Texte\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"Lumière directionnelle\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"Projecteur\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"Point de lumière\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"Modèle personnalisé\"\n\nmsgid \"Selected object:\"\nmsgstr \"Objet sélectionné :\"\n\nmsgid \"Add new object\"\nmsgstr \"Ajouter un nouvel objet\"\n\nmsgid \"Remove object\"\nmsgstr \"Supprimer l'objet\"\n\nmsgid \"Camera\"\nmsgstr \"Caméra\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"Projection :\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"Perspective\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"Orthogonale\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"Tronc\"\n\nmsgid \"Rotation:\"\nmsgstr \"Rotation :\"\n\nmsgid \"Scale:\"\nmsgstr \"Scale:\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"Environnement\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"Couleur ambiante :\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"Énergie de couleur ambiante :\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"Visible :\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"Modifier\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"Mesh\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"De gauche à droite :\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"Rayon :\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"Segments Radiaux:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"Anneaux:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"Est un hémisphère :\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"Rayon supérieur :\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"Rayon inférieur :\"\n\nmsgid \"Text:\"\nmsgstr \"Texte :\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"Profondeur:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"Taille des Pixels:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"Étape de Courbe:\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"Alignement horizontal :\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"Alignement vertical:\"\n\nmsgid \"Left\"\nmsgstr \"Gauche\"\n\nmsgid \"Right\"\nmsgstr \"Droite\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"Interligne:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"Énergie :\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"Négative :\"\n\nmsgid \"Shadow:\"\nmsgstr \"Ombre :\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"Portée :\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"Propriétés Animables\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"Prévisualiser la Frame :\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"Animer\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"Valeur initiale :\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"Valeur finale :\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"Type d'accélération :\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"Démarre lentement et accélère vers la fin\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"Démarre rapidement et ralentit vers la fin\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"Lent aux deux extrémités, rapide au milieu\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"Rapide aux deux extrémités, lent au milieu\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"Quadratique (puissance de 2)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"Cubique (puissance de 3)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"Quartique (puissance de 4)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"Quintique (puissance de 5)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"Exponentiel (puissance de x)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"Racine carrée\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"Sinus\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"Tortiller les bords\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"Rebond à la fin\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"Monochrome\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"Supprimer\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"Maintenez Maj enfoncé tout en appuyant pour supprimer instantanément.\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"Êtes-vous sûr de vouloir supprimer cette image de référence ? Elle ne sera pas supprimée de vos fichiers locaux.\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"Déplacer l'image de référence sélectionnée vers la droite\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"Déplacer l'image de référence sélectionnée vers la gauche\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"Sélectionne une image de référence sur le canevas\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"Déplacer l'image de référence sélectionnée\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"Pivoter l'image de référence sélectionnée\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"Redimensionner l'image de référence sélectionnée\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"aucun\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"Position\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"Échelle\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"Rotation\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"Filtre\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"Opacité\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"Activé\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"Calque d'effets\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"Ajouter effet\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"Voulez-vous télécharger l'image depuis %s ?\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Automatique\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/ga_IE.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ga-IE\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Irish\\n\"\n\"Language: ga_IE\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/grc.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n > 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: grc\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Ancient Greek\\n\"\n\"Language: grc\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"Ἐντάξει\"\n\nmsgid \"Cancel\"\nmsgstr \"Ἀκύρωσον\"\n\nmsgid \"Open\"\nmsgstr \"Ἀνοῖξον\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Παρακαλῶ ἐπιβεβαίωσον...\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"Μέγεθος:\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"Ἀρχείον\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"Ἰδεῖν\"\n\nmsgid \"Window\"\nmsgstr \"Παράθυρον\"\n\nmsgid \"Image\"\nmsgstr \"Εἰκών\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/he_IL.po",
    "content": "msgid \"\"\nmsgstr \"\"\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: he\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Hebrew\\n\"\n\"Language: he_IL\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"אישור\"\n\nmsgid \"Cancel\"\nmsgstr \"ביטול\"\n\nmsgid \"Open\"\nmsgstr \"פתח\"\n\nmsgid \"Save\"\nmsgstr \"שמור\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"אנא אשר...\"\n\nmsgid \"File Name:\"\nmsgstr \"שם קובץ:\"\n\nmsgid \"Project Name:\"\nmsgstr \"שם הפרויקט:\"\n\nmsgid \"Image Size\"\nmsgstr \"גודל תמונה\"\n\nmsgid \"Canvas Size\"\nmsgstr \"גודל משטח הציור\"\n\nmsgid \"Frame Size\"\nmsgstr \"גודל פריים\"\n\nmsgid \"Size:\"\nmsgstr \"גודל:\"\n\nmsgid \"Width:\"\nmsgstr \"רוחב:\"\n\nmsgid \"Height:\"\nmsgstr \"גובה:\"\n\nmsgid \"Center\"\nmsgstr \"מרכז\"\n\nmsgid \"File\"\nmsgstr \"קובץ\"\n\nmsgid \"Edit\"\nmsgstr \"עריכה\"\n\nmsgid \"Select\"\nmsgstr \"בחירה\"\n\nmsgid \"View\"\nmsgstr \"תצוגה\"\n\nmsgid \"Window\"\nmsgstr \"חלון\"\n\nmsgid \"Image\"\nmsgstr \"תמונה\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"פרויקט\"\n\nmsgid \"Effects\"\nmsgstr \"אפקטים\"\n\nmsgid \"Help\"\nmsgstr \"עזרה\"\n\nmsgid \"New\"\nmsgstr \"חדש\"\n\nmsgid \"New...\"\nmsgstr \"חדש...\"\n\nmsgid \"Open...\"\nmsgstr \"פתח...\"\n\nmsgid \"Save...\"\nmsgstr \"שמור...\"\n\nmsgid \"Save as...\"\nmsgstr \"שמור בשם...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"ייבא\"\n\nmsgid \"Export\"\nmsgstr \"ייצא\"\n\nmsgid \"Overwrite\"\nmsgstr \"להחליף\"\n\nmsgid \"Export...\"\nmsgstr \"ייצא...\"\n\nmsgid \"Export as...\"\nmsgstr \"ייצא בשם...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"ייצא PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"יצא PNG בשם...\"\n\nmsgid \"Quit\"\nmsgstr \"צא\"\n\nmsgid \"Undo\"\nmsgstr \"בטל\"\n\nmsgid \"Redo\"\nmsgstr \"בצע שוב\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"העתק\"\n\nmsgid \"Cut\"\nmsgstr \"גזירה\"\n\nmsgid \"Paste\"\nmsgstr \"הדבק\"\n\nmsgid \"Paste in Place\"\nmsgstr \"הדבקה במקום\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"הדבקה מלוח ההעתקה\"\n\nmsgid \"Delete\"\nmsgstr \"מחק\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"מחיקה לצמיתות\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"העברה לאשפה\"\n\nmsgid \"New Brush\"\nmsgstr \"מברשת חדשה\"\n\nmsgid \"Scale Image\"\nmsgstr \"הגדל/ הקטן תמונה\"\n\nmsgid \"Pixels\"\nmsgstr \"פיקסלים\"\n\nmsgid \"Percentage\"\nmsgstr \"אחוזים\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"מצב צבע:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"מצב צבע\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"חיתוך לבחירה\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"חיתוך לתוכן\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"שנה את גודל משטח הציור\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"מרכוז פריימים\"\n\nmsgid \"Rotate Image\"\nmsgstr \"סובב תמונה\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"זווית התחלתית:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"מחיקה\"\n\nmsgid \"Invert\"\nmsgstr \"היפוך\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"בחירת אזור cel\"\n\nmsgid \"Modify\"\nmsgstr \"שינוי\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"הרחבה\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"הרחבת בחירה\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"כיווץ\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"כיווץ בחירה\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"גבול\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"בחירת גבול\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"מעגל\"\n\nmsgid \"Square\"\nmsgstr \"ריבוע\"\n\nmsgid \"Grayscale View\"\nmsgstr \"תצוגת שחור-לבן\"\n\nmsgid \"Mirror Image\"\nmsgstr \"תמונת מראה\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"הפוך אופקית\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"הפוך אנכית\"\n\nmsgid \"Preferences\"\nmsgstr \"העדפות\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"טשטוש\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"מרכוז קנבס\"\n\nmsgid \"Tile Mode\"\nmsgstr \"מצב אריח\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"בסיס-X:\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"בסיס-Y:\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"מסיכה:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"איפוס\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"איפוס %s\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"שימוש בפריים נוכחי\"\n\nmsgid \"Reset Mask\"\nmsgstr \"איפוס מסיכה\"\n\nmsgid \"Window Opacity\"\nmsgstr \"אטימות חלון\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"אטימות חלון אינה עובדת במצב מסך מלא.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"הוספה\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"הצג רשת\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"הצג סרגלים\"\n\nmsgid \"Show Guides\"\nmsgstr \"הצג קווים מנחים\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"הצג את ציר הזמן לאנימציה\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"ייבוא אפשרויות\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"אישור להכל\"\n\nmsgid \"Recent projects\"\nmsgstr \"פרוייקטים אחרונים\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"פריים חדש\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"החלפת cel\"\n\nmsgid \"New layer\"\nmsgstr \"שכבה חדשה\"\n\nmsgid \"New reference image\"\nmsgstr \"תמונת רפרנס חדשה\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"מברשת חדשה\"\n\nmsgid \"New pattern\"\nmsgstr \"תבנית חדשה\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"פריימים מאוזנים:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"פריימים מאונכים:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"חיתוך חכם\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"סף:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"תמונות בעלות צד הקטן מהערך הזה יחצו את הסף\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"מרחק מיזוג:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"ריענון\"\n\nmsgid \"Start frame:\"\nmsgstr \"פריים התחלה:\"\n\nmsgid \"End frame:\"\nmsgstr \"פריים סיום:\"\n\nmsgid \"At frame:\"\nmsgstr \"בפריים:\"\n\nmsgid \"At layer:\"\nmsgstr \"בשכבה:\"\n\nmsgid \"Brush type:\"\nmsgstr \"סוג מברשת:\"\n\nmsgid \"File brush\"\nmsgstr \"מברשת קובץ\"\n\nmsgid \"Project brush\"\nmsgstr \"מברשת פרויקט\"\n\nmsgid \"Random brush\"\nmsgstr \"מברשת אקראית\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"שמירת ספרייט כקובץ .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"ייצוא ספרייט כקובץ .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"ייצוא ספרייט\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"הקובץ קיים. להחליף?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"הקבצים הבאים כבר קיימים. האם ברצונך להחליף אותם?\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"נתיב תיקייה לא תקין!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"שם קובץ לא תקין!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"נתיב תיקייה וששםש קובץ לא תקינים!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"ייצוא בתהליך...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"לא ניתן לטעון קובץ '%s'.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"לא ניתן לטעון קובץ '%s'.\\n\"\n\"קוד שגיאה: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"פריים\"\n\nmsgid \"Frames:\"\nmsgstr \"פריימים:\"\n\nmsgid \"All Frames\"\nmsgstr \"כל הפריימים\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"אנימציה\"\n\nmsgid \"Preview:\"\nmsgstr \"תצוגה מקדימה:\"\n\nmsgid \"Frame:\"\nmsgstr \"פריים:\"\n\nmsgid \"Orientation:\"\nmsgstr \"כיוון:\"\n\nmsgid \"Browse\"\nmsgstr \"עיון\"\n\nmsgid \"Resize:\"\nmsgstr \"שינוי גודל:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"איכות:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"ביטול ייצוא\"\n\nmsgid \"Alert!\"\nmsgstr \"התראה!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"בחירת התיקייה הנוכחית\"\n\nmsgid \"Open a Directory\"\nmsgstr \"פתיחת תיקייה\"\n\nmsgid \"Background:\"\nmsgstr \"רקע:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"פריימים שנבחרו\"\n\nmsgid \"Layers:\"\nmsgstr \"שכבות:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"שכבות נראות\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"שכבות שנבחרו\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"שכבת פיקסלים:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"שכבת קבוצה:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"שכבה תלת-מימדית:\"\n\nmsgid \"Direction:\"\nmsgstr \"כיוון:\"\n\nmsgid \"Forward\"\nmsgstr \"קדימה\"\n\nmsgid \"Backwards\"\nmsgstr \"אחורה\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"פינג-פונג\"\n\nmsgid \"Columns\"\nmsgstr \"עמודות\"\n\nmsgid \"Columns:\"\nmsgstr \"עמודות:\"\n\nmsgid \"Rows\"\nmsgstr \"שורות\"\n\nmsgid \"Rows:\"\nmsgstr \"שורות:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"תגים לפי עמודה\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"תגים לפי שורה\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"מימדי ייצוא:\"\n\nmsgid \"Save a File\"\nmsgstr \"שמירת קובץ\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"לתיקייה הקודמת.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"לתיקייה הבאה.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"נתיב:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"רענון קבצים.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"תיקיות וקבצים:\"\n\nmsgid \"Create Folder\"\nmsgstr \"יצירת תיקייה\"\n\nmsgid \"File:\"\nmsgstr \"קובץ:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"כל הקבצים\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"כל המזוהים\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"פרויקט Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"תמונת PNG\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"תמונת BMP\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"תמונת Radiance HDR\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"תמונת JPEG\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"תמונת SVG\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"תמונת TGA\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"תמונת WebP\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"פרויקט OpenRaster\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"פרויקט Aseprite\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"אפשרויות מתקדמות\"\n\nmsgid \"Interpolation:\"\nmsgstr \"אינטרפולציה:\"\n\nmsgid \"Nearest\"\nmsgstr \"הקרוב ביותר\"\n\nmsgid \"Bilinear\"\nmsgstr \"ביליניארי\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"טריליניארי\"\n\nmsgid \"Constant\"\nmsgstr \"קבוע\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"מרחב צבע\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"sRGB ליניארי\"\n\nmsgid \"General\"\nmsgstr \"כללי\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"שפה\"\n\nmsgid \"Interface\"\nmsgstr \"ממשק\"\n\nmsgid \"Themes\"\nmsgstr \"ערכות נושא\"\n\nmsgid \"Canvas\"\nmsgstr \"קנבס\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"ציר זמן\"\n\nmsgid \"Selection\"\nmsgstr \"בחירה\"\n\nmsgid \"Shortcuts\"\nmsgstr \"קיצורי דרך\"\n\nmsgid \"Backup\"\nmsgstr \"גיבוי\"\n\nmsgid \"Performance\"\nmsgstr \"ביצועים\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"הרחבות\"\n\nmsgid \"Cursors\"\nmsgstr \"סמנים\"\n\nmsgid \"Indicators\"\nmsgstr \"חיוויים\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"צבע הסמל:\"\n\nmsgid \"Background\"\nmsgstr \"רקע\"\n\nmsgid \"Background color from:\"\nmsgstr \"צבע רקע מ:\"\n\nmsgid \"Background color:\"\nmsgstr \"צבע רקע:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"צבע כלי שמאלי:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"צבע כלי ימני:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"גודל כפתורי כלים:\"\n\nmsgid \"Small\"\nmsgstr \"קטן\"\n\nmsgid \"Big\"\nmsgstr \"גדול\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"פריים נוכחי\"\n\nmsgid \"All frames\"\nmsgstr \"כל הפריימים\"\n\nmsgid \"All projects\"\nmsgstr \"כל הפרויקטים\"\n\nmsgid \"Invert Colors\"\nmsgstr \"היפוך צבעים\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"הפחתת רוויה\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"קו מתאר\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"הצללה\"\n\nmsgid \"Offset X:\"\nmsgstr \"היסט X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"היסט Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"צבע צל:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"טשטוש גאוס\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"סוג טשטוש:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"כמות טשטוש:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"רדיוס טשטוש:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"כיוון טשטוש:\"\n\nmsgid \"Gradient\"\nmsgstr \"מעבר צבע\"\n\nmsgid \"Gradient Map\"\nmsgstr \"מפת מעבר צבע\"\n\nmsgid \"Interpolation\"\nmsgstr \"אינטרפולציה\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"היפוך\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"נקודות פרוסות באופן אחיד\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"חלוקה לחלקים שווים\"\n\nmsgid \"Parts:\"\nmsgstr \"חלקים:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"הוספת נקודות בסוף\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"אם מופעל, הנקודה האחרונה מתווספת לסוף מעבר הצבע.\\n\"\n\"כבו את האפשרות כדי לגרום למעבר הצבע להיות בעל אינטרפולציה קבועה, כך שהצבע האחרון יילקח בחשבון.\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"צורה:\"\n\nmsgid \"Linear\"\nmsgstr \"קווי\"\n\nmsgid \"Radial\"\nmsgstr \"מעגלי\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"חזרתי:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"חזרתי\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"מראה\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"קיצוץ\"\n\nmsgid \"Transition size:\"\nmsgstr \"גודל מעבר:\"\n\nmsgid \"Center:\"\nmsgstr \"מרכז:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"תבנית גוונון:\"\n\nmsgid \"Type:\"\nmsgstr \"סוג:\"\n\nmsgid \"Angle:\"\nmsgstr \"זווית:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"שינוי גוון/רוויה/ערך\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"שינוי HSV\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"גוון:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"רוויה:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"ערך:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"שינוי בהירות/ניגודיות\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"בהירות:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"ניגודיות:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"ערך אדום:\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"ערך ירוק:\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"ערך כחול:\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"אדום\"\n\nmsgid \"Green\"\nmsgstr \"ירוק\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"ערך\"\n\nmsgid \"Presets\"\nmsgstr \"הגדרות קבועות מראש\"\n\nmsgid \"Apply\"\nmsgstr \"אישור\"\n\nmsgid \"Diagonal\"\nmsgstr \"אלכסוני\"\n\nmsgid \"Place inside image\"\nmsgstr \"מיקום בתוך תמונה\"\n\nmsgid \"Thickness:\"\nmsgstr \"עובי:\"\n\nmsgid \"Colors:\"\nmsgstr \"צבעים:\"\n\nmsgid \"Steps:\"\nmsgstr \"צעדים:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"פיקסול\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"פוסטריזציה\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"עוצמת גוונון:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"הצגת מסך פתיחה\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"פתיחת תיקיית נתוני עורך\"\n\nmsgid \"Changelog\"\nmsgstr \"רשימת שינויים\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"אודות Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"תמיכה בפיתוח Pixelorama\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"פותח על ידי Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-הווה ע\\\"י Orama Interactive ותורמים\"\n\nmsgid \"Website\"\nmsgstr \"אתר אינטרנט\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"קוד מקור\"\n\nmsgid \"Donate\"\nmsgstr \"תרומות\"\n\nmsgid \"Developers\"\nmsgstr \"מפתחים\"\n\nmsgid \"Contributors\"\nmsgstr \"מתנדבים\"\n\nmsgid \"Donors\"\nmsgstr \"תורמות ותורמים\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"רשיונות\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"אנגלית\"\n\nmsgid \"Greek\"\nmsgstr \"יוונית\"\n\nmsgid \"French\"\nmsgstr \"צרפתית\"\n\nmsgid \"German\"\nmsgstr \"גרמנית\"\n\nmsgid \"Polish\"\nmsgstr \"פולנית\"\n\nmsgid \"Portuguese\"\nmsgstr \"פורטוגזית\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"פורטוגזית ברזילאית\"\n\nmsgid \"Russian\"\nmsgstr \"רוסית\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"סינית מופשטת\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"סינית מסורתית\"\n\nmsgid \"Italian\"\nmsgstr \"איטלקית\"\n\nmsgid \"Latvian\"\nmsgstr \"לטבית\"\n\nmsgid \"Spanish\"\nmsgstr \"ספרדית\"\n\nmsgid \"Catalan\"\nmsgstr \"קטלאנית\"\n\nmsgid \"Esperanto\"\nmsgstr \"אספרנטו\"\n\nmsgid \"Indonesian\"\nmsgstr \"אינדונזית\"\n\nmsgid \"Czech\"\nmsgstr \"צ'כית\"\n\nmsgid \"Arabic\"\nmsgstr \"ערבית\"\n\nmsgid \"Turkish\"\nmsgstr \"טורקית\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"קוריאנית\"\n\nmsgid \"Hungarian\"\nmsgstr \"הונגרית\"\n\nmsgid \"Romanian\"\nmsgstr \"רומנית\"\n\nmsgid \"Japanese\"\nmsgstr \"יפנית\"\n\nmsgid \"Ukrainian\"\nmsgstr \"אוקראינית\"\n\nmsgid \"Danish\"\nmsgstr \"דנית\"\n\nmsgid \"Swedish\"\nmsgstr \"שוודית\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"הולנדית\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"ללא כותרת\"\n\nmsgid \"imported\"\nmsgstr \"מיובא\"\n\nmsgid \"copy\"\nmsgstr \"העתק\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"האם את/ה בטוח/ה שברצונך לצאת מ-Pixelorama?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"תמונה לא שמורה\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"לשמור לפני יציאה?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"שמירה ויציאה\"\n\nmsgid \"Exit without saving\"\nmsgstr \"יציאה ללא שמירה\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"סימון ריבועי\\n\\n\"\n\"%s לכפתור עכבר שמאלי\\n\"\n\"%s לכפתור עכבר ימני\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"סימון אליפטי\\n\\n\"\n\"%s לכפתור עכבר שמאלי\\n\"\n\"%s לכפתור עכבר ימני\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"מרובע\"\n\nmsgid \"Ellipse\"\nmsgstr \"אליפסה\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"בחרו צבע לכלי השמאלי\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"בחרו צבע לכלי הימני\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"אפסו את הצבעים לערך ברירת המחדל (שחור בשמאל, לבן בימין)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"צבעים אחרונים\"\n\nmsgid \"Left tool\"\nmsgstr \"כלי שמאלי\"\n\nmsgid \"Right tool\"\nmsgstr \"כלי ימני\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"הצגת אייקון כלי שמאלי\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"הצגת האייקון של הכלי השמאלי הנבחר לצד הסמן על הקנבס\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"הצגת אייקון כלי ימני\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"הצגת האייקון של הכלי הימני הנבחר לצד הסמן על הקנבס\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"קווי הנחיה\"\n\nmsgid \"Guides color:\"\nmsgstr \"צבע קווי הנחיה:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"צבע קווי ההנחייה המוצגים על הקנבס\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"מלבני\"\n\nmsgid \"Isometric\"\nmsgstr \"שומר מידה\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"משושה\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"משושה (קודקוד למעלה)\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"משושה (צלע למעלה)\"\n\nmsgid \"All\"\nmsgstr \"הכל\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"שקיפות\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"מעקב אחר תזוזת קנבס\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"הוספת הרחבה\"\n\nmsgid \"Enable\"\nmsgstr \"הפעלה\"\n\nmsgid \"Disable\"\nmsgstr \"כיבוי\"\n\nmsgid \"Uninstall\"\nmsgstr \"הסרת התקנה\"\n\nmsgid \"Open Folder\"\nmsgstr \"פתיחת תיקייה\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"חיפוש ברשת\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"חיפוש...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"תגים:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"דיווח על בעיה עם הרחבה\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"הורדה\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"לחץ\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"מהירות\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"אלפא\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"גודל\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"גבולות ערך\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"ערכי סף\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"התחלה\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"End\"\n\nmsgid \"Brush:\"\nmsgstr \"מברשת:\"\n\nmsgid \"Select a brush\"\nmsgstr \"בחירת מברשת\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"מברשת ברירת-מחדל\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"מברשת פיקסל\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"מברשת עיגול\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"מברשת עיגול מלא\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"מברשות פרויקט\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"מברשות קובץ\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"שלג\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"מברשת קובץ אקראית\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"דשא\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"כוכב\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"גודל מברשת:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"אפשרויות סיבוב\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"היפוך:\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"סיבוב:\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"מילוי בפנים\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"מרווח\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"מרווח X:\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"מרווח Y:\"\n\nmsgid \"Fill Shape\"\nmsgstr \"מילוי צורה\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"ממלא את הצורה המצוירת בצבע, במקום לצייר צורה חלולה\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"צפיפות:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"צבע מברשת מ:\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: צבע מהמברשת עצמה, 100: הצבע המסומן\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"מילוי אזור:\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"אזורים דומים\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"צבעים דומים\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"מילוי עם:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"הצבע הנבחר\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"תבנית\"\n\nmsgid \"Offset\"\nmsgstr \"הסטה\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"הבהרה\"\n\nmsgid \"Darken\"\nmsgstr \"האפלה\"\n\nmsgid \"Amount:\"\nmsgstr \"כמות:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"בחירה בשביל:\"\n\nmsgid \"Left Color\"\nmsgstr \"צבע שמאלי\"\n\nmsgid \"Right Color\"\nmsgstr \"צבע ימני\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"מצב:\"\n\nmsgid \"Zoom in\"\nmsgstr \"התקרבות\"\n\nmsgid \"Zoom out\"\nmsgstr \"התרחקות\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"אפשרויות:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"התאמה לפריים\"\n\nmsgid \"100% Zoom\"\nmsgstr \"זום 100%\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"החלפת בחירה\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"הוספה לבחירה\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"הורדה מבחירה\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"מראה\"\n\nmsgid \"Horizontal\"\nmsgstr \"אופקי\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"אנכי\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"הזזה למרכז הקנבס\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"הזזה למרכז התצוגה\"\n\nmsgid \"Current frame:\"\nmsgstr \"פריים נוכחי:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"מצב הנפשה:\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"קפיצה לפריים הראשון\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"מעבר לפריים הקודם\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"ניגון האנימציה לאחור\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"ניגון האנימציה קדימה\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"מעבר לפריים הבא\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"קפיצה לפריים האחרון\"\n\nmsgid \"Timeline settings\"\nmsgstr \"הגדרות ציר הזמן\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"בכמה פריימים לשנייה התצוגה המקדימה לאנימציה אמורה להתנגן?\\n\"\n\"ככל שיש יותר פריימים לשנייה, האנימציה תתנגן מהר יותר.\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"פריימים קודמים\"\n\nmsgid \"Future Frames\"\nmsgstr \"פריימים הבאים\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"ניהול תגי פריים\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"הגדרות תגי פריים\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"הוספת תג פריים חדש\"\n\nmsgid \"Name:\"\nmsgstr \"שם:\"\n\nmsgid \"From:\"\nmsgstr \"מ:\"\n\nmsgid \"To:\"\nmsgstr \"ל:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"נגן אנימציה על פריימים עם אותו התג בלבד\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"תג %s (פריים %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"תג %s (פריימים %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"גודל cel:\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"מצב צבע\"\n\nmsgid \"Show past frames:\"\nmsgstr \"הצגת הפריימים הקודמים:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"הצגת הפריימים הבאים:\"\n\nmsgid \"Above canvas\"\nmsgstr \"מעל הקנבס\"\n\nmsgid \"Below canvas\"\nmsgstr \"מתחת לקנבס\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"הוספת פריים חדש\"\n\nmsgid \"Remove Frame\"\nmsgstr \"הסרת פריים\"\n\nmsgid \"Clone Frame\"\nmsgstr \"שכפול פריים\"\n\nmsgid \"Move Left\"\nmsgstr \"הזזה שמאלה\"\n\nmsgid \"Move Right\"\nmsgstr \"הזזה ימינה\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"בחירת פיקסלים\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"ניגון אודיו כאן\"\n\nmsgid \"Properties\"\nmsgstr \"מאפיינים\"\n\nmsgid \"Project Properties\"\nmsgstr \"מאפייני פרויקט\"\n\nmsgid \"Frame properties\"\nmsgstr \"מאפייני פריים\"\n\nmsgid \"Layer properties\"\nmsgstr \"מאפייני שכבה\"\n\nmsgid \"Cel properties\"\nmsgstr \"מאפייני cel\"\n\nmsgid \"Tag properties\"\nmsgstr \"מאפייני תג\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"תג חדש\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"ייבוא תג\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"היפוך סדר פריימים\"\n\nmsgid \"Layer\"\nmsgstr \"שכבה\"\n\nmsgid \"Group\"\nmsgstr \"קבוצה\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"מפת אריחים\"\n\nmsgid \"Audio\"\nmsgstr \"אודיו\"\n\nmsgid \"Layers\"\nmsgstr \"שכבות\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"השטחה\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"הוספת שכבת פיקסלים\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"הוספת שכבת קבוצה\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"הוספת שכבה תלת-מימדית\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"הסרת השכבה הנוכחית\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"הזזה לשכבה הנוכחית\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"שכפול השכבה הנוכחית\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"איחוד השכבה הנוכחית עם השכבה מתחת\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"אטימות:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"הזזת קו מנחה\"\n\nmsgid \"File saved\"\nmsgstr \"קובץ נשמר\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"גיבוי נשמר\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"פתיחת קובץ נכשלה. קוד שגיאה %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"שמירת קובץ נכשלה. קוד שגיאה %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"לא ניתן לייצא וידאו. וודאו שFFMPEG מותקן.\"\n\nmsgid \"File(s) exported\"\nmsgstr \"קובץ/קבצים יוצאו\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"שם צבע:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"שגיאה\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"פטרונים:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"רוחב ברירת-מחדל של תמונה חדשה\"\n\nmsgid \"Default height:\"\nmsgstr \"גובה ברירת-מחדל:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"גובה ברירת-מחדל של תמונה חדשה\"\n\nmsgid \"Default fill color:\"\nmsgstr \"צבע מילוי ברירת-מחדל:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"צבע רקע ברירת-מחדל לתמונה חדשה\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"איפוס כל האפשרויות הזמינות בהעדפות\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"איפוס אפשרויות ציר זמן\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"איפוס כל אפשרויות הכלים\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"הסרת כל ההרחבות\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"מחיקת רשימת הקבצים שנפתחה לאחרונה\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"נעילת יחס גובה-רוחב\"\n\nmsgid \"Portrait\"\nmsgstr \"לאורך\"\n\nmsgid \"Landscape\"\nmsgstr \"לרוחב\"\n\nmsgid \"Templates:\"\nmsgstr \"תבניות:\"\n\nmsgid \"Preset\"\nmsgstr \"הגדרה קבועה מראש\"\n\nmsgid \"Preset:\"\nmsgstr \"הגדרה קבועה מראש:\"\n\nmsgid \"Default\"\nmsgstr \"ברירת מחדל\"\n\nmsgid \"Custom\"\nmsgstr \"מותאם אישית\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"בחירה ריבועית\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"בחירה אליפטית\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"בחירה מצולעת\"\n\nmsgid \"Select By Color\"\nmsgstr \"בחירה לפי צבע\"\n\nmsgid \"Magic Wand\"\nmsgstr \"שרביט קסמים\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"כלי לאסו / סימון חופשי\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"סימון על ידי ציור\"\n\nmsgid \"Move\"\nmsgstr \"הזזה\"\n\nmsgid \"Zoom\"\nmsgstr \"זום\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"עיפרון\"\n\nmsgid \"Eraser\"\nmsgstr \"מחק\"\n\nmsgid \"Bucket\"\nmsgstr \"דלי\"\n\nmsgid \"Shading Tool\"\nmsgstr \"כלי הצללה\"\n\nmsgid \"Line Tool\"\nmsgstr \"כלי קו\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"כלי מרובע\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"כלי אליפסה\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"החלפת צבעים\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"קביעת קיצור-דרך\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"כלי שמאלי:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"כלי ימני:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"לא ניתן למצוא את קבצי הפרויקט האחרון.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"לא ניתן למצוא קבצי פרויקט.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"עוד לא שמרת או פתחת שום פרויקט בPixelorama!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"פתיחת הפרויקט האחרון\"\n\nmsgid \"Open last project...\"\nmsgstr \"פתיחת הפרויקט האחרון...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"פתיחת הפרויקט האחרון כאשר התוכנה נפתחת\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"הפעלת שמירה אוטומטית\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"דקות\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"ייצוא נתוני JSON\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"פיצול שכבות\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"יצירת תיקייה חדשה לכל תג פריים\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"מיון לפי אדום\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"מיון לפי ירוק\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"מיון לפי כחול\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"מיון לפי אלפא\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"מיקום:\"\n\nmsgid \"Tools\"\nmsgstr \"כלים\"\n\nmsgid \"Main Canvas\"\nmsgstr \"קנבס ראשי\"\n\nmsgid \"Second Canvas\"\nmsgstr \"קנבס משני\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"ציר הזמן לאנימציה\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"תצוגה מקדימה של קנבס\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"אפשרויות כלי שמאלי\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"אפשרויות כלי ימני\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"עורך פרספקטיבה\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"מקליט\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"אריחים\"\n\nmsgid \"Crop\"\nmsgstr \"חיתוך\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"שינוי גודל קנבס\"\n\nmsgid \"Margins\"\nmsgstr \"שוליים\"\n\nmsgid \"Position + Size\"\nmsgstr \"מיקום + גודל\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"יחס גובה-רוחב נעול\"\n\nmsgid \"Margins:\"\nmsgstr \"שוליים:\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"יחס גובה-רוחב:\"\n\nmsgid \"Top:\"\nmsgstr \"עליון:\"\n\nmsgid \"Bottom:\"\nmsgstr \"תחתון:\"\n\nmsgid \"Left:\"\nmsgstr \"שמאל:\"\n\nmsgid \"Right:\"\nmsgstr \"ימין:\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"גודל נעול\\n\\n\"\n\"כאשר מופעל באמצעות הכלי על הקנבס, יזיז את מלבן החיתוך בלבד.\\n\\n\"\n\"כאשר מכובה באמצעות הכלי על הקנבס, יצייר את המלבן.\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"עריכת צורה תלת-מימדית\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"תיבה\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"כדור\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"קפסולה\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"גליל\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"מנסרה\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"טבעת\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"משטח\"\n\nmsgid \"Text\"\nmsgstr \"טקסט\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"אור נקודתי\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"דגם מותאם אישית\"\n\nmsgid \"Selected object:\"\nmsgstr \"אובייקט נבחר:\"\n\nmsgid \"Add new object\"\nmsgstr \"הוספת אובייקט חדש\"\n\nmsgid \"Remove object\"\nmsgstr \"הסרת אובייקט\"\n\nmsgid \"Camera\"\nmsgstr \"מצלמה\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"רדיוס:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"מעלה שלישית\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"מעלה רביעית\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"מעלה חמישית\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"מעלת x\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"שורש ריבועי\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"סינוס\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"מונוכרום\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"הסרה\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"אוטומטי\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/hi_IN.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: hi\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Hindi\\n\"\n\"Language: hi_IN\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"ठीक है\"\n\nmsgid \"Cancel\"\nmsgstr \"कैन्सल करें\"\n\nmsgid \"Open\"\nmsgstr \"खोलें\"\n\nmsgid \"Save\"\nmsgstr \"सेव करें\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"कृपया पुष्टि करें...\"\n\nmsgid \"File Name:\"\nmsgstr \"फ़ाइल नाम:\"\n\nmsgid \"Project Name:\"\nmsgstr \"प्रोजेक्ट नाम:\"\n\nmsgid \"Image Size\"\nmsgstr \"चित्र का आकार\"\n\nmsgid \"Canvas Size\"\nmsgstr \"कैनवास का आकार\"\n\nmsgid \"Frame Size\"\nmsgstr \"फ्रेम का आकार\"\n\nmsgid \"Size:\"\nmsgstr \"आकार\"\n\nmsgid \"Width:\"\nmsgstr \"चौड़ाई:\"\n\nmsgid \"Height:\"\nmsgstr \"लंबाई\"\n\nmsgid \"Center\"\nmsgstr \"मध्य\"\n\nmsgid \"File\"\nmsgstr \"फ़ाइल\"\n\nmsgid \"Edit\"\nmsgstr \"बदलाव करें\"\n\nmsgid \"Select\"\nmsgstr \"चुनें\"\n\nmsgid \"View\"\nmsgstr \"देखें\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"चित्र\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"प्रभाव\"\n\nmsgid \"Help\"\nmsgstr \"सहायता\"\n\nmsgid \"New\"\nmsgstr \"नया\"\n\nmsgid \"New...\"\nmsgstr \"नया...\"\n\nmsgid \"Open...\"\nmsgstr \"खोले...\"\n\nmsgid \"Save...\"\nmsgstr \"सेव करें\"\n\nmsgid \"Save as...\"\nmsgstr \"अन्य रूप मे सेव करें\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"इम्पोर्ट\"\n\nmsgid \"Export\"\nmsgstr \"एक्सपोर्ट\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"एक्सपोर्ट...\"\n\nmsgid \"Export as...\"\nmsgstr \"अन्य रूप में एक्सपोर्ट करें\"\n\nmsgid \"Export PNG...\"\nmsgstr \"PNG एक्सपोर्ट करें\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"अन्य रूप में PNG एक्सपोर्ट करें\"\n\nmsgid \"Quit\"\nmsgstr \"बंद करे\"\n\nmsgid \"Undo\"\nmsgstr \"पूर्ववत् करें\"\n\nmsgid \"Redo\"\nmsgstr \"पुनः करें\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"कॉपी करें\"\n\nmsgid \"Cut\"\nmsgstr \"काटें\"\n\nmsgid \"Paste\"\nmsgstr \"चिपकाएँ\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"मिटायें\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"नया ब्रश\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"पिक्सेल\"\n\nmsgid \"Percentage\"\nmsgstr \"प्रतिशत\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"साफ करें\"\n\nmsgid \"Invert\"\nmsgstr \"उल्टा\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"ग्रिड दिखाएं\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"मापक दिखाएँ\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"ऑटो\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/hr_HR.po",
    "content": "msgid \"\"\nmsgstr \"\"\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: hr\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Croatian\\n\"\n\"Language: hr_HR\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/hu_HU.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: hu\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Hungarian\\n\"\n\"Language: hu_HU\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"Ok\"\n\nmsgid \"Cancel\"\nmsgstr \"Mégse\"\n\nmsgid \"Open\"\nmsgstr \"Megnyitás\"\n\nmsgid \"Save\"\nmsgstr \"Mentés\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Kérlek, erősítsd meg...\"\n\nmsgid \"File Name:\"\nmsgstr \"Fájlnév:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Projekt neve:\"\n\nmsgid \"Image Size\"\nmsgstr \"Képméret\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Vászon mérete\"\n\nmsgid \"Frame Size\"\nmsgstr \"Keretméret\"\n\nmsgid \"Size:\"\nmsgstr \"Méret:\"\n\nmsgid \"Width:\"\nmsgstr \"Szélesség:\"\n\nmsgid \"Height:\"\nmsgstr \"Magasság:\"\n\nmsgid \"Center\"\nmsgstr \"Középre\"\n\nmsgid \"File\"\nmsgstr \"Fájl\"\n\nmsgid \"Edit\"\nmsgstr \"Szerkeszt\"\n\nmsgid \"Select\"\nmsgstr \"Kiválasztás\"\n\nmsgid \"View\"\nmsgstr \"Nézet\"\n\nmsgid \"Window\"\nmsgstr \"Ablak\"\n\nmsgid \"Image\"\nmsgstr \"Kép\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"Effektek\"\n\nmsgid \"Help\"\nmsgstr \"Súgó\"\n\nmsgid \"New\"\nmsgstr \"Új\"\n\nmsgid \"New...\"\nmsgstr \"Új...\"\n\nmsgid \"Open...\"\nmsgstr \"Megnyitás...\"\n\nmsgid \"Save...\"\nmsgstr \"Mentés...\"\n\nmsgid \"Save as...\"\nmsgstr \"Mentés másként...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"Importálás\"\n\nmsgid \"Export\"\nmsgstr \"Exportálás\"\n\nmsgid \"Overwrite\"\nmsgstr \"Felülírás\"\n\nmsgid \"Export...\"\nmsgstr \"Exportálás...\"\n\nmsgid \"Export as...\"\nmsgstr \"Exportálás másként...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Exportálás PNG-ként...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"PNG Exportálása mint...\"\n\nmsgid \"Quit\"\nmsgstr \"Kilépés\"\n\nmsgid \"Undo\"\nmsgstr \"Visszavonás\"\n\nmsgid \"Redo\"\nmsgstr \"Mégis\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"Másolás\"\n\nmsgid \"Cut\"\nmsgstr \"Kivágás\"\n\nmsgid \"Paste\"\nmsgstr \"Beillesztés\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Beillesztés a helyére\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"Törlés\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"Új ecset\"\n\nmsgid \"Scale Image\"\nmsgstr \"Kép átméretezése\"\n\nmsgid \"Pixels\"\nmsgstr \"Pixelek\"\n\nmsgid \"Percentage\"\nmsgstr \"Százalék\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Vászon átméretezése\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Kép forgatása\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Tűréshatár:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"Törlés\"\n\nmsgid \"Invert\"\nmsgstr \"Invertálás\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Vízszintes tükrözés\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Függőleges tükrözés\"\n\nmsgid \"Preferences\"\nmsgstr \"Beállítások\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Csempe mód\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Lap elrendezés\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Előnézet\"\n\nmsgid \"Add\"\nmsgstr \"Hozzáadás\"\n\nmsgid \"Add Layout\"\nmsgstr \"Elrendezés hozzáadása\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"Szélesvászon\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Magasképernyő\"\n\nmsgid \"Mirror View\"\nmsgstr \"Tükör Nézet\"\n\nmsgid \"Show Grid\"\nmsgstr \"Rács megjelenítése\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Vonalzók megjelenítése\"\n\nmsgid \"Show Guides\"\nmsgstr \"Útmutatók megjelenítése\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Animáció idővonal megjelenítése\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Zen mód\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Teljes képernyős mód\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Kitöltés színnel:\"\n\nmsgid \"Open a File\"\nmsgstr \"Fájl megnyitása\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Fájl(ok) megnyitása\"\n\nmsgid \"Import Options\"\nmsgstr \"Importálás beállításai\"\n\nmsgid \"Import as:\"\nmsgstr \"Importálás másként:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"Utoljára megnyitott projektek\"\n\nmsgid \"New project\"\nmsgstr \"Új projekt\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Képsorozat (új réteg)\"\n\nmsgid \"New frame\"\nmsgstr \"Új képkocka\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"Új réteg\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"Új paletta\"\n\nmsgid \"New brush\"\nmsgstr \"Új ecset\"\n\nmsgid \"New pattern\"\nmsgstr \"Új minta\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Vízszintes képkockák:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Függőleges képkockák:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"Kezdő képkocka:\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"Ecset típus:\"\n\nmsgid \"File brush\"\nmsgstr \"Fájl ecset\"\n\nmsgid \"Project brush\"\nmsgstr \"Projekt ecset\"\n\nmsgid \"Random brush\"\nmsgstr \"Véletlenszerű ecset\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Kép mentése mint .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Kép exportálása mint .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Kép exportálása\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Fájl létezik, fölülírja?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Exportálás folyamatban...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Nem lehet megnyitni %s fájlt\\n\"\n\"Error kód: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"Képkocka\"\n\nmsgid \"Frames:\"\nmsgstr \"Képkockák:\"\n\nmsgid \"All Frames\"\nmsgstr \"Összes Képkocka\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Képsorozat\"\n\nmsgid \"Animation\"\nmsgstr \"Animáció\"\n\nmsgid \"Preview:\"\nmsgstr \"Előnézet:\"\n\nmsgid \"Frame:\"\nmsgstr \"Képkocka:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Irány:\"\n\nmsgid \"Browse\"\nmsgstr \"Tallózás\"\n\nmsgid \"Resize:\"\nmsgstr \"Átméretezés:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Exportálás megszakítása\"\n\nmsgid \"Alert!\"\nmsgstr \"Figyelmeztetés!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Jelenlegi mappa kiválasztása\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Könyvtár megnyitása\"\n\nmsgid \"Background:\"\nmsgstr \"Háttér:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"Rétegek:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Aktív rétegek\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"Irány:\"\n\nmsgid \"Forward\"\nmsgstr \"Előre\"\n\nmsgid \"Backwards\"\nmsgstr \"Visszafelé\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Ping-Pong\"\n\nmsgid \"Columns\"\nmsgstr \"Oszlopok\"\n\nmsgid \"Columns:\"\nmsgstr \"Oszlopok:\"\n\nmsgid \"Rows\"\nmsgstr \"Sorok\"\n\nmsgid \"Rows:\"\nmsgstr \"Sorok:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"Útvonal:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Könyvtárak és fájlok:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Mappa létrehozása\"\n\nmsgid \"File:\"\nmsgstr \"Fájl:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpoláció:\"\n\nmsgid \"Nearest\"\nmsgstr \"Legközelebbi\"\n\nmsgid \"Bilinear\"\nmsgstr \"Bilineáris\"\n\nmsgid \"Cubic\"\nmsgstr \"Cubic\"\n\nmsgid \"Trilinear\"\nmsgstr \"Trilineáris\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"Általános\"\n\nmsgid \"Startup\"\nmsgstr \"Indítás\"\n\nmsgid \"Language\"\nmsgstr \"Nyelv\"\n\nmsgid \"Interface\"\nmsgstr \"Felhasználói felület\"\n\nmsgid \"Themes\"\nmsgstr \"Témák\"\n\nmsgid \"Canvas\"\nmsgstr \"Vászon\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"Kijelölés\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Gyorsbillentyűk\"\n\nmsgid \"Backup\"\nmsgstr \"Biztonsági mentés\"\n\nmsgid \"Performance\"\nmsgstr \"Teljesítmény\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"Indikátorok\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"Bekapcsolva\"\n\nmsgid \"Restore default value\"\nmsgstr \"Alapértékek visszaállítása\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Sima közelítés\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Hozzáad simább átmenettet közelítéskor vagy távolításkor\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Rajztábla nyomásérzékelés:\"\n\nmsgid \"None\"\nmsgstr \"Nincs\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Befolyásolja a ecset alfaját\"\n\nmsgid \"Color:\"\nmsgstr \"Szín:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Segítő szín:\"\n\nmsgid \"System Language\"\nmsgstr \"Rendszer nyelv\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"Sötét\"\n\nmsgid \"Gray\"\nmsgstr \"Szürke\"\n\nmsgid \"Blue\"\nmsgstr \"Kék\"\n\nmsgid \"Caramel\"\nmsgstr \"Krémszín\"\n\nmsgid \"Light\"\nmsgstr \"Világos\"\n\nmsgid \"Purple\"\nmsgstr \"Lila\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"Téma\"\n\nmsgid \"Buttons\"\nmsgstr \"Gombok\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"Ikon színe:\"\n\nmsgid \"Background\"\nmsgstr \"Háttér\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"Háttér színe:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"Kicsi\"\n\nmsgid \"Big\"\nmsgstr \"Nagy\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"Kiválasztott cellák\"\n\nmsgid \"Current cel\"\nmsgstr \"Jelenlegi cella\"\n\nmsgid \"Current frame\"\nmsgstr \"Jelenlegi képkocka\"\n\nmsgid \"All frames\"\nmsgstr \"Összes képkocka\"\n\nmsgid \"All projects\"\nmsgstr \"Minden projekt\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Színek invertálása\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"A piros csatorna módosítása\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"A zöld csatorna módosítása\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"A kék csatorna módosítása\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"A alfa csatorna módosítása\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Kifakítás\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Körvonal\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"Színátmenet\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"Típus:\"\n\nmsgid \"Angle:\"\nmsgstr \"Szög:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Színárnyalat/Telítettség/Érték beállítása\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"HSV Beállítása\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Színárnyalat:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Telítettség:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Érték:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"Alkamaz\"\n\nmsgid \"Diagonal\"\nmsgstr \"Átló\"\n\nmsgid \"Place inside image\"\nmsgstr \"Helyezze be a képet\"\n\nmsgid \"Thickness:\"\nmsgstr \"Vastagság:\"\n\nmsgid \"Colors:\"\nmsgstr \"Színek:\"\n\nmsgid \"Steps:\"\nmsgstr \"Lépések:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Üdvözlőképernyő megnyitása\"\n\nmsgid \"Online Docs\"\nmsgstr \"Online dokumentumok\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Hibakövető\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"Változtatások\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"A Pixelorama-ról\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - Pixelate your dreams!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Fejleszette: Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-jelenleg készítette Orama Interactive és közreműködők\"\n\nmsgid \"Website\"\nmsgstr \"Weboldal\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"Támogatás\"\n\nmsgid \"Developers\"\nmsgstr \"Fejlesztők\"\n\nmsgid \"Contributors\"\nmsgstr \"Közreműködők\"\n\nmsgid \"Donors\"\nmsgstr \"Támogatók\"\n\nmsgid \"Translators\"\nmsgstr \"Fordítók\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"Angol\"\n\nmsgid \"Greek\"\nmsgstr \"Görög\"\n\nmsgid \"French\"\nmsgstr \"Francia\"\n\nmsgid \"German\"\nmsgstr \"Német\"\n\nmsgid \"Polish\"\nmsgstr \"Lengyel\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Brazíliai Portugál\"\n\nmsgid \"Russian\"\nmsgstr \"Orosz\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Kínai egyszerűsített\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Kínai hagyományos\"\n\nmsgid \"Italian\"\nmsgstr \"Olasz\"\n\nmsgid \"Latvian\"\nmsgstr \"Lett\"\n\nmsgid \"Spanish\"\nmsgstr \"Spanyol\"\n\nmsgid \"Catalan\"\nmsgstr \"Katalán\"\n\nmsgid \"Esperanto\"\nmsgstr \"Eszperantó\"\n\nmsgid \"Indonesian\"\nmsgstr \"Indonéz\"\n\nmsgid \"Czech\"\nmsgstr \"Cseh\"\n\nmsgid \"Arabic\"\nmsgstr \"Arab\"\n\nmsgid \"Turkish\"\nmsgstr \"Török\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Norvég Bokmål\"\n\nmsgid \"Korean\"\nmsgstr \"Koreai\"\n\nmsgid \"Hungarian\"\nmsgstr \"Magyar\"\n\nmsgid \"Romanian\"\nmsgstr \"Román\"\n\nmsgid \"Japanese\"\nmsgstr \"Japán\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Ukrán\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"Felhasználóifelület-dizájner\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Képet készítette: %s\"\n\nmsgid \"untitled\"\nmsgstr \"névtelen\"\n\nmsgid \"imported\"\nmsgstr \"importált\"\n\nmsgid \"copy\"\nmsgstr \"másolat\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Biztos vagy benne, hogy kilépsz Pixeloramából?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Nem mentett kép\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Nem mentett változtatások vannak. Ha folytatja, az elért haladás elveszik.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Mentés mielőtt kilépsz?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Mentés és kilépés\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Kilépés mentés nélkül\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Nagyítás\\n\\n\"\n\"%s a bal egérgombbal\\n\"\n\"%s a jobb egérgombbal\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Ceruza\\n\\n\"\n\"%s a bal egérgombbal\\n\"\n\"%s a jobb egérgombbal\\n\\n\"\n\"Tartsa lenyomva a %s vonal húzásához\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Radír\\n\\n\"\n\"%s a bal egérgombbal\\n\"\n\"%s a jobb egérgombbal\\n\\n\"\n\"Tartsa lenyomva a %s vonal húzásához\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Vödör\\n\\n\"\n\"%s a bal egérgombbal\\n\"\n\"%s a jobb egérgombbal\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"Téglalap\"\n\nmsgid \"Ellipse\"\nmsgstr \"Ellipszis\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Szín kiválasztása a bal eszközhöz\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Szín kiválasztása a jobb eszközhöz\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Színek visszaállítása(fekete bal, fehér jobb)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"Bal eszköz\"\n\nmsgid \"Right tool\"\nmsgstr \"Jobb eszköz\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Bal pixel indikátor\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Rajzolás közben a bal egér pixel jelzőt vagy ecset megjelenítése a vásznon\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Jobb pixel indikátor\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Rajzolás közben a jobb egér pixel jelzőt vagy ecset megjelenítése a vásznon\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Bal eszközikon mutatása\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Megjeleníti a kiválasztott bal eszköz ikont a vásznon kurzor mellett\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Jobb eszközikon mutatása\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Megjeleníti a kiválasztott jobb eszköz ikont a vásznon kurzor mellett\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"Útmutatók\"\n\nmsgid \"Guides color:\"\nmsgstr \"Útmutatók színe:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"A vászonon megjelenített útmutatók színe\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"Rács\"\n\nmsgid \"Grid type:\"\nmsgstr \"Rács típusa:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Beállítja a rács típusát négyzetháló, izometrikus vagy mindkettő között\"\n\nmsgid \"Rectangular\"\nmsgstr \"Négyszögletű\"\n\nmsgid \"Isometric\"\nmsgstr \"Izometrikus\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"Mind\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"Rács színe:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"A rács színe\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Pixel Rács\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Pixelrács színe:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"A pixelrács színe\"\n\nmsgid \"Transparency\"\nmsgstr \"Átlátszóság\"\n\nmsgid \"Checker size:\"\nmsgstr \"Kockás háttér mérete:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"A kockás háttér átlátszósága\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Kockás háttér színe 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"Az átlátszó kockás háttér első színe\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Kockás háttér színe 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"Az átlátszó kockás háttér második színe\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"Az átlátszó négyzetháló követi a vászon mozgását\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"Az átlátszó négyzetháló követi a vászon nagyítási szintjét\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"Szegély szín 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Szegély szín 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Csak az egyedi beállítások módosíthatók\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"Applikáció FPS limitjének beállítása:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"Ecset:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Ecset kiválasztása\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Pixel ecset\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Kör ecset\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Kitöltött kör ecset\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"Egyedi ecset\"\n\nmsgid \"Brush size:\"\nmsgstr \"Ecsetméret:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Keverés helyett felülírja a színt. Ez az opció csak nem teljesen átlátszatlan színekkel érvényes\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Pixel Perfect\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Alakzat kitöltése\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: Szín a ecsetből, 100: a jelenleg kiválasztott szín\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"Kitöltés ezzel:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Minta\"\n\nmsgid \"Offset\"\nmsgstr \"Eltolás\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Egyszerű árnyékolás\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Színárnyalat-váltás\"\n\nmsgid \"Lighten\"\nmsgstr \"Világosítás\"\n\nmsgid \"Darken\"\nmsgstr \"Sötétítés\"\n\nmsgid \"Amount:\"\nmsgstr \"Összeg:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Világosítás/Sötétítés összeg\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"Válasszon:\"\n\nmsgid \"Left Color\"\nmsgstr \"Bal szín\"\n\nmsgid \"Right Color\"\nmsgstr \"Jobb szín\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"Mód:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Nagyítás\"\n\nmsgid \"Zoom out\"\nmsgstr \"Kicsinyítés\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"Beállítások:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"Kerethez illesztés\"\n\nmsgid \"100% Zoom\"\nmsgstr \"100%-ig Közelítés\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"Tükrözés\"\n\nmsgid \"Horizontal\"\nmsgstr \"Vízszintes\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Vízszintesen tükrözött rajzolás engedélyezése\"\n\nmsgid \"Vertical\"\nmsgstr \"Függőleges\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Függőlegesen tükrözött rajzolás engedélyezése\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"Jelenlegi képkocka:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Hagymabőr be/ki kapcsolása\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"Hány képkocka legyen másodpercenként az animáció előnézete?\\n\"\n\"Minél több FPS, annál gyorsabb az animáció lejátszása.\"\n\nmsgid \"No loop\"\nmsgstr \"Nincs loop\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Bicikli loop\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Ping-pong loop\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Hagymabőr:\"\n\nmsgid \"Past Frames\"\nmsgstr \"Előző képkockák\"\n\nmsgid \"Future Frames\"\nmsgstr \"Következő képkockák\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Képkocka címkék módosítása\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Képkocka címke tulajdonságai\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Új képkocka címke hozzáadása\"\n\nmsgid \"Name:\"\nmsgstr \"Név:\"\n\nmsgid \"From:\"\nmsgstr \"Kezdet:\"\n\nmsgid \"To:\"\nmsgstr \"Eddig:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"Az animáció csak ugyanazon címkés képkockákat játssza le\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Címke %s (Képkocka %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Címke %s (Képkockák %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Ha ez ki van választva, akkor az animáció csak az azonos címkével ellátott képkockákat játssza le.\\n\"\n\"Ha nem, az animáció minden képkockát lejátszódik, figyelmen kívül hagyva a címkéket.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Új képkocka hozzáadása\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Képkocka törlése\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Képkocka klónozása\"\n\nmsgid \"Move Left\"\nmsgstr \"Mozgás balra\"\n\nmsgid \"Move Right\"\nmsgstr \"Mozgás jobbra\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"Képkocka tulajdonságai\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"Réteg\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"Rétegek\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Új réteg létrehozása\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Aktuális réteg eltávolítása\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Jelenlegi réteg felfelé mozgatása\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Jelenlegi réteg lefelé mozgatása\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Aktuális réteg klónozása\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Aktuális réteg egyesítése az alatta lévővel\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"Áttetszőség:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Réteg láthatóságának beállítása\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Réteg Bezárása/Kinyitása\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Képkocka: %s, Réteg: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"Paletta\"\n\nmsgid \"Palettes\"\nmsgstr \"Paletták\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Új paletta hozzáadása\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Jelenlegi paletta módosítása\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Paletta választása\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Visszavonás: Rajz\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Újra: Rajz\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Visszavonás: Méret\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Újra: Méret\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Visszavonás: Réteg hozzáadása\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Újra: Réteg hozzáadása\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Visszavonás: Réteg törlése\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Újra: Réteg törlése\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Visszavonás: Réteg Módosítása\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Újra: Réteg Módosítása\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Visszavonás: Rétegek sorrendjének cseréje\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Újra: Rétegek sorrendjének cseréje\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Visszavonás: Képkocka hozzáadása\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Újra: Képkocka hozzáadása\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Visszavonás: Képkocka törlése\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Újra: Képkocka törlése\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Visszavonás: Képkockák sorrendjének cseréje\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Újra: Képkockák sorrendjének cseréje\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Visszavonás: Egyedi ecset törlése\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Újra: Egyedi ecset törlése\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"Visszavonás: Képkocka címke módosítása\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"Újra: Képkocka címke módosítása\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"Visszavinás: Képkocka címke törlése\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"Újra: Képkocka címke törlése\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"Visszavonás: képkockák időtartalmának cseréje\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"Újra: képkockák időtartalmának cseréje\"\n\nmsgid \"Move Guide\"\nmsgstr \"Útmutató mozgatása\"\n\nmsgid \"File saved\"\nmsgstr \"Fájl elmentve\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"A fájl megnyitása nem sikerült. Hibakód %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"A fájl mentése nem sikerült. Hibakód %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Új üres paletta\"\n\nmsgid \"Import Palette\"\nmsgstr \"Paletta importálása\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Paletta készítése a mostani képből\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Paletta neve:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Szín neve:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"Használd a mostani bal & jobb színeket\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Létrehoz egy új és üres palettát?\"\n\nmsgid \"Error\"\nmsgstr \"Hiba\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Error: A palettának érvényes neve kell hogy legyen.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Érvénytelen palettafájl!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Paletta Szerkesztése\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"Színek megszerzése\"\n\nmsgid \"Patrons:\"\nmsgstr \"Támogatók:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"Szerzetnéd hogy a neved vagy a céged feltűnjön a felugró képernyőn?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Legyél Platinum Szponzor\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Legyél Arany Szponzor\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Legyél te is Támogató\"\n\nmsgid \"Don't show again\"\nmsgstr \"Ne mutasd többet\"\n\nmsgid \"Image Options\"\nmsgstr \"Képbeállítások\"\n\nmsgid \"Default width:\"\nmsgstr \"Alapértelmezett szélesség:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"Alapértelmezett szélessége az új képnek\"\n\nmsgid \"Default height:\"\nmsgstr \"Alapértelmezett magasság:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"Alapértelmezett magassága az új képnek\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Alapértelmezett kitöltő szín:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"Alapértelmezett háttérszíne az új képnek\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"Méretarány lezárása\"\n\nmsgid \"Portrait\"\nmsgstr \"Álló\"\n\nmsgid \"Landscape\"\nmsgstr \"Fekvő\"\n\nmsgid \"Templates:\"\nmsgstr \"Sablonok:\"\n\nmsgid \"Preset\"\nmsgstr \"Séma\"\n\nmsgid \"Preset:\"\nmsgstr \"Séma:\"\n\nmsgid \"Default\"\nmsgstr \"Alapértelmezett\"\n\nmsgid \"Custom\"\nmsgstr \"Egyéni\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Téglalap alakú kijelölés\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"Nagyít/kicsinyít\"\n\nmsgid \"Pan\"\nmsgstr \"Fordítás\"\n\nmsgid \"Color Picker\"\nmsgstr \"Színválasztó\"\n\nmsgid \"Pencil\"\nmsgstr \"Ceruza\"\n\nmsgid \"Eraser\"\nmsgstr \"Radír\"\n\nmsgid \"Bucket\"\nmsgstr \"Vödör\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Színek cserélése\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Parancsikon beállítása\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Nyomj meg egy gombot vagy gombkombinációt a Parancsikon beállításához\"\n\nmsgid \"Already assigned\"\nmsgstr \"Már hozzá van rendelve\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Bal eszköz:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Az eszköz már hozzá van rendelve a bal egérgombhoz\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Jobb eszköz:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Az eszköz már hozzá van rendelve a jobb egérgombhoz\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"Nem található az utolsó projektfájl.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"Nem található az utolsó projektfájl.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Még nem mentettél vagy nyitottál meg projektet Pixeloramában!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Utolsó projekt megnyitása\"\n\nmsgid \"Open last project...\"\nmsgstr \"Utolsó projekt megnyitása...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Utolsó projekt megnyitása indításkor\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Utolsó projektet megnyissa indításkor\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Automatikus mentés bekapcsolása\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Időköz az automatikus mentések között:\"\n\nmsgid \"minute(s)\"\nmsgstr \"perc(ek)\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"Bezárás\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"Biztonsági mentés újratöltve\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Jelenlegi paletta törlése\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"Tényleg törlöd ezt a palettát? (Ez nem visszavonható!)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Nem lehet több palettát eltávolítani!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Nem lehet eltávolítani a palettát, mert nem létezik!\"\n\nmsgid \"and\"\nmsgstr \"és\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Mozgassa a kijelölt keretet balra.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Mozgassa a kijelölt keretet jobbra.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"Megjegyzés:\"\n\nmsgid \"Empty\"\nmsgstr \"Üres\"\n\nmsgid \"From Current Palette\"\nmsgstr \"Jelenlegi palettából\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"Az aktuális képből\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"Új szín hozzáadása\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"Kiválasztott szín törlése\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"Palettanév megadása szükséges!\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Automatikus\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/id_ID.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: id\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Indonesian\\n\"\n\"Language: id_ID\\n\"\n\"PO-Revision-Date: 2025-11-25 16:54\\n\"\n\nmsgid \"OK\"\nmsgstr \"Iya\"\n\nmsgid \"Cancel\"\nmsgstr \"Batal\"\n\nmsgid \"Open\"\nmsgstr \"Buka\"\n\nmsgid \"Save\"\nmsgstr \"Simpan\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Mohon Konfirmasi...\"\n\nmsgid \"File Name:\"\nmsgstr \"Nama Berkas:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Nama Proyek:\"\n\nmsgid \"Image Size\"\nmsgstr \"Ukuran Gambar\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Ukuran Kanvas\"\n\nmsgid \"Frame Size\"\nmsgstr \"Ukuran Bingkai\"\n\nmsgid \"Size:\"\nmsgstr \"Ukuran:\"\n\nmsgid \"Width:\"\nmsgstr \"Lebar:\"\n\nmsgid \"Height:\"\nmsgstr \"Tinggi:\"\n\nmsgid \"Center\"\nmsgstr \"Tengah\"\n\nmsgid \"File\"\nmsgstr \"Berkas\"\n\nmsgid \"Edit\"\nmsgstr \"Sunting\"\n\nmsgid \"Select\"\nmsgstr \"Seleksi\"\n\nmsgid \"View\"\nmsgstr \"Tampilan\"\n\nmsgid \"Window\"\nmsgstr \"Jendela\"\n\nmsgid \"Image\"\nmsgstr \"Gambar\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"Proyek\"\n\nmsgid \"Effects\"\nmsgstr \"Efek\"\n\nmsgid \"Help\"\nmsgstr \"Bantuan\"\n\nmsgid \"New\"\nmsgstr \"Baru\"\n\nmsgid \"New...\"\nmsgstr \"Baru...\"\n\nmsgid \"Open...\"\nmsgstr \"Buka...\"\n\nmsgid \"Save...\"\nmsgstr \"Simpan...\"\n\nmsgid \"Save as...\"\nmsgstr \"Simpan sebagai...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"Sertakan gambar tercampur\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"Jika diaktifkan, bentuk akhir gambar tercampur disimpan menjadi pxo, pada tiap bingkai.\\n\"\n\"Berkas pxo akan lebih besar dan mampu diimpor dengan peranti lunak pihak ketiga\\n\"\n\"atau diekspor CLI. Membuka pxo di Pixelorama tidak perlu mengaktifkan opsi ini.\"\n\nmsgid \"Import\"\nmsgstr \"Impor\"\n\nmsgid \"Export\"\nmsgstr \"Ekspor\"\n\nmsgid \"Overwrite\"\nmsgstr \"Timpa baru\"\n\nmsgid \"Export...\"\nmsgstr \"Ekspor...\"\n\nmsgid \"Export as...\"\nmsgstr \"Ekspor sebagai...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Ekspor PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Ekspor PNG sebagai...\"\n\nmsgid \"Quit\"\nmsgstr \"Keluar\"\n\nmsgid \"Undo\"\nmsgstr \"Urungkan\"\n\nmsgid \"Redo\"\nmsgstr \"Ulangi\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"Urungkan Riwayat\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"Keadaan awal\"\n\nmsgid \"Copy\"\nmsgstr \"Salin\"\n\nmsgid \"Cut\"\nmsgstr \"Potong\"\n\nmsgid \"Paste\"\nmsgstr \"Tempel\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Tempel di Tempat\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"Tempel isi papan klip\"\n\nmsgid \"Delete\"\nmsgstr \"Hapus\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Hapus Permanen\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Ke Tempat Sampah\"\n\nmsgid \"New Brush\"\nmsgstr \"Kuas Baru\"\n\nmsgid \"Scale Image\"\nmsgstr \"Besar/kecilkan gambar\"\n\nmsgid \"Pixels\"\nmsgstr \"Piksel\"\n\nmsgid \"Percentage\"\nmsgstr \"Persentase\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"Mode warna:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"Mode Warna\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"Terindeks\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"Pangkas ke Seleksi\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"Pangkas ke Isi\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Ubah Ukuran Kanvas\"\n\nmsgid \"Offset Image\"\nmsgstr \"Offset Gambar\"\n\nmsgid \"Offset:\"\nmsgstr \"Offset:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"Balut sekitar:\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"Tengahkan Bingkai\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Putar Gambar\"\n\nmsgid \"Pivot x:\"\nmsgstr \"Paksi x:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"Paksi y:\"\n\nmsgid \"Smear options:\"\nmsgstr \"Opsi melumur:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Toleransi:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Sudut inisial:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"Balut Guratan\"\n\nmsgid \"Clear\"\nmsgstr \"Kosongkan\"\n\nmsgid \"Invert\"\nmsgstr \"Terbalikkan\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"Pilih area cel\"\n\nmsgid \"Modify\"\nmsgstr \"Ubah\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"Lebarkan\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"Lebarkan Seleksi\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"Susutkan\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"Susutkan Seleksi\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"Tepian\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"Seleksi Tepian\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"Wajik\"\n\nmsgid \"Circle\"\nmsgstr \"Lingkaran\"\n\nmsgid \"Square\"\nmsgstr \"Persegi\"\n\nmsgid \"Grayscale View\"\nmsgstr \"Tampilan Skala Kelabu\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Cerminkan Gambar\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Dibalik Mendatar\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Dibalik Menegak\"\n\nmsgid \"Preferences\"\nmsgstr \"Preferensi\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"Pelengkap\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"Buram\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"Dimuat\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"Tengahkan Kanvas\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Mode Petak\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"Offset Mode Petak\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"Dasar-X:\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"Dasar-Y:\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"Masking:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Atur ulang\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"Atur ulang %s\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"Gunakan Bingkai Ini\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Atur ulang Mask\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Kelegapan Jendela\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"Kelegapan jendela tidak bisa di mode layar penuh.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Tata Letak Panel\"\n\nmsgid \"Panels\"\nmsgstr \"Panel\"\n\nmsgid \"Layouts\"\nmsgstr \"Tata letak\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Panel Bisa Dilepas\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"Pisah Panel\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Atur Tata Letak\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Pratayang\"\n\nmsgid \"Add\"\nmsgstr \"Tambah\"\n\nmsgid \"Add Layout\"\nmsgstr \"Tambah Tata Letak\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"Hapus %s\"\n\nmsgid \"Copy from\"\nmsgstr \"Salin dari\"\n\nmsgid \"Rename\"\nmsgstr \"Ubah Nama\"\n\nmsgid \"Rename Layout\"\nmsgstr \"Ubah Nama Tata Letak\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"Tata letak ini\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Apakah yakin ingin menghapus tata letak ini?\"\n\nmsgid \"Widescreen\"\nmsgstr \"Layar lebar\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Layar tinggi\"\n\nmsgid \"Mirror View\"\nmsgstr \"Cerminkan Tampilan\"\n\nmsgid \"Show Grid\"\nmsgstr \"Tampilkan Kisi\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Tampilkan Kisi Piksel\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Tampilkan Penggaris\"\n\nmsgid \"Show Guides\"\nmsgstr \"Tampilkan Panduan\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"Tampilkan Panduan Tetikus\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"Tampilkan Gambar Rujukan\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"Munculkan Efek Lapisan\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"Cantol Ke\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"Cantol ke Batas Kisi Persegi Panjang\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"Cantol ke Pusat Kisi Persegi Panjang\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"Cantol ke Panduan\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"Cantol ke Panduan Sudut Pandang\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Tampilkan Bingkai Animasi\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Mode Zen\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Mode Layar Penuh\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Isi dengan warna:\"\n\nmsgid \"Open a File\"\nmsgstr \"Buka berkas\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Buka berkas-berkas\"\n\nmsgid \"Import Options\"\nmsgstr \"Pengaturan Impor\"\n\nmsgid \"Import as:\"\nmsgstr \"Impor sebagai:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Terapkan ke semua\"\n\nmsgid \"Recent projects\"\nmsgstr \"Proyek sebelumnya\"\n\nmsgid \"New project\"\nmsgstr \"Proyek baru\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"Lembar sprite (proyek baru)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Lembar sprite (lapisan baru)\"\n\nmsgid \"New frame\"\nmsgstr \"Bingkai Baru\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"Timpa cel\"\n\nmsgid \"New layer\"\nmsgstr \"Lapisan baru\"\n\nmsgid \"New reference image\"\nmsgstr \"Gambar rujukan baru\"\n\nmsgid \"New palette\"\nmsgstr \"Palet baru\"\n\nmsgid \"New brush\"\nmsgstr \"Kuas baru\"\n\nmsgid \"New pattern\"\nmsgstr \"Pola baru\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Bingkai mendatar:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Bingkai menegak:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"Iris Rapih\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"Ambang batas:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"Gambar yang satu sisinya lebih kecil dari nilai di sini akan melewati ambang batas\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"Jarak peleburan:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"Gambar yang melewati ambang batas akan dileburkan menjadi gambar lebih besar, jika masih sejarak ini\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"Muat Ulang\"\n\nmsgid \"Start frame:\"\nmsgstr \"Bingkai awal:\"\n\nmsgid \"End frame:\"\nmsgstr \"Bingkai akhir:\"\n\nmsgid \"At frame:\"\nmsgstr \"Di bingkai:\"\n\nmsgid \"At layer:\"\nmsgstr \"Di lapisan:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Tipe kuas:\"\n\nmsgid \"File brush\"\nmsgstr \"Kuas berkas\"\n\nmsgid \"Project brush\"\nmsgstr \"Kuas proyek\"\n\nmsgid \"Random brush\"\nmsgstr \"Kuas acak\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Simpan \\\"sprite\\\" sebagai .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Ekspor \\\"sprite\\\" sebagai .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Ekspor \\\"sprite\\\"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Ada berkasnya. Timpa saja?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"Berkas tersebut sudah ada. Apakah ingin ditimpa saja?\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"Jalur direktori tidak absah!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"Nama berkas tidak absah!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"Jalur direktori dan nama berkas tidak absah!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Sedang mengekspor...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"Tak bisa memuat '%s'.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Tak bisa memuat '%s'.\\n\"\n\"Kode galat: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"Tak bisa memuat '%s'.\\n\"\n\"Ini bukan berkas palet yang absah.\"\n\nmsgid \"Frame\"\nmsgstr \"Bingkai\"\n\nmsgid \"Frames:\"\nmsgstr \"Bingkai:\"\n\nmsgid \"All Frames\"\nmsgstr \"Semua Bingkai\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Lembar sprite\"\n\nmsgid \"Animation\"\nmsgstr \"Animasi\"\n\nmsgid \"Preview:\"\nmsgstr \"Pratayang:\"\n\nmsgid \"Frame:\"\nmsgstr \"Bingkai:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Orientasi:\"\n\nmsgid \"Browse\"\nmsgstr \"Telusur\"\n\nmsgid \"Resize:\"\nmsgstr \"Ubah ukuran:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"Mutu:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Batalkan Ekspor\"\n\nmsgid \"Alert!\"\nmsgstr \"Peringatan!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Pilih Folder Saat Ini\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Buka direktori\"\n\nmsgid \"Background:\"\nmsgstr \"Latar belakang:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"Bingkai yang dipilih\"\n\nmsgid \"Layers:\"\nmsgstr \"Lapisan:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Lapisan tampak\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"Lapisan yang dipilih\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"Lapisan piksel:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"Lapisan kelompok:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"Lapisan 3D:\"\n\nmsgid \"Direction:\"\nmsgstr \"Arah:\"\n\nmsgid \"Forward\"\nmsgstr \"Maju\"\n\nmsgid \"Backwards\"\nmsgstr \"Mundur\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Bolak-Balik\"\n\nmsgid \"Columns\"\nmsgstr \"Kolom\"\n\nmsgid \"Columns:\"\nmsgstr \"Kolom:\"\n\nmsgid \"Rows\"\nmsgstr \"Baris\"\n\nmsgid \"Rows:\"\nmsgstr \"Baris:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"Tag sesuai kolom\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"Tag sesuai baris\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"Ukuran saat ekspor:\"\n\nmsgid \"Save a File\"\nmsgstr \"Simpan Berkas\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"Ke folder sebelumnya.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"Ke folder berikutnya.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"Ke direktori utama.\"\n\nmsgid \"Path:\"\nmsgstr \"Jalur:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"Muat ulang berkas.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"Menampil/hilangkan berkas sembunyi.\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Direktori & Berkas:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Buat Folder\"\n\nmsgid \"File:\"\nmsgstr \"Berkas:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"Semua Berkas\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"Ekstensi Terkait\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"Proyek Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"Gambar PNG\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"Gambar BMP\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"Gambar Radiance HDR\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"Gambar JPEG\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"Gambar SVG\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"Gambar TGA\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"Gambar WebP\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"Proyek OpenRaster\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"Proyek Aseprite\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"Proyek Krita\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"Proyek Piskel\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"Proyek Photoshop\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"Palet Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"Palet GIMP\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"Opsi lanjutan\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolasi:\"\n\nmsgid \"Nearest\"\nmsgstr \"\\\"Nearest\\\"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\\\"Bilinear\\\"\"\n\nmsgid \"Cubic\"\nmsgstr \"\\\"Cubic\\\"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\\\"Trilinear\\\"\"\n\nmsgid \"Constant\"\nmsgstr \"Tetapan\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"Ruang warna\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"sRGB linear\"\n\nmsgid \"General\"\nmsgstr \"Umum\"\n\nmsgid \"Startup\"\nmsgstr \"Saat Mulai\"\n\nmsgid \"Language\"\nmsgstr \"Bahasa\"\n\nmsgid \"Interface\"\nmsgstr \"Antarmuka\"\n\nmsgid \"Themes\"\nmsgstr \"Tema\"\n\nmsgid \"Canvas\"\nmsgstr \"Kanvas\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"Garis waktu\"\n\nmsgid \"Selection\"\nmsgstr \"Seleksi\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Pintasan\"\n\nmsgid \"Backup\"\nmsgstr \"Cadangan\"\n\nmsgid \"Performance\"\nmsgstr \"Kinerja\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"Pengandar\"\n\nmsgid \"Extensions\"\nmsgstr \"Ekstensi\"\n\nmsgid \"Cursors\"\nmsgstr \"Kursor\"\n\nmsgid \"Indicators\"\nmsgstr \"Indikator\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"Pixelorama harus dibuka ulang agar pengaturan ini berjalan.\"\n\nmsgid \"On\"\nmsgstr \"Nyala\"\n\nmsgid \"Restore default value\"\nmsgstr \"Kembalikan nilai awal\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Keker Mulus\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Memperhalus gerakan saat mengeker dekat atau jauh\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"Keker Integer\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"Membatasi nilai ke kelipatan bilangan bulat 100%\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Kepekaan tekanan tablet:\"\n\nmsgid \"None\"\nmsgstr \"Tak ada\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Efek Kelegapan Kuas\"\n\nmsgid \"Color:\"\nmsgstr \"Warna:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Warna panduan:\"\n\nmsgid \"System Language\"\nmsgstr \"Bahasa Sistem\"\n\nmsgid \"Display scale:\"\nmsgstr \"Skala tampilan:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"Font:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"Ukuran font:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"Orientasi layar:\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Redupkan antarmuka pada sembulan\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"Tampilkan label notif\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"Gunakan dialog berkas biasa\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"Saat ini dinyalakan, sistem operasi akan menggunakan dialog berkas biasa, dan bukan yang kustom Pixelorama.\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"Mode satu jendela\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"Saat ini dinyalakan, subjendela Pixelorama akan disematkan ke jendela utama, jika tidak maka dialog akan pisah sendiri-sendiri.\"\n\nmsgid \"Dark\"\nmsgstr \"Gelap\"\n\nmsgid \"Gray\"\nmsgstr \"Abu-abu\"\n\nmsgid \"Blue\"\nmsgstr \"Biru\"\n\nmsgid \"Caramel\"\nmsgstr \"Karamel\"\n\nmsgid \"Light\"\nmsgstr \"Terang\"\n\nmsgid \"Purple\"\nmsgstr \"Ungu\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"Mawar\"\n\nmsgid \"Theme\"\nmsgstr \"Tema\"\n\nmsgid \"Buttons\"\nmsgstr \"Tombol\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Warna ikon dari:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Warna ikon:\"\n\nmsgid \"Background\"\nmsgstr \"Latar belakang\"\n\nmsgid \"Background color from:\"\nmsgstr \"Warna latar belakang dari:\"\n\nmsgid \"Background color:\"\nmsgstr \"Warna latar belakang:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"Mode alat segerak\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"Jika ini diaktifkan, tetikus kanan akan mengaktifkan alat yang sama dengan tetikus kiri.\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"Berbagi opsi antara alat di kiri dan di kanan\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"Jika ini diaktifkan, opsi alat di kiri dan di kanan akan disinkronkan.\\n\"\n\"Contoh, ada dua alat berbagi ukuran kuas, jika mengubah opsi di salah satu alat maka yang satunya juga berubah.\"\n\nmsgid \"Left tool color:\"\nmsgstr \"Warna alat di kiri:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"Warna alat di kanan:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Ukuran tombol alat:\"\n\nmsgid \"Small\"\nmsgstr \"Kecil\"\n\nmsgid \"Big\"\nmsgstr \"Besar\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Pengaruhi seleksi saja\"\n\nmsgid \"Selected cels\"\nmsgstr \"Cel yang dipilih\"\n\nmsgid \"Current cel\"\nmsgstr \"Cel saat ini\"\n\nmsgid \"Current frame\"\nmsgstr \"Bingkai saat ini\"\n\nmsgid \"All frames\"\nmsgstr \"Semua bingkai\"\n\nmsgid \"All projects\"\nmsgstr \"Semua proyek\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Terbalikkan warna\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Ubah Saluran Merah\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Ubah Saluran Hijau\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Ubah Saluran Biru\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Ubah Saluran Alfa\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Desaturasi\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Garis luar\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Bayangan Jatuh\"\n\nmsgid \"Offset X:\"\nmsgstr \"Offset X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"Offset Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"Warna bayangan:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"Buram Gauss\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"Tipe buram:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"Jumlah buram:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"Jari-jari buram:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"Arah buram:\"\n\nmsgid \"Gradient\"\nmsgstr \"Gradien\"\n\nmsgid \"Gradient Map\"\nmsgstr \"Peta Gradien\"\n\nmsgid \"Interpolation\"\nmsgstr \"Interpolasi\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"Terbalikkan\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"Sebar ratakan titik\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"Bagi menjadi sama rata\"\n\nmsgid \"Parts:\"\nmsgstr \"Bagian:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"Tambah titik di akhir\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"Jika ini diaktifkan, titik yang terakhir akan ditambah ke ujung gradien.\\n\"\n\"Nonaktifkan jika ingin interpolasi gradiennya tetap konstan, sehingga warna yang terakhir juga akan disertakan.\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"Simpan ke praatur\"\n\nmsgid \"Shape:\"\nmsgstr \"Bentuk:\"\n\nmsgid \"Linear\"\nmsgstr \"\\\"Linear\\\"\"\n\nmsgid \"Radial\"\nmsgstr \"Radial\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"Ulangi:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"Ulangi\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"Cerminkan\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"Potong Pendek\"\n\nmsgid \"Transition size:\"\nmsgstr \"Ukuran peralihan:\"\n\nmsgid \"Center:\"\nmsgstr \"Tengah:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"Pola bauran galat:\"\n\nmsgid \"Type:\"\nmsgstr \"Tipe:\"\n\nmsgid \"Angle:\"\nmsgstr \"Sudut:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Sesuaikan Rona/Saturasi/Nilai\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"Sesuaikan HSV\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Rona:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Saturasi:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Nilai:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"Sesuaikan Kecerahan/Kontras\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"Kecerahan:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"Kontras:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"Nilai merah:\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"Nilai hijau:\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"Nilai biru:\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"Semburat:\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"Faktor semburat:\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"Lengkung Warna\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"Saluran RGB:\"\n\nmsgid \"Red\"\nmsgstr \"Merah\"\n\nmsgid \"Green\"\nmsgstr \"Hijau\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"Nilai\"\n\nmsgid \"Presets\"\nmsgstr \"Praatur\"\n\nmsgid \"Apply\"\nmsgstr \"Terapkan\"\n\nmsgid \"Diagonal\"\nmsgstr \"Diagonal\"\n\nmsgid \"Place inside image\"\nmsgstr \"Taruh dalam gambar\"\n\nmsgid \"Thickness:\"\nmsgstr \"Ketebalan:\"\n\nmsgid \"Colors:\"\nmsgstr \"Warna:\"\n\nmsgid \"Steps:\"\nmsgstr \"Step:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"Paletkan\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"Pikselkan\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"Posterisasi\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"Tingkat posterisasi:\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"Intensitas baur galat:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Tampilkan \\\"Splash Screen\\\"\"\n\nmsgid \"Online Docs\"\nmsgstr \"Dokumen Daring\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Pelacak Isu\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"Pulihkan Cadangan\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"Sesi sebelumnya\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"Pencet dua kali untuk memuat seluruh sesi / proyek tertentu.\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"Sesi\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"Proyek\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"(Sesi Saat Ini)\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"Buka Folder Data Penyunting\"\n\nmsgid \"Changelog\"\nmsgstr \"Log Perubahan\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Tentang Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"Dukung Pengembangan Pixelorama\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - Pikselkan mimpimu!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Dikembangkan oleh Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-kini; oleh Orama Interactive dan penyumbangsih\"\n\nmsgid \"Website\"\nmsgstr \"Situs web\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"Kode Sumber\"\n\nmsgid \"Donate\"\nmsgstr \"Menyumbang\"\n\nmsgid \"Developers\"\nmsgstr \"Pengembang\"\n\nmsgid \"Contributors\"\nmsgstr \"Penyumbangsih\"\n\nmsgid \"Donors\"\nmsgstr \"Penyumbang\"\n\nmsgid \"Translators\"\nmsgstr \"Penerjemah\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Lisensi\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"Lisensi\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"Lisensi Godot\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"Lisensi pihak ketiga\"\n\nmsgid \"English\"\nmsgstr \"Bhs. Inggris\"\n\nmsgid \"Greek\"\nmsgstr \"Bhs. Yunani\"\n\nmsgid \"French\"\nmsgstr \"Bhs. Prancis\"\n\nmsgid \"German\"\nmsgstr \"Bhs. Jerman\"\n\nmsgid \"Polish\"\nmsgstr \"Bhs. Polski\"\n\nmsgid \"Portuguese\"\nmsgstr \"Bhs. Portugis\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Bhs. Portugis (Brasil)\"\n\nmsgid \"Russian\"\nmsgstr \"Bhs. Rusia\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Bhs. Cina (Sederhana)\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Bhs. Cina (Tradisional)\"\n\nmsgid \"Italian\"\nmsgstr \"Bhs. Italia\"\n\nmsgid \"Latvian\"\nmsgstr \"Bhs. Latvia\"\n\nmsgid \"Spanish\"\nmsgstr \"Bhs. Spanyol\"\n\nmsgid \"Catalan\"\nmsgstr \"Bhs. Katalonia\"\n\nmsgid \"Esperanto\"\nmsgstr \"Esperanto\"\n\nmsgid \"Indonesian\"\nmsgstr \"Bhs. Indonesia\"\n\nmsgid \"Czech\"\nmsgstr \"Bhs. Ceko\"\n\nmsgid \"Arabic\"\nmsgstr \"Bhs. Arab\"\n\nmsgid \"Turkish\"\nmsgstr \"Bhs. Turki\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Bhs. Norwegia Baku\"\n\nmsgid \"Korean\"\nmsgstr \"Bhs. Korea\"\n\nmsgid \"Hungarian\"\nmsgstr \"Bhs. Hungaria\"\n\nmsgid \"Romanian\"\nmsgstr \"Bhs. Rumania\"\n\nmsgid \"Japanese\"\nmsgstr \"Bhs. Jepang\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Bhs. Ukraina\"\n\nmsgid \"Danish\"\nmsgstr \"Bhs. Denmark\"\n\nmsgid \"Swedish\"\nmsgstr \"Bhs. Swedia\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Bhs. Serbia (Kiril)\"\n\nmsgid \"Dutch\"\nmsgstr \"Bhs. Belanda\"\n\nmsgid \"Belarusian\"\nmsgstr \"Bhs. Belarus\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"Pengembang Utama\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"Perancang UI\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"Pembuat\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Gambar oleh %s\"\n\nmsgid \"untitled\"\nmsgstr \"tanpa judul\"\n\nmsgid \"imported\"\nmsgstr \"diimpor\"\n\nmsgid \"copy\"\nmsgstr \"salinan\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Apakah yakin ingin keluar Pixelorama?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Gambar belum disimpan\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Perubahan belum disimpan, perubahan tadi akan hilang jika tetap lanjut.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Simpan sebelum keluar?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"Progres proyek %s belum disimpan. Sebaiknya ini bagaimana?\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Simpan & Keluar\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Keluar tanpa menyimpan\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Seleksi Persegi Panjang\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Seleksi Lingkaran\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Seleksi Poligonal\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\\n\\n\"\n\"Klik dua kali untuk menghubungkan titik akhir ke titik awal\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Pilih sesuai Warna\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Tongkat Ajaib\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Lasso / Alat Pemangkas\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Pilih Menggambar\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Pindah\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Keker\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Geser\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"Pemilih Warna\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\\n\\n\"\n\"Pilih warna dari piksel gambar sprite\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"Pangkas\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\\n\\n\"\n\"Mengubah ukuran kanvas\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Pensil\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\\n\\n\"\n\"Tahan %s untuk membuat garis\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Penghapus\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\\n\\n\"\n\"Tahan %s untuk menghapus lurus\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Ember\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Alat Pembayang\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Garis Lurus\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\\n\\n\"\n\"Tahan %s untuk mencantol sudut garis\\n\"\n\"Tahan %s untuk membuat bentuk di tengah klik\\n\"\n\"Tahan %s untuk menggeser bentuk saat ini\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"Garis Lengkung\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\\n\\n\"\n\"Menggaris lengkung Bezier\\n\"\n\"Tekan %s/%s untuk menambah titik\\n\"\n\"Pencet dua kali untuk sudahi menggaris\\n\"\n\"Tekan dan seret untuk melengkungkan\\n\"\n\"Tekan %s untuk hapus titik yang tadi\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Alat Persegi Panjang\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\\n\\n\"\n\"Tahan %s untuk membuat bentuk 1:1\\n\"\n\"Tahan %s untuk membuat bentuk di tengah klik\\n\"\n\"Tahan %s untuk menggeser bentuk saat ini\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Alat Lingkaran\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\\n\\n\"\n\"Tahan %s untuk membuat bentuk 1:1\\n\"\n\"Tahan %s untuk membuat bentuk di tengah klik\\n\"\n\"Tahan %s untuk menggeser bentuk saat ini\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"Kotak Isometrik\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\\n\\n\"\n\"Menggambar kotak isometrik\\n\"\n\"Tekan %s/%s untuk menambah titik\\n\"\n\"Tahan %s untuk mengikut sudut arah titik\\n\"\n\"Tahan %s untuk memindahkan bentuk\\n\"\n\"Tekan %s untuk ubah titik yang tadi\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Teks\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\"\n\nmsgid \"Rectangle\"\nmsgstr \"Persegi Panjang\"\n\nmsgid \"Ellipse\"\nmsgstr \"Lingkaran\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Pilih warna untuk alat di sebelah kiri\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Pilih warna untuk alat di sebelah kanan\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"Tukar warna kiri dan kanan.\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"Warna Rata-rata:\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Kembalikan ke warna bawaan (hitam di kiri, putih di kanan)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"Pilih warna pada jendela aplikasi.\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"Ketik kode heks (\\\"#ff0000\\\") atau nama warna (\\\"red\\\").\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"Pilih bentuk bagan warna.\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"Opsi warna\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"Pilih mode pemilih.\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"Penggeser Berwarna\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"Contoh Warna\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"Warna saat ini\"\n\nmsgid \"Left tool\"\nmsgstr \"Alat di kiri\"\n\nmsgid \"Right tool\"\nmsgstr \"Alat di kanan\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Indikator piksel kiri\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Tampilkan indikator piksel tetikus kiri atau kuas di kanvas saat menggambar\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Indikator piksel kanan\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Tampilkan indikator piksel tetikus kanan atau kuas di kanvas saat menggambar\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Tampilkan ikon alat di kiri\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Menampilkan ikon alat kiri saat ini di sebelah kursor pada kanvas\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Tampilkan ikon alat di kanan\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Menampilkan ikon alat kanan saat ini di sebelah kursor pada kanvas\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"Gunakan kursor tetikus biasa\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"Gunakan kursor silang untuk kanvas\"\n\nmsgid \"Guides\"\nmsgstr \"Panduan\"\n\nmsgid \"Guides color:\"\nmsgstr \"Warna panduan:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Warna dari penggaris yang ditunjukkan di kanvas\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"Pencantolan\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"Jarak pencantolan:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"Ini adalah jarak piksel untuk kapan panduan dan pencatolan kisi diaktifkan.\"\n\nmsgid \"Grid\"\nmsgstr \"Kisi\"\n\nmsgid \"Grid type:\"\nmsgstr \"Pola kisi:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Menetapkan pola kisi ke segi empat, isometrik, atau keduanya\"\n\nmsgid \"Rectangular\"\nmsgstr \"Segi Empat\"\n\nmsgid \"Isometric\"\nmsgstr \"Isometrik\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"Segi Enam\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"Segi enam (alas lancip)\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"Segi enam (alas tumpul)\"\n\nmsgid \"All\"\nmsgstr \"Semua\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"Kisi tampak:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"Kisi suntingan:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"Ukuran kisi:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"Offset kisi:\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"Menetapkan offset kisi dari kanvas aslinya (di pojok kiri atas gambar)\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"Gambar di atas Mode Petak:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"Jika dinonaktifkan, kisi hanya akan ditaruh di atas gambar aslinya\"\n\nmsgid \"Grid color:\"\nmsgstr \"Warna Kisi:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"Warna dari grid (kisi)\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Kisi Piksel\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Muncul saat dikeker:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"Menetapkan minimal keker untuk memunculkan kisi piksel\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Warna kisi piksel:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"Warna dari kisi piksel\"\n\nmsgid \"Transparency\"\nmsgstr \"Transparansi\"\n\nmsgid \"Checker size:\"\nmsgstr \"Ukuran pola catur:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Ukuran latar belakang pola catur transparan\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Warna pola catur 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"Warna pertama latar belakang pola catur transparan\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Warna pola catur 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"Warna kedua latar belakang pola catur transparan\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"Ikuti Pergerakan Kanvas\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"Pola catur transparan sesuai pergerakan kanvas\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"Ikuti Tingkat Kekeran Kanvas\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"Pola catur transparan sesuai tingkat kekeran kanvas\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"Pilih lapisan saat memencet salah satu tombolnya:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"Warna onion skinning sebelum:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"Warna onion skinning setelah:\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"Tepian seleksi dianimasikan\"\n\nmsgid \"Border color 1:\"\nmsgstr \"Warna tepian 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Warna tepian 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"Kelegapan pratayang ubah bentuk:\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Hanya praatur kustom yang bisa disunting\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"Batas FPS aplikasi:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"Menetapkan batas laju bingkai tiap detik pada aplikasi. Semakin rendah angkanya, semakin kurang penggunaan CPU; tapi aplikasi akan lambat, patah-patah, dan kurang tanggap. 0 berarti tanpa batas.\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"Maks. urung step:\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"Jedakan aplikasi saat hilang fokus\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"Jika dinyalakan, saat jendela aplikasi hilang fokus, nanti akan dijeda. Ini membantu mengurangi penggunaan CPU saat terbiar. Aplikasi akan tidak dijeda saat tetikus ada pada jendela aplikasi.\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"Terus perbarui\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"Jika opsi ini dicetik, aplikasi akan terus memuat ulang layar bahkan saat tidak. Menonaktifkan ini membantu mengurangi penggunaan CPU saat terbiar.\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"Aktifkan transparansi jendela\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"Jika diaktifkan, jendela aplikasi akan tampil transparan. Ini juga menguras kinerja, nonaktifkan saja jika tidak perlu.\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"Gunakan kandar audio bonekaan\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"Renderer:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"Menentukan pengandar video untuk render. GLES2 lebih bagus untuk perangkat lawas kelas bawah, tapi GLES3 punya fitur lebih.\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"Pengandar tablet:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"Menentukan pengandar tablet pada Windows. Jika Windows Ink sudah aktif, pilih winink.\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Tambah Ekstensi\"\n\nmsgid \"Enable\"\nmsgstr \"Aktifkan\"\n\nmsgid \"Disable\"\nmsgstr \"Nonaktifkan\"\n\nmsgid \"Uninstall\"\nmsgstr \"Copot\"\n\nmsgid \"Open Folder\"\nmsgstr \"Buka Folder\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"Cari di Daring\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"Toko Ekstensi\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"Cari...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"Tag:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"Laporkan isu tentang ekstensi\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"Unduh\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"Tautan repositori:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"Mengambil data repositori jarak jauh.\\n\"\n\"Mohon tunggu.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"Tidak bisa mendapat info repositori jarak jauh.\\n\\n\"\n\"- Pastikan sudah tersambung ke internet.\\n\"\n\"- Jika menggunakan Pixelorama versi Flatpak, izinkan dulu untuk menyambung ke internet. Caranya, jalankan perintah berikut di terminal perintah:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"Cara lainnya, unduh Flatseal dan atur izin internet untuk aplikasi Flatpak di situ.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"Tidak bisa mendapat info repositori jarak jauh.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"Tempel tautan repositori pemilik repositori. Jika dibiarkan kosong, kolom ini akan otomatis dihapus.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"Apakah yakin ingin ekstensi ini aktif? Pastikan ekstensi diaktifkan hanya dari sumber tepercaya.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"Apakah yakin ingin menghapus ekstensi ini?\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"Dinamika\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"Penstabil\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"Tekanan\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"Kecepatan\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"Alfa\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"Ukuran\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"Batas nilai\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"Ambang batas\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"Awal\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"Akhir\"\n\nmsgid \"Brush:\"\nmsgstr \"Kuas:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Pilih kuas\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"Kuas Bawaan\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Kuas piksel\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Kuas lingkaran\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Kuas lingkaran berisi\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"Kuas Proyek\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"Kuas Berkas\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"Salju\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"Kuas Berkas Acak\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"Rumput\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"Bintang\"\n\nmsgid \"Custom brush\"\nmsgstr \"Kuas kustom\"\n\nmsgid \"Brush size:\"\nmsgstr \"Ukuran kuas:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"Opsi putaran\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"Dibalik:\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"Putar:\"\n\nmsgid \"Overwrite color\"\nmsgstr \"Timpa warna\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Warnanya ditimpa dan tak dicampur. Opsi ini hanya untuk warna yang tidak sepenuhnya legap (opaque)\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Piksel Sempurna\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"Piksel Sempurna\\n\"\n\"Memuluskan garis dengan menghapus piksel tambahan di tepinya\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"Kuncikan alfa\"\n\nmsgid \"Fill inside\"\nmsgstr \"Warnai isinya\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"Jarak Baris\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"Celah X:\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"Celah Y:\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Warnai Bentuk\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"Mewarnai isi bentuk yang digambar alih-alih kopong\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"Kerapatan:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"Warna kuas dari:\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: Warna dari kuasnya sendiri, 100: Warna yang dipilih saat ini\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"Area diisi:\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"Area serupa\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"Warna serupa\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"Seluruh seleksi\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"Warnai isi seakan-akan lapisannya satu\"\n\nmsgid \"Fill with:\"\nmsgstr \"Isi dengan:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"Warna yang dipilih\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Pola\"\n\nmsgid \"Offset\"\nmsgstr \"Offset\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Pembayang Sederhana\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Pergeseran Rona\"\n\nmsgid \"Lighten\"\nmsgstr \"Terangkan\"\n\nmsgid \"Darken\"\nmsgstr \"Gelapkan\"\n\nmsgid \"Amount:\"\nmsgstr \"Jumlah:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Jumlah Terang/Gelap\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"Ganti Warna\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"Mohon pilih warna dari palet.\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"Warna ke kanan:\"\n\nmsgid \"Pick for:\"\nmsgstr \"Pilih untuk:\"\n\nmsgid \"Left Color\"\nmsgstr \"Warna Kiri\"\n\nmsgid \"Right Color\"\nmsgstr \"Warna Kanan\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"Mode pilih:\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"Warna Atas\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"Lapisan Saat Ini\"\n\nmsgid \"Mode:\"\nmsgstr \"Mode:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Perbesar\"\n\nmsgid \"Zoom out\"\nmsgstr \"Perkecil\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"Tunggal\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"Berantai\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"Berantai: Membuat lengkung Bezier berantai, mirip alat garis lengkung Krita.\\n\"\n\"Tunggal: Membuat lengkung Bezier tunggal, mirip alat garis lengkung Aseprite.\"\n\nmsgid \"Options\"\nmsgstr \"Opsi\"\n\nmsgid \"Options:\"\nmsgstr \"Opsi:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"Paskan sebingkai\"\n\nmsgid \"100% Zoom\"\nmsgstr \"Keker 100%\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"Ganti yang dipilih\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"Tambah ke seleksi\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"Kurangi dari seleksi\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"Persimpangan seleksi\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"Gaya:\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"Biasa\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"Tebal\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"Miring\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"Tebal Miring\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"Anti-buram\"\n\nmsgid \"Grayscale\"\nmsgstr \"Skala kelabu\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"Warna Tepi\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"Warna alat\"\n\nmsgid \"Adjusted average\"\nmsgstr \"Rata-rata disesuaikan\"\n\nmsgid \"Blend at interface\"\nmsgstr \"Campur di antarmuka\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"Bagian Kiri\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"Bagian Kanan\"\n\nmsgid \"Mirroring\"\nmsgstr \"Pencerminan\"\n\nmsgid \"Horizontal\"\nmsgstr \"Mendatar\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Aktifkan gambar dicerminkan mendatar\"\n\nmsgid \"Vertical\"\nmsgstr \"Menegak\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Aktifkan gambar dicerminkan menegak\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"Aktifkan gambar dicerminkan menyudut (↗)\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"Aktifkan gambar dicerminkan menyudut (↘)\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"Ke tengah kanvas\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"Ke tengah tampilan\"\n\nmsgid \"Current frame:\"\nmsgstr \"Bingkai saat ini:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"Mode animasi:\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"Jadikan bingkai ini lembar sprite\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"Lompat ke bingkai pertama\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"Ke bingkai sebelumnya\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"Putar mundur animasi\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"Putar maju animasi\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"Ke bingkai selanjutnya\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"Lompat ke bingkai terakhir\"\n\nmsgid \"Timeline settings\"\nmsgstr \"Pengaturan garis waktu\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Aktif/nonaktifkan Onion Skinning\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"Jumlah bingkai yang diputar tiap detik di pratayang.\\n\"\n\"Semakin tinggi FPS, semakin cepat animasinya.\"\n\nmsgid \"No loop\"\nmsgstr \"Tidak berulang\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Berulang terus\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Berulang bolak-balik\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\\\"Onion Skinning\\\":\"\n\nmsgid \"Past Frames\"\nmsgstr \"Bingkai sebelum\"\n\nmsgid \"Future Frames\"\nmsgstr \"Bingkai setelah\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Atur tag bingkai\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Properti Tag Bingkai\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Tambah tag bingkai baru\"\n\nmsgid \"Name:\"\nmsgstr \"Nama:\"\n\nmsgid \"From:\"\nmsgstr \"Dari:\"\n\nmsgid \"To:\"\nmsgstr \"Ke:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"Animasi diputar hanya pada bingkai dengan tag sama\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Tag %s (Bingkai %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Tag %s (Bingkai %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Jika dipilih, animasi akan diputar hanya pada bingkai dengan tag sama.\\n\"\n\"Jika tidak, maka animasi akan diputar pada semua bingkai.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"Ukuran cel:\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"Mode warna\"\n\nmsgid \"Show past frames:\"\nmsgstr \"Muncul bingkai sebelum:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"Muncul bingkai setelah:\"\n\nmsgid \"Above canvas\"\nmsgstr \"Di atas kanvas\"\n\nmsgid \"Below canvas\"\nmsgstr \"Di bawah kanvas\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"Jika ingin lapisannya tidak onion skinning, tulis saja \\\"_io\\\" di ujung namanya.\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Tambah bingkai baru\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Hapus Bingkai\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Dobelkan Bingkai\"\n\nmsgid \"Move Left\"\nmsgstr \"Geser ke kiri\"\n\nmsgid \"Move Right\"\nmsgstr \"Geser ke kanan\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"Pilih piksel\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"Tautkan cel ke\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"Putuskan cel\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"Putar audio di sini\"\n\nmsgid \"Properties\"\nmsgstr \"Properti\"\n\nmsgid \"Project Properties\"\nmsgstr \"Properti Proyek\"\n\nmsgid \"Frame properties\"\nmsgstr \"Properti bingkai\"\n\nmsgid \"Layer properties\"\nmsgstr \"Properti bingkai\"\n\nmsgid \"Cel properties\"\nmsgstr \"Properti Cel\"\n\nmsgid \"Tag properties\"\nmsgstr \"Properti Tag\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"Tag Baru\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"Impor Tag\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"Urut Terbalik\"\n\nmsgid \"Layer\"\nmsgstr \"Lapisan\"\n\nmsgid \"Group\"\nmsgstr \"Kelompok\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"Peta petak\"\n\nmsgid \"Audio\"\nmsgstr \"Audio\"\n\nmsgid \"Layers\"\nmsgstr \"Lapisan\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"Cuplik mask\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"Gepeng\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"Gepeng tampak\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Tambah lapisan baru\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"Tambah Lapisan Piksel\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"Tambah Lapisan Kelompok\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"Tambah Lapisan 3D\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"Tambah Lapisan Petak\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"Tambah Lapisan Audio\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Hapus lapisan ini\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Geser lapisan ini ke atas\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Geser lapisan ini ke bawah\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Dobelkan lapisan ini\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Leburkan lapisan ini dengan yang di bawah\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"Mode campuran:\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"Pass through\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"Normal\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"Hapus\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"Berganda\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"Panas warna\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"Panas linear\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"Saring\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"Dingin warna\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"Kontras\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"Hamparan\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"Cahaya lembut\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"Cahaya kasar\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"Penerbalikan\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"Selisih\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"Pengecualian\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"Kurangi\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"Bagi\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"Komponen\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"Rona\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"Saturasi\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"Warna\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"Kekilauan\"\n\nmsgid \"Opacity:\"\nmsgstr \"Kelegapan:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"Kelegapan mode petak:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Tampil/hilangkan lapisan\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Kuncikan/buka lapisan\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Bingkai: %s, Lapisan: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"Aktif/nonaktifkan penautan otomatis cel baru saat membuat bingkai baru\\n\\n\"\n\"Cel tertaut akan membagi isinya di seluruh bingkai\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"Bentang/ciutkan kelompok\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"Berkas audio:\"\n\nmsgid \"Load file\"\nmsgstr \"Muat berkas\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"Putar di bingkai ke:\"\n\nmsgid \"Palette\"\nmsgstr \"Palet\"\n\nmsgid \"Palettes\"\nmsgstr \"Palet\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Tambah palet baru\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Sunting palet sedang dipilih\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Pilih satu palet\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Urungkan: Menggambar\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Ulangi: Menggambar\"\n\nmsgid \"Undo: Select\"\nmsgstr \"Urungkan: Pilih\"\n\nmsgid \"Redo: Select\"\nmsgstr \"Ulangi: Pilih\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Urungkan: Skalakan\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Ulangi: Skalakan\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Urungkan: Tambah Lapisan\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Ulangi: Tambah Lapisan\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Urungkan: Hapus lapisan\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Ulangi: Hapus lapisan\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Urungkan: Leburkan lapisan\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Ulangi: Leburkan lapisan\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Urungkan: Perubahan urutan lapisan\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Ulangi: Perubahan urutan lapisan\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Urungkan: Tambah Bingkai\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Ulangi: Tambah Bingkai\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Urungkan: Hapus Bingkai\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Ulangi: Hapus Bingkai\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Urungkan: Ubah Urutan Bingkai\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Ulangi: Ubah Urutan Bingkai\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Urungkan: Hapus kuas kustom\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Ulangi: Hapus kuas kustom\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"Urungkan: Ubah Tag Bingkai\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"Ulangi: Ubah Tag Bingkai\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"Urungkan: Hapus Tag Bingkai\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"Ulangi: Hapus Tag Bingkai\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"Urungkan: Ubah durasi bingkai\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"Ulangi: Ubah durasi bingkai\"\n\nmsgid \"Move Guide\"\nmsgstr \"Geser Panduan\"\n\nmsgid \"File saved\"\nmsgstr \"Berkas tersimpan\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"Cadangan disimpan\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"Berkas gagal dibuka. Kode galat %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"Berkas gagal disimpan. Kode galat %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"Video gagal diekspor. Pastikan FFMPEG sudah benar dipasang.\"\n\nmsgid \"File(s) exported\"\nmsgstr \"Berkas sudah diekspor\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Palet Kosong Baru\"\n\nmsgid \"Import Palette\"\nmsgstr \"Impor palet\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Buat Palet dari Sprite Saat Ini\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Nama palet:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Nama warna:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"Gunakan warna yang di kanan & kiri\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Buat palet kosong yang baru?\"\n\nmsgid \"Error\"\nmsgstr \"Galat\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Galat: Nama palet harus yang absah.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Berkas palet tidak absah!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Sunting Palet\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"Buat warna dengan komponen alfa\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"Ambil warna hanya dari seleksi\"\n\nmsgid \"Get colors from\"\nmsgstr \"Ambil warna dari\"\n\nmsgid \"Patrons:\"\nmsgstr \"Patron:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"Apakah ingin ada nama diri atau perusahaan pada layar splash?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Jadi Penaja Platinum\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Jadi Penaja Emas\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Jadi Patron\"\n\nmsgid \"Don't show again\"\nmsgstr \"Jangan tampilkan lagi\"\n\nmsgid \"Image Options\"\nmsgstr \"Opsi Gambar\"\n\nmsgid \"Default width:\"\nmsgstr \"Lebar bawaan:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"Lebar bawaan untuk gambar baru\"\n\nmsgid \"Default height:\"\nmsgstr \"Tinggi bawaan:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"Tinggi bawaan untuk gambar baru\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Warna isi bawaan:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"Warna latar belakang bawaan pada gambar baru\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"Atur ulang semua opsi yang di Preferensi\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"Atur ulang opsi garis waktu\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"Atur ulang opsi alat-alat\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"Hapus semua ekstensi\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"Hapus semua cadangan\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"Kosongkan daftar berkas yang dibuka\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"Kuncikan nisbah aspek\"\n\nmsgid \"Portrait\"\nmsgstr \"Menegak\"\n\nmsgid \"Landscape\"\nmsgstr \"Mendatar\"\n\nmsgid \"Templates:\"\nmsgstr \"Templat:\"\n\nmsgid \"Preset\"\nmsgstr \"Praatur\"\n\nmsgid \"Preset:\"\nmsgstr \"Praatur:\"\n\nmsgid \"Default\"\nmsgstr \"Bawaan\"\n\nmsgid \"Custom\"\nmsgstr \"Kustom\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Seleksi Persegi Panjang\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"Seleksi Lingkaran\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"Seleksi Poligonal\"\n\nmsgid \"Select By Color\"\nmsgstr \"Pilih sesuai warna\"\n\nmsgid \"Magic Wand\"\nmsgstr \"Tongkat Ajaib\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"Lasso / Alat Pemangkas\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"Pilih Menggambar\"\n\nmsgid \"Move\"\nmsgstr \"Pindah\"\n\nmsgid \"Zoom\"\nmsgstr \"Keker\"\n\nmsgid \"Pan\"\nmsgstr \"Geser\"\n\nmsgid \"Color Picker\"\nmsgstr \"Pemilih Warna\"\n\nmsgid \"Pencil\"\nmsgstr \"Pensil\"\n\nmsgid \"Eraser\"\nmsgstr \"Penghapus\"\n\nmsgid \"Bucket\"\nmsgstr \"Ember\"\n\nmsgid \"Shading Tool\"\nmsgstr \"Alat Pembayang\"\n\nmsgid \"Line Tool\"\nmsgstr \"Garis Lurus\"\n\nmsgid \"Curve Tool\"\nmsgstr \"Garis Lengkung\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"Alat Persegi Panjang\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"Alat Lingkaran\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"Kotak Isometrik\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Ganti Warna\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Atur pintasan\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Tekan tombol atau kombo tombol untuk dijadikan pintas\"\n\nmsgid \"Already assigned\"\nmsgstr \"Pernah ditetapkan\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Alat Di Kiri:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Alat yang ditetapkan di tombol tetikus kiri\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Alat Di Kanan:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Alat yang ditetapkan di tombol tetikus kanan\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"Tidak bisa menemukan proyek terakhir.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"Berkas proyek tidak ditemukan.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Belum ada proyek yang disimpan atau dibuka di Pixelorama!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Buka Proyek Terakhir\"\n\nmsgid \"Open last project...\"\nmsgstr \"Buka proyek terakhir...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Buka proyek terakhir saat mulai\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Membuka proyek yang terakhir dibuka saat mulai\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"Ditanya saat keluar\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"Jalur FFMPEG\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Aktifkan simpan otomatis\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Selang waktu simpan otomatis:\"\n\nmsgid \"minute(s)\"\nmsgstr \"menit\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"Ekspor data JSON\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"Pisah lapisan\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"Sertakan tag bingkai di nama berkas\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"Buat folder baru untuk setiap tag bingkai\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"Membuat banyak berkas, tapi setiap berkas ditampung di folder berbeda sesuai dengan tag bingkainya\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"Huruf pemisah:\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"Huruf-huruf untuk memisahkan nama berkas dan nomor bingkai\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"Pangkas gambar\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"Memangkas gambar terekspor ke bagian terlihat, piksel apa pun bersaluran alfa tidak nol akan dianggap terlihat.\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"Cuplik isi gambar ke seleksi\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"Hanya mengekspor isi area yang diseleksi.\"\n\nmsgid \"Close\"\nmsgstr \"Tutup\"\n\nmsgid \"Discard All\"\nmsgstr \"Buang Semua\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"Pixelorama tadi ditutup tidak benar. Apakah ingin memulihkan sesi sebelumnya?\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"Cadangan dimuat ulang\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Hapus palet yang sedang dipilih\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"Apakah yakin ingin menghapus palet ini? (Tidak bisa diurung)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Tidak bisa menghapus palet lagi!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Tidak bisa menghapus palet, karena palet tidak ada!\"\n\nmsgid \"and\"\nmsgstr \"dan\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Pindahkan bingkai terpilih ke kiri.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Pindahkan bingkai terpilih ke kanan.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"Durasi bingkai:\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"Data pengguna:\"\n\nmsgid \"Duration\"\nmsgstr \"Durasi\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"Berpetak di Kedua Sumbu\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"Berpetak di Sumbu X\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Berpetak di Sumbu Y\"\n\nmsgid \"Create a new palette\"\nmsgstr \"Buat palet baru\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"Buat palet proyek baru\"\n\nmsgid \"Comment:\"\nmsgstr \"Komentar:\"\n\nmsgid \"Empty\"\nmsgstr \"Kosong\"\n\nmsgid \"From Current Palette\"\nmsgstr \"Dari Palet Saat Ini\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"Dari Sprite Saat Ini\"\n\nmsgid \"From Current Selection\"\nmsgstr \"Dari Seleksi Saat Ini\"\n\nmsgid \"Add a new color\"\nmsgstr \"Tambah warna baru\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"Hapus warna yang dipilih\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"Urut palet\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"Terbalikkan warna\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"Urut sesuai rona\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"Urut sesuai saturasi\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"Urut sesuai nilai\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"Urut sesuai muda warna\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"Urut sesuai merah\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"Urut sesuai hijau\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"Urut sesuai biru\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"Urut sesuai alfa\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"Palet dengan nama dan jalur yang sama sudah ada!\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"Palet perlu dinamakan!\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"Mengurangi ukuran palet akan mengatur ulang posisi warna.\\n\"\n\"Ingat, warna akan hilang jika tidak pas di ukuran palet baru!\"\n\nmsgid \"Position:\"\nmsgstr \"Posisi:\"\n\nmsgid \"Tools\"\nmsgstr \"Peralatan\"\n\nmsgid \"Main Canvas\"\nmsgstr \"Kanvas Utama\"\n\nmsgid \"Second Canvas\"\nmsgstr \"Kanvas Kedua\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"Garis Waktu Animasi\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"Pratayang Kanvas\"\n\nmsgid \"Color Pickers\"\nmsgstr \"Pemilih Warna\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"Opsi Global untuk Alat\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"Opsi Alat di Kiri\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"Opsi Alat di Kanan\"\n\nmsgid \"Reference Images\"\nmsgstr \"Gambar Rujukan\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"Penyunting Sudut Pandang\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"Perekam\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"Petak\"\n\nmsgid \"Crop\"\nmsgstr \"Pangkas\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"Ubah ukuran kanvas\"\n\nmsgid \"Margins\"\nmsgstr \"Pias Tepi\"\n\nmsgid \"Position + Size\"\nmsgstr \"Posisi + Ukuran\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"Nisbah Aspek Terkunci\"\n\nmsgid \"Margins:\"\nmsgstr \"Pias tepi:\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"Nisbah Aspek:\"\n\nmsgid \"Top:\"\nmsgstr \"Atas:\"\n\nmsgid \"Bottom:\"\nmsgstr \"Bawah:\"\n\nmsgid \"Left:\"\nmsgstr \"Kiri:\"\n\nmsgid \"Right:\"\nmsgstr \"Kanan:\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"Ukuran terkunci\\n\\n\"\n\"Saat diaktifkan, alat hanya akan memindahkan persegi terpotong di kanvas.\\n\\n\"\n\"Saat dinonaktifkan, alat hanya akan membuat persegi di kanvas.\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"Ubah Bentuk 3D\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"Kotak\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"Bola\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"Kapsul\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"Tabung\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"Prisma\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"Torus\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"Bidang\"\n\nmsgid \"Text\"\nmsgstr \"Teks\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"Cahaya berarah\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"Lampu sorot\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"Titik cahaya\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"Model kustom\"\n\nmsgid \"Selected object:\"\nmsgstr \"Objek terpilih:\"\n\nmsgid \"Add new object\"\nmsgstr \"Tambah objek baru\"\n\nmsgid \"Remove object\"\nmsgstr \"Hapus objek\"\n\nmsgid \"Camera\"\nmsgstr \"Kamera\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"Proyeksi:\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"Sudut pandang\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"Ortogonal\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"Frustum\"\n\nmsgid \"Rotation:\"\nmsgstr \"Putaran:\"\n\nmsgid \"Scale:\"\nmsgstr \"Skala:\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"Lingkungan\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"Warna ambien:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"Tenaga warna ambien:\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"Tampak:\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"Ubah bentuk\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"Jala\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"Kiri ke kanan:\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"Jari-jari:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"Ruas radial:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"Cincin:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"Is hemisphere:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"Jari-jari atas:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"Jari-jari bawah:\"\n\nmsgid \"Text:\"\nmsgstr \"Teks:\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"Kedalaman:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"Ukuran piksel:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"Step lengkung:\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"Penjajaran mendatar:\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"Penjajaran menegak:\"\n\nmsgid \"Left\"\nmsgstr \"Kiri\"\n\nmsgid \"Right\"\nmsgstr \"Kanan\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"Jarak baris:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"Tenaga:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"Negatif:\"\n\nmsgid \"Shadow:\"\nmsgstr \"Bayangan:\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"Rentang:\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"Properti Bisa Dianimasi\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"Pratayang bingkai:\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"Animasikan\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"Nilai awal:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"Nilai akhir:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"Tipe \\\"ease\\\":\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"Awalnya lambat lalu mencepat ke ujung\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"Awalnya cepat lalu melambat ke ujung\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"Lambat di kedua ujung, cepat di tengah\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"Cepat di kedua ujung, lambat di tengah\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"Kuadrat (pangkat 2)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"Kubik (pangkat 3)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"Kuartik (pangkat 4)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"Kuintik (pangkat 5)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"Eksponen (pangkat x)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"Akar persegi\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"Sinus\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"Goyang-goyang di pinggirnya\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"Lompat-lompat di ujung\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\\\"Back out\\\" di akhir\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"Langsung ke ujung\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"Ekawarna\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"Saat membuka gambar, bisa juga diimpor sebagai rujukan.\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"Pilih gambar di bawah untuk mengubah propertinya.\\n\"\n\"Tidak akan bisa menggambar saat memilih gambar rujukan.\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"Hapus\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"Tahan Shift saat menekan untuk langsung hapus.\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"Apakah yakin ingin menghapus gambar rujukan ini? Tidak akan dihapus dari direktori.\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"Pindahkan gambar rujukan terpilih ke kanan\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"Pindahkan gambar rujukan terpilih ke kiri\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"Memilih gambar rujukan untuk kanvas\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"Pindahkan gambar rujukan terpilih\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"Putar gambar rujukan terpilih\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"Skalakan gambar rujukan terpilih\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"tak ada\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"Atur Ulang Ubah Bentuk\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"Posisi\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"Skala\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"Putaran\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"Saring\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"Kelegapan\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"Batasi Nilai Warna\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"Aktif\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"Efek lapisan\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"Tambah efek\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"Apakah ingin unduh gambarnya dari %s?\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"Kotak petak\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"Kotak petak:\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"Kotak petak\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"Kotak petak baru\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"Nama kotak petak:\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"Ukuran petak:\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"Bentuk petak:\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"Tata letak petak:\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"Sumbu offset petak:\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"Mengubah sumbu offset dari semua bentuk setengah offset (Isometrik & Segi Enam).\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"Tumpukan\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"Offset tumpukan\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"Tangga kanan\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"Tangga turun\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"Wajik kanan\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"Wajik turun\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"Mode hanya-taruh:\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"Mengaktifkan mode hanya-taruh ini opsi permanen. Jika diaktifkan, nanti hanya bisa menaruh petak dan tidak bisa lagi mengubah petak yang ada pada lapisan ini.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"Pilih petak untuk ditaruh ke kanvas.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"Mengubah petak di kanvas.\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"Buatkan petak\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"Putar petak ke kiri\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"Putar petak ke kanan\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"Petak dibalik mendatar\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"Petak dibalik menegak\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"Urus Sendiri\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Otomatis\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"Tumpuk\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"Ukuran tombol petak:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"Tampilkan petak kosong:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"Properti petak\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"Peluang:\"\n\n"
  },
  {
    "path": "Translations/is_IS.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: is\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Icelandic\\n\"\n\"Language: is_IS\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/it_IT.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: it\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Italian\\n\"\n\"Language: it_IT\\n\"\n\"PO-Revision-Date: 2025-11-09 14:57\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"Annulla\"\n\nmsgid \"Open\"\nmsgstr \"Apri\"\n\nmsgid \"Save\"\nmsgstr \"Salva\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Per favore conferma...\"\n\nmsgid \"File Name:\"\nmsgstr \"Nome file:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Nome progetto:\"\n\nmsgid \"Image Size\"\nmsgstr \"Dimensione dell'immagine\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Dimensioni della tela\"\n\nmsgid \"Frame Size\"\nmsgstr \"Dimensione della cornice\"\n\nmsgid \"Size:\"\nmsgstr \"Dimensione:\"\n\nmsgid \"Width:\"\nmsgstr \"Larghezza:\"\n\nmsgid \"Height:\"\nmsgstr \"Altezza:\"\n\nmsgid \"Center\"\nmsgstr \"Centro\"\n\nmsgid \"File\"\nmsgstr \"File\"\n\nmsgid \"Edit\"\nmsgstr \"Modifica\"\n\nmsgid \"Select\"\nmsgstr \"Selezione\"\n\nmsgid \"View\"\nmsgstr \"Vista\"\n\nmsgid \"Window\"\nmsgstr \"Finestra\"\n\nmsgid \"Image\"\nmsgstr \"Immagine\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"Progetto\"\n\nmsgid \"Effects\"\nmsgstr \"Effetti\"\n\nmsgid \"Help\"\nmsgstr \"Aiuto\"\n\nmsgid \"New\"\nmsgstr \"Nuovo\"\n\nmsgid \"New...\"\nmsgstr \"Nuovo...\"\n\nmsgid \"Open...\"\nmsgstr \"Apri...\"\n\nmsgid \"Save...\"\nmsgstr \"Salva...\"\n\nmsgid \"Save as...\"\nmsgstr \"Salva come...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"Includi immagini mescolate\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"Se abilitata, anche le immagini sfumate finali vengono memorizzate nel pxo, per ogni fotogramma.\\n\"\n\"Questo rende il file pxo più grande ed è utile per l'importazione da software di terze parti\\n\"\n\"o per l'esportazione CLI. Caricamento dei file pxo in Pixelorama non ha bisogno di questa opzione per essere abilitato.\"\n\nmsgid \"Import\"\nmsgstr \"Importa\"\n\nmsgid \"Export\"\nmsgstr \"Esporta\"\n\nmsgid \"Overwrite\"\nmsgstr \"Sovrascrivere\"\n\nmsgid \"Export...\"\nmsgstr \"Esporta...\"\n\nmsgid \"Export as...\"\nmsgstr \"Esporta come...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Esporta PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Esporta PNG come...\"\n\nmsgid \"Quit\"\nmsgstr \"Esci\"\n\nmsgid \"Undo\"\nmsgstr \"Annulla\"\n\nmsgid \"Redo\"\nmsgstr \"Ripeti\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"Cronologia Annullamenti\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"Stato iniziale\"\n\nmsgid \"Copy\"\nmsgstr \"Copia\"\n\nmsgid \"Cut\"\nmsgstr \"Taglia\"\n\nmsgid \"Paste\"\nmsgstr \"Incolla\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Incolla nel luogo\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"Incolla dagli Appunti\"\n\nmsgid \"Delete\"\nmsgstr \"Elimina\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Elimina Permanentemente\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Sposta nel cestino\"\n\nmsgid \"New Brush\"\nmsgstr \"Nuovo Pennello\"\n\nmsgid \"Scale Image\"\nmsgstr \"Scala l'immagine\"\n\nmsgid \"Pixels\"\nmsgstr \"Pixels\"\n\nmsgid \"Percentage\"\nmsgstr \"Percentuale\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"Modalità colore:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"Modalità colore\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"Indicizzato\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"Ritaglia selezione\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"Ritaglia contenuto\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Ridimensiona Canvas\"\n\nmsgid \"Offset Image\"\nmsgstr \"Scostamento Immagine\"\n\nmsgid \"Offset:\"\nmsgstr \"Scostamento:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"Avvolgi intorno:\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"Centra Quadri\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Ruota Immagine\"\n\nmsgid \"Pivot x:\"\nmsgstr \"Perno x:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"Perno y:\"\n\nmsgid \"Smear options:\"\nmsgstr \"Opzioni di sbavatura:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Tolleranza:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Angolo iniziale:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"Tratto avvolgente\"\n\nmsgid \"Clear\"\nmsgstr \"Cancella\"\n\nmsgid \"Invert\"\nmsgstr \"Inverti\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"Selezione area della cella\"\n\nmsgid \"Modify\"\nmsgstr \"Modifica\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"Espandi\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"Espandi Selezione\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"Riduci\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"Riduci La Selezione\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"Corníce\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"Selezione Bordo\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"Diamante\"\n\nmsgid \"Circle\"\nmsgstr \"Cerchio\"\n\nmsgid \"Square\"\nmsgstr \"Quadrato\"\n\nmsgid \"Grayscale View\"\nmsgstr \"Visualizzazione Scala Di Grigio\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Immagine A Specchio\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Rifletti orizzontalmente\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Rifletti verticalmente\"\n\nmsgid \"Preferences\"\nmsgstr \"Preferenze\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"Procedurale\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"Sfocato\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"Caricato\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"Centra tela\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Modalità Tile\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"Scostamenti Modalità Piastrelle\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"Base X:\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"Base Y:\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"Maschera:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Azzera\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"Reimposta %s\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"Usa il Fotogramma Attuale\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Azzera Maschera\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Opacità Finestra\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"Opacità della finestra non funziona in modalità Schermo Intero.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Layout Pannello\"\n\nmsgid \"Panels\"\nmsgstr \"Pannelli\"\n\nmsgid \"Layouts\"\nmsgstr \"Livelli\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Pannelli Movibili\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"Rendi Fluttuante\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Gestione dei livelli\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Anteprima\"\n\nmsgid \"Add\"\nmsgstr \"Aggiungi\"\n\nmsgid \"Add Layout\"\nmsgstr \"Aggiungi Layout\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"Cancella %s\"\n\nmsgid \"Copy from\"\nmsgstr \"Copia da\"\n\nmsgid \"Rename\"\nmsgstr \"Rinomina\"\n\nmsgid \"Rename Layout\"\nmsgstr \"Rinomina disposizione\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"Layout attuale\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Sei sicuro di voler eliminare questo layout?\"\n\nmsgid \"Widescreen\"\nmsgstr \"Widescreen\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Tallscreen\"\n\nmsgid \"Mirror View\"\nmsgstr \"Vista a Specchio\"\n\nmsgid \"Show Grid\"\nmsgstr \"Mostra la griglia\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Mostra Griglia Pixel\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Mostra i righelli\"\n\nmsgid \"Show Guides\"\nmsgstr \"Mostra le guide\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"Mostra Guide Mouse\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"Mostra Immagini Di Riferimento\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"Visualizza Effetti Livello\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"Aggancia A\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"Aggancia alla griglia rettangolare\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"Aggancia al Centro Griglia Rettangolare\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"Aggancia alle Guide\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"Aggancia alle guide prospettiche\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Mostra la Timeline di animazione\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Modalità Zen\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Modalità Schermo Intero\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Riempi con il colore:\"\n\nmsgid \"Open a File\"\nmsgstr \"Apri un File\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Apri il(i) File\"\n\nmsgid \"Import Options\"\nmsgstr \"Opzioni Importazione\"\n\nmsgid \"Import as:\"\nmsgstr \"Importa come:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Applica a tutti\"\n\nmsgid \"Recent projects\"\nmsgstr \"Progetti recenti\"\n\nmsgid \"New project\"\nmsgstr \"Nuovo progetto\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"Spritesheet (progetto nuovo)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Spritesheet (nuovo livello)\"\n\nmsgid \"New frame\"\nmsgstr \"Nuovo fotogramma\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"Sostituire la cella\"\n\nmsgid \"New layer\"\nmsgstr \"Nuovo livello\"\n\nmsgid \"New reference image\"\nmsgstr \"Nuovo immagine di riferimento\"\n\nmsgid \"New palette\"\nmsgstr \"Nuova palette\"\n\nmsgid \"New brush\"\nmsgstr \"Nuova pennello\"\n\nmsgid \"New pattern\"\nmsgstr \"Nuovo motivo\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Frame orizzontali:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Frame verticali:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"Ritaglio Intelligente\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"Soglia:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"Le immagini che hanno un lato più piccolo di questo valore attraverseranno la soglia\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"Distanza di unione:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"Le immagini che hanno superato la soglia si fonderanno in un'immagine più grande, se sono entro questa distanza\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"Aggiorna\"\n\nmsgid \"Start frame:\"\nmsgstr \"Fotogramma iniziale:\"\n\nmsgid \"End frame:\"\nmsgstr \"Telaio finale:\"\n\nmsgid \"At frame:\"\nmsgstr \"Al fotogramma:\"\n\nmsgid \"At layer:\"\nmsgstr \"A livello:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Tipo del pennello:\"\n\nmsgid \"File brush\"\nmsgstr \"File pennello\"\n\nmsgid \"Project brush\"\nmsgstr \"Pennello del progetto\"\n\nmsgid \"Random brush\"\nmsgstr \"Pennello casuale\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Salva lo Sprite come .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Esporta lo Sprite come .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Esporta lo Sprite\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Il file esiste già, vuoi sovrascrivere?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"I seguenti file sono già esistenti. Vuoi sovrascriverli?\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"Il percorso directory non è valido!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"Nome file non valido!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"Il percorso della directory e il nome del file non sono validi!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Esportazione in corso...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"Impossibile caricare il file '%s'.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Impossibile caricare il file '%s'.\\n\"\n\"Codice di errore: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"Impossibile caricare il file '%s'.\\n\"\n\"Questo non è un file di tavolozza valido.\"\n\nmsgid \"Frame\"\nmsgstr \"Frame\"\n\nmsgid \"Frames:\"\nmsgstr \"Frame:\"\n\nmsgid \"All Frames\"\nmsgstr \"Tutti i frame\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Spritesheet\"\n\nmsgid \"Animation\"\nmsgstr \"Animazione\"\n\nmsgid \"Preview:\"\nmsgstr \"Anteprima:\"\n\nmsgid \"Frame:\"\nmsgstr \"Frame:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Orientamento:\"\n\nmsgid \"Browse\"\nmsgstr \"Esplora\"\n\nmsgid \"Resize:\"\nmsgstr \"Ridimensiona:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"Qualità:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Annulla esportazione\"\n\nmsgid \"Alert!\"\nmsgstr \"Avviso!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Seleziona la cartella corrente\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Apri una cartella\"\n\nmsgid \"Background:\"\nmsgstr \"Sfondo:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"Frame selezionati\"\n\nmsgid \"Layers:\"\nmsgstr \"Livelli:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Livelli visibili\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"Livelli selezionati\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"Livello pixel:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"Livello di gruppo:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"Livello 3D:\"\n\nmsgid \"Direction:\"\nmsgstr \"Direzione:\"\n\nmsgid \"Forward\"\nmsgstr \"Avanti\"\n\nmsgid \"Backwards\"\nmsgstr \"Indietro\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Ping-Pong\"\n\nmsgid \"Columns\"\nmsgstr \"Colonne\"\n\nmsgid \"Columns:\"\nmsgstr \"Colonne:\"\n\nmsgid \"Rows\"\nmsgstr \"Righe\"\n\nmsgid \"Rows:\"\nmsgstr \"Righe:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"Etichette per colonna\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"Etichette per riga\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"Dimensioni dell’esportazione:\"\n\nmsgid \"Save a File\"\nmsgstr \"Salva un file\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"Vai alla cartella precedente.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"Va alla cartella successiva.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"Vai alla cartella di origine.\"\n\nmsgid \"Path:\"\nmsgstr \"Percorso:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"Aggiorna i file.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"Attiva/disattiva la visibilità dei file nascosti.\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Cartelle & File:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Crea Cartella\"\n\nmsgid \"File:\"\nmsgstr \"File:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"Tutti i File\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"Tutti Riconosciuti\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"Progetto Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"Immagine PNG\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"Immagine BMP\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"Immagine HDR Radiance\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"Immagine JPEG\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"Immagine SVG\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"Immagine TGA\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"Immagine WebP\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"Progetto OpenRaster\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"Progetto Aseprite\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"Progetto Krita\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"Progetto Piskel\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"Progetto Photoshop\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"Palette Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"Palette GIMP\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"Opzioni avanzate\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolazione:\"\n\nmsgid \"Nearest\"\nmsgstr \"Più vicino\"\n\nmsgid \"Bilinear\"\nmsgstr \"Bilineare\"\n\nmsgid \"Cubic\"\nmsgstr \"Cubica\"\n\nmsgid \"Trilinear\"\nmsgstr \"Trilineare\"\n\nmsgid \"Constant\"\nmsgstr \"Costante\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"Spazio colore\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"sRGB lineare\"\n\nmsgid \"General\"\nmsgstr \"Generale\"\n\nmsgid \"Startup\"\nmsgstr \"Avvio\"\n\nmsgid \"Language\"\nmsgstr \"Lingua\"\n\nmsgid \"Interface\"\nmsgstr \"Interfaccia\"\n\nmsgid \"Themes\"\nmsgstr \"Temi\"\n\nmsgid \"Canvas\"\nmsgstr \"Canvas\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"Sequenza\"\n\nmsgid \"Selection\"\nmsgstr \"Selezione\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Scorciatoie da tastiera\"\n\nmsgid \"Backup\"\nmsgstr \"Backup\"\n\nmsgid \"Performance\"\nmsgstr \"Prestazioni\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"Drivers\"\n\nmsgid \"Extensions\"\nmsgstr \"Estensioni\"\n\nmsgid \"Cursors\"\nmsgstr \"Puntatori\"\n\nmsgid \"Indicators\"\nmsgstr \"Indicatori\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"Pixelorama deve essere riavviato affinché i cambiamenti abbiano effetto.\"\n\nmsgid \"On\"\nmsgstr \"Acceso\"\n\nmsgid \"Restore default value\"\nmsgstr \"Ripristina valore predefinito\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Zoom smussato\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Aggiunge una transizione più fluida quando si zooma dentro o fuori\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"Zoom Intero\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"Limita il valore ad essere un intero multiplo del 100%\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Sensibilità della pressione del tablet:\"\n\nmsgid \"None\"\nmsgstr \"Nessuno\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Influenza l'Alfa del Pennello\"\n\nmsgid \"Color:\"\nmsgstr \"Colore:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Colore della guida:\"\n\nmsgid \"System Language\"\nmsgstr \"Lingua di sistema\"\n\nmsgid \"Display scale:\"\nmsgstr \"Scala di visualizzazione:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"Font:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"Dimensione carattere:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"Orientamento schermo:\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Oscura l'interfaccia nella finestra di dialogo\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"Mostra etichette di notifica\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"Usa finestre di dialogo dei file nativi\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"Quando questa impostazione è abilitata, vengono utilizzate le finestre di dialogo dei file nativi del sistema operativo, invece di quelle personalizzate di Pixelorama.\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"Modalità finestra singola\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"Quando questa impostazione è abilitata, le sotto-finestre di Pixelorama saranno incorporate nella finestra principale, altrimenti ogni finestra di dialogo sarà la propria finestra separata.\"\n\nmsgid \"Dark\"\nmsgstr \"Scuro\"\n\nmsgid \"Gray\"\nmsgstr \"Grigio\"\n\nmsgid \"Blue\"\nmsgstr \"Blu\"\n\nmsgid \"Caramel\"\nmsgstr \"Caramello\"\n\nmsgid \"Light\"\nmsgstr \"Chiaro\"\n\nmsgid \"Purple\"\nmsgstr \"Viola\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"Rosa\"\n\nmsgid \"Theme\"\nmsgstr \"Tema\"\n\nmsgid \"Buttons\"\nmsgstr \"Pulsanti\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Colore icona da:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Colore dell'icona:\"\n\nmsgid \"Background\"\nmsgstr \"Sfondo\"\n\nmsgid \"Background color from:\"\nmsgstr \"Colore di sfondo da:\"\n\nmsgid \"Background color:\"\nmsgstr \"Colore dello sfondo:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"Modalità strumento singolo\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"Se abilitato, il pulsante destro del mouse attiverà sempre lo stesso strumento del pulsante sinistro del mouse.\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"Condividi le opzioni tra gli strumenti sinistro e destro\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"Se abilitata, le opzioni saranno sincronizzate tra sinistra e destra.\\n\"\n\"Ad esempio, entrambi gli strumenti condivideranno la stessa dimensione del pennello e cambieranno istantaneamente su uno strumento l'altro.\"\n\nmsgid \"Left tool color:\"\nmsgstr \"Colore strumento sinistra:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"Colore strumento destro:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Dimensione del pulsante dello strumento:\"\n\nmsgid \"Small\"\nmsgstr \"Piccolo\"\n\nmsgid \"Big\"\nmsgstr \"Grande\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Influire solo sulla selezione\"\n\nmsgid \"Selected cels\"\nmsgstr \"Celle selezionate\"\n\nmsgid \"Current cel\"\nmsgstr \"Pacchetto corrente\"\n\nmsgid \"Current frame\"\nmsgstr \"Frame corrente\"\n\nmsgid \"All frames\"\nmsgstr \"Tutti i frame\"\n\nmsgid \"All projects\"\nmsgstr \"Tutti i progetti\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Inverti Colori\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Modifica Canale Rosso\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Modifica Canale Verde\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Modifica Canale Blu\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Modifica Canale Alfa\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Desaturazione\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Contorno\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Rilascia Ombra\"\n\nmsgid \"Offset X:\"\nmsgstr \"Spostamento X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"Spostamento Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"Colore ombra:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"Sfocatura Gaussiana\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"Tipo di sfocatura:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"Quantità sfocatura:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"Raggio Sfocatura:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"Direzione sfocatura:\"\n\nmsgid \"Gradient\"\nmsgstr \"Gradiente\"\n\nmsgid \"Gradient Map\"\nmsgstr \"Mappa Gradiente\"\n\nmsgid \"Interpolation\"\nmsgstr \"Interpolazione\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"Inverti\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"Distribuisci punti equamente\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"Dividi in parti uguali\"\n\nmsgid \"Parts:\"\nmsgstr \"Parti:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"Aggiungere punto alla fine\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"Se abilitata, l' ultimo punto viene aggiunto alla fine del gradiente\\n\"\n\"Disabilitare questa opzione se si desidera convertire il gradiente per avere un'interpolazione costante, in modo che l'ultimo colore venga preso in conto.\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"Salva su predefiniti\"\n\nmsgid \"Shape:\"\nmsgstr \"Forma:\"\n\nmsgid \"Linear\"\nmsgstr \"Lineare\"\n\nmsgid \"Radial\"\nmsgstr \"Radial\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"Ripeti:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"Ripeti\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"Specchia\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"Tronca\"\n\nmsgid \"Transition size:\"\nmsgstr \"Dimensione della transizione:\"\n\nmsgid \"Center:\"\nmsgstr \"Centro:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"Motivo dithering:\"\n\nmsgid \"Type:\"\nmsgstr \"Tipo:\"\n\nmsgid \"Angle:\"\nmsgstr \"Angolo:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Regola Tonalità/Saturazione/Valore\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"Regola HSV\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Tonalità:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Saturazione:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Valore:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"Regola Luminosità/Contrasto\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"Luminosità:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"Contrasto:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"Valore rosso:\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"Valore verde:\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"Valore blu:\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"Colore tinta:\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"Fattore effetto tinta:\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"Curve Colore\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"Canale:\"\n\nmsgid \"Red\"\nmsgstr \"Rosso\"\n\nmsgid \"Green\"\nmsgstr \"Verde\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"Valore\"\n\nmsgid \"Presets\"\nmsgstr \"Profili\"\n\nmsgid \"Apply\"\nmsgstr \"Applica\"\n\nmsgid \"Diagonal\"\nmsgstr \"Diagonale\"\n\nmsgid \"Place inside image\"\nmsgstr \"Posiziona all'interno dell'immagine\"\n\nmsgid \"Thickness:\"\nmsgstr \"Spessore:\"\n\nmsgid \"Colors:\"\nmsgstr \"Colori:\"\n\nmsgid \"Steps:\"\nmsgstr \"Passaggi:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"Pallettizza\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"Pixellizza\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"Posterizzazione\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"Livelli di posterizzazione:\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"Intensità del ditere:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Visualizza la schermata iniziale\"\n\nmsgid \"Online Docs\"\nmsgstr \"Documentazione online\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Tracker dei Problemi\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"Ripristina backup\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"Sessioni precedenti\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"Fare doppio clic per caricare un'intera sessione o un progetto specifico.\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"Sessioni\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"Progetti\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"(Sessione Attuale)\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"Apri Cartella Dati Dell'Editor\"\n\nmsgid \"Changelog\"\nmsgstr \"Novità\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Informazioni su Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"Supporta Lo Sviluppo Di Pixelorama\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - Pixelate i vostri sogni!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Sviluppato da Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-presente da Orama Interactive e contributori\"\n\nmsgid \"Website\"\nmsgstr \"Sito web\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"Codice sorgente\"\n\nmsgid \"Donate\"\nmsgstr \"Dona\"\n\nmsgid \"Developers\"\nmsgstr \"Sviluppatori\"\n\nmsgid \"Contributors\"\nmsgstr \"Contributori\"\n\nmsgid \"Donors\"\nmsgstr \"Donatori\"\n\nmsgid \"Translators\"\nmsgstr \"Traduttori\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Licenze\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"Licenza\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"Licenze Godot\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"Licenze Di Terze Parti\"\n\nmsgid \"English\"\nmsgstr \"Inglese\"\n\nmsgid \"Greek\"\nmsgstr \"Greco\"\n\nmsgid \"French\"\nmsgstr \"Francese\"\n\nmsgid \"German\"\nmsgstr \"Tedesco\"\n\nmsgid \"Polish\"\nmsgstr \"Polacco\"\n\nmsgid \"Portuguese\"\nmsgstr \"Portoghese\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Portoghese brasiliano\"\n\nmsgid \"Russian\"\nmsgstr \"Russo\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Cinese semplificato\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Cinese tradizionale\"\n\nmsgid \"Italian\"\nmsgstr \"Italiano\"\n\nmsgid \"Latvian\"\nmsgstr \"Lettone\"\n\nmsgid \"Spanish\"\nmsgstr \"Spagnolo\"\n\nmsgid \"Catalan\"\nmsgstr \"Catalano\"\n\nmsgid \"Esperanto\"\nmsgstr \"Esperanto\"\n\nmsgid \"Indonesian\"\nmsgstr \"Indonesiano\"\n\nmsgid \"Czech\"\nmsgstr \"Ceco\"\n\nmsgid \"Arabic\"\nmsgstr \"Arabo\"\n\nmsgid \"Turkish\"\nmsgstr \"Turco\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Bokmål norvegese\"\n\nmsgid \"Korean\"\nmsgstr \"Coreano\"\n\nmsgid \"Hungarian\"\nmsgstr \"Ungherese\"\n\nmsgid \"Romanian\"\nmsgstr \"Rumeno\"\n\nmsgid \"Japanese\"\nmsgstr \"Giapponese\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Ucraino\"\n\nmsgid \"Danish\"\nmsgstr \"Danese\"\n\nmsgid \"Swedish\"\nmsgstr \"Svedese\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Serbo (cirillico)\"\n\nmsgid \"Dutch\"\nmsgstr \"Olandese\"\n\nmsgid \"Belarusian\"\nmsgstr \"Bielorusso\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"Capo sviluppatore\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"Progettista UI\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"Autori\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Grafica di %s\"\n\nmsgid \"untitled\"\nmsgstr \"senza titolo\"\n\nmsgid \"imported\"\nmsgstr \"importato\"\n\nmsgid \"copy\"\nmsgstr \"copia\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Sei sicuro di voler uscire da Pixelorama?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Immagine non salvata\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Hai delle modifiche non salvate. Se procedi, i progressi compiuti andranno persi.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Salva prima di uscire?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"Il progetto %s ha progressi non salvati. Come si desidera procedere?\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Salva ed esci\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Esci senza salvare\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Selezione rettangolare\\n\\n\"\n\"%s per il tasto sinistro del mouse\\n\"\n\"%s per il tasto destro del mouse\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Selezione ellittica\\n\\n\"\n\"%s per il pulsante sinistro del mouse\\n\"\n\"%s per il tasto destro del mouse\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Selezione poligonale\\n\\n\"\n\"%s per il tasto sinistro del mouse\\n\"\n\"%s per il pulsante destro del mouse\\n\\n\"\n\"Doppio clic per collegare l'ultimo punto al punto di partenza\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Seleziona per colore\\n\\n\"\n\"%s per il pulsante sinistro del mouse\\n\"\n\"%s per il tasto destro del mouse\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Bacchetta Magica\\n\\n\"\n\"%s per il tasto sinistro del mouse\\n\"\n\"%s per il tasto destro del mouse\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Lasso / Strumento di selezione gratuita\\n\\n\"\n\"%s per il tasto sinistro del mouse\\n\"\n\"%s per il tasto destro del mouse\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Seleziona per disegno\\n\\n\"\n\"%s per il pulsante sinistro del mouse\\n\"\n\"%s per il tasto destro del mouse\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Muovi\\n\\n\"\n\"%s per il tasto sinistro del mouse\\n\"\n\"%s per il pulsante destro del mouse\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Zoom\\n\\n\"\n\"%s per il pulsante sinistro del mouse\\n\"\n\"%s per il pulsante destro del mouse\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Pan\\n\\n\"\n\"%s per il pulsante sinistro del mouse\\n\"\n\"%s per il pulsante destro del mouse\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"Selettore colore\\n\\n\"\n\"%s per il tasto sinistro del mouse\\n\"\n\"%s per il pulsante destro del mouse\\n\\n\"\n\"Seleziona un colore da un pixel dello sprite\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"Ritaglia\\n\\n\"\n\"%s per il tasto sinistro del mouse\\n\"\n\"%s per il pulsante destro del mouse\\n\\n\"\n\"Ridimensiona la superficie\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Matita\\n\\n\"\n\"%s per il tasto sinistro del mouse\\n\"\n\"%s per il tasto destro del mouse\\n\\n\"\n\"Tieni premuto %s per fare una linea\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Gomma\\n\\n\"\n\"%s per il tasto sinistro del mouse\\n\"\n\"%s per il tasto destro del mouse\\n\\n\"\n\"Tieni premuto %s per fare una linea\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Secchio\\n\\n\"\n\"%s per il tasto sinistro del mouse\\n\"\n\"%s per il tasto destro del mouse\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Strumento ombreggiatura\\n\\n\"\n\"%s per il pulsante sinistro del mouse\\n\"\n\"%s per il pulsante destro del mouse\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Strumento linea\\n\\n\"\n\"%s per il tasto sinistro del mouse\\n\"\n\"%s per il tasto destro del mouse\\n\\n\"\n\"Tieni premuto %s per agganciare l'angolo della riga\\n\"\n\"Tieni premuto %s per centrare la forma sull'origine del clic\\n\"\n\"Tieni premuto %s per spostare l'origine della forma\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"Strumento curva\\n\\n\"\n\"%s per il pulsante sinistro del mouse\\n\"\n\"%s per il pulsante destro del mouse\\n\\n\"\n\"Disegna curve bezier\\n\"\n\"Premi %s %s e trascina per controllare la curvatura\\n\"\n\"Premi e trascina per curvare\\n\"\n\"Premi %s per rimuovere l'ultimo punto aggiunto\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Strumento rettangolo\\n\\n\"\n\"%s per il tasto sinistro del mouse\\n\"\n\"%s per il pulsante destro del mouse\\n\\n\"\n\"Tieni premuto %s per creare una forma 1:1\\n\"\n\"Tieni premuto %s per centrare la forma sull'origine del clic\\n\"\n\"Tieni premuto %s per spostare l'origine della forma\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Strumento Ellisse\\n\\n\"\n\"%s per il tasto sinistro del mouse\\n\"\n\"%s per il pulsante destro del mouse\\n\\n\"\n\"Tieni premuto %s per creare una forma 1:1\\n\"\n\"Tieni premuto %s per centrare la forma sull'origine del clic\\n\"\n\"Tieni premuto %s per spostare l'origine della forma\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"Strumento Casella Isometrica\\n\\n\"\n\"%s per il pulsante sinistro del mouse\\n\"\n\"%s per il pulsante destro del mouse\\n\\n\"\n\"Disegna una casella isometrica\\n\"\n\"Premi %s/%s per aggiungere un punto base\\n\"\n\"Tieni premuto %s per agganciare l'angolo del punto base\\n\"\n\"Tieni premuto %s per spostare l'origine della forma\\n\"\n\"Premi %s per modificare l'ultima base aggiunta\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Testo\\n\\n\"\n\"%s per il pulsante sinistro del mouse\\n\"\n\"%s per il pulsante destro del mouse\"\n\nmsgid \"Rectangle\"\nmsgstr \"Rettangolo\"\n\nmsgid \"Ellipse\"\nmsgstr \"Ellisse\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Scegli un colore per lo strumento sinistro\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Scegli un colore per lo strumento destro\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"Cambia i colori destro e sinistro.\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"Colore Medio:\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Resetta i colori al loro stato originale (nero per sinistra, bianco per destra)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"Scegli un colore dalla finestra dell' applicazione.\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"Inserisci un codice esadecimale (\\\"#ff0000\\\") o un colore chiamato (\\\"red\\\").\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"Selezionare una forma di selezione.\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"Opzioni di colore\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"Selezionare una modalità selettore.\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"Cursori Colorati\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"Campioni\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"Colori Recenti\"\n\nmsgid \"Left tool\"\nmsgstr \"Strumento sinistra\"\n\nmsgid \"Right tool\"\nmsgstr \"Strumento destra\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Indicatore pixel strumento sinistro\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Mostra l'indicatore pixel del mouse sinistro o il pennello sul canvas quando disegni\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Indicatore pixel strumento destro\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Mostra l'indicatore pixel del mouse destro o il pennello sul canvas quando disegni\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Mostra icona strumento a sinistra\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Visualizza un'icona dello strumento sinistro selezionato accanto al cursore sulla tela\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Mostra l'icona dello strumento destra\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Visualizza un'icona dello strumento destro selezionato accanto al cursore sulla tela\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"Usa puntatori nativi del mouse\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"Usa il cursore incrociato per la superficie\"\n\nmsgid \"Guides\"\nmsgstr \"Guide\"\n\nmsgid \"Guides color:\"\nmsgstr \"Colore delle guide:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Un colore di guide per righello visualizzate sulla tela\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"Aggancio\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"Distanza di aggancio:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"Questa è la distanza in pixel dello schermo in cui viene attivata la guida e il snapping della griglia.\"\n\nmsgid \"Grid\"\nmsgstr \"Griglia\"\n\nmsgid \"Grid type:\"\nmsgstr \"Tipo di griglia:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Imposta il tipo di griglia tra rettangolare, isometrica o entrambi\"\n\nmsgid \"Rectangular\"\nmsgstr \"Rettangolare\"\n\nmsgid \"Isometric\"\nmsgstr \"Isometrica\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"Esagonale\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"Esagonale (punta appuntita)\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"Esagonale (punta piatta)\"\n\nmsgid \"All\"\nmsgstr \"Tutte\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"Griglie visibili:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"Modifica griglia:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"Dimensione griglia:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"Spostamento griglia:\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"Imposta lo spostamento della griglia dall'origine della superficie (angolo in alto a sinistra dell'immagine)\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"Disegna sulla modalità piastrelle:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"Se disattivata, la griglia verrà disegnata solo sopra l'immagine originale\"\n\nmsgid \"Grid color:\"\nmsgstr \"Colore della griglia:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"Un colore della griglia\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Griglia Pixel\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Visualizza allo zoom:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"Imposta lo zoom minimo con cui verrà visualizzata la griglia dei pixel\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Colore della griglia pixel:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"Un colore della griglia pixel\"\n\nmsgid \"Transparency\"\nmsgstr \"Trasparenza\"\n\nmsgid \"Checker size:\"\nmsgstr \"Dimensione checker:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Dimensioni dello sfondo checker trasparente\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Colore checker 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"Primo colore dello sfondo checker trasparente\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Colore checker 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"Secondo colore dello sfondo checker trasparente\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"Segui Il Movimento del Canvas\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"Il checker trasparente segue il movimento del canvas\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"Segui il Livello di Zoom del canvas\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"Il checker trasparente segue il livello di zoom del canvas\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"Selezionare il livello quando si fa clic su uno dei suoi pulsanti:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"Colore passato per skinning cipolla:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"Colore futuro skinning cipolla:\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"Bordi selezione animati\"\n\nmsgid \"Border color 1:\"\nmsgstr \"Colore bordo 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Colore bordo 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"Anteprima di trasformazione alfa:\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Solo il preset personalizzato può essere modificato\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"Imposta limite FPS dell'applicazione:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"Imposta il limite dei quadri dell'applicazione al secondo. Più basso è il numero, minore è l'uso della CPU, ma l'applicazione diventa più lenta, choppier e non reattiva. 0 significa che non c'è limite.\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"Passaggio massimo annullamenti:\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"Pausa applicazione quando perde il fuoco\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"Se questa opzione viene attivata, quando la finestra dell'applicazione perde il fuoco, viene messa in pausa Questo aiuta a ridurre l'utilizzo della CPU quando è inattivo. L'applicazione viene rimossa quando il mouse entra nella finestra dell'applicazione.\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"Aggiorna continuamente\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"Se questa opzione viene attivata, l'applicazione ridisegnerà lo schermo in modo continuo, anche se non viene utilizzata. Disattivando questa opzione si riduce l'utilizzo della CPU e della GPU quando è inattivo.\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"Abilita trasparenza finestra\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"Se abilitata, la finestra dell'applicazione può diventare trasparente. Ciò influisce sulle prestazioni, quindi tenerla spenta se non ne hai bisogno.\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"Usa driver audio fittizio\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"Render:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"Specifica il driver renderer/video utilizzato. GLES2 è migliore per i dispositivi più vecchi e di fascia bassa, ma GLES3 può offrire più funzioni.\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"Driver tablet:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"Specifica il driver del tablet utilizzato su Windows. Se è abilitato Windows Ink, selezionare winink.\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Aggiungi estensione\"\n\nmsgid \"Enable\"\nmsgstr \"Attiva\"\n\nmsgid \"Disable\"\nmsgstr \"Disattiva\"\n\nmsgid \"Uninstall\"\nmsgstr \"Disinstalla\"\n\nmsgid \"Open Folder\"\nmsgstr \"Apri Cartella\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"Esplora Online\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"Esplora Estensioni\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"Cerca...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"Etichette:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"Segnala un problema con un'estensione\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"Scarica\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"Link alla repository:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"Recupero dati dalla repository remota.\\n\"\n\"Attendere prego.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"Impossibile ottenere informazioni dalla repository remota.\\n\\n\"\n\"- Verificare la connessione a Internet.\\n\"\n\"- Se si utilizza la versione Flatpak di Pixelorama, è necessario concedere l'autorizzazione per connettersi a Internet. Per farlo, è possibile eseguire il seguente comando sul terminale:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"In alternativa, è possibile scaricare Flatseal e impostare lì i permessi per le applicazioni Flatpak.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"Impossibile ottenere informazioni dalla repository remota.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"Incolla il link della reposiory, dato dal proprietario della repository. Se lasciato vuoto, verrà automaticamente rimosso.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"Sei sicuro di voler abilitare questa estensione? Assicurati di abilitare solo le estensioni da fonti di cui ti fidi.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"Sei sicuro di voler eliminare questa estensione?\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"Dinamici\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"Stabilizzatore\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"Pressione\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"Velocità\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"Alfa\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"Dimensione\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"Limiti valore\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"Soglie\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"Avvio\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"Termina\"\n\nmsgid \"Brush:\"\nmsgstr \"Pennello:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Seleziona un pennello\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"Pennelli Predefiniti\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Pennello pixel\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Pennello cerchio\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Pennello di cerchio riempito\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"Pennelli Progetto\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"File Pennelli\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"Neve\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"File Pennelli Casuali\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"Erba\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"Stella\"\n\nmsgid \"Custom brush\"\nmsgstr \"Pennello personalizzato\"\n\nmsgid \"Brush size:\"\nmsgstr \"Dimensione del pennello:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"Opzioni rotazione\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"Capovolgi:\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"Ruota:\"\n\nmsgid \"Overwrite color\"\nmsgstr \"Sovrascrivi colore\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Sovrascrive il colore invece di sfumarlo. Questa opzione è rilevante solo con colori che non sono completamente opachi\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Pixel Perfect\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"Pixel Perfect\\n\"\n\"Rende le linee lisce rimuovendo i pixel aggiuntivi sui bordi\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"Blocca alfa\"\n\nmsgid \"Fill inside\"\nmsgstr \"Riempi all'interno\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"Spaziatura\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"Gap X:\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"Gap Y:\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Riempi Forma\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"Riempie la forma disegnata con il colore, invece di disegnare una forma cava\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"Densità:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"Colore del pennello da:\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: Colore dal pennello stesso, 100: il colore attualmente selezionato\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"Riempi l'area:\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"Area simile\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"Colori simili\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"Selezione intera\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"Riempi le regioni dalla fusione di tutti i livelli\"\n\nmsgid \"Fill with:\"\nmsgstr \"Riempi con:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"Colore selezionato\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Motivo\"\n\nmsgid \"Offset\"\nmsgstr \"Offset\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Ombreggiatura Semplice\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Spostamento Tonalità\"\n\nmsgid \"Lighten\"\nmsgstr \"Schiarisci\"\n\nmsgid \"Darken\"\nmsgstr \"Scurisci\"\n\nmsgid \"Amount:\"\nmsgstr \"Quantità:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Quantità di Schiarimento/Scurimento\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"Sostituisci Colore\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"Selezionare un colore dalla tavolozza.\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"Colori a destra:\"\n\nmsgid \"Pick for:\"\nmsgstr \"Scegli per:\"\n\nmsgid \"Left Color\"\nmsgstr \"Colore sinistro\"\n\nmsgid \"Right Color\"\nmsgstr \"Colore destro\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"Modalità di selezione:\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"Colore in Alto\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"Livello Attuale\"\n\nmsgid \"Mode:\"\nmsgstr \"Modalità:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Aumenta zoom\"\n\nmsgid \"Zoom out\"\nmsgstr \"Riduci zoom\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"Singola\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"A catena\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"A catena: crea una catena di curve di Bézier, in maniera simile allo strumento curva di Krita.\\n\"\n\"Singola: crea una singola curva di Bézier, in maniera simile allo strumento curva di Krita.\"\n\nmsgid \"Options\"\nmsgstr \"Opzioni\"\n\nmsgid \"Options:\"\nmsgstr \"Opzioni:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"Adatta al frame\"\n\nmsgid \"100% Zoom\"\nmsgstr \"Zoom 100%\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"Sostituire la selezione\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"Aggiungi alla selezione\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"Sottrai dalla selezione\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"Intersezione delle selezioni\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"Stile:\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"Regolare\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"Grassetto\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"Corsivo\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"Grassetto corsivo\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"Antialiasing\"\n\nmsgid \"Grayscale\"\nmsgstr \"Scala di grigi\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"Colore Margine\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"Colore strumento\"\n\nmsgid \"Adjusted average\"\nmsgstr \"Media corretta\"\n\nmsgid \"Blend at interface\"\nmsgstr \"Sfumatura all'interfaccia\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"Volto Sinistro\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"Volto Destro\"\n\nmsgid \"Mirroring\"\nmsgstr \"Specchiatura\"\n\nmsgid \"Horizontal\"\nmsgstr \"Orizzontale\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Abilita disegno orizzontale a specchio\"\n\nmsgid \"Vertical\"\nmsgstr \"Verticale\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Abilita disegno verticale a specchio\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"Abilita disegno diagonale (↗) specchiato\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"Abilita disegno diagonale (↘) specchiato\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"Sposta nel centro della superficie\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"Sposta nel centro della vista\"\n\nmsgid \"Current frame:\"\nmsgstr \"Frame corrente:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"Modalità Animazione:\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"Telaio corrente come foglio sprite\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"Vai al primo fotogramma\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"Vai al fotogramma precedente\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"Riproduce l'animazione all'indietro\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"Riproduce l'animazione in avanti\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"Vai al prossimo fotogramma\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"Vai all'ultimo fotogramma\"\n\nmsgid \"Timeline settings\"\nmsgstr \"Impostazioni della timeline\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Abilita/Disabilita Onion Skinning\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"Quanti frame al secondo dovrebbe essere l'anteprima dell'animazione?\\n\"\n\"Maggiori gli FPS, più veloce sarà l'animazione.\"\n\nmsgid \"No loop\"\nmsgstr \"Nessun loop\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Loop ciclico\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Ping-pong loop\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Onion Skinning:\"\n\nmsgid \"Past Frames\"\nmsgstr \"Frame Passati\"\n\nmsgid \"Future Frames\"\nmsgstr \"Frame Futuri\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Gestisci tag dei frame\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Proprietà Etichetta Frame\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Aggiungi un nuovo frame tag\"\n\nmsgid \"Name:\"\nmsgstr \"Nome:\"\n\nmsgid \"From:\"\nmsgstr \"Da:\"\n\nmsgid \"To:\"\nmsgstr \"A:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"Animazione riprodotta solo sui fotogrammi dello stesso tag\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Tag %s (Frame %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Tag %s (Frames %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Se è selezionato, l'animazione viene eseguita solo sui fotogrammi che hanno lo stesso tag.\\n\"\n\"Se non lo è, l'animazione verrà riprodotta per tutti i fotogrammi, ignorando i tag.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"Dimensione della cella:\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"Modalità colore\"\n\nmsgid \"Show past frames:\"\nmsgstr \"Mostra fotogrammi precedenti:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"Mostra fotogrammi futuri:\"\n\nmsgid \"Above canvas\"\nmsgstr \"Sopra la tela\"\n\nmsgid \"Below canvas\"\nmsgstr \"Sotto la tela\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"Se vuoi che un livello ignori lo skinning di cipolla aggiungi semplicemente il suffisso \\\"_io\\\" nel suo nome.\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Aggiungi un nuovo frame\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Rimuovi Frame\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Clona Frame\"\n\nmsgid \"Move Left\"\nmsgstr \"Muovi a sinistra\"\n\nmsgid \"Move Right\"\nmsgstr \"Muovi a destra\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"Aggiungi tag Frame\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"Seleziona pixel\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"Collega celle a\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"Scollega celle\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"Riproduci audio qui\"\n\nmsgid \"Properties\"\nmsgstr \"Proprietà\"\n\nmsgid \"Project Properties\"\nmsgstr \"Proprietà del progetto\"\n\nmsgid \"Frame properties\"\nmsgstr \"Proprietà del frame\"\n\nmsgid \"Layer properties\"\nmsgstr \"Proprietà del livello\"\n\nmsgid \"Cel properties\"\nmsgstr \"Proprietà cel\"\n\nmsgid \"Tag properties\"\nmsgstr \"Proprietà tag\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"Nuova tag\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"Importa Tag\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"Inverti i quadri\"\n\nmsgid \"Layer\"\nmsgstr \"Livello\"\n\nmsgid \"Group\"\nmsgstr \"Gruppo\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"Mappa caselle\"\n\nmsgid \"Audio\"\nmsgstr \"Audio\"\n\nmsgid \"Layers\"\nmsgstr \"Livelli\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"Maschera di ritaglio\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"Appiattisci\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"Appiattisci visibile\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Crea un nuovo livello\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"Aggiungi Livello Pixel\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"Aggiungi Livello Gruppo\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"Aggiungi Livello 3D\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"Aggiungi Livello Mappa caselle\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"Aggiungi Livello Audio\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Rimuovi il livello corrente\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Sposta in su il livello corrente\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Sposta in giù il livello corrente\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Clona il livello corrente\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Unisci il livello corrente con quello sottostante\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"Metodo di fusione:\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"Pass through\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"Normale\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"Cancella\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"Moltiplica\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"Colore brucia\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"Brucia lineare\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"Schermo\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"Colore scherma\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"Contrasto\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"Sovrapponi\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"Luce soffusa\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"Luce Intensa\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"Inversione\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"Differenza\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"Esclusioni\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"Sottrai\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"Dividi\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"Componente\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"Tinta\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"Saturazione\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"Colore\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"Luminosità\"\n\nmsgid \"Opacity:\"\nmsgstr \"Opacità:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"Opacità modalità piastrelle:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Attiva/Disattiva visibilità del livello\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Blocca/Sblocca livello\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Fotogramma: %s, Livello: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"Abilita/disabilita il collegamento automatico delle nuove celle alla creazione di nuovi fotogrammi\\n\\n\"\n\"Le celle collegate condividono contenuto tra diversi fotogrammi\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"Espandere/comprimere gruppo\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"File audio:\"\n\nmsgid \"Load file\"\nmsgstr \"Carica file\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"Riproduci al fotogramma:\"\n\nmsgid \"Palette\"\nmsgstr \"Palette\"\n\nmsgid \"Palettes\"\nmsgstr \"Palette\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Aggiungi una nuova palette\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Modifica la palette selezionata\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Scegli una palette\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Annulla: Disegno\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Ripeti: Disegno\"\n\nmsgid \"Undo: Select\"\nmsgstr \"Annulla: Seleziona\"\n\nmsgid \"Redo: Select\"\nmsgstr \"Ripeti: Seleziona\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Annulla: Scala\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Ripeti: Scala\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Annulla: Aggiungi livello\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Ripeti: Aggiungi livello\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Annulla: Rimuovi livello\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Ripeti: Rimuovi livello\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Annulla: Unisci livello\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Ripeti: Unisci livello\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Annulla: Cambia ordine livelli\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Ripeti: Cambia ordine livelli\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Annulla: Aggiungi Frame\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Ripeti: Aggiungi Frame\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Annulla: Rimuovi Frame\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Ripeti: Rimuovi Frame\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Annulla: Cambia ordine frame\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Ripeti: Cambia ordine frame\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Annulla: Elimina pennello personalizzato\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Ripeti: Elimina pennello personalizzato\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"Annulla: Modifica Tag Frame\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"Ripristina: Modifica Tag Frame\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"Annulla: Elimina Tag Frame\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"Ripristina: Elimina Tag Frame\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"Annulla: Cambia la durata del frame\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"Ripeti: cambia la durata del frame\"\n\nmsgid \"Move Guide\"\nmsgstr \"Muovi la guida\"\n\nmsgid \"File saved\"\nmsgstr \"File salvato\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"Backup salvato\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"Impossibile aprire il file. Codice errore %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"Impossibile salvare il file. Codice errore %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"Esportazione del video non riuscita. Assicurati che FFMPEG sia installato correttamente.\"\n\nmsgid \"File(s) exported\"\nmsgstr \"File esportato/i\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Nuova palette vuota\"\n\nmsgid \"Import Palette\"\nmsgstr \"Importa Palette\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Crea palette dallo sprite attuale\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Nome Palette:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Nome Colore:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"Usa i colori sinistro e destro attuali\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Creare una nuova palette vuota?\"\n\nmsgid \"Error\"\nmsgstr \"Errore\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Errore: La Palette deve avere un nome valido.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"File Palette non valido!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Modifica Palette\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"Crea colori con componente alfa\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"Ottieni colori solo dalla selezione\"\n\nmsgid \"Get colors from\"\nmsgstr \"Ottieni colori da\"\n\nmsgid \"Patrons:\"\nmsgstr \"Sostenitori:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"Vuoi che il tuo nome o la tua azienda siano mostrati nella schermata iniziale?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Diventa uno Sponsor Platino\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Diventa uno Sponsor Oro\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Diventa un sostenitore\"\n\nmsgid \"Don't show again\"\nmsgstr \"Non mostrare di nuovo\"\n\nmsgid \"Image Options\"\nmsgstr \"Opzioni dell'immagine\"\n\nmsgid \"Default width:\"\nmsgstr \"Larghezza default:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"Una larghezza predefinita di una nuova immagine\"\n\nmsgid \"Default height:\"\nmsgstr \"Altezza default:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"Un'altezza predefinita di una nuova immagine\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Colore di riempimento predefinito:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"Un colore di sfondo predefinito di una nuova immagine\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"Reimposta tutte le opzioni disponibili nelle Preferenze\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"Reimposta opzioni timeline\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"Reimposta tutte le opzioni dello strumento\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"Rimuovi tutte le estensioni\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"Rimuovi tutti i backup\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"Pulisce l'elenco dei file aperti di recente\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"Blocca proporzioni\"\n\nmsgid \"Portrait\"\nmsgstr \"Ritratto\"\n\nmsgid \"Landscape\"\nmsgstr \"Paesaggio\"\n\nmsgid \"Templates:\"\nmsgstr \"Modelli:\"\n\nmsgid \"Preset\"\nmsgstr \"Preset\"\n\nmsgid \"Preset:\"\nmsgstr \"Preset:\"\n\nmsgid \"Default\"\nmsgstr \"Predefinito\"\n\nmsgid \"Custom\"\nmsgstr \"Personalizzato\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Selezione rettangolare\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"Selezione Ellittica\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"Selezione Poligonale\"\n\nmsgid \"Select By Color\"\nmsgstr \"Seleziona Per Colore\"\n\nmsgid \"Magic Wand\"\nmsgstr \"Bacchetta Magica\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"Lasso / Strumento di selezione libera\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"Seleziona per Disegno\"\n\nmsgid \"Move\"\nmsgstr \"Muovi\"\n\nmsgid \"Zoom\"\nmsgstr \"Zoom\"\n\nmsgid \"Pan\"\nmsgstr \"Pan\"\n\nmsgid \"Color Picker\"\nmsgstr \"Selettore colore\"\n\nmsgid \"Pencil\"\nmsgstr \"Matita\"\n\nmsgid \"Eraser\"\nmsgstr \"Gomma\"\n\nmsgid \"Bucket\"\nmsgstr \"Secchio\"\n\nmsgid \"Shading Tool\"\nmsgstr \"Strumento Ombreggiatura\"\n\nmsgid \"Line Tool\"\nmsgstr \"Strumento Linea\"\n\nmsgid \"Curve Tool\"\nmsgstr \"Strumento Curva\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"Rettangolo\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"Strumento Ellissi\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"Strumento Casella Isometrica\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Inverti Colori\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Imposta la scorciatoia\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Premere un tasto o una combinazione di tasti per impostare la scorciatoia\"\n\nmsgid \"Already assigned\"\nmsgstr \"Già assegnato\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Strumento sinistra:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Uno strumento assegnato al pulsante sinistro del mouse\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Strumento destra:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Uno strumento assegnato al pulsante destro del mouse\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"Impossibile trovare il file dell'ultimo progetto.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"Impossibile trovare il file del progetto.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Non hai ancora salvato o aperto alcun progetto in Pixelorama!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Apri l'ultimo progetto\"\n\nmsgid \"Open last project...\"\nmsgstr \"Apri l'ultimo progetto...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Apri l'ultimo progetto all'avvio\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Apri l'ultimo progetto aperto all'avvio\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"Conferma uscita\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"Percorso FFMPEG\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Abilita salvataggio automatico\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Intervallo di salvataggio automatico:\"\n\nmsgid \"minute(s)\"\nmsgstr \"minuto(i)\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"Esporta dati JSON\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"Dividi livelli\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"Includi le etichette dei quadri nel nome del file\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"Crea una nuova cartella per ogni tag frame\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"Crea file multipli, ma ogni file viene memorizzato in cartelle diverse che corrispondono al suo tag frame\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"Carattere(i) separatore(i):\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"I caratteri che separano il nome del file e il numero di fotogramma\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"Ritaglia immagini\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"Ritaglia le immagini esportate nella loro porzione visibile, considerando ogni pixel con un canale alfa diverso da zero come visibile.\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"Ritaglia il contenuto dell'immagine alla selezione\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"Esporta solo contenuti che rientrano nei limiti di un'area selezionata.\"\n\nmsgid \"Close\"\nmsgstr \"Chiudi\"\n\nmsgid \"Discard All\"\nmsgstr \"Scarta Tutto\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"Pixelorama non si è chiuso correttamente l'ultima volta. Vuoi ripristinare una sessione precedente?\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"Backup ricaricato\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Rimuovi la palette attualmente selezionata\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"Sei sicuro di voler rimuovere questa tavolozza? (Non può essere annullato)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Non puoi rimuovere altre palette!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Impossibile rimuovere la palette, perché non esiste!\"\n\nmsgid \"and\"\nmsgstr \"e\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Sposta il riquadro selezionato a sinistra.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Sposta il riquadro selezionato a destra.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"Durata del frame:\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"Dati utente:\"\n\nmsgid \"Duration\"\nmsgstr \"Durata\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"Piastrellato In Entrambi Gli Assi\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"Piastrellato Nell'Asse X\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Piastrellato Nell'Asse Y\"\n\nmsgid \"Create a new palette\"\nmsgstr \"Crea una nuova tavolozza\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"Crea una nuova tavolozza del progetto\"\n\nmsgid \"Comment:\"\nmsgstr \"Commento:\"\n\nmsgid \"Empty\"\nmsgstr \"Vuoto\"\n\nmsgid \"From Current Palette\"\nmsgstr \"Dalla Tavolozza Corrente\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"Dallo Sprite Corrente\"\n\nmsgid \"From Current Selection\"\nmsgstr \"Dalla Selezione Corrente\"\n\nmsgid \"Add a new color\"\nmsgstr \"Aggiungi un nuovo colore\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"Rimuovi un colore selezionato\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"Ordina tavolozza\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"Inverti colori\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"Ordina per tonalità\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"Ordina per saturazione\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"Ordina per valore\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"Ordina per luminosità\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"Ordina per rosso\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"Ordina per verde\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"Ordina per blu\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"Ordina per alfa\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"Tavolozza con lo stesso nome e percorso esiste già!\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"Il nome della tavolozza è richiesto!\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"Ridurre la dimensione della tavolozza ripristinerà le posizioni dei colori. I colori che non si adattano alle nuove dimensioni della tavolozza andranno persi!\"\n\nmsgid \"Position:\"\nmsgstr \"Posizione:\"\n\nmsgid \"Tools\"\nmsgstr \"Strumenti\"\n\nmsgid \"Main Canvas\"\nmsgstr \"Tela Principale\"\n\nmsgid \"Second Canvas\"\nmsgstr \"Seconda Tela\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"Timeline Animazione\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"Anteprima Tela\"\n\nmsgid \"Color Pickers\"\nmsgstr \"Selettore colore\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"Opzioni Globali Degli Strumenti\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"Opzioni Strumenti A Sinistra\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"Opzioni Dello Strumento Destra\"\n\nmsgid \"Reference Images\"\nmsgstr \"Immagini Di Riferimento\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"Editor Prospettiva\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"Registratore\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"Caselle\"\n\nmsgid \"Crop\"\nmsgstr \"Ritaglia\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"Ridimensiona la superficie\"\n\nmsgid \"Margins\"\nmsgstr \"Margini\"\n\nmsgid \"Position + Size\"\nmsgstr \"Posizione + Dimensione\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"Rapporto Dimensioni Bloccate\"\n\nmsgid \"Margins:\"\nmsgstr \"Margini:\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"Rapporto Aspetto:\"\n\nmsgid \"Top:\"\nmsgstr \"Alto:\"\n\nmsgid \"Bottom:\"\nmsgstr \"Basso:\"\n\nmsgid \"Left:\"\nmsgstr \"Sinistra:\"\n\nmsgid \"Right:\"\nmsgstr \"Destra:\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"Dimensione bloccata\\n\\n\"\n\"Quando abilitata usando lo strumento sulla superficie di disegno sposterà solo il rettangolo di ritaglio.\\n\\n\"\n\"Quando disabilitato usando lo strumento sulla superficie disegnerà il rettangolo.\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"Modifica Forma 3D\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"Riquadro\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"Sfera\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"Capsula\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"Cilindro\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"Prisma\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"Toro\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"Piano\"\n\nmsgid \"Text\"\nmsgstr \"Testo\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"Luce direzionale\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"Riflettore\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"Punto luce\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"Modello personalizzato\"\n\nmsgid \"Selected object:\"\nmsgstr \"Oggetto selezionato:\"\n\nmsgid \"Add new object\"\nmsgstr \"Aggiungi nuovo oggetto\"\n\nmsgid \"Remove object\"\nmsgstr \"Rimuovi oggetto\"\n\nmsgid \"Camera\"\nmsgstr \"Camera\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"Proiezione:\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"Prospettiva\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"Ortogonale\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"Frustum\"\n\nmsgid \"Rotation:\"\nmsgstr \"Rotazione:\"\n\nmsgid \"Scale:\"\nmsgstr \"Scala:\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"Ambiente\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"Colore ambiente:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"Energia del colore ambiente:\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"Visibile:\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"Trasforma\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"Mesh\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"Da sinistra a destra:\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"Raggio:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"Segmenti radiali:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"Anelli:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"È emisfero:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"Raggio superiore:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"Raggio inferiore:\"\n\nmsgid \"Text:\"\nmsgstr \"Testo:\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"Profondità:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"Dimensione pixel:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"Passaggio curva:\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"Allineamento orizzontale:\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"Allineamento verticale:\"\n\nmsgid \"Left\"\nmsgstr \"Sinistra\"\n\nmsgid \"Right\"\nmsgstr \"Destra\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"Spaziatura linea:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"Energia:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"Negativo:\"\n\nmsgid \"Shadow:\"\nmsgstr \"Ombra:\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"Portata:\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"Proprietà Animabili\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"Quadro di anteprima:\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"Anima\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"Valore iniziale:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"Valore finale:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"Tipo di facilità:\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"Inizia lentamente e accelera verso la fine\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"Inizia rapidamente e rallenta verso la fine\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"Più lento ad entrambe le estremità, veloce al centro\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"Veloce ad entrambe le estremità, lenta al centro\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"Quadratico (potenza di 2)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"Cubico (potenza di 3)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"Quartico (potenza di 4)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"Quintica (potenza di 5)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"Esponenziale (potenza di x)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"Radice quadrata\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"Seno\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"Distorcendo i bordi\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"Rimbalzo alla fine\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"Rimozione alle estremità\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"Vai alla fine\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"Monocromatico\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"Quando si apre un'immagine, può essere importata come riferimento.\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"Seleziona un'immagine qui sotto per cambiarne le proprietà.\\n\"\n\"Nota che non puoi disegnare mentre è selezionata un'immagine di riferimento.\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"Rimuovi\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"Tieni premuto Shift mentre per rimuovere istantaneamente.\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"Sei sicuro di voler rimuovere questa immagine di riferimento? Non verrà eliminata dal file system.\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"Sposta l'immagine di riferimento selezionata a destra\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"Sposta l'immagine di riferimento selezionata a sinistra\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"Seleziona un'immagine di riferimento sulla tela\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"Sposta l'immagine di riferimento selezionata\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"Ruota l'immagine di riferimento selezionata\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"Scala l'immagine di riferimento selezionata\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"nessuno\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"Ripristina Trasformazione\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"Posizione\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"Scala\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"Rotazione\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"Filtro\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"Opacità\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"Bloccaggio Colore\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"Abilitato\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"Effetti di livello\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"Aggiungi effetto\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"Vuoi scaricare l'immagine da %s?\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"Insieme caselle\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"Insieme caselle:\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"Insieme caselle\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"Nuovo insieme caselle\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"Nome insieme caselle:\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"Dimensione caselle:\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"Forma riquadro:\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"Layout riquadro:\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"Asse offset riquadri:\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"Per tutte le forme semioffset (Isometrica & Esagonale), determina l'asse dell'offset.\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"Accatastato\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"Scostamento sovrapposto\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"Scale a destra\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"Scale in basso\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"Diamante a destra\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"Diamante in basso\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"Modalità di posizionamento:\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"Abilitare la modalità di posizionamento è un'azione permanente. Una volta attivato, sarai solo in grado di posizionare i riquadri e non sarai più in grado di modificare i riquadri esistenti su questo livello.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"Seleziona una casella per posizionarla sulla tela.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"Modifica le tessere sulla tela.\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"Disegna caselle\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"Ruota la casella a sinistra (in senso antiorario)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"Ruota la casella a destra (in senso orario)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"Capovolgi la casella orizzontalmente\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"Capovolgi la casella verticalmente\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"Manuale\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Auto\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"Pila\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"Dimensione bottone piastre:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"Mostra piatra vuota:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"Proprietà piastrella\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"Probabilità:\"\n\n"
  },
  {
    "path": "Translations/ja_JP.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ja\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Japanese\\n\"\n\"Language: ja_JP\\n\"\n\"PO-Revision-Date: 2025-11-04 18:28\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"キャンセル\"\n\nmsgid \"Open\"\nmsgstr \"開く\"\n\nmsgid \"Save\"\nmsgstr \"保存\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"確認して下さい\"\n\nmsgid \"File Name:\"\nmsgstr \"ファイル名:\"\n\nmsgid \"Project Name:\"\nmsgstr \"プロジェクト名:\"\n\nmsgid \"Image Size\"\nmsgstr \"画像サイズ\"\n\nmsgid \"Canvas Size\"\nmsgstr \"キャンバス サイズ\"\n\nmsgid \"Frame Size\"\nmsgstr \"フレームサイズ\"\n\nmsgid \"Size:\"\nmsgstr \"サイズ:\"\n\nmsgid \"Width:\"\nmsgstr \"幅:\"\n\nmsgid \"Height:\"\nmsgstr \"高さ:\"\n\nmsgid \"Center\"\nmsgstr \"中央揃え\"\n\nmsgid \"File\"\nmsgstr \"ファイル\"\n\nmsgid \"Edit\"\nmsgstr \"編集\"\n\nmsgid \"Select\"\nmsgstr \"選択\"\n\nmsgid \"View\"\nmsgstr \"表示\"\n\nmsgid \"Window\"\nmsgstr \"ウインドウ\"\n\nmsgid \"Image\"\nmsgstr \"画像\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"投影\"\n\nmsgid \"Effects\"\nmsgstr \"エフェクト\"\n\nmsgid \"Help\"\nmsgstr \"ヘルプ\"\n\nmsgid \"New\"\nmsgstr \"新規\"\n\nmsgid \"New...\"\nmsgstr \"新規...\"\n\nmsgid \"Open...\"\nmsgstr \"開く...\"\n\nmsgid \"Save...\"\nmsgstr \"保存...\"\n\nmsgid \"Save as...\"\nmsgstr \"名前をつけて保存\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"ブレンドした画像を含む\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"有効にすると、最終的なブレンド画像も各フレームの pxo に保存されます。\\n\"\n\"これにより、pxo ファイルが大きくなり、サードパーティ製のソフトウェア\\n\"\n\"や CLI のエクスポートでインポートする場合に便利です。 PixeloramaでPxoファイルをロードするには、このオプションを有効にする必要はありません。\"\n\nmsgid \"Import\"\nmsgstr \"インポート\"\n\nmsgid \"Export\"\nmsgstr \"エクスポート\"\n\nmsgid \"Overwrite\"\nmsgstr \"上書き\"\n\nmsgid \"Export...\"\nmsgstr \"エクスポート...\"\n\nmsgid \"Export as...\"\nmsgstr \"書式を指定してエクスポート…\"\n\nmsgid \"Export PNG...\"\nmsgstr \"PNGでエクスポート...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"PNGに名前をつけてエクスポート...\"\n\nmsgid \"Quit\"\nmsgstr \"終了\"\n\nmsgid \"Undo\"\nmsgstr \"元に戻す\"\n\nmsgid \"Redo\"\nmsgstr \"やり直し\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"元に戻すの履歴\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"初期状態\"\n\nmsgid \"Copy\"\nmsgstr \"コピー\"\n\nmsgid \"Cut\"\nmsgstr \"カット\"\n\nmsgid \"Paste\"\nmsgstr \"ペースト\"\n\nmsgid \"Paste in Place\"\nmsgstr \"現在の場所に貼り付け\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"クリップボードから貼り付け\"\n\nmsgid \"Delete\"\nmsgstr \"削除\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"完全に削除\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"ゴミ箱へ移動\"\n\nmsgid \"New Brush\"\nmsgstr \"新しいブラシ\"\n\nmsgid \"Scale Image\"\nmsgstr \"画像の拡大縮小\"\n\nmsgid \"Pixels\"\nmsgstr \"ピクセル\"\n\nmsgid \"Percentage\"\nmsgstr \"割合\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"カラーモード:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"カラーモード\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"インデックス付き\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"選択範囲に合わせてトリミング\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"コンテンツにトリミング\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"キャンバスサイズを変更\"\n\nmsgid \"Offset Image\"\nmsgstr \"オフセット画像\"\n\nmsgid \"Offset:\"\nmsgstr \"オフセット:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"ラップアラウンド\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"中央フレーム\"\n\nmsgid \"Rotate Image\"\nmsgstr \"画像を回転\"\n\nmsgid \"Pivot x:\"\nmsgstr \"中心 x:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"中心 y:\"\n\nmsgid \"Smear options:\"\nmsgstr \"スミアオプション:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"許容範囲:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"初期角度:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"ラップストローク\"\n\nmsgid \"Clear\"\nmsgstr \"削除\"\n\nmsgid \"Invert\"\nmsgstr \"反転\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"セル範囲を選択\"\n\nmsgid \"Modify\"\nmsgstr \"修正\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"拡張\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"選択範囲を拡張\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"縮小\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"選択範囲を縮小\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"境界線\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"境界線の選択\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"ひし形\"\n\nmsgid \"Circle\"\nmsgstr \"円\"\n\nmsgid \"Square\"\nmsgstr \"正方形\"\n\nmsgid \"Grayscale View\"\nmsgstr \"グレースケール表示\"\n\nmsgid \"Mirror Image\"\nmsgstr \"ミラー画像\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"水平方向に反転\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"垂直方向に反転\"\n\nmsgid \"Preferences\"\nmsgstr \"設定\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"プロシージャル\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"ブラー\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"読み込み済み\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"キャンバスを中央へ\"\n\nmsgid \"Tile Mode\"\nmsgstr \"タイルモード\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"タイルモードのオフセット\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"X基底:\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"Y基底:\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"マスキング:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"初期化\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"%s を初期化\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"現在のフレームを使用\"\n\nmsgid \"Reset Mask\"\nmsgstr \"マスクを初期化\"\n\nmsgid \"Window Opacity\"\nmsgstr \"ウィンドウ不透明度\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"ウィンドウの不透明度はフルスクリーンモードでは機能しません。\"\n\nmsgid \"Panel Layout\"\nmsgstr \"パネルのレイアウト\"\n\nmsgid \"Panels\"\nmsgstr \"パネル\"\n\nmsgid \"Layouts\"\nmsgstr \"レイアウト\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"可動パネル\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"フローティングを作成\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"レイアウト管理\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"プレビュー\"\n\nmsgid \"Add\"\nmsgstr \"追加\"\n\nmsgid \"Add Layout\"\nmsgstr \"レイアウトを追加\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"%s を削除\"\n\nmsgid \"Copy from\"\nmsgstr \"コピー元\"\n\nmsgid \"Rename\"\nmsgstr \"名前を変更\"\n\nmsgid \"Rename Layout\"\nmsgstr \"レイアウト名の変更\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"現在のレイアウト\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"本当にこのレイアウトを削除してよろしいですか？\"\n\nmsgid \"Widescreen\"\nmsgstr \"ワイドスクリーン\"\n\nmsgid \"Tallscreen\"\nmsgstr \"トールスクリーン\"\n\nmsgid \"Mirror View\"\nmsgstr \"ミラービュー\"\n\nmsgid \"Show Grid\"\nmsgstr \"グリッドを表示\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"ピクセルグリッドを表示\"\n\nmsgid \"Show Rulers\"\nmsgstr \"ルーラーを表示\"\n\nmsgid \"Show Guides\"\nmsgstr \"ガイドを表示\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"マウスガイドを表示\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"参照画像を表示\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"レイヤーエフェクトを表示\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"スナップ先\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"矩形グリッド境界線にスナップ\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"矩形グリッド中央にスナップ\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"ガイドにスナップ\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"視点ガイドにスナップ\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"アニメーションのタイムラインを表示\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Zenモード\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"フルスクリーンモード\"\n\nmsgid \"Fill with color:\"\nmsgstr \"塗りつぶし\"\n\nmsgid \"Open a File\"\nmsgstr \"ファイルを開く\"\n\nmsgid \"Open File(s)\"\nmsgstr \"ファイルを開く\"\n\nmsgid \"Import Options\"\nmsgstr \"インポートオプション\"\n\nmsgid \"Import as:\"\nmsgstr \"形式を指定してインポート\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"すべてに適用\"\n\nmsgid \"Recent projects\"\nmsgstr \"最近のプロジェクト\"\n\nmsgid \"New project\"\nmsgstr \"新規プロジェクト\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"スプライトシート(新規プロジェクト)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"スプライトシート (新規レイヤー)\"\n\nmsgid \"New frame\"\nmsgstr \"新しいフレーム\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"セルを置換\"\n\nmsgid \"New layer\"\nmsgstr \"新規レイヤー\"\n\nmsgid \"New reference image\"\nmsgstr \"新しい参照画像\"\n\nmsgid \"New palette\"\nmsgstr \"新しいパレット\"\n\nmsgid \"New brush\"\nmsgstr \"新しいブラシ\"\n\nmsgid \"New pattern\"\nmsgstr \"新しいパターン\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"水平フレーム:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"垂直フレーム\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"スマートスライス\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"しきい値：\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"この値より小さい片側の画像はしきい値を超えます\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"マージ距離:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"しきい値を超えた画像は、この距離内にある場合、より大きな画像にマージされます。\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"更新\"\n\nmsgid \"Start frame:\"\nmsgstr \"開始フレーム:\"\n\nmsgid \"End frame:\"\nmsgstr \"終了フレーム:\"\n\nmsgid \"At frame:\"\nmsgstr \"すべてのフレーム:\"\n\nmsgid \"At layer:\"\nmsgstr \"レイヤーで:\"\n\nmsgid \"Brush type:\"\nmsgstr \"ブラシタイプ:\"\n\nmsgid \"File brush\"\nmsgstr \"ファイルブラシ\"\n\nmsgid \"Project brush\"\nmsgstr \"プロジェクトブラシ\"\n\nmsgid \"Random brush\"\nmsgstr \"ランダムブラシ\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"スプライトを .pxo として保存\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \".png としてエクスポート\"\n\nmsgid \"Export Sprite\"\nmsgstr \"スプライトをエクスポート\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"ファイルが存在します。上書きしますか？\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"以下のファイルは既に存在します。上書きしますか？\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"ディレクトリパスが有効ではありません！\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"ファイル名が有効ではありません！\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"ディレクトリパスとファイル名が無効です！\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"エクスポート中...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"ファイル '%s' を読み込めません。\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"ファイル '%s' を読み込むことができません。\\n\"\n\"エラーコード: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"ファイル '%s' を読み込めません。\\n\"\n\"これは有効なパレットファイルではありません。\"\n\nmsgid \"Frame\"\nmsgstr \"フレーム\"\n\nmsgid \"Frames:\"\nmsgstr \"フレーム:\"\n\nmsgid \"All Frames\"\nmsgstr \"すべてのフレーム\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Spritesheet\"\n\nmsgid \"Animation\"\nmsgstr \"アニメーション\"\n\nmsgid \"Preview:\"\nmsgstr \"プレビュー:\"\n\nmsgid \"Frame:\"\nmsgstr \"フレーム：\"\n\nmsgid \"Orientation:\"\nmsgstr \"向き:\"\n\nmsgid \"Browse\"\nmsgstr \"参照\"\n\nmsgid \"Resize:\"\nmsgstr \"サイズを変更\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"品質:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"エクスポートをキャンセル\"\n\nmsgid \"Alert!\"\nmsgstr \"警告！\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"現在のフォルダを選択\"\n\nmsgid \"Open a Directory\"\nmsgstr \"ディレクトリを開く\"\n\nmsgid \"Background:\"\nmsgstr \"バックグラウンド:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"選択したフレーム\"\n\nmsgid \"Layers:\"\nmsgstr \"レイヤー:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"表示レイヤー\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"選択したレイヤー\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"ピクセルレイヤー:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"グループレイヤー:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"3Dレイヤー:\"\n\nmsgid \"Direction:\"\nmsgstr \"方向:\"\n\nmsgid \"Forward\"\nmsgstr \"前方から\"\n\nmsgid \"Backwards\"\nmsgstr \"後方から\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Ping-Pong\"\n\nmsgid \"Columns\"\nmsgstr \"列\"\n\nmsgid \"Columns:\"\nmsgstr \"列:\"\n\nmsgid \"Rows\"\nmsgstr \"行\"\n\nmsgid \"Rows:\"\nmsgstr \"行:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"列ごとのタグ\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"行ごとのタグ\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"寸法をエクスポート:\"\n\nmsgid \"Save a File\"\nmsgstr \"ファイルを保存\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"前のフォルダへ移動します。\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"次のフォルダへ移動します。\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"親フォルダへ移動します。\"\n\nmsgid \"Path:\"\nmsgstr \"パス:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"ファイルを更新する。\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"非表示ファイルの表示を切り替える。\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"ディレクトリとファイル:\"\n\nmsgid \"Create Folder\"\nmsgstr \"フォルダーを作成\"\n\nmsgid \"File:\"\nmsgstr \"ファイル:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"全てのファイル\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"すべて認識済み\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"Pixelorama プロジェクト\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"PNG画像\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"BMP画像\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"輝度HDR画像\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"JPEG画像\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"SVG画像\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"TGA画像\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"WebP画像\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"OpenRaster プロジェクト\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"Aseprite プロジェクト\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"Kritaプロジェクト\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"Piskel プロジェクト\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"Photoshop プロジェクト\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"Pixeloramaパレット\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"GIMPパレット\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"詳細設定\"\n\nmsgid \"Interpolation:\"\nmsgstr \"補間:\"\n\nmsgid \"Nearest\"\nmsgstr \"ニアレスト\"\n\nmsgid \"Bilinear\"\nmsgstr \"バイリニア\"\n\nmsgid \"Cubic\"\nmsgstr \"キュービック\"\n\nmsgid \"Trilinear\"\nmsgstr \"トライリニア\"\n\nmsgid \"Constant\"\nmsgstr \"固定\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"色空間\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"リニアsRGB\"\n\nmsgid \"General\"\nmsgstr \"一般\"\n\nmsgid \"Startup\"\nmsgstr \"スタートアップ\"\n\nmsgid \"Language\"\nmsgstr \"言語\"\n\nmsgid \"Interface\"\nmsgstr \"インターフェース\"\n\nmsgid \"Themes\"\nmsgstr \"テーマ\"\n\nmsgid \"Canvas\"\nmsgstr \"キャンバス\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"タイムライン\"\n\nmsgid \"Selection\"\nmsgstr \"選択範囲\"\n\nmsgid \"Shortcuts\"\nmsgstr \"ショートカット\"\n\nmsgid \"Backup\"\nmsgstr \"バックアップ\"\n\nmsgid \"Performance\"\nmsgstr \"パフォーマンス\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"ドライバー\"\n\nmsgid \"Extensions\"\nmsgstr \"拡張機能\"\n\nmsgid \"Cursors\"\nmsgstr \"カーソル\"\n\nmsgid \"Indicators\"\nmsgstr \"インジケーター\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"変更を有効にするには、Pixeloramaを再起動する必要があります。\"\n\nmsgid \"On\"\nmsgstr \"オン\"\n\nmsgid \"Restore default value\"\nmsgstr \"既定値へ戻す\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"スムーズズーム\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"ズームインまたはズームアウト時にスムーズなトランジションを追加します\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"整数ズーム\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"100%の整数の倍数に制限する\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"タブレットの圧力感度:\"\n\nmsgid \"None\"\nmsgstr \"無し\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"ブラシのアルファに影響\"\n\nmsgid \"Color:\"\nmsgstr \"色:\"\n\nmsgid \"Guide color:\"\nmsgstr \"ガイドの色:\"\n\nmsgid \"System Language\"\nmsgstr \"システム言語\"\n\nmsgid \"Display scale:\"\nmsgstr \"表示スケール:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"フォント:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"フォントサイズ:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"画面の向き：\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"ダイアログポップアップ時にインターフェースを薄暗くする\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"通知ラベルを表示\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"ネイティブのファイルダイアログを使用\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"この設定を有効にすると、Pixeloramaのカスタムダイアログではなく、オペレーティングシステムのネイティブファイルダイアログが使用されます。\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"シングルウィンドウモード\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"この設定を有効にすると、Pixeloramaのサブウィンドウがメインウィンドウに埋め込まれます。そうでなければ、各ダイアログは個別のウィンドウになります。\"\n\nmsgid \"Dark\"\nmsgstr \"ダーク\"\n\nmsgid \"Gray\"\nmsgstr \"グレー\"\n\nmsgid \"Blue\"\nmsgstr \"青\"\n\nmsgid \"Caramel\"\nmsgstr \"キャラメル\"\n\nmsgid \"Light\"\nmsgstr \"ライト\"\n\nmsgid \"Purple\"\nmsgstr \"紫\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"ローズ\"\n\nmsgid \"Theme\"\nmsgstr \"テーマ\"\n\nmsgid \"Buttons\"\nmsgstr \"ボタン\"\n\nmsgid \"Icon color from:\"\nmsgstr \"次のもののアイコンの色:\"\n\nmsgid \"Icon color:\"\nmsgstr \"アイコンの色:\"\n\nmsgid \"Background\"\nmsgstr \"背景\"\n\nmsgid \"Background color from:\"\nmsgstr \"背景色の参照元:\"\n\nmsgid \"Background color:\"\nmsgstr \"背景色:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"単一ツールモード\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"これが有効な場合、マウスの右ボタンは常にマウスの左ボタンと同じツールが有効になります。\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"左と右のツール間でオプションを共有\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"これを有効にすると、オプションは左側と右側のツール間で同期されます。\\n\"\n\"例えば、両方のツールが同じブラシサイズを共有し、一方のツールでそれを変更すると、他のツールで即座に変更されます。\"\n\nmsgid \"Left tool color:\"\nmsgstr \"左ツールの色:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"右ツールの色:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"ツールボタンのサイズ:\"\n\nmsgid \"Small\"\nmsgstr \"小\"\n\nmsgid \"Big\"\nmsgstr \"大\"\n\nmsgid \"Only affect selection\"\nmsgstr \"選択範囲のみに影響\"\n\nmsgid \"Selected cels\"\nmsgstr \"選択中のセル\"\n\nmsgid \"Current cel\"\nmsgstr \"現在のセル\"\n\nmsgid \"Current frame\"\nmsgstr \"現在のフレーム\"\n\nmsgid \"All frames\"\nmsgstr \"すべてのフレーム\"\n\nmsgid \"All projects\"\nmsgstr \"すべてのプロジェクト\"\n\nmsgid \"Invert Colors\"\nmsgstr \"色を反転\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"赤チャンネルを変更\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"緑チャンネルを変更\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"青チャンネルを変更\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"アルファチャンネルを変更\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"彩度を下げる\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"アウトライン\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"ドロップシャドウ\"\n\nmsgid \"Offset X:\"\nmsgstr \"オフセット X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"オフセット Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"影の色:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"ガウスぼかし\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"ぼかしタイプ:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"ぼかしの量:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"ぼかし半径:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"ぼかし方向:\"\n\nmsgid \"Gradient\"\nmsgstr \"グラディエーション\"\n\nmsgid \"Gradient Map\"\nmsgstr \"グラデーションマップ\"\n\nmsgid \"Interpolation\"\nmsgstr \"補間\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"反転\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"点数を均等に割り当てる\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"等しいパーツに分割\"\n\nmsgid \"Parts:\"\nmsgstr \"パーツ:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"最後にポイントを追加\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"これが有効な場合、最後のポイントはグラデーションの最後に追加されます。\\n\"\n\"グラデーションを一定の補間に変換したい場合は、これを無効にします。\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"プリセットに保存\"\n\nmsgid \"Shape:\"\nmsgstr \"形状：\"\n\nmsgid \"Linear\"\nmsgstr \"線形\"\n\nmsgid \"Radial\"\nmsgstr \"放射状\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"リピート：\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"リピート\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"反転\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"切り捨て\"\n\nmsgid \"Transition size:\"\nmsgstr \"トランジションサイズ:\"\n\nmsgid \"Center:\"\nmsgstr \"中心:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"ディザリングパターン:\"\n\nmsgid \"Type:\"\nmsgstr \"タイプ:\"\n\nmsgid \"Angle:\"\nmsgstr \"角度:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"色相/彩度/値を調整\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"HSVを調整\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"色相:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"彩度:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"値:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"明るさ/コントラストを調整\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"明るさ:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"コントラスト:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"赤値:\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"緑値:\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"青値:\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"色合い:\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"色合い係数:\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"色曲線\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"チャンネル:\"\n\nmsgid \"Red\"\nmsgstr \"赤\"\n\nmsgid \"Green\"\nmsgstr \"緑\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"値\"\n\nmsgid \"Presets\"\nmsgstr \"プリセット\"\n\nmsgid \"Apply\"\nmsgstr \"適用\"\n\nmsgid \"Diagonal\"\nmsgstr \"対角線\"\n\nmsgid \"Place inside image\"\nmsgstr \"画像内に配置\"\n\nmsgid \"Thickness:\"\nmsgstr \"厚さ:\"\n\nmsgid \"Colors:\"\nmsgstr \"色:\"\n\nmsgid \"Steps:\"\nmsgstr \"手順:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"パレット化\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"ピクセル化\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"ポスタライズ\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"ポスタライズレベル:\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"ディザー強度:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"スプラッシュ スクリーンを表示\"\n\nmsgid \"Online Docs\"\nmsgstr \"Online Docs\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"課題管理\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"バックアップを復元\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"過去のセッション\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"セッション全体または特定のプロジェクトをロードするには、ダブルクリックしてください。\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"セッション\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"プロジェクト\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"(現在のセッション)\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"エディターのデータフォルダを開く\"\n\nmsgid \"Changelog\"\nmsgstr \"更新履歴\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Pixelorama について\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"Pixeloramaの開発を支援する\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - 夢をピクセル化しよう!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Developed by Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-present by Orama Interactive and contributors\"\n\nmsgid \"Website\"\nmsgstr \"ウェブサイト\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"ソースコード\"\n\nmsgid \"Donate\"\nmsgstr \"Donate\"\n\nmsgid \"Developers\"\nmsgstr \"開発者\"\n\nmsgid \"Contributors\"\nmsgstr \"Contributors\"\n\nmsgid \"Donors\"\nmsgstr \"Donors\"\n\nmsgid \"Translators\"\nmsgstr \"翻訳者\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"ライセンス\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"ライセンス\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"Godotライセンス\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"サードパーティーライセンス\"\n\nmsgid \"English\"\nmsgstr \"英語\"\n\nmsgid \"Greek\"\nmsgstr \"ギリシャ語\"\n\nmsgid \"French\"\nmsgstr \"フランス語\"\n\nmsgid \"German\"\nmsgstr \"ドイツ語\"\n\nmsgid \"Polish\"\nmsgstr \"ポーランド語\"\n\nmsgid \"Portuguese\"\nmsgstr \"ポルトガル語\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"ポルトガル語 (ブラジル)\"\n\nmsgid \"Russian\"\nmsgstr \"ロシア語\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"中国語（簡体)\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"中国語 (繁体)\"\n\nmsgid \"Italian\"\nmsgstr \"イタリア語\"\n\nmsgid \"Latvian\"\nmsgstr \"ラトビア語\"\n\nmsgid \"Spanish\"\nmsgstr \"スペイン語\"\n\nmsgid \"Catalan\"\nmsgstr \"カタロニア語\"\n\nmsgid \"Esperanto\"\nmsgstr \"エスペラント語\"\n\nmsgid \"Indonesian\"\nmsgstr \"インドネシア語\"\n\nmsgid \"Czech\"\nmsgstr \"チェコ語\"\n\nmsgid \"Arabic\"\nmsgstr \"アラビア語\"\n\nmsgid \"Turkish\"\nmsgstr \"トルコ語\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"ノルウェー語・ボークモール\"\n\nmsgid \"Korean\"\nmsgstr \"韓国語\"\n\nmsgid \"Hungarian\"\nmsgstr \"ハンガリー語\"\n\nmsgid \"Romanian\"\nmsgstr \"ルーマニア語\"\n\nmsgid \"Japanese\"\nmsgstr \"日本語\"\n\nmsgid \"Ukrainian\"\nmsgstr \"ウクライナ語\"\n\nmsgid \"Danish\"\nmsgstr \"デンマーク語\"\n\nmsgid \"Swedish\"\nmsgstr \"スウェーデン語\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"セルビア語 (キリル文字)\"\n\nmsgid \"Dutch\"\nmsgstr \"オランダ語\"\n\nmsgid \"Belarusian\"\nmsgstr \"ベラルーシ語\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"リード開発者\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"UI Designer\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"著者\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Art by: %s\"\n\nmsgid \"untitled\"\nmsgstr \"無題\"\n\nmsgid \"imported\"\nmsgstr \"インポート済み\"\n\nmsgid \"copy\"\nmsgstr \"コピー\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Pixeloramaを終了してもよろしいですか？\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"保存されていない画像\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"保存されていない変更があります。続行すると、進行状況は失われます。\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"終了する前に保存しますか？\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"プロジェクト %s は進行状況が保存されていません。どのように進めますか？\"\n\nmsgid \"Save & Exit\"\nmsgstr \"セーブして終了\"\n\nmsgid \"Exit without saving\"\nmsgstr \"保存せずに終了\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"矩形選択\\n\\n\"\n\"%sでマウスの左ボタンを 矩形選択 に変更\\n\"\n\"%sでマウスの右ボタンを 矩形選択 に変更\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"楕円形選択\\n\\n\"\n\"%sでマウスの左ボタンを 楕円形選択 に変更\\n\"\n\"%sでマウスの右ボタンを 楕円形選択 に変更\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"多角形選択\\n\\n\\n\"\n\"%sでマウスの左ボタンを 多角形選択 に変更\\n\"\n\"%sでマウスの右ボタンを 多角形選択 に変更\\n\\n\"\n\"ダブルクリックで始点と終点を接続します\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"色選択\\n\\n\"\n\"%sでマウスの左ボタンを 色選択 に変更\\n\"\n\"%sでマウスの右ボタンを 色選択 に変更\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"自動選択\\n\\n\"\n\"%sでマウスの左ボタンを 自動選択 に変更\\n\"\n\"%sでマウスの右ボタンを 自動選択 に変更\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"なげなわ/自由選択\\n\\n\"\n\"%sでマウスの左ボタンを なげなわ/自由選択 に変更\\n\"\n\"%sでマウスの右ボタンを なげなわ/自由選択 に変更\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"図形選択\\n\\n\"\n\"%sでマウスの左ボタンを 図形選択 に変更\\n\"\n\"%sでマウスの右ボタンを 図形選択 に変更\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"移動\\n\\n\"\n\"%sでマウスの左ボタンを 移動 に変更\\n\"\n\"%sでマウスの右ボタンを 移動 に変更\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"ズーム\\n\\n\"\n\"%sでマウスの左ボタンを ズーム に変更\\n\"\n\"%sでマウスの右ボタンを ズーム に変更\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"パン\\n\\n\"\n\"%sでマウスの左ボタンを パン に変更\\n\"\n\"%sでマウスの右ボタンを パン に変更\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"色選択\\n\\n\\n\"\n\"%sでマウスの左ボタンを 色選択 に変更\\n\"\n\"%sでマウスの右ボタンを 色選択 に変更\\n\\n\"\n\"画像のピクセルから色を選択します\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"クロップ\\n\\n\"\n\"%sでマウスの左ボタンを クロップ に変更\\n\"\n\"%sでマウスの右ボタンを クロップ に変更\\n\\n\"\n\"キャンバスのサイズを変更\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"鉛筆\\n\\n\"\n\"%sでマウスの左ボタンを 鉛筆 に変更\\n\"\n\"%sでマウスの右ボタンを 鉛筆 に変更\\n\\n\"\n\" %s を長押しすると直線を引けます\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"消しゴム\\n\\n\"\n\"%sでマウスの左ボタンを 消しゴム に変更\\n\"\n\"%sでマウスの右ボタンを 消しゴム に変更\\n\\n\"\n\" %s を長押しすると直線を消せます\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"バケツ\\n\"\n\"%sでマウスの左ボタンを バケツ に変更\\n\"\n\"%sでマウスの右ボタンを バケツ に変更\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"シューディングツール\\n\\n\"\n\"%sでマウスの左ボタンを シューディングツール に変更\\n\"\n\"%sでマウスの右ボタンを シューディングツール に変更\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"直線ツール\\n\\n\"\n\"%sでマウスの左ボタンを 直線ツール に変更\\n\"\n\"%sでマウスの右ボタンを 直線ツール に変更\\n\\n\"\n\" %s を長押しして線の角度をスナップ\\n\"\n\" %s を長押ししてクリックした原点を図形の中心に配置\\n\"\n\" %s を長押しして図形の原点を変更します\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"カーブツール\\n\\n\"\n\"%sで左マウスボタンを カーブツール に変更\\n\"\n\"%sで右マウスボタンを カーブツール に変更\\n\\n\"\n\"ベジェ曲線を描画\\n\"\n\"%s/%sを押して点を追加します\\n\"\n\"ダブルクリックで描画を終了します\\n\"\n\"押してドラッグして曲率を制御します\\n\"\n\"%sを押して最後に追加した点を削除します\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"矩形ツール\\n\\n\"\n\"%sでマウスの左ボタンを 矩形ツール に変更\\n\"\n\"%sでマウスの右ボタンを 矩形ツール に変更\\n\\n\"\n\"%sを長押しして正方形を作成\\n\"\n\"%s を長押ししてクリックした原点を図形の中心に配置\\n\"\n\"%sを長押しして図形の原点を変更\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"楕円形ツール\\n\\n\"\n\"%sでマウスの左ボタンを 楕円形ツール に変更\\n\"\n\"%sでマウスの右ボタンを 楕円形ツール に変更\\n\\n\"\n\"%sを長押しして真円を作成\\n\"\n\"%s を長押ししてクリックした原点を図形の中心に配置\\n\"\n\"%sを長押しして図形の原点を変更\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"アイソメトリックボックスツール\\n\\n\"\n\"%sでマウスの左ボタンを アイソメトリックボックスツール に変更\\n\"\n\"%sでマウスの右ボタンを アイソメトリックボックスツール に変更\\n\\n\"\n\"アイソメトリックボックスを描画\\n\"\n\"%s/%sを押して基準点を追加\\n\"\n\"%sを長押しして基準点の角度をスナップ\\n\"\n\"%sを長押しして形状の原点を置き換え\\n\"\n\"%sを押して最後に追加した基準点を編集\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"テキスト\\n\\n\"\n\"%sでマウスの左ボタンを テキスト に変更\\n\"\n\"%sでマウスの右ボタンを テキスト に変更\"\n\nmsgid \"Rectangle\"\nmsgstr \"矩形\"\n\nmsgid \"Ellipse\"\nmsgstr \"楕円形\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"左ツールの色を選択してくだ\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"右のツールの色を選択してください\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"左右の色を切り替えます。\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"平均色:\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"色を既定の状態にリセットします (左は黒、右は白)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"アプリケーションウィンドウから色を選択します。\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"16進コード(\\\"#ff0000\\\") または名前付きカラー(\\\"赤\\\") を入力してください。\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"ピッカー形状を選択します。\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"色設定\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"ピッカーモードを選択\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"色付きスライダー\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"スウォッチ\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"最近の色\"\n\nmsgid \"Left tool\"\nmsgstr \"左のツール\"\n\nmsgid \"Right tool\"\nmsgstr \"右のツール\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"マウスの左ボタンのピクセルインジケーター\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"描画時にマウスの左ボタンのピクセルインジケーターまたはブラシをキャンバスに表示する\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"マウスの右ボタンのピクセルインジケーター\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"描画時にマウスの右ボタンのピクセルインジケーターまたはブラシをキャンバスに表示する\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"マウスの左ボタンのツールのアイコンを表示\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"キャンバス上のカーソルの隣に選択したマウスの左ボタンのツールのアイコンを表示します\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"マウスの右ボタンのツールのアイコンを表示\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"キャンバス上のカーソルの隣に選択したマウスの右ボタンのツールのアイコンを表示します\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"通常のマウスカーソルを使用\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"キャンバスにクロスカーソルを使用\"\n\nmsgid \"Guides\"\nmsgstr \"ガイド\"\n\nmsgid \"Guides color:\"\nmsgstr \"ガイドの色:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"キャンバスに表示されるルーラーガイドの色\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"スナップ\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"スナップ距離:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"これは、ガイドとグリッドスナップが有効になる画面ピクセルの距離です。\"\n\nmsgid \"Grid\"\nmsgstr \"グリッド\"\n\nmsgid \"Grid type:\"\nmsgstr \"グリッドタイプ:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"長方形、等角または両方からグリッドのタイプを設定します\"\n\nmsgid \"Rectangular\"\nmsgstr \"長方形\"\n\nmsgid \"Isometric\"\nmsgstr \"アイソメトリック\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"六角形の\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"六角形（頂点が上）\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"六角形（辺が上）\"\n\nmsgid \"All\"\nmsgstr \"すべて\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"グリッド表示：\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"グリッドの編集：\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"グリッドサイズ：\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"グリッドオフセット:\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"キャンバスの原点 (画像の左上隅) からのグリッドのオフセットを設定します。\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"タイルモードの上に表示:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"無効にすると、グリッドは元の画像の上にのみ描画されます\"\n\nmsgid \"Grid color:\"\nmsgstr \"グリッドの色:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"グリッドの色\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"ピクセルグリッド\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"ズームで表示:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"ピクセルが表示される最小のズームを設定します。\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"ピクセルグリッドの色:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"ピクセルグリッドの色\"\n\nmsgid \"Transparency\"\nmsgstr \"透明度\"\n\nmsgid \"Checker size:\"\nmsgstr \"チェッカーのサイズ:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"透明なチェッカーの背景のサイズ\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"チェッカーの色 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"透明なチェッカーの背景の最初の色\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"チェッカーの色 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"透明なチェッカーの背景の2番目の色\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"キャンバスの動きをフォロー\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"透明なチェッカーはキャンバスの動きに従います\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"キャンバスのズームレベルをフォロー\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"透明なチェッカーはキャンバスのズームレベルに従います\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"いずれかのボタンをクリックしたときにレイヤーを選択:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"オニオンスキンの前の色：\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"オニオンスキンの後の色：\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"アニメーション化された範囲\"\n\nmsgid \"Border color 1:\"\nmsgstr \"境界色 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"境界色 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"変換プレビューアルファ:\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"カスタムプリセットのみ変更できます\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"アプリのFPS上限を設定:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"アプリケーションのフレーム/秒の制限を設定します。 数値が低いほどCPU使用率が低くなりますが、アプリケーションが遅く、粗く、応答がなくなります。0は制限がないことを意味します。\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"元に戻すの最大ステップ数:\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"フォーカスを失ったときにアプリケーションを一時停止する\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"これをオンにすると、アプリケーションのウィンドウがフォーカスを失ったときに一時停止します。 これはアイドル時のCPU使用率を低下させるのに役立ちます。マウスがアプリケーションのウィンドウに入ったとき、アプリケーションは一時停止を解除します。\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"継続的に更新\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"これがオンに切り替えられている場合、アプリケーションは使用されていない間にも、画面を継続的に再描画します。 これをオフにすると、アイドル時のCPUとGPU使用率を低下させることができる。\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"ウィンドウの透明度を有効化\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"有効にすると、アプリケーションウィンドウは透明になります。これはパフォーマンスに影響しますので、必要がない場合はオフにしておいてください。\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"ダミーオーディオドライバーを使用\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"レンダラー:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"使用するレンダラー/ビデオドライバーを指定します。古いデバイスやローエンドデバイスでは、GLES2が優れていますが、GLES3にはより多くの機能が提供される可能性があります。\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"タブレットドライバー:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"Windowsで使用されているタブレットドライバを指定します。Windows Inkが有効になっている場合は、wininkを選択してください。\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"拡張機能を追加\"\n\nmsgid \"Enable\"\nmsgstr \"有効\"\n\nmsgid \"Disable\"\nmsgstr \"無効\"\n\nmsgid \"Uninstall\"\nmsgstr \"アンインストール\"\n\nmsgid \"Open Folder\"\nmsgstr \"フォルダーを開く\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"オンラインを探索\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"拡張機能エクスプローラー\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"検索...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"タグ:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"拡張機能に関する問題を報告\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"ダウンロード\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"リポジトリリンク：\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"リモートリポジトリからデータを取得しています。\\n\"\n\"お待ちください。\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"リモートリポジトリからデータを取得できません。\\n\\n\"\n\"- インターネットへの接続されていることを確認してください。\\n\"\n\"- もしPixeloramaのFlatpak版を使用している場合、インターネット接続の許可が必要です。そのため、次のコマンだとターミナルで実行してください：\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"または、FlatpakアプリのFlatshalおよび権限設定をダウンロードすることもできます。\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"リモートリポジトリから情報を取得できません。\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"リポジトリの所有者が指定したリンクを貼り付けます。空のままにすると自動的に削除されます。\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"この拡張を有効にしてもよろしいですか？信頼できるソースからの拡張のみ有効にしてください。\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"この拡張機能を削除してもよろしいですか？\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"ダイナミクス\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"スタビライザー\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"圧力\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"速度\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"アルファ\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"サイズ\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"制限値\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"しきい値\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"スタート\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"エンド\"\n\nmsgid \"Brush:\"\nmsgstr \"ブラシ：\"\n\nmsgid \"Select a brush\"\nmsgstr \"ブラシを選択\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"既定のブラシ\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"ピクセルブラシ\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"円のブラシ\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"塗りつぶされた円ブラシ\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"プロジェクトブラシ\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"ファイルブラシ\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"スノー\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"ランダムなファイルブラシ\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"芝生\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"星\"\n\nmsgid \"Custom brush\"\nmsgstr \"カスタムブラシ\"\n\nmsgid \"Brush size:\"\nmsgstr \"ブラシのサイズ:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"回転オプション\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"反転:\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"回転:\"\n\nmsgid \"Overwrite color\"\nmsgstr \"色を上書き\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"ブレンドの代わりに色を上書きします。このオプションは完全に不透明ではない色にのみ関係します。\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"ピクセルパーフェクト\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"ピクセルパーフェクト\\n\"\n\"角の余分なピクセルを除去することで線を滑らかにします\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"アルファをロック\"\n\nmsgid \"Fill inside\"\nmsgstr \"中を塗りつぶす\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"間隔\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"間隔 X:\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"間隔 Y:\"\n\nmsgid \"Fill Shape\"\nmsgstr \"図形の塗りつぶし\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"中が空の図形を描くのではなく、描画した図形を色で塗りつぶします\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"密度:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"次のブラシの色:\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: ブラシ自体の色、100: 現在選択されている色\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"塗りつぶし領域:\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"類似領域\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"類似色\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"全て選択\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"すべてのレイヤーを統合してリージョンを塗りつぶす\"\n\nmsgid \"Fill with:\"\nmsgstr \"次で塗りつぶし:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"選択中の色\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"パターン\"\n\nmsgid \"Offset\"\nmsgstr \"オフセット\"\n\nmsgid \"Simple Shading\"\nmsgstr \"シンプルシェーディング\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"色相シフト\"\n\nmsgid \"Lighten\"\nmsgstr \"明るく\"\n\nmsgid \"Darken\"\nmsgstr \"暗く\"\n\nmsgid \"Amount:\"\nmsgstr \"量:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"明るく/暗くする量\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"色の置換\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"パレットから色を選択してください。\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"右の色:\"\n\nmsgid \"Pick for:\"\nmsgstr \"選択対象:\"\n\nmsgid \"Left Color\"\nmsgstr \"左の色\"\n\nmsgid \"Right Color\"\nmsgstr \"右の色\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"選択モード:\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"上部の色\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"現在のレイヤー\"\n\nmsgid \"Mode:\"\nmsgstr \"モード:\"\n\nmsgid \"Zoom in\"\nmsgstr \"ズームイン\"\n\nmsgid \"Zoom out\"\nmsgstr \"ズームアウト\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"シングル\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"連結済み\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"連結済み: 複数のベジェ曲線の連鎖をKritaの曲線ツールと同様にします。\\n\"\n\"シングル: 単一のベジェ曲線を、Asepriteの曲線ツールと同様に作ります。\"\n\nmsgid \"Options\"\nmsgstr \"オプション\"\n\nmsgid \"Options:\"\nmsgstr \"オプション：\"\n\nmsgid \"Fit to frame\"\nmsgstr \"フレームに合わせる\"\n\nmsgid \"100% Zoom\"\nmsgstr \"100% ズーム\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"選択部分を置換\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"選択に追加\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"選択範囲から減算\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"選択範囲の交差\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"スタイル:\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"通常\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"太字\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"斜体\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"太字斜体\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"アンチエイリアシング\"\n\nmsgid \"Grayscale\"\nmsgstr \"グレースケール\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"エッジの色\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"ツールの色\"\n\nmsgid \"Adjusted average\"\nmsgstr \"調整平均\"\n\nmsgid \"Blend at interface\"\nmsgstr \"インターフェイスでブレンド\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"左面\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"右面\"\n\nmsgid \"Mirroring\"\nmsgstr \"ミラーリング\"\n\nmsgid \"Horizontal\"\nmsgstr \"水平\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"左右対称描画を有効化\"\n\nmsgid \"Vertical\"\nmsgstr \"垂直方向\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"上下対称描画を有効化\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"対角(↗)対称描画を有効化\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"対角(↘)対称描画を有効化\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"キャンバスの中央に移動\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"ビューの中心に移動\"\n\nmsgid \"Current frame:\"\nmsgstr \"現在のフレーム:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"アニメーションモード:\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"スプライトシートとしての現在のフレーム\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"最初のフレームにジャンプ\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"前のフレームへ移動\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"アニメーションを逆再生\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"アニメーションを再生\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"次のフレームへ移動\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"最後のフレームにジャンプ\"\n\nmsgid \"Timeline settings\"\nmsgstr \"タイムライン設定\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"オニオンスキンを有効/無効にする\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"アニメーションフレームは1秒あたり何フレームにする必要がありますか？\\n\"\n\"FPSが高いほど、アニメーションの再生が速くなります。\"\n\nmsgid \"No loop\"\nmsgstr \"ループなし\"\n\nmsgid \"Cycle loop\"\nmsgstr \"周期ループ\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"ピンポンループ\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"オニオンスキン:\"\n\nmsgid \"Past Frames\"\nmsgstr \"過去のフレーム\"\n\nmsgid \"Future Frames\"\nmsgstr \"今後のフレーム\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"フレームタグを管理\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"フレームタグのプロパティ\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"新しいフレームタグを追加\"\n\nmsgid \"Name:\"\nmsgstr \"名前:\"\n\nmsgid \"From:\"\nmsgstr \"開始：\"\n\nmsgid \"To:\"\nmsgstr \"終了:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"アニメーションは同じタグのフレームでのみ再生されます\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"タグ %s (フレーム %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"タグ %s (フレーム %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"選択した場合、同じタグを持つフレームでのみのアニメーションが再生されます。\\n\"\n\"そうでない場合、タグを無視してすべてのフレームでのアニメーションが再生されます。\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"セルサイズ:\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"カラーモード\"\n\nmsgid \"Show past frames:\"\nmsgstr \"過去のフレームを表示:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"今後のフレームを表示:\"\n\nmsgid \"Above canvas\"\nmsgstr \"キャンバスの上\"\n\nmsgid \"Below canvas\"\nmsgstr \"キャンバスの下\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"レイヤーにオニオンスキンを無視させたい場合は、その名前の末尾に \\\"_io\\\" を追加してください。\"\n\nmsgid \"Add a new frame\"\nmsgstr \"新しいフレームを追加\"\n\nmsgid \"Remove Frame\"\nmsgstr \"フレームを削除\"\n\nmsgid \"Clone Frame\"\nmsgstr \"フレームを複製\"\n\nmsgid \"Move Left\"\nmsgstr \"左へ移動\"\n\nmsgid \"Move Right\"\nmsgstr \"右へ移動\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"ピクセルを選択\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"セルのリンク先\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"セルのリンクを解除\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"ここで音声を再生\"\n\nmsgid \"Properties\"\nmsgstr \"プロパティ\"\n\nmsgid \"Project Properties\"\nmsgstr \"プロジェクト設定\"\n\nmsgid \"Frame properties\"\nmsgstr \"フレームのプロパティ\"\n\nmsgid \"Layer properties\"\nmsgstr \"レイヤーのプロパティ\"\n\nmsgid \"Cel properties\"\nmsgstr \"セルプロパティ\"\n\nmsgid \"Tag properties\"\nmsgstr \"タグプロパティ\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"新規タグ\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"タグをインポート\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"フレームをリバース\"\n\nmsgid \"Layer\"\nmsgstr \"レイヤー\"\n\nmsgid \"Group\"\nmsgstr \"グループ\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"タイルマップ\"\n\nmsgid \"Audio\"\nmsgstr \"音声\"\n\nmsgid \"Layers\"\nmsgstr \"レイヤー\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"クリッピングマスク\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"フラット化\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"フラット化表示\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"新しいレイヤーを作成\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"ピクセルレイヤーを追加\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"グループレイヤーを追加\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"3Dレイヤーを追加\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"タイルマップレイヤーを追加\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"音声レイヤーを追加\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"現在のレイヤーを削除\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"現在のレイヤーを上に移動\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"現在のレイヤーを下に移動\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"現在のレイヤーを複製\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"現在のレイヤーと下のレイヤーを結合\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"ブレンドモード:\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"パススルー\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"通常\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"消去\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"乗算\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"焼き込みカラー\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"焼き込み（リニア）\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"スクリーン\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"覆い焼きカラー\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"コントラスト\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"オーバーレイ\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"ソフトライト\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"ハードライト\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"反転\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"差分\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"排他\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"減算\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"除法\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"コンポーネント\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"色相\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"彩度\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"色\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"輝度\"\n\nmsgid \"Opacity:\"\nmsgstr \"不透明度:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"タイルモードの不透明度:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"レイヤーの表示を切り替える\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"レイヤーのロック/ロック解除\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"フレーム: %s, レイヤー: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"新しいフレームを作成するときに、新しいセルの自動リンクを有効/無効にしま\\n\\n\"\n\"リンクされたセルは、複数のフレームでコンテンツを共有します\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"グループを展開/閉じる\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"音声ファイル:\"\n\nmsgid \"Load file\"\nmsgstr \"ファイルを読み込み\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"フレームで再生:\"\n\nmsgid \"Palette\"\nmsgstr \"パレット\"\n\nmsgid \"Palettes\"\nmsgstr \"パレット\"\n\nmsgid \"Add a new palette\"\nmsgstr \"新しいパレットを追加\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"現在選択されているパレットを編集\"\n\nmsgid \"Choose a palette\"\nmsgstr \"パレットを選択\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"元に戻す: 描画\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"やり直し: 描画\"\n\nmsgid \"Undo: Select\"\nmsgstr \"元に戻す: 選択\"\n\nmsgid \"Redo: Select\"\nmsgstr \"やり直し: 選択\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"元に戻す: スケール\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"やり直し: スケール\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"元に戻す: レイヤーを追加\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"やり直し: レイヤーを追加\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"元に戻す: レイヤーを削除\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"やり直し: レイヤーを削除\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"元に戻す: レイヤーの結合\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"やり直し: レイヤーの結合\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"元に戻す: レイヤーの順番を変更\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"やり直し: レイヤーの順番を変更\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"元に戻す: フレームを追加\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"やり直し: フレームを追加\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"元に戻す: フレームを削除\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"やり直し: フレームを削除\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"元に戻す: フレームの順番を変更\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"やり直し: フレームの順番を変更\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"元に戻す: カスタムブラシの削除\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"やり直し: カスタムブラシの削除\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"元に戻す: フレームタグの変更\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"やり直し: フレームタグの変更\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"元に戻す: フレームタグの削除\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"やり直し: フレームタグの削除\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"元に戻す: フレームの長さを変更\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"やり直し: フレームの長さを変更\"\n\nmsgid \"Move Guide\"\nmsgstr \"ガイドを移動\"\n\nmsgid \"File saved\"\nmsgstr \"ファイルが保存されました\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"バックアップを保存しました\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"ファイルを開けませんでした。エラーコード %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"ファイルを保存できませんでした。エラーコード %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"動画のエクスポートに失敗しました。FFMPEGが正しくインストールされていることを確認してください。\"\n\nmsgid \"File(s) exported\"\nmsgstr \"ファイルをエクスポートしました\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"新しい空のパレット\"\n\nmsgid \"Import Palette\"\nmsgstr \"パレットをインポート\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"現在のスプライトからパレットを作成\"\n\nmsgid \"Palette Name:\"\nmsgstr \"パレット名:\"\n\nmsgid \"Color Name:\"\nmsgstr \"色の名前\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"現在の左右の色を使用\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"新しい空のパレットを作成しますか？\"\n\nmsgid \"Error\"\nmsgstr \"エラー\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"エラー: パレットには有効な名前が必要です。\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"無効なパレットファイルです！\"\n\nmsgid \"Edit Palette\"\nmsgstr \"パレットを編集\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"アルファコンポーネントを使用して色を作成\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"選択した色のみを取得します\"\n\nmsgid \"Get colors from\"\nmsgstr \"色を取得\"\n\nmsgid \"Patrons:\"\nmsgstr \"Patrons:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"スプラッシュ画面にあなたの名前または会社を表示したいですか？\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"プラチナスポンサーになる\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"ゴールドスポンサーになる\"\n\nmsgid \"Become a Patron\"\nmsgstr \"パトロンになる\"\n\nmsgid \"Don't show again\"\nmsgstr \"今後表示しない\"\n\nmsgid \"Image Options\"\nmsgstr \"画像オプション\"\n\nmsgid \"Default width:\"\nmsgstr \"デフォルトの幅:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"新しい画像のデフォルトの幅\"\n\nmsgid \"Default height:\"\nmsgstr \"デフォルトの高さ:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"新しい画像のデフォルトの高さ\"\n\nmsgid \"Default fill color:\"\nmsgstr \"既定の塗りつぶしの色:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"新しい画像の既定の背景色\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"設定で利用可能なすべてのオプションをリセット\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"タイムラインオプションをリセット\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"すべてのツールオプションをリセット\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"すべての拡張機能を削除\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"すべてのバックアップを削除\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"最近開いたファイルリストをクリア\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"アスペクト比をロック\"\n\nmsgid \"Portrait\"\nmsgstr \"縦\"\n\nmsgid \"Landscape\"\nmsgstr \"横\"\n\nmsgid \"Templates:\"\nmsgstr \"テンプレート:\"\n\nmsgid \"Preset\"\nmsgstr \"プリセット\"\n\nmsgid \"Preset:\"\nmsgstr \"プリセット:\"\n\nmsgid \"Default\"\nmsgstr \"既定\"\n\nmsgid \"Custom\"\nmsgstr \"カスタム\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"矩形選択\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"楕円形選択\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"多角形選択\"\n\nmsgid \"Select By Color\"\nmsgstr \"色選択\"\n\nmsgid \"Magic Wand\"\nmsgstr \"自動選択\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"なげなわ/自由選択\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"図形描画で選択\"\n\nmsgid \"Move\"\nmsgstr \"移動\"\n\nmsgid \"Zoom\"\nmsgstr \"ズーム\"\n\nmsgid \"Pan\"\nmsgstr \"パン\"\n\nmsgid \"Color Picker\"\nmsgstr \"カラーピッカー\"\n\nmsgid \"Pencil\"\nmsgstr \"ペン/鉛筆\"\n\nmsgid \"Eraser\"\nmsgstr \"消しゴム\"\n\nmsgid \"Bucket\"\nmsgstr \"バケット\"\n\nmsgid \"Shading Tool\"\nmsgstr \"シェーディングツール\"\n\nmsgid \"Line Tool\"\nmsgstr \"直線ツール\"\n\nmsgid \"Curve Tool\"\nmsgstr \"カーブツール\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"矩形ツール\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"楕円形ツール\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"アイソメトリックボックスツール\"\n\nmsgid \"Switch Colors\"\nmsgstr \"色の切り替え\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"ショートカットを設定\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"キーまたはキーの組み合わせを押してショートカットを設定します\"\n\nmsgid \"Already assigned\"\nmsgstr \"割り当て済みです\"\n\nmsgid \"Left Tool:\"\nmsgstr \"左のツール:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"マウスの左ボタンに割り当てられたツール\"\n\nmsgid \"Right Tool:\"\nmsgstr \"右のツール:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"マウスの右ボタンに割り当てられたツール\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"最後のプロジェクトファイルが見つかりません。\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"プロジェクトファイルが見つかりません。\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Pixeloramaでプロジェクトを保存または開いていません！\"\n\nmsgid \"Open Last Project\"\nmsgstr \"最後のプロジェクトを開く\"\n\nmsgid \"Open last project...\"\nmsgstr \"前回のプロジェクトを開く...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"起動時に最後のプロジェクトを開く\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"起動時に最後に開いたプロジェクトを開く\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"終了の確認\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"FFMPEGパス\"\n\nmsgid \"Enable autosave\"\nmsgstr \"自動保存を有効化\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"自動保存の間隔:\"\n\nmsgid \"minute(s)\"\nmsgstr \"分\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"JSONデータをエクスポート\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"レイヤーを分割\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"ファイル名にフレームタグを含める\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"フレームタグごとに新しいフォルダを作成\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"複数のファイルを作成しますが、各ファイルはフレームタグに対応する異なるフォルダに保存されます。\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"区切り文字:\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"ファイル名とフレーム番号を区切る文字\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"画像をトリム\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"エクスポートされた画像を可視部分にトリミングします。各ピクセルをゼロではないアルファチャンネルを可視とします。\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"選択範囲に画像コンテンツをクリップ\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"選択領域の範囲内にあるコンテンツのみエクスポートします。\"\n\nmsgid \"Close\"\nmsgstr \"閉じる\"\n\nmsgid \"Discard All\"\nmsgstr \"すべて破棄\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"Pixelorama が前回正しく終了しませんでした。以前のセッションを復元しますか？\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"バックアップを再読み込みしました\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"現在選択されているパレットを削除\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"このパレットを削除してもよろしいですか？ (元に戻すことはできません)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"これ以上のパレットは削除できません！\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"パレットが存在しないため、削除できません！\"\n\nmsgid \"and\"\nmsgstr \"と\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"選択したフレームを左に移動します。\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"選択したフレームを右に移動します。\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"フレームの長さ:\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"ユーザーデータ:\"\n\nmsgid \"Duration\"\nmsgstr \"持続時間\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"両方の軸にタイルされています\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"X軸にタイルされています\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Y軸にタイルされています\"\n\nmsgid \"Create a new palette\"\nmsgstr \"新しいパレットを作成\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"新しいプロジェクトパレットを作成\"\n\nmsgid \"Comment:\"\nmsgstr \"コメント:\"\n\nmsgid \"Empty\"\nmsgstr \"空\"\n\nmsgid \"From Current Palette\"\nmsgstr \"現在のパレットから\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"現在のスプライトから\"\n\nmsgid \"From Current Selection\"\nmsgstr \"現在の選択範囲から\"\n\nmsgid \"Add a new color\"\nmsgstr \"新しい色を追加\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"選択した色を削除\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"パレットのソート\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"色を反転\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"色相でソート\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"彩度でソート\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"値でソート\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"軽さで並び替え\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"赤でソート\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"緑でソート\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"青でソート\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"アルファでソート\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"同じ名前とパスを持つパレットが既に存在します！\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"パレット名が必要です！\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"パレットサイズを小さくすると色の位置がリセットされます。\\n\"\n\"新しいパレットサイズに合わない色は失われます！\"\n\nmsgid \"Position:\"\nmsgstr \"ポジション:\"\n\nmsgid \"Tools\"\nmsgstr \"ツール\"\n\nmsgid \"Main Canvas\"\nmsgstr \"メインキャンバス\"\n\nmsgid \"Second Canvas\"\nmsgstr \"セカンドキャンバス\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"アニメーションタイムライン\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"キャンバスプレビュー\"\n\nmsgid \"Color Pickers\"\nmsgstr \"色選択\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"グローバルツールオプション\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"左ツールオプション\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"右ツールオプション\"\n\nmsgid \"Reference Images\"\nmsgstr \"参照画像\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"透視投影エディター\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"レコーダー\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"タイル\"\n\nmsgid \"Crop\"\nmsgstr \"切り取り\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"キャンバスのサイズを変更\"\n\nmsgid \"Margins\"\nmsgstr \"マージン\"\n\nmsgid \"Position + Size\"\nmsgstr \"位置 + サイズ\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"ロックされたアスペクト比\"\n\nmsgid \"Margins:\"\nmsgstr \"マージン:\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"アスペクト比:\"\n\nmsgid \"Top:\"\nmsgstr \"上:\"\n\nmsgid \"Bottom:\"\nmsgstr \"下:\"\n\nmsgid \"Left:\"\nmsgstr \"左:\"\n\nmsgid \"Right:\"\nmsgstr \"右:\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"ロックされたサイズ\\n\\n\"\n\"有効な場合、キャンバス上でツールを使用すると、切り抜き範囲の矩形が移動します。\\n\\n\"\n\"無効の場合、キャンバス上でツールを使用すると、長方形が描画されます。\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"3D形状編集\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"四角形\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"球体\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"カプセル\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"円柱\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"多角柱\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"円環\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"面\"\n\nmsgid \"Text\"\nmsgstr \"テキスト\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"方向ライト\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"スポットライト\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"ポイントライト\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"カスタムモデル\"\n\nmsgid \"Selected object:\"\nmsgstr \"選択したオブジェクト\"\n\nmsgid \"Add new object\"\nmsgstr \"新しいオブジェクトを追加\"\n\nmsgid \"Remove object\"\nmsgstr \"オブジェクトを削除\"\n\nmsgid \"Camera\"\nmsgstr \"カメラ\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"投影:\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"透視投影\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"正投影\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"視錐台\"\n\nmsgid \"Rotation:\"\nmsgstr \"回転:\"\n\nmsgid \"Scale:\"\nmsgstr \"スケール:\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"環境\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"環境色:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"環境色エネルギー:\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"可視:\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"変形:\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"メッシュ\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"左から右:\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"半径:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"ラジアルセグメント:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"リング:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"半球:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"上部半径:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"下部半径:\"\n\nmsgid \"Text:\"\nmsgstr \"テキスト:\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"深さ:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"ピクセルサイズ:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"カーブステップ:\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"水平方向:\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"垂直揃え:\"\n\nmsgid \"Left\"\nmsgstr \"左\"\n\nmsgid \"Right\"\nmsgstr \"右\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"行間隔:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"エネルギー:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"ネガティブ:\"\n\nmsgid \"Shadow:\"\nmsgstr \"影:\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"範囲:\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"アニメーション可能プロパティ\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"前のフレーム:\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"アニメート\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"初期値:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"最終値\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"イースタイプ:\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"ゆっくり開始し、終わりに向かってスピードアップします\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"素早く開始し、終わりに向かってスローダウンします\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"両端で最も遅く、中央で速く\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"両端で最も速く、中央で遅く\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"二次(2乗)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"三次(3乗)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"四次(4乗)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"五次(5乗)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"指数関数(xの出力)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"平方根\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"サイン\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"エッジの周りをウィグリング\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"終了時にバウンス\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"終了時にバックアウト\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"終了へ向かって跳ぶ\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"モノクローム\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"画像を開くとき、参照としてインポートすることができます。\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"プロパティを変更するには、以下の画像を選択してください。\\n\"\n\"参照画像が選択されている間は描画できません。\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"削除\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"Shiftキーを押したまま押すと即座に削除されます。\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"この参照画像を削除してもよろしいですか？ファイルシステムからは削除されません。\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"選択した参照画像を右に移動\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"選択した参照画像を左に移動\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"キャンバス上の参照画像を選択\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"選択した参照画像を移動する\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"選択した参照画像を回転\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"選択した参照画像を拡大縮小\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"なし\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"変換をリセット\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"位置\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"スケール\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"回転\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"フィルター\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"不透明度\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"カラークランプ中\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"有効\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"レイヤーエフェクト\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"エフェクトを追加\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"%s から画像をダウンロードしますか？\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"タイルセット\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"タイルセット:\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"タイルセット\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"新しいタイルセット\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"タイルセット名:\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"タイルサイズ：\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"タイル形状：\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"タイルレイアウト：\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"タイルオフセット軸：\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"すべてのハーフオフセット形状(アイソメトリックとヘキサナール)で、オフセット軸を決定します。\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"積み上げ\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"積み上げオフセット\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"階段右\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"階段下\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"菱形右\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"菱形下\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"配置専用モード：\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"配置専用モードを有効にすることは、永続的なアクションです。 一度有効にすると、タイルのみを配置でき、このレイヤー上の既存のタイルを変更することはできなくなります。\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"キャンバスに配置するタイルを選択します。\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"キャンバス上のタイルを変更\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"タイルを描画\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"タイルを左に回転 (反時計回り)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"タイルを右に回転 (時計回り)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"タイルを水平方向に反転\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"タイルを垂直方向に反転\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"マニュアル\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"オート\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"スタック\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"タイルボタンのサイズ:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"空のタイルを表示:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"タイルのプロパティ\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"確率:\"\n\n"
  },
  {
    "path": "Translations/kk_KZ.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: kk\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Kazakh\\n\"\n\"Language: kk_KZ\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/ko_KR.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ko\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Korean\\n\"\n\"Language: ko_KR\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"예\"\n\nmsgid \"Cancel\"\nmsgstr \"취소\"\n\nmsgid \"Open\"\nmsgstr \"열기\"\n\nmsgid \"Save\"\nmsgstr \"저장\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"확인이 필요합니다...\"\n\nmsgid \"File Name:\"\nmsgstr \"파일 이름:\"\n\nmsgid \"Project Name:\"\nmsgstr \"프로젝트 이름:\"\n\nmsgid \"Image Size\"\nmsgstr \"이미지 크기\"\n\nmsgid \"Canvas Size\"\nmsgstr \"캔버스 크기\"\n\nmsgid \"Frame Size\"\nmsgstr \"프레임 크기\"\n\nmsgid \"Size:\"\nmsgstr \"크기:\"\n\nmsgid \"Width:\"\nmsgstr \"너비:\"\n\nmsgid \"Height:\"\nmsgstr \"높이:\"\n\nmsgid \"Center\"\nmsgstr \"중심\"\n\nmsgid \"File\"\nmsgstr \"파일\"\n\nmsgid \"Edit\"\nmsgstr \"편집\"\n\nmsgid \"Select\"\nmsgstr \"선택\"\n\nmsgid \"View\"\nmsgstr \"보기\"\n\nmsgid \"Window\"\nmsgstr \"창\"\n\nmsgid \"Image\"\nmsgstr \"이미지\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"프로젝트\"\n\nmsgid \"Effects\"\nmsgstr \"효과\"\n\nmsgid \"Help\"\nmsgstr \"도움말\"\n\nmsgid \"New\"\nmsgstr \"신규\"\n\nmsgid \"New...\"\nmsgstr \"신규...\"\n\nmsgid \"Open...\"\nmsgstr \"열기...\"\n\nmsgid \"Save...\"\nmsgstr \"저장하기...\"\n\nmsgid \"Save as...\"\nmsgstr \"다른 이름으로 저장하기...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"불러오기\"\n\nmsgid \"Export\"\nmsgstr \"내보내기\"\n\nmsgid \"Overwrite\"\nmsgstr \"덮어쓰기\"\n\nmsgid \"Export...\"\nmsgstr \"내보내기...\"\n\nmsgid \"Export as...\"\nmsgstr \"다른 이름으로 내보내기...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"PNG로 내보내기\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"다른 이름으로 PNG로 내보내기...\"\n\nmsgid \"Quit\"\nmsgstr \"종료\"\n\nmsgid \"Undo\"\nmsgstr \"실행 취소\"\n\nmsgid \"Redo\"\nmsgstr \"다시 실행\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"복사\"\n\nmsgid \"Cut\"\nmsgstr \"잘라내기\"\n\nmsgid \"Paste\"\nmsgstr \"붙여넣기\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"삭제\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"영구 삭제\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"새 브러시\"\n\nmsgid \"Scale Image\"\nmsgstr \"이미지 크기\"\n\nmsgid \"Pixels\"\nmsgstr \"픽셀\"\n\nmsgid \"Percentage\"\nmsgstr \"비율\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"캔버스 크기 조정\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"이미지 회전\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"초기화\"\n\nmsgid \"Invert\"\nmsgstr \"반전\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"흑백 뷰\"\n\nmsgid \"Mirror Image\"\nmsgstr \"미러 이미지\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"좌우 대칭\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"상하 대칭\"\n\nmsgid \"Preferences\"\nmsgstr \"환경설정\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"절차적 생성\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"블러\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"타일 모드\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"초기화\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"창 불투명도\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"전체 화면 모드에서는 창 불투명도가 작동되지 않습니다.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"레이아웃 배치\"\n\nmsgid \"Panels\"\nmsgstr \"패널\"\n\nmsgid \"Layouts\"\nmsgstr \"레이아웃\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"가동 패널\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"레이아웃 관리\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"미리보기\"\n\nmsgid \"Add\"\nmsgstr \"추가\"\n\nmsgid \"Add Layout\"\nmsgstr \"레이아웃 추가\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"이 레이아웃을 삭제하고 싶습니까?\"\n\nmsgid \"Widescreen\"\nmsgstr \"와이드 스크린\"\n\nmsgid \"Tallscreen\"\nmsgstr \"톨 스크린\"\n\nmsgid \"Mirror View\"\nmsgstr \"미러뷰\"\n\nmsgid \"Show Grid\"\nmsgstr \"격자 표시\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"픽셀 격자 표시\"\n\nmsgid \"Show Rulers\"\nmsgstr \"눈금자 표시\"\n\nmsgid \"Show Guides\"\nmsgstr \"안내선 표시\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"애니메이션 타임라인 보기\"\n\nmsgid \"Zen Mode\"\nmsgstr \"젠 모드\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"전체 화면\"\n\nmsgid \"Fill with color:\"\nmsgstr \"색상으로 채우기:\"\n\nmsgid \"Open a File\"\nmsgstr \"파일 열기\"\n\nmsgid \"Open File(s)\"\nmsgstr \"여러 파일 열기\"\n\nmsgid \"Import Options\"\nmsgstr \"불러오기 옵션\"\n\nmsgid \"Import as:\"\nmsgstr \"다음으로 가져오기:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"모두 적용\"\n\nmsgid \"Recent projects\"\nmsgstr \"최근 프로잭트\"\n\nmsgid \"New project\"\nmsgstr \"신규 프로젝트\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"스프레드시트 (새 프로젝트)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"스프레드시트 (새 레이어)\"\n\nmsgid \"New frame\"\nmsgstr \"새 프레임\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"새 레이어\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"새 팔레트\"\n\nmsgid \"New brush\"\nmsgstr \"새 브러시\"\n\nmsgid \"New pattern\"\nmsgstr \"새 패턴\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"가로축 프레임:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"세로축 프레임:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"시작 프레임:\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"프레임:\"\n\nmsgid \"At layer:\"\nmsgstr \"레이어:\"\n\nmsgid \"Brush type:\"\nmsgstr \"브러시 타입:\"\n\nmsgid \"File brush\"\nmsgstr \"파일 브러시\"\n\nmsgid \"Project brush\"\nmsgstr \"프로젝트 브러시\"\n\nmsgid \"Random brush\"\nmsgstr \"랜덤 브러시\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"스프라이트를 .pxo로 저장\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"스프라이트를 .png로 내보내기\"\n\nmsgid \"Export Sprite\"\nmsgstr \"스프라이트 내보내기\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"파일이 이미 존재합니다, 덮어씌우시겠습니까?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"경로가 유효 하지 않습니다.\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"파일 명이 유효하지 않습니다!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"디렉토리 경로나 파일 이름이 유효하지 않습니다!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"내보내는 중...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"파일 '%s'을(를) 불러올 수 없습니다.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"파일 '%s'을(를) 불러올 수 없습니다.\\n\"\n\"오류 코드: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"파일 '%s'을(를) 불러올 수 없습니다.\\n\"\n\"이 파일은 유효한 팔레트 파일이 아닙니다.\"\n\nmsgid \"Frame\"\nmsgstr \"프레임\"\n\nmsgid \"Frames:\"\nmsgstr \"프레임:\"\n\nmsgid \"All Frames\"\nmsgstr \"모든 프레임\"\n\nmsgid \"Spritesheet\"\nmsgstr \"스프라이트시트\"\n\nmsgid \"Animation\"\nmsgstr \"애니메이션\"\n\nmsgid \"Preview:\"\nmsgstr \"미리 보기:\"\n\nmsgid \"Frame:\"\nmsgstr \"프레임:\"\n\nmsgid \"Orientation:\"\nmsgstr \"회전:\"\n\nmsgid \"Browse\"\nmsgstr \"찾아보기\"\n\nmsgid \"Resize:\"\nmsgstr \"크기 조정\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"내보내기 취소\"\n\nmsgid \"Alert!\"\nmsgstr \"경고!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"현 폴더 선택\"\n\nmsgid \"Open a Directory\"\nmsgstr \"디렉토리 열기\"\n\nmsgid \"Background:\"\nmsgstr \"배경:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"레이어:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"3D 레이어:\"\n\nmsgid \"Direction:\"\nmsgstr \"방향:\"\n\nmsgid \"Forward\"\nmsgstr \"앞\"\n\nmsgid \"Backwards\"\nmsgstr \"뒤\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"핑퐁\"\n\nmsgid \"Columns\"\nmsgstr \"열\"\n\nmsgid \"Columns:\"\nmsgstr \"열:\"\n\nmsgid \"Rows\"\nmsgstr \"행\"\n\nmsgid \"Rows:\"\nmsgstr \"행:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"경로:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"디렉토리 & 파일:\"\n\nmsgid \"Create Folder\"\nmsgstr \"폴더 생성\"\n\nmsgid \"File:\"\nmsgstr \"파일:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"보간:\"\n\nmsgid \"Nearest\"\nmsgstr \"근접\"\n\nmsgid \"Bilinear\"\nmsgstr \"이중선형\"\n\nmsgid \"Cubic\"\nmsgstr \"Cubic\"\n\nmsgid \"Trilinear\"\nmsgstr \"Trilinear\"\n\nmsgid \"Constant\"\nmsgstr \"고정\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"일반적\"\n\nmsgid \"Startup\"\nmsgstr \"시작\"\n\nmsgid \"Language\"\nmsgstr \"언어\"\n\nmsgid \"Interface\"\nmsgstr \"인터페이스\"\n\nmsgid \"Themes\"\nmsgstr \"테마\"\n\nmsgid \"Canvas\"\nmsgstr \"캔버스\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"선택\"\n\nmsgid \"Shortcuts\"\nmsgstr \"단축키\"\n\nmsgid \"Backup\"\nmsgstr \"백업\"\n\nmsgid \"Performance\"\nmsgstr \"성능\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"확장\"\n\nmsgid \"Cursors\"\nmsgstr \"마우스 커서\"\n\nmsgid \"Indicators\"\nmsgstr \"표기 아이콘\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"변경 사항을 적용하려면 프로그램을 다시 시작해야합니다.\"\n\nmsgid \"On\"\nmsgstr \"켜짐\"\n\nmsgid \"Restore default value\"\nmsgstr \"기본 값 복원\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"부드러운 확대\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"부드럽게 확대 또는 축소하기\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"태블릿 필압:\"\n\nmsgid \"None\"\nmsgstr \"없음\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"브러시의 알파에 영향을 줌\"\n\nmsgid \"Color:\"\nmsgstr \"색상:\"\n\nmsgid \"Guide color:\"\nmsgstr \"안내선 색:\"\n\nmsgid \"System Language\"\nmsgstr \"시스템 언어\"\n\nmsgid \"Display scale:\"\nmsgstr \"화면 배율:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"폰트:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"폰트 크기:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"대화 상자 팝업에 인터페이스를 희미하\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"다크\"\n\nmsgid \"Gray\"\nmsgstr \"그레이\"\n\nmsgid \"Blue\"\nmsgstr \"블루\"\n\nmsgid \"Caramel\"\nmsgstr \"카라멜\"\n\nmsgid \"Light\"\nmsgstr \"라이트\"\n\nmsgid \"Purple\"\nmsgstr \"보라색\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"테마\"\n\nmsgid \"Buttons\"\nmsgstr \"버튼\"\n\nmsgid \"Icon color from:\"\nmsgstr \"아이콘 색상 출처:\"\n\nmsgid \"Icon color:\"\nmsgstr \"아이콘 색상:\"\n\nmsgid \"Background\"\nmsgstr \"배경\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"배경 색상:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"왼쪽 도구 색상\"\n\nmsgid \"Right tool color:\"\nmsgstr \"오른쪽 도구 색상\"\n\nmsgid \"Tool button size:\"\nmsgstr \"도구 버튼 크기\"\n\nmsgid \"Small\"\nmsgstr \"작음\"\n\nmsgid \"Big\"\nmsgstr \"큼\"\n\nmsgid \"Only affect selection\"\nmsgstr \"선택 영역만 영향을 줌\"\n\nmsgid \"Selected cels\"\nmsgstr \"선택된 셀\"\n\nmsgid \"Current cel\"\nmsgstr \"현재 셀\"\n\nmsgid \"Current frame\"\nmsgstr \"현재 프레임\"\n\nmsgid \"All frames\"\nmsgstr \"모든 프레임\"\n\nmsgid \"All projects\"\nmsgstr \"모든 프로젝트\"\n\nmsgid \"Invert Colors\"\nmsgstr \"색 반전\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"레드 채널 수정\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"그린 채널 수정\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"블루 채널 수정\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"알파 채널 수정\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"채도 낮추기\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"외곽선\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"그림자\"\n\nmsgid \"Offset X:\"\nmsgstr \"X 오프셋:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"Y 오프셋:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"그림자 색상:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"가우시안 블러\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"블러 종류:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"블러 강도:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"블러 범위:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"블러 방향:\"\n\nmsgid \"Gradient\"\nmsgstr \"그레디언트\"\n\nmsgid \"Gradient Map\"\nmsgstr \"그레이디언트 맵\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"도형:\"\n\nmsgid \"Linear\"\nmsgstr \"선형\"\n\nmsgid \"Radial\"\nmsgstr \"반지름\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"반복:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"반복\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"반전\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"절단\"\n\nmsgid \"Transition size:\"\nmsgstr \"전환 크기:\"\n\nmsgid \"Center:\"\nmsgstr \"중심:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"디더링 패턴\"\n\nmsgid \"Type:\"\nmsgstr \"타입:\"\n\nmsgid \"Angle:\"\nmsgstr \"각도:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"색상/채도/명도 수정\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"HSV 수정\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"색조:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"채도:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"명도:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"밝기/대비 조정\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"밝기:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"대비:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"적용\"\n\nmsgid \"Diagonal\"\nmsgstr \"비스듬한\"\n\nmsgid \"Place inside image\"\nmsgstr \"이미지 안에 두기\"\n\nmsgid \"Thickness:\"\nmsgstr \"두께:\"\n\nmsgid \"Colors:\"\nmsgstr \"색상:\"\n\nmsgid \"Steps:\"\nmsgstr \"단계:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"시작 로고 화면 보기\"\n\nmsgid \"Online Docs\"\nmsgstr \"온라인 문서\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"이슈 트래커\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"변경 사항\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Pixelorama에 대하여\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - 당신의 꿈을 픽셀 화하세요!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Orama Interactive가 개발함\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-2020 by Orama Interactive and contributors\"\n\nmsgid \"Website\"\nmsgstr \"웹사이트\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"후원하기\"\n\nmsgid \"Developers\"\nmsgstr \"개발자들\"\n\nmsgid \"Contributors\"\nmsgstr \"기여자들\"\n\nmsgid \"Donors\"\nmsgstr \"후원자들\"\n\nmsgid \"Translators\"\nmsgstr \"번역자들\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"저작권\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"영어\"\n\nmsgid \"Greek\"\nmsgstr \"그리스어\"\n\nmsgid \"French\"\nmsgstr \"프랑스어\"\n\nmsgid \"German\"\nmsgstr \"독일어\"\n\nmsgid \"Polish\"\nmsgstr \"폴란드어\"\n\nmsgid \"Portuguese\"\nmsgstr \"포르투갈어\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"포르투갈어 (브라질)\"\n\nmsgid \"Russian\"\nmsgstr \"러시아어\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"중국어 간체\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"중국어 번체\"\n\nmsgid \"Italian\"\nmsgstr \"이탈리아어\"\n\nmsgid \"Latvian\"\nmsgstr \"라트비아어\"\n\nmsgid \"Spanish\"\nmsgstr \"스페인어\"\n\nmsgid \"Catalan\"\nmsgstr \"카탈로니아어\"\n\nmsgid \"Esperanto\"\nmsgstr \"에스페란토어\"\n\nmsgid \"Indonesian\"\nmsgstr \"인도네시아어\"\n\nmsgid \"Czech\"\nmsgstr \"체코어\"\n\nmsgid \"Arabic\"\nmsgstr \"아랍어\"\n\nmsgid \"Turkish\"\nmsgstr \"터키어\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"노르웨이어(보크말)\"\n\nmsgid \"Korean\"\nmsgstr \"한국어\"\n\nmsgid \"Hungarian\"\nmsgstr \"헝가리어\"\n\nmsgid \"Romanian\"\nmsgstr \"루마니아어\"\n\nmsgid \"Japanese\"\nmsgstr \"일본어\"\n\nmsgid \"Ukrainian\"\nmsgstr \"우크라이나어\"\n\nmsgid \"Danish\"\nmsgstr \"덴마크어\"\n\nmsgid \"Swedish\"\nmsgstr \"스웨덴어\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"세르비아어 (키릴 문자)\"\n\nmsgid \"Dutch\"\nmsgstr \"네덜란드어\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"UI 디자이너\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"작가: %s\"\n\nmsgid \"untitled\"\nmsgstr \"제목 없음\"\n\nmsgid \"imported\"\nmsgstr \"불러옴\"\n\nmsgid \"copy\"\nmsgstr \"복사\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"정말 Pixelorama를 종료 하시겠습니까?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"저장되지 않은 이미지\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"저장되지 않은 수정사항이 있습니다. 계속하면 수정사항이 무시 됩니다.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"종료하기 전에 저장할까요?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"%s 프로젝트에 저장되지 않은 작업물이 있습니다. 계속하시겠습니까?\"\n\nmsgid \"Save & Exit\"\nmsgstr \"저장 및 종료\"\n\nmsgid \"Exit without saving\"\nmsgstr \"저장하지 않고 종료\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"사각형 선택\\n\\n\"\n\"%s 은(는) 왼쪽 마우스 버튼\\n\"\n\"%s 은(는) 오른쪽 마우스 버튼\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"원형 선택\\n\\n\"\n\"%s 은(는) 왼쪽 마우스 버튼\\n\"\n\"%s 은(는) 오른쪽 마우스 버튼\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"다각형 선택\\n\\n\"\n\"%s 은(는) 왼쪽 마우스 버튼\\n\"\n\"%s 은(는) 오른쪽 마우스 버튼\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"색상별 선택\\n\\n\"\n\"%s 은(는) 왼쪽 마우스 버튼\\n\"\n\"%s 은(는) 오른쪽 마우스 버튼\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"마술 지팡이\\n\\n\"\n\"%s 은(는) 왼쪽 마우스 버튼\\n\"\n\"%s 은(는) 오른쪽 마우스 버튼\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"밧줄\\n\\n\"\n\"%s 은(는) 왼쪽 마우스 버튼\\n\"\n\"%s 은(는) 오른쪽 마우스 버튼\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"이동\\n\\n\"\n\"%s 은(는) 왼쪽 마우스 버튼\\n\"\n\"%s 은(는) 오른쪽 마우스 버튼\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"확대/축소\\n\\n\"\n\"%s 은(는) 왼쪽 마우스 버튼\\n\"\n\"%s 은(는) 오른쪽 마우스 버튼\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"팬\\n\\n\"\n\"%s 은(는) 왼쪽 마우스 버튼\\n\"\n\"%s 은(는) 오른쪽 마우스 버튼\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"색상 선택기\\n\\n\"\n\"%s 은(는) 왼쪽 마우스 버튼\\n\"\n\"%s 은(는) 오른쪽 마우스 버튼\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"연필\\n\\n\"\n\"%s 은(는) 왼쪽 마우스 버튼\\n\"\n\"%s 은(는) 오른쪽 마우스 버튼\\n\\n\"\n\"%s 를 눌러 선을 만듦\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"지우개\\n\\n\"\n\"%s 은(는) 왼쪽 마우스 버튼\\n\"\n\"%s 은(는) 오른쪽 마우스 버튼\\n\\n\"\n\"%s 를 눌러 선을 만듦\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"양동이\\n\\n\"\n\"%s 은(는) 왼쪽 마우스 버튼\\n\"\n\"%s 은(는) 오른쪽 마우스 버튼\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"셰이딩 툴\\n\\n\"\n\"%s 은(는) 왼쪽 마우스 버튼\\n\"\n\"%s 은(는) 오른쪽 마우스 버튼\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"선 툴\\n\\n\"\n\"%s 은(는) 왼쪽 마우스 버튼\\n\"\n\"%s 은(는) 오른쪽 마우스 버튼\\n\\n\"\n\"%s 를 눌러 선의 각도를 스냅함\\n\"\n\"%s 를 눌러 도형의 클릭 원점 중앙에 놓음\\n\"\n\"%s 를 눌러 원점을 바꿈\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"직사각형 툴\\n\\n\"\n\"%s 은(는) 왼쪽 마우스 버튼\\n\"\n\"%s 은(는) 오른쪽 마우스 버튼\\n\\n\"\n\"%s 를 눌러 1:1 비율로 만듦\\n\"\n\"%s 를 눌러 도형의 클릭 원점 중앙에 놓음\\n\"\n\"%s 를 눌러 원점을 바꿈\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"원 툴\\n\\n\"\n\"%s 은(는) 왼쪽 마우스 버튼\\n\"\n\"%s 은(는) 오른쪽 마우스 버튼\\n\\n\"\n\"%s 를 눌러 1:1 비율로 만듦\\n\"\n\"%s 를 눌러 도형의 클릭 원점 중앙에 놓음\\n\"\n\"%s 를 눌러 원점을 바꿈\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"직사각형\"\n\nmsgid \"Ellipse\"\nmsgstr \"타원\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"왼쪽 툴의 색상 선택\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"오른쪽 툴의 색상 선택\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"색상을 기본 상태로 복원 (블랙을 왼쪽, 화이트를 오른쪽)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"왼쪽 툴\"\n\nmsgid \"Right tool\"\nmsgstr \"오른쪽 툴\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"왼쪽 픽셀 인디케이터\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"그리고 있을 때 왼쪽 마우스 픽셀 인디케이터 또는 브러시를 캔버스에 표시하기\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"오른쪽 픽셀 인디케이터\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"그리고 있을 때 오른쪽 마우스 픽셀 인디케이터 또는 브러시를 캔버스에 표시하기\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"왼쪽 툴 아이콘 표시하기\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"커서 옆에 선택된 왼쪽 툴의 아이콘을 캔버스에 표시하기\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"오른쪽 툴 아이콘 표시하기\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"커서 옆에 선택된 오른쪽 툴의 아이콘을 캔버스에 표시하기\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"기본 마우스 커서 사용\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"십자 마우스 커서 사용\"\n\nmsgid \"Guides\"\nmsgstr \"안내선\"\n\nmsgid \"Guides color:\"\nmsgstr \"안내선 색:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"캔버스에 표시되는 줄자 안내선의 색상\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"스냅\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"스냅 거리\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"격자\"\n\nmsgid \"Grid type:\"\nmsgstr \"격자 타입:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"격자의 타입을 직사각형, 아이소메트릭 또는 둘 다로 설정\"\n\nmsgid \"Rectangular\"\nmsgstr \"직사각형\"\n\nmsgid \"Isometric\"\nmsgstr \"아이소메트릭\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"전체\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"격자 오프셋:\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"타일 모드 위에 그리기\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"비활성화된 경우 격자는 원래 이미지 위에만 그려집니다.\"\n\nmsgid \"Grid color:\"\nmsgstr \"격자 색:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"격자의 색\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"픽셀 격자\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"확대/축소 시 표시:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"픽셀 격자를 표시할 최소 확대 설정\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"픽셀 격자의 색:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"픽셀 격자의 색\"\n\nmsgid \"Transparency\"\nmsgstr \"투명도\"\n\nmsgid \"Checker size:\"\nmsgstr \"체크 무늬 크기\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"투명 배경 체크 무늬의 크기를 설정\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"체크 무늬 색 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"투명 배경 체크 무늬의 첫번째 색\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"체크 무늬 색 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"투명 배경 체크 무늬의 두번째 색\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"캔버스 움직임을 따라감\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"투명 배경 체크 무늬가 캔버스 움직임을 따라감\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"캔버스 확대 레벨을 따라감\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"투명 배경 체크 무늬가 캔버스 확대 레벨을 따라감\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"움직이는 선택 테두리\"\n\nmsgid \"Border color 1:\"\nmsgstr \"테두리 색상 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"테두리 색상 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"커스텀 프리셋만 수정 가능함\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"창 FPS 제한 설정\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"프로그램의 FPS를 제한합니다. 숫자가 낮을수록, CPU 사용량은 낮아지지만 프로그램의 속도가 느려지고, 거칠어지고 응답하지 않습니다. 0은 제한이 없음을 의미합니다\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"관심 없는 창 정지\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"이 옵션을 켜면 프로그램 창의 관심이 없을때 정지하게 됩니다. 이 옵션은 프로그램을 안 쓰고 있을때 CPU 사용량을 줄일 수 있습니다. 마우스가 프로그램의 창에 들어갈때 정지를 해제 합니다\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"확장 추가\"\n\nmsgid \"Enable\"\nmsgstr \"활성화\"\n\nmsgid \"Disable\"\nmsgstr \"비활성화\"\n\nmsgid \"Uninstall\"\nmsgstr \"삭제\"\n\nmsgid \"Open Folder\"\nmsgstr \"폴더 열기\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"브러시:\"\n\nmsgid \"Select a brush\"\nmsgstr \"브러시를 선택\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"픽셀 브러시\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"원 브러시\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"채워진 원 브러시\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"커스텀 브러시\"\n\nmsgid \"Brush size:\"\nmsgstr \"브러시 크기:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"색을 섞는 대신 덮어씁니다. 이 옵션은 완전 불투명한 색을 쓰지 않을 때만 의미가 있습니다.\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"픽셀 퍼펙트\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"픽셀 퍼펙트\\n\"\n\"모서리의 불필요한 픽셀을 제거해서 선을 부드럽게 만듭니다\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"안에 채우기\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"도형 채우기\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"빈 도형을 그리는 대신 도형을 색상으로 채우고 그립니다.\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: 브러시 자체의 색상, 100: 현재 선택된 색상\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"이것으로 채우기:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"패턴\"\n\nmsgid \"Offset\"\nmsgstr \"오프셋\"\n\nmsgid \"Simple Shading\"\nmsgstr \"간단한 셰이딩\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"색조 변화\"\n\nmsgid \"Lighten\"\nmsgstr \"밝게\"\n\nmsgid \"Darken\"\nmsgstr \"어둡게\"\n\nmsgid \"Amount:\"\nmsgstr \"양:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"밝게/어둡게 정도\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"선택 대상:\"\n\nmsgid \"Left Color\"\nmsgstr \"왼쪽 색상\"\n\nmsgid \"Right Color\"\nmsgstr \"오른쪽 색상\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"모드:\"\n\nmsgid \"Zoom in\"\nmsgstr \"확대\"\n\nmsgid \"Zoom out\"\nmsgstr \"축소\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"옵션:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"프레임에 맞추기\"\n\nmsgid \"100% Zoom\"\nmsgstr \"100% 줌\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"미러링\"\n\nmsgid \"Horizontal\"\nmsgstr \"수평\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"수평 대칭 그리기 활성화\"\n\nmsgid \"Vertical\"\nmsgstr \"수직\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"수직 대칭 그리기 활성화\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"현재 프레임:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"애니메이션 모드:\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"어니언 스키닝 활성화/비활성화\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"애니메이션 프리뷰가 초당 몇 프레임으로 재생 되게 할까요?\\n\"\n\"FPS가 높을 수록 애니메이션이 빠르게 재생 됩니다.\"\n\nmsgid \"No loop\"\nmsgstr \"루프 없음\"\n\nmsgid \"Cycle loop\"\nmsgstr \"루프 순환\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"루프 핑퐁\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"어니언 스키닝:\"\n\nmsgid \"Past Frames\"\nmsgstr \"과거 프레임\"\n\nmsgid \"Future Frames\"\nmsgstr \"미래 프레임\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"프레임 태그 관리\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"프레임 태그 속성\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"새 프레임 태그 추가\"\n\nmsgid \"Name:\"\nmsgstr \"이름:\"\n\nmsgid \"From:\"\nmsgstr \"~에서:\"\n\nmsgid \"To:\"\nmsgstr \"~로:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"같은 태그의 프레임만 애니메이션이 재생 됩니다.\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"태그 %s (프레임 %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"태그 %s (프레임 %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"선택 되었다면, 같은 태그의 프레임만 애니메이션이 재생 됩니다.\\n\"\n\"그렇지 않다면, 태그를 무시하고 모든 프레임의 애니메이션이 재생 됩니다.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"색상 모드\"\n\nmsgid \"Show past frames:\"\nmsgstr \"이전 프래임 보기\"\n\nmsgid \"Show future frames:\"\nmsgstr \"다음 프레임 보기\"\n\nmsgid \"Above canvas\"\nmsgstr \"캔버스 위\"\n\nmsgid \"Below canvas\"\nmsgstr \"캔버스 아래\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"만약 레이어가 어니언 스키닝을 무시하게 하고 싶으면 \\\"_io\\\"를 이름 뒤에 붙이세요\"\n\nmsgid \"Add a new frame\"\nmsgstr \"새 프레임 추가\"\n\nmsgid \"Remove Frame\"\nmsgstr \"프레임 제거\"\n\nmsgid \"Clone Frame\"\nmsgstr \"프레임 복제\"\n\nmsgid \"Move Left\"\nmsgstr \"왼쪽으로 이동\"\n\nmsgid \"Move Right\"\nmsgstr \"오른쪽으로 이동\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"프레임 속성\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"레이어\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"레이어\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"새 레이어 생성\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"현재 레이어 제거\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"현재 레이어를 위로 올리기\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"현재 레이어를 아래로 내리기\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"현재 레이어 복제\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"현재 레이어와 그 아래 레이어를 병합\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"색상\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"투명도:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"타일 모드 불투명도:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"레이어 표시 토글\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"레이어 잠금/잠금 해제\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"프레임: %s, 레이어: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"팔레트\"\n\nmsgid \"Palettes\"\nmsgstr \"팔레트\"\n\nmsgid \"Add a new palette\"\nmsgstr \"새로운 팔레트 추가\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"현재 선택된 팔레트 수정\"\n\nmsgid \"Choose a palette\"\nmsgstr \"팔레트 선택\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"실행 취소: 그리기\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"다시 실행: 그리기\"\n\nmsgid \"Undo: Select\"\nmsgstr \"실행 취소: 선택\"\n\nmsgid \"Redo: Select\"\nmsgstr \"다시 실행: 선택\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"실행 취소: 크기 설정\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"다시 실행: 크기 설정\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"실행 취소: 레이어 추가\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"다시 실행: 레이어 추가\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"실행 취소: 레이어 삭제\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"다시 실행: 레이어 삭제\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"실행 취소: 레이어 병합\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"다시 실행: 레이어 병합\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"실행 취소: 레이어 순 변경\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"다시 실행: 레이어 순 변경\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"실행 취소: 프레임 추가\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"다시 실행: 프레임 추가\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"실행 취소: 프레임 삭제\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"다시 실행: 프레임 삭제\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"실행 취소: 프레임 순 변경\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"다시 실행: 프레임 순 변경\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"실행 취소: 사용자 지정 붓 삭제\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"다시 실행: 사용자 지정 붓 삭제\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"실행 취소: 프레임 태그 수정\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"다시 실행: 프레임 태그 수정\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"실행 취소: 프레임 태그 삭제\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"다시 실행: 프레임 태그 삭제\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"실행 취소: 프레임 기간 변경\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"다시 실행: 프레임 기간 변경\"\n\nmsgid \"Move Guide\"\nmsgstr \"이동 가이드\"\n\nmsgid \"File saved\"\nmsgstr \"파일 저장됨\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"코드 에러. 파일을 여는것을 실패힜읍니다\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"코드 에러. 파일을 저장을 실패했읍니다\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"내보낸 파일(들)\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"새 빈 팔레트\"\n\nmsgid \"Import Palette\"\nmsgstr \"팔레트 불러오기\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"현재 스프라이트에서 팔레트 생성\"\n\nmsgid \"Palette Name:\"\nmsgstr \"팔레트 이름:\"\n\nmsgid \"Color Name:\"\nmsgstr \"색상 이름:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"현재 왼쪽 및 오른쪽 색상 사용\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"새 빈 팔레트를 생성할까요?\"\n\nmsgid \"Error\"\nmsgstr \"오류\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"오류: 팔레트는 유효한 이름을 갖고 있어야 합니다.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"유효하지 않은 팔레트 파일입니다!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"팔레트 수정\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"알파 구성으로 색깔을 만들기\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"선택한 색깔에서만 가져오기\"\n\nmsgid \"Get colors from\"\nmsgstr \"색깔들을 어디에서 가져오기\"\n\nmsgid \"Patrons:\"\nmsgstr \"후원자:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"당신의 이름 또는 당신의 회사 이름이 시작화면에 표시 되길 원하시나요?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Platinum 스폰서가 되어주세요\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Gold 스폰서가 되어주세요\"\n\nmsgid \"Become a Patron\"\nmsgstr \"후원자 되기\"\n\nmsgid \"Don't show again\"\nmsgstr \"다시 표시하지 않기\"\n\nmsgid \"Image Options\"\nmsgstr \"이미지 설정\"\n\nmsgid \"Default width:\"\nmsgstr \"기본 너비:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"새 이미지의 기본 너비\"\n\nmsgid \"Default height:\"\nmsgstr \"기본 높이:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"새 이미지의 기본 높이\"\n\nmsgid \"Default fill color:\"\nmsgstr \"기본 채우기 색:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"새 이미지의 기본 배경 색\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"비율 고정\"\n\nmsgid \"Portrait\"\nmsgstr \"세로\"\n\nmsgid \"Landscape\"\nmsgstr \"가로\"\n\nmsgid \"Templates:\"\nmsgstr \"템플릿:\"\n\nmsgid \"Preset\"\nmsgstr \"사전 설정\"\n\nmsgid \"Preset:\"\nmsgstr \"사전 설정:\"\n\nmsgid \"Default\"\nmsgstr \"기본\"\n\nmsgid \"Custom\"\nmsgstr \"사용자 지정\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"직사각형 선택\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"원형 선택\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"다각형 선택\"\n\nmsgid \"Select By Color\"\nmsgstr \"색상별 선택\"\n\nmsgid \"Magic Wand\"\nmsgstr \"마술 지팡이\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"밧줄 / 자유 선택 툴\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"움직이기\"\n\nmsgid \"Zoom\"\nmsgstr \"확대/축소\"\n\nmsgid \"Pan\"\nmsgstr \"팬\"\n\nmsgid \"Color Picker\"\nmsgstr \"색상 선택기\"\n\nmsgid \"Pencil\"\nmsgstr \"연필\"\n\nmsgid \"Eraser\"\nmsgstr \"지우개\"\n\nmsgid \"Bucket\"\nmsgstr \"양동이\"\n\nmsgid \"Shading Tool\"\nmsgstr \"셰이딩 툴\"\n\nmsgid \"Line Tool\"\nmsgstr \"선 툴\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"사각형 툴\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"원형 툴\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"색상 전환\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"단축키 설정\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"키와 키 조합을 눌러 단축키 설정하기\"\n\nmsgid \"Already assigned\"\nmsgstr \"이미 지정됨\"\n\nmsgid \"Left Tool:\"\nmsgstr \"왼쪽 툴:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"왼쪽 마우스 버튼에 지정된 툴\"\n\nmsgid \"Right Tool:\"\nmsgstr \"오른쪽 툴:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"오른쪽 마우스 버튼에 지정된 툴\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"최근 프로젝트 파일을 찾을 수 없습니다.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"프로젝트 파일을 찾을 수 없읍니다.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"당신은 아직 Pixelorama에서 프로젝트을 열거나 저장한적이 없습니다!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"최근 프로젝트 열기\"\n\nmsgid \"Open last project...\"\nmsgstr \"최근 프로젝트 열기...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"프로그램을 시작할 때 최근 프로젝트 열기\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"프로그램을 시작할 때 마지막으로 열었던 프로젝트 열기\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"종료 확인\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"자동 저장 켜기\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"자동 저장 주기:\"\n\nmsgid \"minute(s)\"\nmsgstr \"분\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"닫기\"\n\nmsgid \"Discard All\"\nmsgstr \"모두 버리기\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"백업본을 다시 불러오는 중\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"현재 선택된 팔레트 제거\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"이 팔렛을 지울까요? (진행하면 되돌릴 수 없습니다.)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"팔레트를 더 이상 지울 수 없습니다!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"팔레트가 존재하지 않기 때문에, 팔레트를 지울 수 없었습니다!\"\n\nmsgid \"and\"\nmsgstr \"그리고\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"선택한 프레임을 왼쪽으로 움직여주세요\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"선택한 프레임을 오른쪽으로 움직여주세요\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"기간\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"양 축으로 타일을 두르기\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"X 축으로 타일을 두르기\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Y 축으로 타일을 두르기\"\n\nmsgid \"Create a new palette\"\nmsgstr \"새 팔레트 생성\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"댓글:\"\n\nmsgid \"Empty\"\nmsgstr \"비어 있음\"\n\nmsgid \"From Current Palette\"\nmsgstr \"현재 팔레트에서\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"현재 스프라이트에서\"\n\nmsgid \"From Current Selection\"\nmsgstr \"현재 선택된 영역부터\"\n\nmsgid \"Add a new color\"\nmsgstr \"새 색상 추가\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"선택한 색상 제거\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"동일한 이름과 경로를가진 팔레트가 이미 존재합니다!\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"팔레트의 이름이 필요합니다!\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"위치:\"\n\nmsgid \"Tools\"\nmsgstr \"툴\"\n\nmsgid \"Main Canvas\"\nmsgstr \"메인 캔버스\"\n\nmsgid \"Second Canvas\"\nmsgstr \"두번째 캔버스\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"애니메이션 타임라인\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"캔버스 미리 보기\"\n\nmsgid \"Color Pickers\"\nmsgstr \"색상 선택기\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"전체적 툴 설정\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"왼쪽 툴 설정\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"오른쪽 툴 설정\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"큐브\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"구형\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"캡슐\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"원통\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"프리즘\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"토루스\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"평면\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"반지름:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"자동\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/la_LA.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: la-LA\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Latin\\n\"\n\"Language: la_LA\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/lt_LT.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: lt\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Lithuanian\\n\"\n\"Language: lt_LT\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/lv_LV.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: lv\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Latvian\\n\"\n\"Language: lv_LV\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"Labi\"\n\nmsgid \"Cancel\"\nmsgstr \"Atcelt\"\n\nmsgid \"Open\"\nmsgstr \"Atvērt\"\n\nmsgid \"Save\"\nmsgstr \"Saglabāt\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Lūdzu, apstiprini...\"\n\nmsgid \"File Name:\"\nmsgstr \"Faila nosaukums:\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"Attēla izmērs\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"Platums:\"\n\nmsgid \"Height:\"\nmsgstr \"Augstums:\"\n\nmsgid \"Center\"\nmsgstr \"Centrs\"\n\nmsgid \"File\"\nmsgstr \"Fails\"\n\nmsgid \"Edit\"\nmsgstr \"Rediģēt\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"Skats\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"Attēls\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"Efekti\"\n\nmsgid \"Help\"\nmsgstr \"Palīdzība\"\n\nmsgid \"New\"\nmsgstr \"Jauns\"\n\nmsgid \"New...\"\nmsgstr \"Jauns...\"\n\nmsgid \"Open...\"\nmsgstr \"Atvērt...\"\n\nmsgid \"Save...\"\nmsgstr \"Saglabāt...\"\n\nmsgid \"Save as...\"\nmsgstr \"Saglabāt kā...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"Eksportēt\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"Eksportēt...\"\n\nmsgid \"Export as...\"\nmsgstr \"Eksportēt kā...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Eksportēt PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Eksportēt PNG kā...\"\n\nmsgid \"Quit\"\nmsgstr \"Iziet\"\n\nmsgid \"Undo\"\nmsgstr \"Atsaukt\"\n\nmsgid \"Redo\"\nmsgstr \"Pārstrādāt\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"Kopēt\"\n\nmsgid \"Cut\"\nmsgstr \"Izgriezt\"\n\nmsgid \"Paste\"\nmsgstr \"Iekopēt\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"Izdzēst\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"Mainīt attēla izmēru\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Rotēt attēlu\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Apmest horizontāli\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Apmest vertikāli\"\n\nmsgid \"Preferences\"\nmsgstr \"Iestatījumi\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Flīžu režīms\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"Rādīt režģi\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Rādīt mērjoslu\"\n\nmsgid \"Show Guides\"\nmsgstr \"Rādīt vadlīnijas\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Aizpildīt ar krāsu:\"\n\nmsgid \"Open a File\"\nmsgstr \"Atvērt failu\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Atvērt failu(s)\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"Importēt kā:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"Pēdējie Projekti\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Saglabāt animāciju kā .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Eksportēt animāciju kā .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Eksportēt animāciju\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Fails eksistē, pārrakstīt?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Nevar ielādēd failu '%s'.\\n\"\n\"Kļūdas kods: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"Mainīt izmēru:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Atcelt eksportēšanu\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"Kolonna\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"Rinda\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"Ceļš:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Direktorija un Faili:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Izveidot mapi\"\n\nmsgid \"File:\"\nmsgstr \"Fails:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolācija:\"\n\nmsgid \"Nearest\"\nmsgstr \"Tuvākais\"\n\nmsgid \"Bilinear\"\nmsgstr \"Bilineāra\"\n\nmsgid \"Cubic\"\nmsgstr \"Kubisks\"\n\nmsgid \"Trilinear\"\nmsgstr \"Trilineāra\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"Vispārējā\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"Valoda\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"Tēmas\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Gluds tuvinājums\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Planšetes spiediena jutīgums:\"\n\nmsgid \"None\"\nmsgstr \"Nekas\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Ietekmēt otas alfa kanālu\"\n\nmsgid \"Color:\"\nmsgstr \"Krāsa:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Vadlīnijas krāsa:\"\n\nmsgid \"System Language\"\nmsgstr \"Systēmas valoda\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"Tumš\"\n\nmsgid \"Gray\"\nmsgstr \"Pelēks\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"Gaišs\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Atsātināt\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Ārlīnija\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"Diagonāle\"\n\nmsgid \"Place inside image\"\nmsgstr \"Ievieto attēlā\"\n\nmsgid \"Thickness:\"\nmsgstr \"Biezums:\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Rādīt uzplaiksnījuma ekrānu\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Problēmu izsekotājs\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"Izmaiņu saraksts\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Par Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Izstrādātājs Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"Mājas lapa\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"Ziedot\"\n\nmsgid \"Developers\"\nmsgstr \"Izstrādātāji\"\n\nmsgid \"Contributors\"\nmsgstr \"Līdzdalībnieki\"\n\nmsgid \"Donors\"\nmsgstr \"Ziedotāji\"\n\nmsgid \"Translators\"\nmsgstr \"Tūlkotāji\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"Angļu\"\n\nmsgid \"Greek\"\nmsgstr \"Grieķu\"\n\nmsgid \"French\"\nmsgstr \"Franču\"\n\nmsgid \"German\"\nmsgstr \"Vācu\"\n\nmsgid \"Polish\"\nmsgstr \"Poļu\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Brazīļu portugāļu\"\n\nmsgid \"Russian\"\nmsgstr \"Krievu\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Ķīniešu vienkāršotā\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Ķīniešu tradicionālā\"\n\nmsgid \"Italian\"\nmsgstr \"Itāļu\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"Spāņu\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"UI dizaineris\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"bez nosaukuma\"\n\nmsgid \"imported\"\nmsgstr \"importēts\"\n\nmsgid \"copy\"\nmsgstr \"kopēt\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Tiešām vēlies pārtraukt darbu ar Pixelorama?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Zīmulis\\n\\n\"\n\"%s priekškreisās peles pogas\\n\"\n\"%s priekš labās peles pogas\\n\\n\"\n\"Turi %s lai novilktu līniju\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Dzēšgumija\\n\\n\"\n\"%s priekš kreisās peles pogas\\n\"\n\"%s priekš labās peles pogas\\n\\n\"\n\"Turi %s lai novilktu līniju\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Spainis\\n\\n\"\n\"%s priekš kreisās peles pogas\\n\"\n\"%s priekš labās peles pogas\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Izvēlies krāsu priekš kreisā rīka\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Izvēlies krāsu priekš labā rīka\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Atjaunot noklusējuma krāsas (melns priekš kreisās, balts priekšlabās)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Kreisā pikseļa indikātors\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Attēlot kreisās peles pogas krāsu zīmēšanas laikā\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Labā pikseļa indikātors\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Attēlot labās peles pogas krāsu zīmēšanas laikā\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"Ota:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Izvēlēties otu\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"Pielāgota ota\"\n\nmsgid \"Brush size:\"\nmsgstr \"Otas izmērs:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: Krāsa no pašas otas, 100: no atzīmētās krāsas\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"Izgaismot\"\n\nmsgid \"Darken\"\nmsgstr \"Aptumšot\"\n\nmsgid \"Amount:\"\nmsgstr \"Daudzums:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Apgaismojuma/Aptumšojuma daudzmums\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"Izvēlēties priekš:\"\n\nmsgid \"Left Color\"\nmsgstr \"Kreisā krāsa\"\n\nmsgid \"Right Color\"\nmsgstr \"Labā krāsa\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"Spoguļskats\"\n\nmsgid \"Horizontal\"\nmsgstr \"Horizontāli\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"IIeslēgt horizontālo spoguļskata zīmēšanu\"\n\nmsgid \"Vertical\"\nmsgstr \"Vertikāls\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Ieslēgt vertikālo spoguļskata zīmēšanu\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"Patreizējais kadrs:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"Cik kadrus sekundē animāciju atskaņot?\\n\"\n\"Lielāks kadru skaits atskaņos animāciju ātrāk.\"\n\nmsgid \"No loop\"\nmsgstr \"Bez cilpošanas\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Riņķa cilpa\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Ping-pong cilpa\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Sīpola mizu skats:\"\n\nmsgid \"Past Frames\"\nmsgstr \"Pagājušie kadri\"\n\nmsgid \"Future Frames\"\nmsgstr \"Nākošie kadri\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Pievienot jaunu kadru\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Noņemt kadru\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Klonēt kadru\"\n\nmsgid \"Move Left\"\nmsgstr \"Pārvietot pa kreisi\"\n\nmsgid \"Move Right\"\nmsgstr \"Pārvietoties pa labi\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"Slānis\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"Slāņi\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Izveidot jaunu slāni\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Noņemt aktuālo slāni\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Pārvietot aktuālo slāni uz augšu\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Pārvietot aktuālo slāni uz leju\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Klonēt aktuālo slāni\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Apvienot aktuālo slāni ar apakšējo slāni\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"Necaurspīdīgums:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Slāņa redzamības slēdzis\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"Palete\"\n\nmsgid \"Palettes\"\nmsgstr \"Paletes\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Pievienot jaunu paleti\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Rediģēt iezīmēto paleti\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Izvēlētis paleti\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Atcelt: Zīmēt\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Atkārtot: Zīmēt\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Atcelt: Izmera maiņu\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Atkārtot: Izmēra maiņu\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Atcelt: Slāņa pievienošanu\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Atkārtot: Slāņa pievienošanu\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Atcelt: Slāņa noņemšanu\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Atkārtot: Slāņa noņemšanu\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Atcelt: Slāņu apvienošanu\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Atkārtot: Slāņu apvienošanu\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Atcelt: Slāņu secības maiņu\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Atkārtot: Slāņu secības maiņu\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Atcelt: Kadra pievienošanu\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Atkārtot: Kadra pievienošanu\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Atcelt: Kadra noņemšanu\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Atkārtot: Kadra noņemšanu\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Atcelt: Kadra secības maiņu\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Atkārtot: Kadra secības maiņu\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Atcelt: Pielāgotās otas dzēšanu\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Atkārtot: Pielāgotās otas dzēšanu\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"Pārvietot vadlīniju\"\n\nmsgid \"File saved\"\nmsgstr \"Fails saglabāts\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Jauna tukša palete\"\n\nmsgid \"Import Palette\"\nmsgstr \"Importēt paleti\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Paletes nosaukums:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Krāsas nosaukums:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Izveidot jaunu tukšu paleti?\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Kļūda: Paletei nepieciešams derīgs nosaukums.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Nederīgs paletes fails!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Rediģēt paleti\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"Labvēļi:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"Vairāk nerādīt\"\n\nmsgid \"Image Options\"\nmsgstr \"Bildes uzstādījumi\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Taisnstūra iezīmēšana\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"Krāsu izvēlne\"\n\nmsgid \"Pencil\"\nmsgstr \"Zīmulis\"\n\nmsgid \"Eraser\"\nmsgstr \"Dzēšgumija\"\n\nmsgid \"Bucket\"\nmsgstr \"Spainis\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/mi_NZ.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: mi\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Maori\\n\"\n\"Language: mi_NZ\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/mk_MK.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n%10==1 && n%100 != 11 ? 0 : 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: mk\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Macedonian\\n\"\n\"Language: mk_MK\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/ml_IN.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ml-IN\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Malayalam\\n\"\n\"Language: ml_IN\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"ഓക്കേ\"\n\nmsgid \"Cancel\"\nmsgstr \"റദ്ദാക്കുക\"\n\nmsgid \"Open\"\nmsgstr \"തുറക്കുക\"\n\nmsgid \"Save\"\nmsgstr \"സേവ് ചെയ്യുക\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"ദയവായി ഉറപ്പിക്കുക...\"\n\nmsgid \"File Name:\"\nmsgstr \"ഫയലിന്റെ പേര് :\"\n\nmsgid \"Project Name:\"\nmsgstr \"പ്രോജക്ടിന്റെ പേര് :\"\n\nmsgid \"Image Size\"\nmsgstr \"ചിത്രത്തിന്റെ വലുപ്പം\"\n\nmsgid \"Canvas Size\"\nmsgstr \"ക്യാന്വാസിന്റെ വലുപ്പം\"\n\nmsgid \"Frame Size\"\nmsgstr \"ഫ്രയ്മിന്റെ വലുപ്പം\"\n\nmsgid \"Size:\"\nmsgstr \"വലുപ്പം:\"\n\nmsgid \"Width:\"\nmsgstr \"വീതി\"\n\nmsgid \"Height:\"\nmsgstr \"ഉയരം:\"\n\nmsgid \"Center\"\nmsgstr \"നടുവേ\"\n\nmsgid \"File\"\nmsgstr \"ഫയൽ\"\n\nmsgid \"Edit\"\nmsgstr \"എഡിറ്റ്\"\n\nmsgid \"Select\"\nmsgstr \"സെലക്ട്\"\n\nmsgid \"View\"\nmsgstr \"വ്യൂ\"\n\nmsgid \"Window\"\nmsgstr \"വിന്ഡോ\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"പ്രോജെക്ട്\"\n\nmsgid \"Effects\"\nmsgstr \"ഇഫക്റ്റുകൾ\"\n\nmsgid \"Help\"\nmsgstr \"സഹായം\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"സേവ് ചെയ്യുക...\"\n\nmsgid \"Save as...\"\nmsgstr \"ഇത് പോലെ സേവ് ചെയ്യുക...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"ഇമ്പോർട്ട്\"\n\nmsgid \"Export\"\nmsgstr \"എക്സ്പോർട്ട്\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/mr_IN.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: mr\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Marathi\\n\"\n\"Language: mr_IN\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/ms_MY.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ms\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Malay\\n\"\n\"Language: ms_MY\\n\"\n\"PO-Revision-Date: 2025-11-25 17:59\\n\"\n\nmsgid \"OK\"\nmsgstr \"Baik\"\n\nmsgid \"Cancel\"\nmsgstr \"Batal\"\n\nmsgid \"Open\"\nmsgstr \"Buka\"\n\nmsgid \"Save\"\nmsgstr \"Simpan\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Harap Konfirmasi...\"\n\nmsgid \"File Name:\"\nmsgstr \"Nama Fail:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Nama Projek:\"\n\nmsgid \"Image Size\"\nmsgstr \"Saiz Imej\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Saiz Kanvas\"\n\nmsgid \"Frame Size\"\nmsgstr \"Saiz Bingkai\"\n\nmsgid \"Size:\"\nmsgstr \"Saiz:\"\n\nmsgid \"Width:\"\nmsgstr \"Lebar:\"\n\nmsgid \"Height:\"\nmsgstr \"Tinggi:\"\n\nmsgid \"Center\"\nmsgstr \"Tengah\"\n\nmsgid \"File\"\nmsgstr \"Fail\"\n\nmsgid \"Edit\"\nmsgstr \"Sunting\"\n\nmsgid \"Select\"\nmsgstr \"Pilih\"\n\nmsgid \"View\"\nmsgstr \"Paparan\"\n\nmsgid \"Window\"\nmsgstr \"Tingkap\"\n\nmsgid \"Image\"\nmsgstr \"Imej\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"Projek\"\n\nmsgid \"Effects\"\nmsgstr \"Kesan\"\n\nmsgid \"Help\"\nmsgstr \"Bantuan\"\n\nmsgid \"New\"\nmsgstr \"Baharu\"\n\nmsgid \"New...\"\nmsgstr \"Baharu...\"\n\nmsgid \"Open...\"\nmsgstr \"Buka...\"\n\nmsgid \"Save...\"\nmsgstr \"Simpan...\"\n\nmsgid \"Save as...\"\nmsgstr \"Simpan sebagai...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"Sertakan imej campuran\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"Jika didayakan, bentuk akhir imej campuran disimpan sebagai pxo, pada setiap bingkai.\\n\"\n\"Fail pxo akan membesar dan berguna untuk diimport dengan perisian pihak ketiga\\n\"\n\"atau dieksport CLI. Membuka pxo pada Pixelorama tidak perlu pilihan ini didayakan.\"\n\nmsgid \"Import\"\nmsgstr \"Import\"\n\nmsgid \"Export\"\nmsgstr \"Eksport\"\n\nmsgid \"Overwrite\"\nmsgstr \"Tulis ganti\"\n\nmsgid \"Export...\"\nmsgstr \"Eksport...\"\n\nmsgid \"Export as...\"\nmsgstr \"Eksport kepada...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Eksport PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Eksport PNG kepada...\"\n\nmsgid \"Quit\"\nmsgstr \"Keluar\"\n\nmsgid \"Undo\"\nmsgstr \"Batalkan\"\n\nmsgid \"Redo\"\nmsgstr \"Ulangi\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"Batalkan Riwayat\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"Keadaan awal\"\n\nmsgid \"Copy\"\nmsgstr \"Salin\"\n\nmsgid \"Cut\"\nmsgstr \"Potong\"\n\nmsgid \"Paste\"\nmsgstr \"Tampal\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Tampal di Tempat\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"Tampal isi papan klip\"\n\nmsgid \"Delete\"\nmsgstr \"Padam\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Padamkan Kekal\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Ke Tong Sampah\"\n\nmsgid \"New Brush\"\nmsgstr \"Berus Baru\"\n\nmsgid \"Scale Image\"\nmsgstr \"Skalakan imej\"\n\nmsgid \"Pixels\"\nmsgstr \"Piksel\"\n\nmsgid \"Percentage\"\nmsgstr \"Peratusan\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"Mod warna:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"Mod Warna\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"Terindeks\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"Pangkas ke Pilihan\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"Potong ke Isi\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Ubah Saiz Kanvas\"\n\nmsgid \"Offset Image\"\nmsgstr \"Pengimbang Imej\"\n\nmsgid \"Offset:\"\nmsgstr \"Offset:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"Lilit sekeliling:\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"Pusatkan Bingkai\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Pusing Imej\"\n\nmsgid \"Pivot x:\"\nmsgstr \"Pangsi x:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"Pangsi y:\"\n\nmsgid \"Smear options:\"\nmsgstr \"Pilihan menyaput:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Toleransi:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Sudut awal:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"Lilit Guratan\"\n\nmsgid \"Clear\"\nmsgstr \"Kosongkan\"\n\nmsgid \"Invert\"\nmsgstr \"Songsangkan\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"Pilih kawasan cel\"\n\nmsgid \"Modify\"\nmsgstr \"Ubah suai\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"Besarkan\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"Besarkan Pilihan\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"Kecutkan\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"Kecutkan Pilihan\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"Sempadan\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"Pilihan Sempadan\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"Berlian\"\n\nmsgid \"Circle\"\nmsgstr \"Bulatan\"\n\nmsgid \"Square\"\nmsgstr \"Petak\"\n\nmsgid \"Grayscale View\"\nmsgstr \"Paparan Skala Kelabu\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Cerminkan Imej\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Balikkan Mendatar\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Balikkan Menegak\"\n\nmsgid \"Preferences\"\nmsgstr \"Ubah Tetapan\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"Prosedur\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"Kabur\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"Dimuatkan\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"Pusatkan Kanvas\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Mod Jubin\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"Offset Mod Jubin\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"Asas-X:\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"Asas-Y:\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"Masking:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Tetap semula\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"Tetap Semula %s\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"Gunakan Bingkai Ini\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Tetap Semula Mask\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Kelegapan Tetingkap\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"Kelegapan tetingkap tidak boleh pada mod skrin penuh.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Susun Atur Panel\"\n\nmsgid \"Panels\"\nmsgstr \"Panel\"\n\nmsgid \"Layouts\"\nmsgstr \"Susun atur\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Panel Boleh Pindah\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"Pisah Panel\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Urus Susun Atur\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Pralihat\"\n\nmsgid \"Add\"\nmsgstr \"Tambah\"\n\nmsgid \"Add Layout\"\nmsgstr \"Tambah Susun Atur\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"Padam %s\"\n\nmsgid \"Copy from\"\nmsgstr \"Salin daripada\"\n\nmsgid \"Rename\"\nmsgstr \"Ubah nama\"\n\nmsgid \"Rename Layout\"\nmsgstr \"Ubah Nama Susun Atur\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"Susun atur semasa\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Adakah mahu memadamkan susun atur ini?\"\n\nmsgid \"Widescreen\"\nmsgstr \"Skrin lebar\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Skrin tinggi\"\n\nmsgid \"Mirror View\"\nmsgstr \"Cerminkan Paparan\"\n\nmsgid \"Show Grid\"\nmsgstr \"Paparkan Kekisi\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Paparkan Kekisi Piksel\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Paparkan Pembaris\"\n\nmsgid \"Show Guides\"\nmsgstr \"Paparkan Panduan\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"Paparkan Panduan Tetikus\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"Paparkan Imej Rujukan\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"Timbulkan Kesan Lapisan\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"Petik Ke\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"Petik ke Sempadan Kekisi Segi Empat\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"Petik ke Pusat Kekisi Segi Empat\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"Petik ke Panduan\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"Petik ke Panduan Perspektif\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Paparkan Bingkai Animasi\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Mod Zen\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Mod Skrin Penuh\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Isi dengan warna:\"\n\nmsgid \"Open a File\"\nmsgstr \"Buka fail\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Buka fail-fail\"\n\nmsgid \"Import Options\"\nmsgstr \"Tetapan Import\"\n\nmsgid \"Import as:\"\nmsgstr \"Import kepada:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Pakai ke semua\"\n\nmsgid \"Recent projects\"\nmsgstr \"Projek terkini\"\n\nmsgid \"New project\"\nmsgstr \"Projek baru\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"Lembaran sprite (projek baru)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Lembaran sprite (lapisan baru)\"\n\nmsgid \"New frame\"\nmsgstr \"Bingkai baru\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"Gantikan cel\"\n\nmsgid \"New layer\"\nmsgstr \"Lapisan baru\"\n\nmsgid \"New reference image\"\nmsgstr \"Imej rujukan baru\"\n\nmsgid \"New palette\"\nmsgstr \"Palet baru\"\n\nmsgid \"New brush\"\nmsgstr \"Berus baru\"\n\nmsgid \"New pattern\"\nmsgstr \"Corak baru\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Bingkai mendatar:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Bingkai menegak:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"Hiris Pintar\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"Ambangan:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"Jarak pencantuman:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"Muat Semula\"\n\nmsgid \"Start frame:\"\nmsgstr \"Bingkai awal:\"\n\nmsgid \"End frame:\"\nmsgstr \"Bingkai akhir:\"\n\nmsgid \"At frame:\"\nmsgstr \"Di bingkai:\"\n\nmsgid \"At layer:\"\nmsgstr \"Di lapisan:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Jenis berus:\"\n\nmsgid \"File brush\"\nmsgstr \"Berus fail\"\n\nmsgid \"Project brush\"\nmsgstr \"Berus projek\"\n\nmsgid \"Random brush\"\nmsgstr \"Berus rawak\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Simpan \\\"sprite\\\" kepada .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Eksport \\\"sprite\\\" kepada .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Eksport \\\"sprite\\\"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Fail wujud. Tulis ganti?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"Laluan direktori tidak sah!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"Nama fail tidak sah!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"Laluan direktori dan nama fail tidak sah!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Tengah mengeksport...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"Tak boleh memuat '%s'.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Tak boleh memuat '%s'.\\n\"\n\"Kod ralat: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"Tak boleh memuat '%s'.\\n\"\n\"Ini bukan fail palet yang sah.\"\n\nmsgid \"Frame\"\nmsgstr \"Bingkai\"\n\nmsgid \"Frames:\"\nmsgstr \"Bingkai:\"\n\nmsgid \"All Frames\"\nmsgstr \"Semua Bingkai\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Lembaran sprite\"\n\nmsgid \"Animation\"\nmsgstr \"Animasi\"\n\nmsgid \"Preview:\"\nmsgstr \"Pralihat:\"\n\nmsgid \"Frame:\"\nmsgstr \"Bingkai:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Arah Skrin:\"\n\nmsgid \"Browse\"\nmsgstr \"Cari\"\n\nmsgid \"Resize:\"\nmsgstr \"Ubah saiz:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"Mutu:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Batalkan Eksport\"\n\nmsgid \"Alert!\"\nmsgstr \"Makluman!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Pilih Folder Semasa\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Buka direktori\"\n\nmsgid \"Background:\"\nmsgstr \"Latar belakang:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"Bingkai yang dipilih\"\n\nmsgid \"Layers:\"\nmsgstr \"Lapisan:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Lapisan terlihat\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"Lapisan yang dipilih\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"Lapisan piksel:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"Lapisan kumpulan:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"Lapisan 3D:\"\n\nmsgid \"Direction:\"\nmsgstr \"Arah:\"\n\nmsgid \"Forward\"\nmsgstr \"Ke depan\"\n\nmsgid \"Backwards\"\nmsgstr \"Ke belakang\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Ping-Pong\"\n\nmsgid \"Columns\"\nmsgstr \"Lajur\"\n\nmsgid \"Columns:\"\nmsgstr \"Lajur:\"\n\nmsgid \"Rows\"\nmsgstr \"Baris\"\n\nmsgid \"Rows:\"\nmsgstr \"Baris:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"Teg mengikut lajur\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"Teg mengikut baris\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"Saiz semasa eksport:\"\n\nmsgid \"Save a File\"\nmsgstr \"Simpan Fail\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"Ke folder sebelumnya.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"Ke folder seterusnya.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"Ke direktori utama.\"\n\nmsgid \"Path:\"\nmsgstr \"Laluan:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"Muat semula fail.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"Mentogolkan fail tersembunyi.\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Direktori & Fail:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Buat Folder\"\n\nmsgid \"File:\"\nmsgstr \"Fail:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"Semua Fail\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"Sambungan Berkaitan\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"Projek Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"Imej PNG\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"Imej BMP\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"Imej Radiance HDR\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"Imej JPEG\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"Imej SVG\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"Imej TGA\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"Imej WebP\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"Projek OpenRaster\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"Projek Aseprite\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"Projek Krita\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"Projek Piskel\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"Projek Photoshop\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"Palet Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"Palet GIMP\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"Pilihan lanjutan\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolasi:\"\n\nmsgid \"Nearest\"\nmsgstr \"\\\"Nearest\\\"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\\\"Bilinear\\\"\"\n\nmsgid \"Cubic\"\nmsgstr \"\\\"Cubic\\\"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\\\"Trilinear\\\"\"\n\nmsgid \"Constant\"\nmsgstr \"Pemalar\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"Ruang warna\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"sRGB linear\"\n\nmsgid \"General\"\nmsgstr \"Umum\"\n\nmsgid \"Startup\"\nmsgstr \"Permulaan\"\n\nmsgid \"Language\"\nmsgstr \"Bahasa\"\n\nmsgid \"Interface\"\nmsgstr \"Antaramuka\"\n\nmsgid \"Themes\"\nmsgstr \"Tema\"\n\nmsgid \"Canvas\"\nmsgstr \"Kanvas\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"Garis masa\"\n\nmsgid \"Selection\"\nmsgstr \"Seleksi\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Pintasan\"\n\nmsgid \"Backup\"\nmsgstr \"Sandaran\"\n\nmsgid \"Performance\"\nmsgstr \"Prestasi\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"Pemacu\"\n\nmsgid \"Extensions\"\nmsgstr \"Sambungan\"\n\nmsgid \"Cursors\"\nmsgstr \"Kursor\"\n\nmsgid \"Indicators\"\nmsgstr \"Penunjuk\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"Hidup\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Zum Lancar\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"Warna panduan:\"\n\nmsgid \"System Language\"\nmsgstr \"Bahasa Sistem\"\n\nmsgid \"Display scale:\"\nmsgstr \"Skala paparan:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"Font:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"Saiz font:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Malapkan antara muka pada popup\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"Paparkan label pemberitahuan\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"Gunakan dialog fail biasa\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"Mod satu tetingkap\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"Semasa ini didayakan, subtetingkap Pixelorama akan dibenamkan ke tetingkap utama, jika tidak, setiap dialog akan pisah tersendiri.\"\n\nmsgid \"Dark\"\nmsgstr \"Gelap\"\n\nmsgid \"Gray\"\nmsgstr \"Kelabu\"\n\nmsgid \"Blue\"\nmsgstr \"Biru\"\n\nmsgid \"Caramel\"\nmsgstr \"Karamel\"\n\nmsgid \"Light\"\nmsgstr \"Terang\"\n\nmsgid \"Purple\"\nmsgstr \"Ungu\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"Mawar\"\n\nmsgid \"Theme\"\nmsgstr \"Tema\"\n\nmsgid \"Buttons\"\nmsgstr \"Butang\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Warna ikon daripada:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Warna ikon:\"\n\nmsgid \"Background\"\nmsgstr \"Latar belakang\"\n\nmsgid \"Background color from:\"\nmsgstr \"Warna latar belakang daripada:\"\n\nmsgid \"Background color:\"\nmsgstr \"Warna latar belakang:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"Mod alat segerak\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"Mengongsi pilihan antara alat kiri dan kanan\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Saiz butang alat:\"\n\nmsgid \"Small\"\nmsgstr \"Kecil\"\n\nmsgid \"Big\"\nmsgstr \"Besar\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Jejaskan pemilihan saja\"\n\nmsgid \"Selected cels\"\nmsgstr \"Cel yang dipilih\"\n\nmsgid \"Current cel\"\nmsgstr \"Cel semasa\"\n\nmsgid \"Current frame\"\nmsgstr \"Bingkai semasa\"\n\nmsgid \"All frames\"\nmsgstr \"Semua bingkai\"\n\nmsgid \"All projects\"\nmsgstr \"Semua projek\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Songsangkan warna\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Ubah Saluran Merah\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Ubah Saluran Hijau\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Ubah Saluran Biru\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Ubah Saluran Alfa\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Desaturasi\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Garis luar\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Bayang Jatuh\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"Kabur Gauss\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"Jenis kabur:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"Jumlah kabur:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"Jejari kabur:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"Arah kabur:\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"Interpolasi\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"Sungsangkan\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"Agih ratakan titik\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"Simpan ke pratetap\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"Lengkung Warna\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"Saluran RGB:\"\n\nmsgid \"Red\"\nmsgstr \"Merah\"\n\nmsgid \"Green\"\nmsgstr \"Hijau\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"Nilai\"\n\nmsgid \"Presets\"\nmsgstr \"Pratetap\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"Step:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Paparkan \\\"Splash Screen\\\"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"Kod Sumber\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"Lesen\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"Lesen Godot\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"Lesen pihak ketiga\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Pindah\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Zum\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Pendar\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"Pangkas\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\\n\\n\"\n\"Mengubah saiz kanvas\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Timba\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"Lukis Lengkung\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\\n\\n\"\n\"Melukis lengkung Bezier\\n\"\n\"Tekan %s/%s untuk menambah titik\\n\"\n\"Klik dua kali untuk selesaikan melukis\\n\"\n\"Tekan dan seret untuk melengkungkan\\n\"\n\"Tekan %s untuk alih keluar titik tambah terakhir\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Teks\\n\\n\"\n\"%s untuk tetikus kiri\\n\"\n\"%s untuk tetikus kanan\"\n\nmsgid \"Rectangle\"\nmsgstr \"Segi Empat Tepat\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"Warna Purata:\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"Pilih warna daripada tetingkap aplikasi.\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"Papan Warna\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Paparkan ikon alat kiri\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Paparkan ikon alat kanan\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"Kekisi\"\n\nmsgid \"Grid type:\"\nmsgstr \"Jenis kekisi:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"Segi Empat\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"Segi Enam\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"Segi enam (tapak runcing)\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"Segi enam (tapak rata)\"\n\nmsgid \"All\"\nmsgstr \"Semua\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"Kekisi nampak:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"Kekisi suntingan:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"Saiz kekisi:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"Offset kekisi:\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"Menetapkan offset kekisi kanvas asal (pada sudut kiri atas imej)\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"Warna kekisi:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"Warna daripada kekisi\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Kekisi Piksel\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Papar semasa zum:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Warna kekisi piksel:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"Warna daripada kekisi piksel\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"Lutsinar pralihat ubah bentuk:\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Hanya pratetap tersuai boleh disunting\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"Maks. batal step:\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Tambah Sambungan\"\n\nmsgid \"Enable\"\nmsgstr \"Dayakan\"\n\nmsgid \"Disable\"\nmsgstr \"Matikan\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"Jelajah Dalam Talian\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"Kedai Sambungan\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"Cari...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"Tag:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"Laporkan isu pasal sambungan\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"Muat turun\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"Pautan repositori:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"Mengambil data dari repositori jauh.\\n\"\n\"Harap tunggu.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"Tidak boleh mendapatkan maklumat repositori jauh.\\n\\n\"\n\"- Pastikan telah disambungkan ke internet.\\n\"\n\"- Jika menggunakan Pixelorama versi Flatpak, izinkan untuk menyambung ke internet. Lakukan dengan menjalankan perintah berikut pada terminal:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"Atau tidak, muat turun Flatseal dan tetapkan izin internet untuk aplikasi Flatpak di sana.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"Tidak boleh mendapatkan maklumat repositori jauh.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"Tampal pautan repositori pemilik repositori. Jika tetap kosong, lajur ini akan automatik dialih keluar.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"Berus Lalai\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Berus piksel\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"Berus Projek\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"Berus Fail\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"Salji\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"Berus Fail Rawak\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"Rumput\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"Bintang\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"Pilihan putaran\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"Selak:\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"Putar:\"\n\nmsgid \"Overwrite color\"\nmsgstr \"Tulis ganti warna\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Menulis ganti warna dan tak diadun. Pilihan ini hanya berkaitan bagi warna yang tidak legap sepenuhnya\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"Warna berus daripada:\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"Offset\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"Ganti Warna\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"Harap pilih warna daripada palet.\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"Warna ke kanan:\"\n\nmsgid \"Pick for:\"\nmsgstr \"Mod pilih:\"\n\nmsgid \"Left Color\"\nmsgstr \"Warna Kiri\"\n\nmsgid \"Right Color\"\nmsgstr \"Warna Kanan\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"Mod pilih:\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"Warna Atas\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"Lapisan Semasa\"\n\nmsgid \"Mode:\"\nmsgstr \"Mod:\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"Tunggal\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"Rantaian\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"Rantaian: Mencipta rantaian lengkung Bezier, serupa alat garis lengkung Krita.\\n\"\n\"Tunggal: Mencipta satu lengkung Bezier, serupa alat garis lengkung Aseprite.\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"Ke tengah paparan\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Daya/matikan Onion Skinning\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"Jumlah bingkai yang dimainkan per saat pada pralihat.\\n\"\n\"Lagi banyak FPS, lagi cepat animasi dimainkan.\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"Pilih piksel\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"Paut cel kepada\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"Nyahpaut cel\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"Mainkan audio di sini\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"Perincian Projek\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"Import Tag\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"Urut Sungsang\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"Peta jubin\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"Rata\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"Rata nampak\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"Tambah Lapisan Jubin\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"Padam\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"Kelegapan mod jubin:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"Fail audio:\"\n\nmsgid \"Load file\"\nmsgstr \"Muatkan fail\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"Mainkan di bingkai:\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Batalkan: Menggambar\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"Sandaran disimpan\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"Fail gagal dibuka. Kod ralat %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"Fail gagal disimpan. Kod ralat %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Ralat: Gunakan nama palet yang sah.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Fail palet tidak sah!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"Padamkan semua sandaran\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"Pratetap\"\n\nmsgid \"Preset:\"\nmsgstr \"Pratetap:\"\n\nmsgid \"Default\"\nmsgstr \"Lalai\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"Pilih Menggambar\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"Alat Segi Empat\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Alat yang ditugaskan kepada butang kiri\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"Eksport data JSON\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"Adakah mahu mengalih keluar palet ini? (Tak boleh dibatalkan)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"Data pengguna:\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"Berjubin Kedua-dua Paksi\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"Berjubin di Paksi X\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Berjubin di Paksi Y\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"Kosong\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"Sungsangkan warna\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"Kanvas Utama\"\n\nmsgid \"Second Canvas\"\nmsgstr \"Kanvas Kedua\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"Pralihat kanvas\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"Perakam\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"Jubin\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"Projeksi:\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"Frustum\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"Ubah bentuk\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"Kiri ke kanan:\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"Step lengkung:\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"Negatif:\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"Pralihat bingkai:\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"Punca kuasa dua\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"Sinus\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"Adakah mahu mengalih keluar imej rujukan ini? Ia tidak dipadamkan daripada direktori.\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"Tetap Semula Bentuk\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"Putaran\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"Tapis\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"Kelegapan\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"Bataskan Warna\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"Didayakan\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"Tambah kesan\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"Adakah mahu muat turun imej daripada %s?\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"Kotak jubin\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"Set jubin:\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"Set jubin\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"Set jubin baru\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"Nama set jubin:\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"Saiz jubin:\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"Bentuk jubin:\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"Susun atur jubin:\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"Paksi offset jubin:\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"Mengubah paksi offset daripada semua bentuk separuh offset (Isometrik & Segi Enam).\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"Tindan\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"Offset tindan\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"Mod letak sahaja:\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"Mendayakan mod letak sahaja ialah tindakan kekal. Jika didayakan, hanya dapat meletakkan jubin dan tidak dapat lagi mengubah jubin sedia ada pada lapisan ini.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"Pilih jubin untuk diletakkan pada kanvas.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"Mengubah jubin pada kanvas.\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"Buatkan jubin\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"Pusing jubin ke kiri\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"Pusing jubin ke kanan\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"Jubin dibalik mendatar\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"Jubin dibalik menegak\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"Manual\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Auto\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"Bertindan\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"Saiz butang jubin:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"Paparkan jubin kosong:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"Properti jubin\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"Kebarangkalian:\"\n\n"
  },
  {
    "path": "Translations/nb_NO.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: nb\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Norwegian Bokmal\\n\"\n\"Language: nb_NO\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"Avbryt\"\n\nmsgid \"Open\"\nmsgstr \"Åpne\"\n\nmsgid \"Save\"\nmsgstr \"Lagre\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Vennligst Bekreft...\"\n\nmsgid \"File Name:\"\nmsgstr \"Filnavn:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Prosjektnavn:\"\n\nmsgid \"Image Size\"\nmsgstr \"Bildestørrelse\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Lerretstørrelse\"\n\nmsgid \"Frame Size\"\nmsgstr \"Bildestørrelse\"\n\nmsgid \"Size:\"\nmsgstr \"Størrelse:\"\n\nmsgid \"Width:\"\nmsgstr \"Bredde:\"\n\nmsgid \"Height:\"\nmsgstr \"Høyde:\"\n\nmsgid \"Center\"\nmsgstr \"Midtstill\"\n\nmsgid \"File\"\nmsgstr \"Fil\"\n\nmsgid \"Edit\"\nmsgstr \"Rediger\"\n\nmsgid \"Select\"\nmsgstr \"Velg\"\n\nmsgid \"View\"\nmsgstr \"Vis\"\n\nmsgid \"Window\"\nmsgstr \"Vindu\"\n\nmsgid \"Image\"\nmsgstr \"Bilde\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"Effekter\"\n\nmsgid \"Help\"\nmsgstr \"Hjelp\"\n\nmsgid \"New\"\nmsgstr \"Ny\"\n\nmsgid \"New...\"\nmsgstr \"Ny...\"\n\nmsgid \"Open...\"\nmsgstr \"Åpne...\"\n\nmsgid \"Save...\"\nmsgstr \"Lagre...\"\n\nmsgid \"Save as...\"\nmsgstr \"Lagre som...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"Importer\"\n\nmsgid \"Export\"\nmsgstr \"Eksporter\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"Eksporter...\"\n\nmsgid \"Export as...\"\nmsgstr \"Eksporter som...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Eksporter PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Eksporter PNG som...\"\n\nmsgid \"Quit\"\nmsgstr \"Avslutt\"\n\nmsgid \"Undo\"\nmsgstr \"Angre\"\n\nmsgid \"Redo\"\nmsgstr \"Gjør om igjen\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"Kopier\"\n\nmsgid \"Cut\"\nmsgstr \"Klipp\"\n\nmsgid \"Paste\"\nmsgstr \"Lim inn\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"Slett\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"Ny Børste\"\n\nmsgid \"Scale Image\"\nmsgstr \"Skalér Bilde\"\n\nmsgid \"Pixels\"\nmsgstr \"Piksler\"\n\nmsgid \"Percentage\"\nmsgstr \"Prosentandel\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Forandre Størrelse på Lerret\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Rotér Bilde\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"Nullstill\"\n\nmsgid \"Invert\"\nmsgstr \"Inverter\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Speilvend Horisontalt\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Speilvend Vertikalt\"\n\nmsgid \"Preferences\"\nmsgstr \"Preferanser\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Flismodus\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Gjennomsiktighet på vindu\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Paneloppsett\"\n\nmsgid \"Panels\"\nmsgstr \"Paneler\"\n\nmsgid \"Layouts\"\nmsgstr \"Oppsett\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Gjør om på oppstett\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"Widescreen\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Tallscreen\"\n\nmsgid \"Mirror View\"\nmsgstr \"Speilet Visning\"\n\nmsgid \"Show Grid\"\nmsgstr \"Vis Rutenett\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Vis Pikselrutenett\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Vis Linjaler\"\n\nmsgid \"Show Guides\"\nmsgstr \"Vis Guider\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Vis Animasjonstidslinje\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Zenmodus\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Fullskjermmodus\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Fyll med farge:\"\n\nmsgid \"Open a File\"\nmsgstr \"Åpne en Fil\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Åpne Fil(er)\"\n\nmsgid \"Import Options\"\nmsgstr \"Importeringsvalg\"\n\nmsgid \"Import as:\"\nmsgstr \"Importér som:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"Siste prosjekter\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Tegneark (nytt lag)\"\n\nmsgid \"New frame\"\nmsgstr \"Nytt bilde\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"Nytt lag\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"Ny palett\"\n\nmsgid \"New brush\"\nmsgstr \"Ny børste\"\n\nmsgid \"New pattern\"\nmsgstr \"Nytt mønster\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Horisontale bilder:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Vertikale bilder:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"Startbilde:\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"På bilde:\"\n\nmsgid \"At layer:\"\nmsgstr \"På lag:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Børstetype:\"\n\nmsgid \"File brush\"\nmsgstr \"Filbørste\"\n\nmsgid \"Project brush\"\nmsgstr \"Prosjektbørste\"\n\nmsgid \"Random brush\"\nmsgstr \"Tilfeldig børste\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Lagre Figur som .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Eksportér Figur som .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Eksportér Figur\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Filen Eksisterer, Overskrive?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Eksport pågår...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"Kan ikke laste fil '%s'.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Kan ikke laste fil '%s'. Feilkode: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"Kan ikke laste fil '%s'.\\n\"\n\"Dette er ikke en gyldig palettfil.\"\n\nmsgid \"Frame\"\nmsgstr \"Bilde\"\n\nmsgid \"Frames:\"\nmsgstr \"Bilder:\"\n\nmsgid \"All Frames\"\nmsgstr \"Alle Bilder\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Tegneark\"\n\nmsgid \"Animation\"\nmsgstr \"Animasjon\"\n\nmsgid \"Preview:\"\nmsgstr \"Forhåndsvisning:\"\n\nmsgid \"Frame:\"\nmsgstr \"Bilde:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Retning:\"\n\nmsgid \"Browse\"\nmsgstr \"Bla gjennom\"\n\nmsgid \"Resize:\"\nmsgstr \"Endre størrelse:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Avbryt Eksport\"\n\nmsgid \"Alert!\"\nmsgstr \"Advarsel!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Velg Gjeldende Mappe\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Åpne en Mappe\"\n\nmsgid \"Background:\"\nmsgstr \"Bakgrunn:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"Retning:\"\n\nmsgid \"Forward\"\nmsgstr \"Fremover\"\n\nmsgid \"Backwards\"\nmsgstr \"Bakover\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Ping-Pong\"\n\nmsgid \"Columns\"\nmsgstr \"Kolonner\"\n\nmsgid \"Columns:\"\nmsgstr \"Kolonner:\"\n\nmsgid \"Rows\"\nmsgstr \"Rader\"\n\nmsgid \"Rows:\"\nmsgstr \"Rader:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"Bane:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Mapper & Filer:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Opprett Mappe\"\n\nmsgid \"File:\"\nmsgstr \"Fil:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolering:\"\n\nmsgid \"Nearest\"\nmsgstr \"Nærmeste\"\n\nmsgid \"Bilinear\"\nmsgstr \"Bilineær\"\n\nmsgid \"Cubic\"\nmsgstr \"Kubikk\"\n\nmsgid \"Trilinear\"\nmsgstr \"Trilineær\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"Generelt\"\n\nmsgid \"Startup\"\nmsgstr \"Oppstart\"\n\nmsgid \"Language\"\nmsgstr \"Språk\"\n\nmsgid \"Interface\"\nmsgstr \"Grensesnitt\"\n\nmsgid \"Themes\"\nmsgstr \"Temaer\"\n\nmsgid \"Canvas\"\nmsgstr \"Lerret\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"Markert Område\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Snarveier\"\n\nmsgid \"Backup\"\nmsgstr \"Sikkerhetskopi\"\n\nmsgid \"Performance\"\nmsgstr \"Ytelse\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"Utvidelser\"\n\nmsgid \"Cursors\"\nmsgstr \"Markører\"\n\nmsgid \"Indicators\"\nmsgstr \"Indikatorer\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"På\"\n\nmsgid \"Restore default value\"\nmsgstr \"Tilbakestill til standardverdier\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Glatt Zoom\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Legger til en jevnere overgang når du zoomer inn eller ut\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Tegnebrettets trykkfølsomhet:\"\n\nmsgid \"None\"\nmsgstr \"Ingen\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Påvirker Børstens Alpha\"\n\nmsgid \"Color:\"\nmsgstr \"Farge:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Guide farge:\"\n\nmsgid \"System Language\"\nmsgstr \"Systemspråk\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Mørklegg grensesnittet bak dialogvindu\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"Mørk\"\n\nmsgid \"Gray\"\nmsgstr \"Grå\"\n\nmsgid \"Blue\"\nmsgstr \"Blå\"\n\nmsgid \"Caramel\"\nmsgstr \"Karamell\"\n\nmsgid \"Light\"\nmsgstr \"Lys\"\n\nmsgid \"Purple\"\nmsgstr \"Lilla\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"Utseende\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Ikonfarge fra:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Ikonfarge:\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Verktøyknappstørrelse:\"\n\nmsgid \"Small\"\nmsgstr \"Liten\"\n\nmsgid \"Big\"\nmsgstr \"Stor\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Bare påvirk merket område\"\n\nmsgid \"Selected cels\"\nmsgstr \"Valgte celler\"\n\nmsgid \"Current cel\"\nmsgstr \"Denne cellen\"\n\nmsgid \"Current frame\"\nmsgstr \"Dette bildet\"\n\nmsgid \"All frames\"\nmsgstr \"Alle bilder\"\n\nmsgid \"All projects\"\nmsgstr \"Alle prosjekter\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Invertér Farger\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Endre Rød Kanal\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Endre Grønn Kanal\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Endre Blå Kanal\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Endre Alpha Kanal\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Avmettning\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Omriss\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"Gradient\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"Type:\"\n\nmsgid \"Angle:\"\nmsgstr \"Vinkel:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Justér Fargetone/Metning/Verdi\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"Justér HSV\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Fargetone:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Metning:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Verdi:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"Bruk\"\n\nmsgid \"Diagonal\"\nmsgstr \"Diagonal\"\n\nmsgid \"Place inside image\"\nmsgstr \"Plassér inne i bildet\"\n\nmsgid \"Thickness:\"\nmsgstr \"Tykkelse:\"\n\nmsgid \"Colors:\"\nmsgstr \"Farger:\"\n\nmsgid \"Steps:\"\nmsgstr \"Trinn:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Vis Oppstartsbilde\"\n\nmsgid \"Online Docs\"\nmsgstr \"Online Bruksanvisning\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Problemsporer\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"Endringslogg\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Om Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - Pikselér drømmene dine!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Utviklet av Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-nå av Orama Interaktive og bidragsytere\"\n\nmsgid \"Website\"\nmsgstr \"Nettside\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"Donér\"\n\nmsgid \"Developers\"\nmsgstr \"Utviklere\"\n\nmsgid \"Contributors\"\nmsgstr \"Bidragsytere\"\n\nmsgid \"Donors\"\nmsgstr \"Donorer\"\n\nmsgid \"Translators\"\nmsgstr \"Oversettere\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Lisenser\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"Engelsk\"\n\nmsgid \"Greek\"\nmsgstr \"Gresk\"\n\nmsgid \"French\"\nmsgstr \"Fransk\"\n\nmsgid \"German\"\nmsgstr \"Tysk\"\n\nmsgid \"Polish\"\nmsgstr \"Polsk\"\n\nmsgid \"Portuguese\"\nmsgstr \"Portugisisk\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Brasiliansk Portugisisk\"\n\nmsgid \"Russian\"\nmsgstr \"Russisk\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Kinesisk (forenklet)\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Kinesisk (tradisjonell)\"\n\nmsgid \"Italian\"\nmsgstr \"Italiensk\"\n\nmsgid \"Latvian\"\nmsgstr \"Latvisk\"\n\nmsgid \"Spanish\"\nmsgstr \"Spansk\"\n\nmsgid \"Catalan\"\nmsgstr \"Katalansk\"\n\nmsgid \"Esperanto\"\nmsgstr \"Esperanto\"\n\nmsgid \"Indonesian\"\nmsgstr \"Indonesisk\"\n\nmsgid \"Czech\"\nmsgstr \"Tjekkisk\"\n\nmsgid \"Arabic\"\nmsgstr \"Arabisk\"\n\nmsgid \"Turkish\"\nmsgstr \"Tyrkisk\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Norsk Bokmål\"\n\nmsgid \"Korean\"\nmsgstr \"Koreansk\"\n\nmsgid \"Hungarian\"\nmsgstr \"Ungarsk\"\n\nmsgid \"Romanian\"\nmsgstr \"Rumensk\"\n\nmsgid \"Japanese\"\nmsgstr \"Japansk\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Ukrainsk\"\n\nmsgid \"Danish\"\nmsgstr \"Dansk\"\n\nmsgid \"Swedish\"\nmsgstr \"Svensk\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Serbisk (kyrillisk)\"\n\nmsgid \"Dutch\"\nmsgstr \"Nederlandsk\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"UI-Designer\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Kunst av %s\"\n\nmsgid \"untitled\"\nmsgstr \"uten navn\"\n\nmsgid \"imported\"\nmsgstr \"importert\"\n\nmsgid \"copy\"\nmsgstr \"kopier\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Er du sikker på at du vil avslutte Pixelorama?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Ulagret Bilde\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Du har ulagrede endringer. Hvis du fortsetter vil fremgangen du har gjort gå tapt.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Lagre før du avslutter?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Lagre & Avslutt\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Avslutt uten å lagre\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Rektangulær Markering\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Elliptisk Markering\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Polygonal Markering\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Markering Etter Farge\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Tryllestav\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Lassoverktøy\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Flytt\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Zoom\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Panorer\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"Fargevelger\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Blyant\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\\n\\n\"\n\"Hold %s for å lage en linje\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Viskelær\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\\n\\n\"\n\"Hold %s for å lage en linje\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Bøtte\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Skyggeleggeverktøy\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Linjeverktøy\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\\n\\n\"\n\"Hold %s for å feste linjevinkelen\\n\"\n\"Hold %s for å sentrere formen på klikkets opprinnelse\\n\"\n\"Hold %s for å forskyve formens opprinnelse\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Rektangelverktøy\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\\n\\n\"\n\"Hold %s for å lage et kvadrat\\n\"\n\"Hold %s for å sentrere formen på klikkets opprinnelse\\n\"\n\"Hold %s for å forskyve formens opprinnelse\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Ellipseverktøy\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\\n\\n\"\n\"Hold %s for å lage en 1:1 form\\n\"\n\"Hold %s for å sentrere formen på klikkets opprinnelse\\n\"\n\"Hold %s for å forskyve formens opprinnelse\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"Rektangel\"\n\nmsgid \"Ellipse\"\nmsgstr \"Ellipse\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Velg en farge for venstre verktøy\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Velg en farge for høyre verktøy\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Tilbakestill farger (svart til venstre, hvit for høyre)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"Venstre verktøy\"\n\nmsgid \"Right tool\"\nmsgstr \"Høyre verktøy\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Venstre pikselindikator\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Vis pikselindikator eller børste for venstre musepeker på lerretet når du tegner\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Høyre pikselindikator\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Vis pikselindikator eller børste for høyre musepeker på lerretet når du tegner\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Vis venstre verktøyikon\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Viser ikonet til det valgte venstreverktøyet ved siden av markøren på lerretet\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Vis høyre verktøyikon\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Viser ikonet til det valgte høyreverktøyet ved siden av markøren på lerretet\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"Bruk vanlige musepekere\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"Bruk kryssmarkør for lerretet\"\n\nmsgid \"Guides\"\nmsgstr \"Guider\"\n\nmsgid \"Guides color:\"\nmsgstr \"Guidefarge:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Farge som brukes av linjal og guider på lerretet\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"Rutenett\"\n\nmsgid \"Grid type:\"\nmsgstr \"Rutenettype:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Setter typen rutenett til rektangulær, isometrisk eller begge\"\n\nmsgid \"Rectangular\"\nmsgstr \"Rektangulær\"\n\nmsgid \"Isometric\"\nmsgstr \"Isometrisk\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"Alle\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"Tegn over Flismodus:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"Hvis deaktivert vil rutenettet bare bli tegnet over det opprinnelige bildet\"\n\nmsgid \"Grid color:\"\nmsgstr \"Rutenettfarge:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"En farge av rutenettet\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Pikselrutenett\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Vis ved zoom:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"Angir minimal zoom som viser pikselrutenettet\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Pikselrutenettfarge:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"En farge av pikselrutenettet\"\n\nmsgid \"Transparency\"\nmsgstr \"Gjennomsiktighet\"\n\nmsgid \"Checker size:\"\nmsgstr \"Størrelse på sjakkbrett:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Størrelse på den gjennomsiktige sjakk-bakgrunnen\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Sjakkbrettfarge 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"Første farge på den gjennomsiktige sjakk-bakgrunnen\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Sjakkbrettfarge 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"Andre farge på den gjennomsiktige sjakk-bakgrunnen\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"Følg lerretbevegelse\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"Den gjennomsiktige sjakk-bakgrunnen følger lerretets bevegelse\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"Følg lerretets forstørrelse\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"Den gjennomsiktige sjakk-bakgrunnen følger zoom-nivået på lerretet\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"Animerte markeringslinjer\"\n\nmsgid \"Border color 1:\"\nmsgstr \"Kantfarge 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Kantfarge 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Bare egendefinerte forhåndsinnstillinger kan endres\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"Sett prorgammets grense for Bilder Per Sekund, BPS:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"Setter grensen for hvor mange bilder per sekund programmet kan ha. Lavere tall bruker mindre prosessorkraft, men programmet går saktere, mer hakkete og kan slutte å svare. 0 betyr at det ikke er noen grense.\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"Sett programmet på pause når det mister fokus\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"Hvis denne er påslått og programmet mister fokus vil programmet settes på pause. Dette gjør så programmet bruker mindre prosessorkraft ved inaktivitet. Programmet vil gå tilbake til normalt når musen går inn i programmets vindu.\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Legg til utvidelse\"\n\nmsgid \"Enable\"\nmsgstr \"Aktiver\"\n\nmsgid \"Disable\"\nmsgstr \"Deaktiver\"\n\nmsgid \"Uninstall\"\nmsgstr \"Avinstaller\"\n\nmsgid \"Open Folder\"\nmsgstr \"Åpne Mappe\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"Børste:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Velg en børste\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Pikselbørste\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Sirkelbørste\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Fylt sirkelbørste\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"Egendefinert Børste\"\n\nmsgid \"Brush size:\"\nmsgstr \"Børstestørrelse:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Overskriver en farge i stedet for å blande den. Dette valget gjelder bare farger som ikke er helt ugjennomsiktige\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Pikselperfekt\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"Pikselperfekt\\n\"\n\"Gjør linjer glatte ved å fjerne de ekstra pikslene på kantene\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"Fyll inn\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Fyll Form\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"Fyller den tegnede formen med farge i stedet for å tegne en hul form\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: Farge fra børsten selv, 100: den valgte fargen\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"Fyll med:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Mønster\"\n\nmsgid \"Offset\"\nmsgstr \"Forskyvning\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Enkel Skyggelegging\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Fargetoneskifting\"\n\nmsgid \"Lighten\"\nmsgstr \"Lys opp\"\n\nmsgid \"Darken\"\nmsgstr \"Formørk\"\n\nmsgid \"Amount:\"\nmsgstr \"Mengde:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Lys opp/Formørk mengde\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"Velg for:\"\n\nmsgid \"Left Color\"\nmsgstr \"Venstre Farge\"\n\nmsgid \"Right Color\"\nmsgstr \"Høyre Farge\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"Modus:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Zoom inn\"\n\nmsgid \"Zoom out\"\nmsgstr \"Zoom ut\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"Innstillinger:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"Tilpass til bilde\"\n\nmsgid \"100% Zoom\"\nmsgstr \"100% Zoom\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"Speiling\"\n\nmsgid \"Horizontal\"\nmsgstr \"Horisontal\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Aktivér horisontaltspeilet tegning\"\n\nmsgid \"Vertical\"\nmsgstr \"Vertikal\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Aktivér vertikaltspeilet tegning\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"Gjeldende bilde:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Aktiver/deaktiver Se flere bilder samtidig (\\\"Onion Skinning\\\")\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"Hvor mange bilder per sekund skal animasjonen forhåndsvises i?\\n\"\n\"Flere bilder per sekund betyr en raskere animasjon.\"\n\nmsgid \"No loop\"\nmsgstr \"Ingen loop\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Syklusloop\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Ping-pong-loop\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Se flere bilder samtidig (\\\"Onion Skinning\\\"):\"\n\nmsgid \"Past Frames\"\nmsgstr \"Tidligere bilder\"\n\nmsgid \"Future Frames\"\nmsgstr \"Fremtidige bilder\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Administrér bildemerkelapper\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Bildetagegenskper\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Legg til ny bildetag\"\n\nmsgid \"Name:\"\nmsgstr \"Navn:\"\n\nmsgid \"From:\"\nmsgstr \"Fra:\"\n\nmsgid \"To:\"\nmsgstr \"Til:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"Animasjon spiller kun på bilder med samme merkelapp\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Tag %s (Bilde %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Tag %s (Bilder %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Hvis valgt, spiller animasjonen bare på bildene som har samme merkelapp.\\n\"\n\"Om ikke vil animasjonen spille for alle bilder.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"Vis tidligere bilder:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"Vis fremtidige bilder:\"\n\nmsgid \"Above canvas\"\nmsgstr \"Over lerretet\"\n\nmsgid \"Below canvas\"\nmsgstr \"Under lerretet\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"Hvis du ønsker at et lag skal ignorere \\\"Onion Skinning\\\" legger du bare til \\\"_io\\\" på slutten av lagets navn.\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Legg til nytt bilde\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Fjern Bilde\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Klon Bilde\"\n\nmsgid \"Move Left\"\nmsgstr \"Flytt til Venstre\"\n\nmsgid \"Move Right\"\nmsgstr \"Flytt til Høyre\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"Bildeegenskaper\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"Lag\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"Lag\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Lag et nytt lag\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Fjern gjeldende lag\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Flytt dette laget opp\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Flytt dette laget ned\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Klon dette laget\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Slå sammen dette laget med laget nedenfor\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"Gjennomsiktighet:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"Flismodusgjennomsiktighet:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Vis/Skjul lag\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Lås/lås opp lag\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Bilde: %s, Lag: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"Palett\"\n\nmsgid \"Palettes\"\nmsgstr \"Paletter\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Legg til en ny palett\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Redigér valgt palett\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Velg en palett\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Angre: Tegne\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Gjør om: Tegne\"\n\nmsgid \"Undo: Select\"\nmsgstr \"Angre: Markér\"\n\nmsgid \"Redo: Select\"\nmsgstr \"Gjør om: Markér\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Angre: Skalér\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Gjør om: Skalér\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Angre: Legg til Lag\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Gjør om: Legg til Lag\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Angre: Fjern Lag\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Gjør om: Fjern Lag\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Angre: Sammanslå Lag\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Gjør om: Sammanslå Lag\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Angre: Endre Lagrekkefølge\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Gjør om: Endre Lagrekkefølge\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Angre: Legg til Bilde\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Gjør om: Legg til Bilde\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Angre: Fjern Bilde\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Gjør om: Fjern Bilde\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Angre: Endre Lagrekkefølge\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Gjør om: Endre Lagrekkefølge\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Angre: Slett Tilpasset Børste\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Gjør om: Slett Tilpasset Børste\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"Angre: Endre Bildemerkelapp\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"Gjør om: Endre Bildemerkelapp\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"Angre: Slett Bildemerkelapp\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"Gjør om: Slett Bildemerkelapp\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"Angre: Endre bildevarighet\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"Gjør om: Endre bildevarighet\"\n\nmsgid \"Move Guide\"\nmsgstr \"Flytteveiledning\"\n\nmsgid \"File saved\"\nmsgstr \"Fil lagret\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"Filen kunne ikke åpnes. Feilkode %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"Filen kunne ikke lagres. Feilkode %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Ny Tom Palett\"\n\nmsgid \"Import Palette\"\nmsgstr \"Importer Palett\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Opprett Palett Fra Gjeldene Figur\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Palettnavn:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Fargenavn:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"Bruk gjeldene høyre- og venstrefarger\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Opprette en nyt tom palett?\"\n\nmsgid \"Error\"\nmsgstr \"Feil\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Feil: Palett må ha et gyldig navn.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Ugyldig Palettfil!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Redigér Palett\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"Opprett farger med alfa-komponent\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"Hent farger kun fra valgt område\"\n\nmsgid \"Get colors from\"\nmsgstr \"Hent farger fra\"\n\nmsgid \"Patrons:\"\nmsgstr \"Abonnenter på Patreon:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"Vil du at navnet ditt eller firmaet ditt skal vises på oppstartskjermen?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Bli en Platinumsponsor\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Bli en Gullsponsor\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Bli abonnent på Patreon\"\n\nmsgid \"Don't show again\"\nmsgstr \"Ikke vis igjen\"\n\nmsgid \"Image Options\"\nmsgstr \"Bildealternativer\"\n\nmsgid \"Default width:\"\nmsgstr \"Standardbredde:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"En standardbredde for et nytt bilde\"\n\nmsgid \"Default height:\"\nmsgstr \"Standardhøyde:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"En standardhøyde for et nytt bilde\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Standard fyllfarge:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"En standard bakgrunnsfarge for et nytt bilde\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"Lås størrelsesforhold\"\n\nmsgid \"Portrait\"\nmsgstr \"Portrett\"\n\nmsgid \"Landscape\"\nmsgstr \"Landskap\"\n\nmsgid \"Templates:\"\nmsgstr \"Maler:\"\n\nmsgid \"Preset\"\nmsgstr \"Forhåndsvalg\"\n\nmsgid \"Preset:\"\nmsgstr \"Forhåndsvalg:\"\n\nmsgid \"Default\"\nmsgstr \"Standard\"\n\nmsgid \"Custom\"\nmsgstr \"Egendefinert\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Rektangulær Markering\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"Elliptisk Markering\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"Polygonal Markering\"\n\nmsgid \"Select By Color\"\nmsgstr \"Markering Etter Farge\"\n\nmsgid \"Magic Wand\"\nmsgstr \"Tryllestav\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"Lassoverktøy\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"Flytt\"\n\nmsgid \"Zoom\"\nmsgstr \"Zoom\"\n\nmsgid \"Pan\"\nmsgstr \"Panorér\"\n\nmsgid \"Color Picker\"\nmsgstr \"Fargevelger\"\n\nmsgid \"Pencil\"\nmsgstr \"Blyant\"\n\nmsgid \"Eraser\"\nmsgstr \"Viskelær\"\n\nmsgid \"Bucket\"\nmsgstr \"Bøtte\"\n\nmsgid \"Shading Tool\"\nmsgstr \"Skyggeleggingverktøy\"\n\nmsgid \"Line Tool\"\nmsgstr \"Linjeverktøy\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"Rektangelverktøy\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"Ellipseverktøy\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Bytt Farger\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Sett snarveien\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Trykk på en tast eller en tastekombinasjon for å angi snarveien\"\n\nmsgid \"Already assigned\"\nmsgstr \"Allerede tildelt\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Venstre Verktøy:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Et verktøy tilknyttet venstre museknapp\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Høyre Verktøy:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Et verktøy tilknyttet høyre museknapp\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"Finner ikke siste prosjektfil.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"Kan ikke finne prosjektfil.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Du har ikke lagret eller åpnet et prosjekt i Pixelorama enda!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Åpne Siste Prosjekt\"\n\nmsgid \"Open last project...\"\nmsgstr \"Åpne siste prosjekt...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Åpne siste prosjekt ved oppstart\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Åpne sist åpnede prosjekt ved oppstart\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"Avslutningsbekreftelse\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Aktivér automatisk lagring\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Intervall for automatisk lagring:\"\n\nmsgid \"minute(s)\"\nmsgstr \"minutt(er)\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"Lukk\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"Sikkerhetskopien lastet inn\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Fjern valgt palett\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"Er du sikker på at du vil fjerne denne fargepaletten? (Dette kan ikke omgjøres)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Du kan ikke fjerne flere paletter!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Kan ikke fjerne paletten, den eksisterer ikke!\"\n\nmsgid \"and\"\nmsgstr \"og\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Flytt det merkede bildet til venstre.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Flytt det merkede bildet til høyre.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"Varighet\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"Flislagt i begge Akser\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"Flislagt I X-aksen\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Flislagt I Y-aksen\"\n\nmsgid \"Create a new palette\"\nmsgstr \"Opprett en ny fargepalett\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"Kommentar:\"\n\nmsgid \"Empty\"\nmsgstr \"Tom\"\n\nmsgid \"From Current Palette\"\nmsgstr \"Fra Nåværende Palett\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"Fra Nåværende Figur\"\n\nmsgid \"From Current Selection\"\nmsgstr \"Fra Nåværende Markert Område\"\n\nmsgid \"Add a new color\"\nmsgstr \"Legg til en ny farge\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"Fjern en valgt farge\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"Palett med samme navn og bane finnes allerede!\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"Palettnavn er påkrevd!\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"Posisjon:\"\n\nmsgid \"Tools\"\nmsgstr \"Verktøy\"\n\nmsgid \"Main Canvas\"\nmsgstr \"Hovedlerret\"\n\nmsgid \"Second Canvas\"\nmsgstr \"Andre Lerret\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"Animasjonstidslinje\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"Forhåndsvisning av Lerret\"\n\nmsgid \"Color Pickers\"\nmsgstr \"Fargevelgere\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"Innstillinger for Alle Verktøy\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"Innstillinger for Venstre Verktøy\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"Innstillinger for Høyre Verktøy\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Automatisk\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/nl_NL.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: nl\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Dutch\\n\"\n\"Language: nl_NL\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"Oké\"\n\nmsgid \"Cancel\"\nmsgstr \"Annuleren\"\n\nmsgid \"Open\"\nmsgstr \"Openen\"\n\nmsgid \"Save\"\nmsgstr \"Opslaan\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Bevestig...\"\n\nmsgid \"File Name:\"\nmsgstr \"Bestandsnaam:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Projectnaam:\"\n\nmsgid \"Image Size\"\nmsgstr \"Afbeeldingsgrootte\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Canvas grootte\"\n\nmsgid \"Frame Size\"\nmsgstr \"Kaderomvang\"\n\nmsgid \"Size:\"\nmsgstr \"Omvang:\"\n\nmsgid \"Width:\"\nmsgstr \"Breedte:\"\n\nmsgid \"Height:\"\nmsgstr \"Hoogte:\"\n\nmsgid \"Center\"\nmsgstr \"Centreren\"\n\nmsgid \"File\"\nmsgstr \"Bestand\"\n\nmsgid \"Edit\"\nmsgstr \"Wijzigen\"\n\nmsgid \"Select\"\nmsgstr \"Selecteren\"\n\nmsgid \"View\"\nmsgstr \"Tonen\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"Afbeelding\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"Effecten\"\n\nmsgid \"Help\"\nmsgstr \"Help\"\n\nmsgid \"New\"\nmsgstr \"Nieuw\"\n\nmsgid \"New...\"\nmsgstr \"Nieuw...\"\n\nmsgid \"Open...\"\nmsgstr \"Openen...\"\n\nmsgid \"Save...\"\nmsgstr \"Opslaan...\"\n\nmsgid \"Save as...\"\nmsgstr \"Opslaan als...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"Importeren\"\n\nmsgid \"Export\"\nmsgstr \"Exporteren\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"Exporteren...\"\n\nmsgid \"Export as...\"\nmsgstr \"Exporteren als...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Exporteer PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Exporteer PNG als...\"\n\nmsgid \"Quit\"\nmsgstr \"Afsluiten\"\n\nmsgid \"Undo\"\nmsgstr \"Ongedaan maken\"\n\nmsgid \"Redo\"\nmsgstr \"Opnieuw uitvoeren\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"Kopiëren\"\n\nmsgid \"Cut\"\nmsgstr \"Knippen\"\n\nmsgid \"Paste\"\nmsgstr \"Plakken\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"Verwijderen\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"Nieuwe kwast\"\n\nmsgid \"Scale Image\"\nmsgstr \"Afbeelding schalen\"\n\nmsgid \"Pixels\"\nmsgstr \"Pixels\"\n\nmsgid \"Percentage\"\nmsgstr \"Percentage\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Canvas formaat aanpassen\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Afbeelding draaien\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"Wissen\"\n\nmsgid \"Invert\"\nmsgstr \"Omkeren\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Horizontaal spiegelen\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Verticaal spiegelen\"\n\nmsgid \"Preferences\"\nmsgstr \"Instellingen\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Tegelmodus\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Paneelindeling\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"Breedbeeld\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Verticaal beeld\"\n\nmsgid \"Mirror View\"\nmsgstr \"Canvas spiegelen\"\n\nmsgid \"Show Grid\"\nmsgstr \"Rooster tonen\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Pixelrooster tonen\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Linialen tonen\"\n\nmsgid \"Show Guides\"\nmsgstr \"Kantlijnen tonen\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Animatietijdlijn tonen\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Zen modus\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Beeldvullende modus\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Opvullen met kleur:\"\n\nmsgid \"Open a File\"\nmsgstr \"Bestand openen\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Bestand(en) openen\"\n\nmsgid \"Import Options\"\nmsgstr \"Importopties\"\n\nmsgid \"Import as:\"\nmsgstr \"Importeer als:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"Recente projecten\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Spritesheet (nieuwe laag)\"\n\nmsgid \"New frame\"\nmsgstr \"Nieuw frame\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"Nieuwe laag\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"Nieuw palet\"\n\nmsgid \"New brush\"\nmsgstr \"Nieuwe kwast\"\n\nmsgid \"New pattern\"\nmsgstr \"Nieuw patroon\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Horizontale frames:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Verticale frames:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"Eerste frame:\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"Bij frame:\"\n\nmsgid \"At layer:\"\nmsgstr \"Bij laag:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Soort kwast:\"\n\nmsgid \"File brush\"\nmsgstr \"Vijzelkwast\"\n\nmsgid \"Project brush\"\nmsgstr \"Projectkwast\"\n\nmsgid \"Random brush\"\nmsgstr \"Willekeurige kwast\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Sprite opslaan als .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Sprite exporteren als .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"Indicatoren\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"Aan\"\n\nmsgid \"Restore default value\"\nmsgstr \"Standaardwaarde herstellen\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Vloeiend zoomen\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Verwijder geselecteerde palet\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Je kunt geen paletten meer verwijderen!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Kan pallet niet verwijderen, omdat het niet bestaat!\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Automatisch\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/no_NO.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: no\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Norwegian\\n\"\n\"Language: no_NO\\n\"\n\"PO-Revision-Date: 2021-06-04 18:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"Avbryt\"\n\nmsgid \"Open\"\nmsgstr \"Åpne\"\n\nmsgid \"Save\"\nmsgstr \"Lagre\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Vennligst Bekreft...\"\n\nmsgid \"File Name:\"\nmsgstr \"Filnavn:\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"Bildestørrelse\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Lerretstørrelse\"\n\nmsgid \"Frame Size\"\nmsgstr \"Bildestørrelse\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"Bredde:\"\n\nmsgid \"Height:\"\nmsgstr \"Høyde:\"\n\nmsgid \"Center\"\nmsgstr \"Midtstill\"\n\nmsgid \"File\"\nmsgstr \"Fil\"\n\nmsgid \"Edit\"\nmsgstr \"Rediger\"\n\nmsgid \"View\"\nmsgstr \"Vis\"\n\nmsgid \"Image\"\nmsgstr \"Bilde\"\n\nmsgid \"Effects\"\nmsgstr \"Effekter\"\n\nmsgid \"Help\"\nmsgstr \"Hjelp\"\n\nmsgid \"New\"\nmsgstr \"Ny\"\n\nmsgid \"New...\"\nmsgstr \"Ny...\"\n\nmsgid \"Open...\"\nmsgstr \"Åpne...\"\n\nmsgid \"Save...\"\nmsgstr \"Lagre...\"\n\nmsgid \"Save as...\"\nmsgstr \"Lagre som...\"\n\nmsgid \"Use ZSTD Compression\"\nmsgstr \"Bruk ZSTD-Komprimering\"\n\nmsgid \"Import\"\nmsgstr \"Importer\"\n\nmsgid \"Export\"\nmsgstr \"Eksporter\"\n\nmsgid \"Export...\"\nmsgstr \"Eksporter...\"\n\nmsgid \"Export as...\"\nmsgstr \"Eksporter som...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Eksporter PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Eksporter PNG som...\"\n\nmsgid \"Quit\"\nmsgstr \"Avslutt\"\n\nmsgid \"Undo\"\nmsgstr \"Angre\"\n\nmsgid \"Redo\"\nmsgstr \"Gjør om igjen\"\n\nmsgid \"Copy\"\nmsgstr \"Kopier\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"Lim inn\"\n\nmsgid \"Delete\"\nmsgstr \"Slett\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"Skalér Bilde\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\nmsgid \"Crop Image\"\nmsgstr \"Beskjær Bilde\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Forandre Størrelse på Lerret\"\n\nmsgid \"Centralize Image\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Rotér Bilde\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\nmsgid \"Flip\"\nmsgstr \"Vend\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Speilvend Horisontalt\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Speilvend Vertikalt\"\n\nmsgid \"Preferences\"\nmsgstr \"Preferanser\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Flismodus\"\n\nmsgid \"Window Transparency\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Auto\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"Vis Rutenett\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Vis Linjaler\"\n\nmsgid \"Show Guides\"\nmsgstr \"Vis Guider\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Vis Animasjonstidslinje\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Zenmodus\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Fullskjermmodus\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Fyll med farge:\"\n\nmsgid \"Open a File\"\nmsgstr \"Åpne en Fil\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Åpne Fil(er)\"\n\nmsgid \"Import Options\"\nmsgstr \"Importeringsvalg\"\n\nmsgid \"Import as:\"\nmsgstr \"Importér som:\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New tab\"\nmsgstr \"Ny fane\"\n\nmsgid \"Spritesheet (new tab)\"\nmsgstr \"Tegneark (ny fane)\"\n\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"Nytt bilde\"\n\nmsgid \"Replace frame\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"Nytt lag\"\n\nmsgid \"New palette\"\nmsgstr \"Ny palett\"\n\nmsgid \"New brush\"\nmsgstr \"Ny børste\"\n\nmsgid \"New pattern\"\nmsgstr \"Nytt mønster\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Horisontale bilder:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Vertikale bilder:\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"Børstetype:\"\n\nmsgid \"File brush\"\nmsgstr \"Filbørste\"\n\nmsgid \"Project brush\"\nmsgstr \"Prosjektbørste\"\n\nmsgid \"Random brush\"\nmsgstr \"Tilfeldig børste\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Lagre Figur som .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Eksportér Figur som .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Eksportér Figur\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Filen Eksisterer, Overskrive?\"\n\nmsgid \"File %s already exists. Overwrite?\"\nmsgstr \"Filen %s finnes fra før. Overskrive?\"\n\nmsgid \"Directory path or file name is not valid!\"\nmsgstr \"Banen eller filnavnet er ikke gyldig!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Eksport pågår...\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Kan ikke laste fil '%s'. Feilkode: %s\"\n\nmsgid \"Frame\"\nmsgstr \"Bilde\"\n\nmsgid \"Frames:\"\nmsgstr \"Bilder:\"\n\nmsgid \"All Frames\"\nmsgstr \"Alle Bilder\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Tegneark\"\n\nmsgid \"Animation\"\nmsgstr \"Animasjon\"\n\nmsgid \"Preview:\"\nmsgstr \"Forhåndsvisning:\"\n\nmsgid \"Frame:\"\nmsgstr \"Bilde:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Retning:\"\n\nmsgid \"Browse\"\nmsgstr \"Bla gjennom\"\n\nmsgid \"Resize:\"\nmsgstr \"Endre størrelse:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Avbryt Eksport\"\n\nmsgid \"Alert!\"\nmsgstr \"Advarsel!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Velg Gjeldende Mappe\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Åpne en Mappe\"\n\nmsgid \"All frames as multiple files\"\nmsgstr \"Alle bilder som flere filer\"\n\nmsgid \"All frames as a single file animation\"\nmsgstr \"Alle bilder som en enkelt fil\"\n\nmsgid \"Background:\"\nmsgstr \"Bakgrunn:\"\n\nmsgid \"Direction:\"\nmsgstr \"Retning:\"\n\nmsgid \"Forward\"\nmsgstr \"Fremover\"\n\nmsgid \"Backwards\"\nmsgstr \"Bakover\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Ping-Pong\"\n\nmsgid \"Columns\"\nmsgstr \"Kolonner\"\n\nmsgid \"Columns:\"\nmsgstr \"Kolonner:\"\n\nmsgid \"Rows\"\nmsgstr \"Rader\"\n\nmsgid \"Rows:\"\nmsgstr \"Rader:\"\n\nmsgid \"Path:\"\nmsgstr \"Bane:\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Mapper & Filer:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Opprett Mappe\"\n\nmsgid \"File:\"\nmsgstr \"Fil:\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolering:\"\n\nmsgid \"Nearest\"\nmsgstr \"Nærmeste\"\n\nmsgid \"Bilinear\"\nmsgstr \"Bilineær\"\n\nmsgid \"Cubic\"\nmsgstr \"Kubikk\"\n\nmsgid \"Trilinear\"\nmsgstr \"Trilineær\"\n\nmsgid \"General\"\nmsgstr \"Generelt\"\n\nmsgid \"Startup\"\nmsgstr \"Oppstart\"\n\nmsgid \"Language\"\nmsgstr \"Språk\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"Temaer\"\n\nmsgid \"Canvas\"\nmsgstr \"Lerret\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Snarveier\"\n\nmsgid \"Backup\"\nmsgstr \"Sikkerhetskopi\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"Indikatorer\"\n\nmsgid \"On\"\nmsgstr \"På\"\n\nmsgid \"Restore default value\"\nmsgstr \"Tilbakestill til standardverdier\"\n\nmsgid \"Smooth Zoom\"\nmsgstr \"Glatt Zoom\"\n\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Legger til en jevnere overgang når du zoomer inn eller ut\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Tegnebrettets trykkfølsomhet:\"\n\nmsgid \"None\"\nmsgstr \"Ingen\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Påvirker Børstens Alpha\"\n\nmsgid \"Color:\"\nmsgstr \"Farge:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Guide farge:\"\n\nmsgid \"System Language\"\nmsgstr \"Systemspråk\"\n\nmsgid \"Display Scale\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"Mørk\"\n\nmsgid \"Gray\"\nmsgstr \"Grå\"\n\nmsgid \"Blue\"\nmsgstr \"Blå\"\n\nmsgid \"Caramel\"\nmsgstr \"Karamell\"\n\nmsgid \"Light\"\nmsgstr \"Lys\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Bare påvirk merket område\"\n\nmsgid \"Current cel\"\nmsgstr \"Denne cellen\"\n\nmsgid \"Current frame\"\nmsgstr \"Dette bildet\"\n\nmsgid \"All frames\"\nmsgstr \"Alle bilder\"\n\nmsgid \"All projects\"\nmsgstr \"Alle prosjekter\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Invertér Farger\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Endre Rød Kanal\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Endre Grønn Kanal\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Endre Blå Kanal\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Endre Alpha Kanal\"\n\nmsgid \"Desaturation\"\nmsgstr \"Avmettning\"\n\nmsgid \"Outline\"\nmsgstr \"Omriss\"\n\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Justér Fargetone/Metning/Verdi\"\n\nmsgid \"Gradient\"\nmsgstr \"Gradient\"\n\nmsgid \"Adjust HSV\"\nmsgstr \"Justér HSV\"\n\nmsgid \"Type:\"\nmsgstr \"Type:\"\n\nmsgid \"Angle:\"\nmsgstr \"Vinkel:\"\n\nmsgid \"Hue:\"\nmsgstr \"\"\n\nmsgid \"Saturation:\"\nmsgstr \"\"\n\nmsgid \"Value:\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"Bruk\"\n\nmsgid \"Diagonal\"\nmsgstr \"Diagonal\"\n\nmsgid \"Place inside image\"\nmsgstr \"Plassér inne i bildet\"\n\nmsgid \"Thickness:\"\nmsgstr \"Tykkelse:\"\n\nmsgid \"Colors:\"\nmsgstr \"Farger:\"\n\nmsgid \"Steps:\"\nmsgstr \"Trinn:\"\n\nmsgid \"Top to Bottom\"\nmsgstr \"Topp til Bunn\"\n\nmsgid \"Bottom to Top\"\nmsgstr \"Bunn til Topp\"\n\nmsgid \"Left to Right\"\nmsgstr \"Venstre til Høyre\"\n\nmsgid \"Right to Left\"\nmsgstr \"Høyre til Venstre\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Vis Oppstartsbilde\"\n\nmsgid \"Online Docs\"\nmsgstr \"Online Bruksanvisning\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Problemsporer\"\n\nmsgid \"Changelog\"\nmsgstr \"Endringslogg\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Om Pixelorama\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - Pikselér drømmene dine!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Utviklet av Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"Nettside\"\n\nmsgid \"GitHub Repo\"\nmsgstr \"Github Repo\"\n\nmsgid \"Donate\"\nmsgstr \"Donér\"\n\nmsgid \"Developers\"\nmsgstr \"Utviklere\"\n\nmsgid \"Contributors\"\nmsgstr \"Bidragsytere\"\n\nmsgid \"Donors\"\nmsgstr \"Donorer\"\n\nmsgid \"Translators\"\nmsgstr \"Oversettere\"\n\nmsgid \"English\"\nmsgstr \"Engelsk\"\n\nmsgid \"Greek\"\nmsgstr \"Gresk\"\n\nmsgid \"French\"\nmsgstr \"Fransk\"\n\nmsgid \"German\"\nmsgstr \"Tysk\"\n\nmsgid \"Polish\"\nmsgstr \"Polsk\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Brasiliansk Portugisisk\"\n\nmsgid \"Russian\"\nmsgstr \"Russisk\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Kinesisk (forenklet)\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Kinesisk (tradisjonell)\"\n\nmsgid \"Italian\"\nmsgstr \"Italiensk\"\n\nmsgid \"Latvian\"\nmsgstr \"Latvisk\"\n\nmsgid \"Spanish\"\nmsgstr \"Spansk\"\n\nmsgid \"Catalan\"\nmsgstr \"Katalansk\"\n\nmsgid \"Esperanto\"\nmsgstr \"Esperanto\"\n\nmsgid \"Indonesian\"\nmsgstr \"Indonesisk\"\n\nmsgid \"Czech\"\nmsgstr \"Tjekkisk\"\n\nmsgid \"Arabic\"\nmsgstr \"Arabisk\"\n\nmsgid \"Turkish\"\nmsgstr \"Tyrkisk\"\n\nmsgid \"Norwegian\"\nmsgstr \"Norsk\"\n\nmsgid \"Korean\"\nmsgstr \"Koreansk\"\n\nmsgid \"Hungarian\"\nmsgstr \"Ungarsk\"\n\nmsgid \"Romanian\"\nmsgstr \"Rumensk\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Development Team\"\nmsgstr \"Utviklingsteam\"\n\nmsgid \"Lead Programmer\"\nmsgstr \"Hovedprogrammerer\"\n\nmsgid \"UI Designer\"\nmsgstr \"UI-Designer\"\n\nmsgid \"GitHub Contributors\"\nmsgstr \"Bidragere på Github\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Kunst av %s\"\n\nmsgid \"untitled\"\nmsgstr \"uten navn\"\n\nmsgid \"imported\"\nmsgstr \"importert\"\n\nmsgid \"copy\"\nmsgstr \"kopier\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Er du sikker på at du vil avslutte Pixelorama?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Ulagret Bilde\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Du har ulagrede endringer. Hvis du fortsetter vil fremgangen du har gjort gå tapt.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Lagre før du avslutter?\"\n\nmsgid \"You have unsaved progress. How do you wish to proceed?\"\nmsgstr \"Du har ulagret fremgang. Hvordan ønsker du å fortsette?\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Lagre & Avslutt\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Avslutt uten å lagre\"\n\nmsgid \"Utility Tools\"\nmsgstr \"Verktøy\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Press %s to move the content\"\nmsgstr \"Rektangulær Markering\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\\n\\n\"\n\"Trykk %s for å flytte innholdet\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Zoom\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\"\n\"Select a color from a pixel of the sprite\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Fargevelger\\n\"\n\"Velg en farge fra en piksel på figuren\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\"\n\nmsgid \"Draw Tools\"\nmsgstr \"Tegneverktøy\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Blyant\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\\n\\n\"\n\"Hold %s for å lage en linje\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Viskelær\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\\n\\n\"\n\"Hold %s for å lage en linje\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Bøtte\\n\\n\"\n\"%s for venstre museknapp\\n\"\n\"%s for høyre museknapp\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\\n\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\\n\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\\n\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Velg en farge for venstre verktøy\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Velg en farge for høyre verktøy\"\n\nmsgid \"Switch left and right colors\\n\"\n\"(%s)\"\nmsgstr \"Bytt venstre og høyre farger\\n\"\n\"(%s)\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Tilbakestill farger (svart til venstre, hvit for høyre)\"\n\nmsgid \"Left tool\"\nmsgstr \"Venstre verktøy\"\n\nmsgid \"Right tool\"\nmsgstr \"Høyre verktøy\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Venstre pikselindikator\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Vis pikselindikator eller børste for venstre musepeker på lerretet når du tegner\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Høyre pikselindikator\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Vis pikselindikator eller børste for høyre musepeker på lerretet når du tegner\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Vis venstre verktøyikon\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Viser ikonet til det valgte venstreverktøyet ved siden av markøren på lerretet\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Vis høyre verktøyikon\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Viser ikonet til det valgte høyreverktøyet ved siden av markøren på lerretet\"\n\nmsgid \"Guides\"\nmsgstr \"Guider\"\n\nmsgid \"Guides color:\"\nmsgstr \"Guidefarge:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Farge som brukes av linjal og guider på lerretet\"\n\nmsgid \"Grid\"\nmsgstr \"Rutenett\"\n\nmsgid \"Grid type:\"\nmsgstr \"Rutenettype:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Setter typen rutenett til rektangulær, isometrisk eller begge\"\n\nmsgid \"Rectangular\"\nmsgstr \"Rektangulær\"\n\nmsgid \"Isometric\"\nmsgstr \"Isometrisk\"\n\nmsgid \"All\"\nmsgstr \"Alle\"\n\nmsgid \"Rectangular grid width:\"\nmsgstr \"\"\n\nmsgid \"Sets how far apart are vertical lines of the rectangular grid\"\nmsgstr \"\"\n\nmsgid \"Rectangular grid height:\"\nmsgstr \"\"\n\nmsgid \"Sets how far apart are horizontal lines of the rectangular grid\"\nmsgstr \"\"\n\nmsgid \"Isometric cell bounds width:\"\nmsgstr \"\"\n\nmsgid \"Sets the width of the isometric cell's axis aligned bounding box\"\nmsgstr \"\"\n\nmsgid \"Isometric cell bounds height:\"\nmsgstr \"\"\n\nmsgid \"Sets the height of the isometric cell's axis aligned bounding box\"\nmsgstr \"\"\n\nmsgid \"Grid offset x:\"\nmsgstr \"\"\n\nmsgid \"Sets grid's x offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Grid offset y:\"\nmsgstr \"\"\n\nmsgid \"Sets grid's y offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"Rutenettfarge:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"En farge av rutenettet\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"Gjennomsiktighet\"\n\nmsgid \"Checker size:\"\nmsgstr \"Størrelse på sjekkere:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Størrelse på den gjennomsiktige bakgrunnen av sjekkere\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Sjekkerfarge 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"Første farge på den gjennomsiktige bakgrunnen av sjekkere\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Sjekkerfarge 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"Andre farge på den gjennomsiktige bakgrunnen av sjekkere\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"Følg lerretbevegelse\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"Følg lerretets forstørrelse\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Bare egendefinerte forhåndsinnstillinger kan endres\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Limit FPS to 1 when app loses focus\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\nmsgid \"If this is toggled on, when the application's window loses focus, the FPS limit of the application is set to 1. This helps lower CPU usage when idle. The FPS limit is being reset when the mouse enters the application's window.\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"Børste:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Velg en børste\"\n\nmsgid \"Pixel brush\"\nmsgstr \"Pikselbørste\"\n\nmsgid \"Circle brush\"\nmsgstr \"Sirkelbørste\"\n\nmsgid \"Filled circle brush\"\nmsgstr \"Fylt sirkelbørste\"\n\nmsgid \"Custom brush\"\nmsgstr \"Egendefinert Børste\"\n\nmsgid \"Brush size:\"\nmsgstr \"Børstestørrelse:\"\n\nmsgid \"Overwrite Color\"\nmsgstr \"Overskriv Farge\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Overskriver en farge i stedet for å blande den. Dette valget gjelder bare farger som ikke er helt ugjennomsiktige\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Pikselperfekt\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\nmsgid \"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"Gjør linjer glatte ved å fjerne ekstra piksler på kantene\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\nmsgid \"Brush color from\"\nmsgstr \"Børstefarge fra\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: Farge fra børsten selv, 100: den valgte fargen\"\n\nmsgid \"Fill area:\"\nmsgstr \"Fyll område:\"\n\nmsgid \"Same color area\"\nmsgstr \"Område med lik farge\"\n\nmsgid \"Same color pixels\"\nmsgstr \"Piksler med lik farge\"\n\nmsgid \"Fill with:\"\nmsgstr \"Fyll med:\"\n\nmsgid \"Selected Color\"\nmsgstr \"Valgt Farge\"\n\nmsgid \"Pattern\"\nmsgstr \"Mønster\"\n\nmsgid \"Offset\"\nmsgstr \"Forskyvning\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"Lys opp\"\n\nmsgid \"Darken\"\nmsgstr \"Formørk\"\n\nmsgid \"Amount:\"\nmsgstr \"Mengde:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Lys opp/Formørk mengde\"\n\nmsgid \"Pick for:\"\nmsgstr \"Velg for:\"\n\nmsgid \"Left Color\"\nmsgstr \"Venstre Farge\"\n\nmsgid \"Right Color\"\nmsgstr \"Høyre Farge\"\n\nmsgid \"Mode:\"\nmsgstr \"Modus:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Zoom inn\"\n\nmsgid \"Zoom out\"\nmsgstr \"Zoom ut\"\n\nmsgid \"Options:\"\nmsgstr \"Innstillinger:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"Tilpass til bilde\"\n\nmsgid \"100% Zoom\"\nmsgstr \"100% Zoom\"\n\nmsgid \"Mirroring\"\nmsgstr \"Speiling\"\n\nmsgid \"Horizontal\"\nmsgstr \"Horisontal\"\n\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Aktivér horisontaltspeilet tegning\"\n\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Aktivér vertikaltspeilet tegning\"\n\nmsgid \"Vertical\"\nmsgstr \"Vertikal\"\n\nmsgid \"Current frame:\"\nmsgstr \"Gjeldende bilde:\"\n\nmsgid \"Jump to the first frame\\n\"\n\"(%s)\"\nmsgstr \"Gå til det første bildet\\n\"\n\"(%s)\"\n\nmsgid \"Go to the previous frame\\n\"\n\"(%s)\"\nmsgstr \"Gå til forrige bilde\\n\"\n\"(%s)\"\n\nmsgid \"Play the animation backwards (from end to beginning)\\n\"\n\"(%s)\"\nmsgstr \"Spill animasjonen bakover (fra slutten mot starten) (%s)\"\n\nmsgid \"Play the animation forward (from beginning to end)\\n\"\n\"(%s)\"\nmsgstr \"Spill animasjonen forover (fra starten mot slutten) (%s)\"\n\nmsgid \"Go to the next frame\\n\"\n\"(%s)\"\nmsgstr \"Gå til neste bilde\\n\"\n\"(%s)\"\n\nmsgid \"Jump to the last frame\\n\"\n\"(%s)\"\nmsgstr \"Gå til det første bildet\\n\"\n\"(%s)\"\n\nmsgid \"Onion Skinning settings\"\nmsgstr \"Innstillinger for å se flere bilder samtidig (\\\"Onion Skinning\\\")\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Aktiver/deaktiver Se flere bilder samtidig (\\\"Onion Skinning\\\")\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"Hvor mange bilder per sekund skal animasjonen forhåndsvises i?\\n\"\n\"Flere bilder per sekund betyr en raskere animasjon.\"\n\nmsgid \"No loop\"\nmsgstr \"Ingen loop\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Syklusloop\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Ping-pong-loop\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Se flere bilder samtidig (\\\"Onion Skinning\\\"):\"\n\nmsgid \"Past Frames\"\nmsgstr \"Tidligere bilder\"\n\nmsgid \"Future Frames\"\nmsgstr \"Fremtidige bilder\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Administrér bildemerkelapper\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Bildetagegenskper\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Legg til ny bildetag\"\n\nmsgid \"Name:\"\nmsgstr \"Navn:\"\n\nmsgid \"From:\"\nmsgstr \"Fra:\"\n\nmsgid \"To:\"\nmsgstr \"Til:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"Animasjon spiller kun på bilder med samme merkelapp\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Tag %s (Bilde %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Tag %s (Bilder %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Hvis valgt, spiller animasjonen bare på bildene som har samme merkelapp.\\n\"\n\"Om ikke vil animasjonen spille for alle bilder.\"\n\nmsgid \"Blue-Red Mode\"\nmsgstr \"Blå-Rød-Modus\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Legg til nytt bilde\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Fjern Bilde\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Klon Bilde\"\n\nmsgid \"Move Left\"\nmsgstr \"Flytt til Venstre\"\n\nmsgid \"Move Right\"\nmsgstr \"Flytt til Høyre\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Link Cel\"\nmsgstr \"Koble Sammen Celle\"\n\nmsgid \"Unlink Cel\"\nmsgstr \"Koble Fra Celle\"\n\nmsgid \"Frame Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"Lag\"\n\nmsgid \"Layers\"\nmsgstr \"Lag\"\n\nmsgid \"Create a new layer\"\nmsgstr \"Lag et nytt lag\"\n\nmsgid \"Remove current layer\"\nmsgstr \"Fjern gjeldende lag\"\n\nmsgid \"Move up the current layer\"\nmsgstr \"Flytt dette laget opp\"\n\nmsgid \"Move down the current layer\"\nmsgstr \"Flytt dette laget ned\"\n\nmsgid \"Clone current layer\"\nmsgstr \"Klon dette laget\"\n\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Slå sammen dette laget med laget nedenfor\"\n\nmsgid \"Opacity:\"\nmsgstr \"Gjennomsiktighet:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Vis/Skjul lag\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Lås/lås opp lag\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Bilde: %s, Lag: %s\"\n\nmsgid \"Enable/disable cel linking\\n\\n\"\n\"Linked cels are being shared across multiple frames\"\nmsgstr \"Aktiver/deaktiver cellelenking\\n\\n\"\n\"Lenkede celler deles mellom flere bilder\"\n\nmsgid \"Palette\"\nmsgstr \"Palett\"\n\nmsgid \"Palettes\"\nmsgstr \"Paletter\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Legg til en ny palett\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Redigér valgt palett\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Velg en palett\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Angre: Tegne\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Gjør om: Tegne\"\n\nmsgid \"Undo: Rectangle Select\"\nmsgstr \"Angre: Velg Rektangel\"\n\nmsgid \"Redo: Rectangle Select\"\nmsgstr \"Gjør om: Velg Rektangel\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Angre: Skalér\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Gjør om: Skalér\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Angre: Legg til Lag\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Gjør om: Legg til Lag\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Angre: Fjern Lag\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Gjør om: Fjern Lag\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Angre: Sammanslå Lag\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Gjør om: Sammanslå Lag\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Angre: Endre Lagrekkefølge\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Gjør om: Endre Lagrekkefølge\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Angre: Legg til Bilde\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Gjør om: Legg til Bilde\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Angre: Fjern Bilde\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Gjør om: Fjern Bilde\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Angre: Endre Lagrekkefølge\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Gjør om: Endre Lagrekkefølge\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Angre: Slett Tilpasset Børste\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Gjør om: Slett Tilpasset Børste\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"Angre: Endre Bildemerkelapp\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"Gjør om: Endre Bildemerkelapp\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"Angre: Slett Bildemerkelapp\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"Gjør om: Slett Bildemerkelapp\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"Flytteveiledning\"\n\nmsgid \"File saved\"\nmsgstr \"Fil lagret\"\n\nmsgid \"File autosaved\"\nmsgstr \"Fil automatisk lagret\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File exported\"\nmsgstr \"Fil eksportert\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Ny Tom Palett\"\n\nmsgid \"Import Palette\"\nmsgstr \"Importer Palett\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Opprett Palett Fra Gjeldene Figur\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Palettnavn:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Fargenavn:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"Bruk gjeldene høyre- og venstrefarger\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Opprette en nyt tom palett?\"\n\nmsgid \"Error\"\nmsgstr \"Feil\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Feil: Palett må ha et gyldig navn.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Ugyldig Palettfil!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Redigér Palett\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"Abonnenter på Patreon:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"Vil du at navnet ditt eller firmaet ditt skal vises på oppstartskjermen?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Bli en Platinumsponsor\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Bli en Gullsponsor\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Bli abonnent på Patreon\"\n\nmsgid \"Don't show again\"\nmsgstr \"Ikke vis igjen\"\n\nmsgid \"Image Options\"\nmsgstr \"Bildealternativer\"\n\nmsgid \"Default width:\"\nmsgstr \"Standardbredde:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"En standardbredde for et nytt bilde\"\n\nmsgid \"Default height:\"\nmsgstr \"Standardhøyde:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"En standardhøyde for et nytt bilde\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Standard fyllfarge:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"En standard bakgrunnsfarge for et nytt bilde\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"Maler:\"\n\nmsgid \"Preset\"\nmsgstr \"Forhåndsvalg\"\n\nmsgid \"Preset:\"\nmsgstr \"Forhåndsvalg:\"\n\nmsgid \"Default\"\nmsgstr \"Standard\"\n\nmsgid \"Custom\"\nmsgstr \"Egendefinert\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Rektangulær Markering\"\n\nmsgid \"Zoom\"\nmsgstr \"Zoom\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"Fargevelger\"\n\nmsgid \"Pencil\"\nmsgstr \"Blyant\"\n\nmsgid \"Eraser\"\nmsgstr \"Viskelær\"\n\nmsgid \"Bucket\"\nmsgstr \"Bøtte\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Bytt Farger\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Sett snarveien\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Trykk på en tast eller en tastekombinasjon for å angi snarveien\"\n\nmsgid \"Already assigned\"\nmsgstr \"Allerede tildelt\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Venstre Verktøy:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Et verktøy tilknyttet venstre museknapp\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Høyre Verktøy:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Et verktøy tilknyttet høyre museknapp\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"Finner ikke siste prosjektfil.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Du har ikke lagret eller åpnet et prosjekt i Pixelorama enda!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Åpne Siste Prosjekt\"\n\nmsgid \"Open last project...\"\nmsgstr \"Åpne siste prosjekt...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Åpne siste prosjekt ved oppstart\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Åpne sist åpnede prosjekt ved oppstart\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Aktivér automatisk lagring\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Intervall for automatisk lagring:\"\n\nmsgid \"minute(s)\"\nmsgstr \"minutt(er)\"\n\nmsgid \"Create new directory for each frame tag\"\nmsgstr \"Opprett ny mappe for hver bildemerkelapp\"\n\nmsgid \"Creates multiple files but every file is stored in different directory that corresponds to its frame tag\"\nmsgstr \"Oppretter flere filer, hver fil lagres i en mappe som tilsvarer bildemerkelappen sin\"\n\nmsgid \"Close\"\nmsgstr \"Lukk\"\n\nmsgid \"Delete\"\nmsgstr \"Slett\"\n\nmsgid \"Autosaved backup for %s was found.\\n\"\n\"Do you want to reload it?\"\nmsgstr \"En sikkerhetskopi av %s ble funnet.\\n\"\n\"Vil du laste den på nytt?\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"Sikkerhetskopien lastet inn\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Fjern valgt palett\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Du kan ikke fjerne flere paletter!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Kan ikke fjerne paletten, den eksisterer ikke!\"\n\nmsgid \"An error occured while removing the palette! Error code: %s\"\nmsgstr \"Det oppsto en feil under fjerning av paletten! Feilkode: %s\"\n\nmsgid \"and\"\nmsgstr \"og\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\nmsgid \"Frame duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors. Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/pl_PL.po",
    "content": "msgid \"\"\nmsgstr \"\"\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: pl\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Polish\\n\"\n\"Language: pl_PL\\n\"\n\"PO-Revision-Date: 2025-11-27 17:04\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"Anuluj\"\n\nmsgid \"Open\"\nmsgstr \"Otwórz\"\n\nmsgid \"Save\"\nmsgstr \"Zapisz\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Proszę potwierdzić...\"\n\nmsgid \"File Name:\"\nmsgstr \"Nazwa pliku:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Nazwa projektu:\"\n\nmsgid \"Image Size\"\nmsgstr \"Rozmiar obrazu\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Rozmiar płótna\"\n\nmsgid \"Frame Size\"\nmsgstr \"Rozmiar klatki\"\n\nmsgid \"Size:\"\nmsgstr \"Rozmiar:\"\n\nmsgid \"Width:\"\nmsgstr \"Szerokość:\"\n\nmsgid \"Height:\"\nmsgstr \"Wysokość:\"\n\nmsgid \"Center\"\nmsgstr \"Środek\"\n\nmsgid \"File\"\nmsgstr \"Plik\"\n\nmsgid \"Edit\"\nmsgstr \"Edycja\"\n\nmsgid \"Select\"\nmsgstr \"Zaznacz\"\n\nmsgid \"View\"\nmsgstr \"Widok\"\n\nmsgid \"Window\"\nmsgstr \"Okno\"\n\nmsgid \"Image\"\nmsgstr \"Obraz\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"Projekt\"\n\nmsgid \"Effects\"\nmsgstr \"Efekty\"\n\nmsgid \"Help\"\nmsgstr \"Pomoc\"\n\nmsgid \"New\"\nmsgstr \"Nowy\"\n\nmsgid \"New...\"\nmsgstr \"Nowy...\"\n\nmsgid \"Open...\"\nmsgstr \"Otwórz...\"\n\nmsgid \"Save...\"\nmsgstr \"Zapisz...\"\n\nmsgid \"Save as...\"\nmsgstr \"Zapisz jako...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"Dołącz mieszane obrazy\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"Jeśli ta opcja jest włączona, ostateczne połączone obrazy są również przechowywane w pliku pxo dla każdej klatki.\\n\"\n\" Sprawia to iż plik pxo jest większy i jest przydatny w przypadku importowania za pomocą oprogramowania innych firm\\n\"\n\" lub eksportu CLI. Obsługa plików pxo w Pixeloramie nie wymaga włączenia tej opcji.\"\n\nmsgid \"Import\"\nmsgstr \"Importuj\"\n\nmsgid \"Export\"\nmsgstr \"Eksportuj\"\n\nmsgid \"Overwrite\"\nmsgstr \"Nadpisz\"\n\nmsgid \"Export...\"\nmsgstr \"Eksportuj...\"\n\nmsgid \"Export as...\"\nmsgstr \"Eksportuj jako...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Eksportuj PNG…\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Eksportuj PNG jako...\"\n\nmsgid \"Quit\"\nmsgstr \"Wyjdź\"\n\nmsgid \"Undo\"\nmsgstr \"Cofnij\"\n\nmsgid \"Redo\"\nmsgstr \"Przywróć zmiany\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"Cofnij historię\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"Stan początkowy\"\n\nmsgid \"Copy\"\nmsgstr \"Kopiuj\"\n\nmsgid \"Cut\"\nmsgstr \"Wytnij\"\n\nmsgid \"Paste\"\nmsgstr \"Wklej\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Wklej w miejscu\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"Wklej ze schowka\"\n\nmsgid \"Delete\"\nmsgstr \"Usuń\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Usuń trwale\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Przenieś do kosza\"\n\nmsgid \"New Brush\"\nmsgstr \"Nowy pędzel\"\n\nmsgid \"Scale Image\"\nmsgstr \"Skaluj obraz\"\n\nmsgid \"Pixels\"\nmsgstr \"Piksele\"\n\nmsgid \"Percentage\"\nmsgstr \"Procentowo\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"Tryb koloru:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"Tryb kolorów\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"Zindeksowano\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"Przytnij do zaznaczenia\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"Przytnij do zawartości\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Zmień rozmiar płótna\"\n\nmsgid \"Offset Image\"\nmsgstr \"Przesuń Obraz\"\n\nmsgid \"Offset:\"\nmsgstr \"Przesunięcie:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"Zawijaj wokół:\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"Wyśrodkuj klatki\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Obróć obraz\"\n\nmsgid \"Pivot x:\"\nmsgstr \"Oś X:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"Oś Y:\"\n\nmsgid \"Smear options:\"\nmsgstr \"Opcje rozmazywania:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Tolerancja:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Kąt początkowy:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"Usuń zaznaczenie\"\n\nmsgid \"Invert\"\nmsgstr \"Odwróć zaznaczenie\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"Wybierz obszar komórki\"\n\nmsgid \"Modify\"\nmsgstr \"Modyfikuj\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"Rozszerz\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"Rozszerzenie zaznaczenia\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"Zmniejszenie\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"Zmniejsz zaznaczenie\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"Obramowanie\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"Granica zaznaczenia\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"Diament\"\n\nmsgid \"Circle\"\nmsgstr \"Koło\"\n\nmsgid \"Square\"\nmsgstr \"Kwadrat\"\n\nmsgid \"Grayscale View\"\nmsgstr \"Czarno-biały widok\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Lustrzane Odbicie\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Odbij w poziomie\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Odbij w pionie\"\n\nmsgid \"Preferences\"\nmsgstr \"Ustawienia\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"Proceduralny\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"Rozmycie\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"Załadowany\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"Wyśrodkuj płótno\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Tryb kafelkowy\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"Przesunięcia trybu kafelkowego\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"Maskowanie:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Zresetuj\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"Zresetuj %s\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"Użyj Aktualnej Klatki\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Zresetuj Maskę\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Przezroczystość okna\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"Przezroczystość okna nie działa w trybie pełnoekranowym.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Szablon panelu\"\n\nmsgid \"Panels\"\nmsgstr \"Panele\"\n\nmsgid \"Layouts\"\nmsgstr \"Szablony\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Ruchome panele\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"Odczep okno\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Zarządzaj szablonami\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Podgląd\"\n\nmsgid \"Add\"\nmsgstr \"Dodaj\"\n\nmsgid \"Add Layout\"\nmsgstr \"Dodaj Szablon\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"Usuń %s\"\n\nmsgid \"Copy from\"\nmsgstr \"Skopiuj z\"\n\nmsgid \"Rename\"\nmsgstr \"Zmień nazwę\"\n\nmsgid \"Rename Layout\"\nmsgstr \"Zmień nazwę układu\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"Aktualny układ\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Czy jesteś pewien, że chcesz usunąć ten szablon?\"\n\nmsgid \"Widescreen\"\nmsgstr \"Szeroki ekran\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Długi ekran\"\n\nmsgid \"Mirror View\"\nmsgstr \"Widok lustrzany\"\n\nmsgid \"Show Grid\"\nmsgstr \"Pokaż siatkę\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Pokaż siatkę pixeli\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Pokaż linijki\"\n\nmsgid \"Show Guides\"\nmsgstr \"Pokaż prowadnice\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"Pokaż Prowadnice Myszki\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"Pokaż obrazy referencyjne\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"Wyświetl efekty warstw\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"Przyciągaj do\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"Przyciągaj do Obrzeża Siatki Prostokątnej\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"Przyciągaj do Środka Siatki Prostokątnej\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"Przyciągaj do Prowadnic\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"Przyciągaj do Prowadnic Perspektywy\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Pokaż linię czasu animacji\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Tryb zen\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Tryb pełnoekranowy\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Wypełnij kolorem:\"\n\nmsgid \"Open a File\"\nmsgstr \"Otwórz plik\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Otwórz plik(i)\"\n\nmsgid \"Import Options\"\nmsgstr \"Opcje importowania\"\n\nmsgid \"Import as:\"\nmsgstr \"Importuj jako:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Zastosuj dla wszystkich\"\n\nmsgid \"Recent projects\"\nmsgstr \"Ostatnie projekty\"\n\nmsgid \"New project\"\nmsgstr \"Nowy Projekt\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"Spritesheet (nowy projekt)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Spritesheet (nowa warstwa)\"\n\nmsgid \"New frame\"\nmsgstr \"Nowa klatka\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"Zastąp kalkę\"\n\nmsgid \"New layer\"\nmsgstr \"Nowa warstwa\"\n\nmsgid \"New reference image\"\nmsgstr \"Nowy obraz odniesienia\"\n\nmsgid \"New palette\"\nmsgstr \"Nowa paleta\"\n\nmsgid \"New brush\"\nmsgstr \"Nowy pędzel\"\n\nmsgid \"New pattern\"\nmsgstr \"Nowy wzorzec\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Klatki poziome:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Klatki pionowe:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"Inteligentne wycinki\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"Próg:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"Obrazy, które mają jedną stronę mniejszą niż ta wartość, przekroczą próg\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"Odległość połączenia:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"Obrazy, które przekroczyły próg, zostaną połączone w większy obraz, jeśli są w tej odległości\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"Odśwież\"\n\nmsgid \"Start frame:\"\nmsgstr \"Klatka początkowa:\"\n\nmsgid \"End frame:\"\nmsgstr \"Koniec klatki:\"\n\nmsgid \"At frame:\"\nmsgstr \"W klatce:\"\n\nmsgid \"At layer:\"\nmsgstr \"Na warstwie:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Typ pędzla:\"\n\nmsgid \"File brush\"\nmsgstr \"Pędzel programu (File brush)\"\n\nmsgid \"Project brush\"\nmsgstr \"Pędzel projektu\"\n\nmsgid \"Random brush\"\nmsgstr \"Losowy pędzel\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Zapisz obraz jako .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Eksportuj obraz jako .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Eksportuj obraz\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Plik już istnieje, Nadpisać?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"Następujące pliki już istnieją, czy chcesz je nadpisać?\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"Ścieżka jest nieprawidłowa!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"Nazwa pliku jest nieprawidłowa!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"Ścieżka do katalogu i nazwa pliku są niepoprawne!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Eksportowanie w toku...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"Nie można wczytać pliku '%s'.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Nie można załadować pliku '%s'. Kod błędu: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"Nie można wczytać pliku '%s'.\\n\"\n\"Plik nie jest poprawną paletą.\"\n\nmsgid \"Frame\"\nmsgstr \"Klatka\"\n\nmsgid \"Frames:\"\nmsgstr \"Klatki:\"\n\nmsgid \"All Frames\"\nmsgstr \"Wszystkie klatki\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Spritesheet\"\n\nmsgid \"Animation\"\nmsgstr \"Animacja\"\n\nmsgid \"Preview:\"\nmsgstr \"Podgląd:\"\n\nmsgid \"Frame:\"\nmsgstr \"Klatka:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Orientacja:\"\n\nmsgid \"Browse\"\nmsgstr \"Przeglądaj\"\n\nmsgid \"Resize:\"\nmsgstr \"Zmień rozmiar:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"Jakość:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Anuluj eksportowanie\"\n\nmsgid \"Alert!\"\nmsgstr \"Uwaga!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Wybierz obecny folder\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Otwórz katalog\"\n\nmsgid \"Background:\"\nmsgstr \"Tło:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"Wybrane klatki\"\n\nmsgid \"Layers:\"\nmsgstr \"Warstwy:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Widoczne warstwy\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"Wybrane Warstwy\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"Warstwa pikselowa:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"Warstwa grupowania:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"Warstwa 3D:\"\n\nmsgid \"Direction:\"\nmsgstr \"Kierunek:\"\n\nmsgid \"Forward\"\nmsgstr \"Dalej\"\n\nmsgid \"Backwards\"\nmsgstr \"Wstecz\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Ping Pong\"\n\nmsgid \"Columns\"\nmsgstr \"Kolumny\"\n\nmsgid \"Columns:\"\nmsgstr \"Kolumny:\"\n\nmsgid \"Rows\"\nmsgstr \"Rzędy\"\n\nmsgid \"Rows:\"\nmsgstr \"Rzędy:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"Tagi według kolumn\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"Tagi według wierszy\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"Wymiary Exportu:\"\n\nmsgid \"Save a File\"\nmsgstr \"Zapisz plik\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"Przejdź do poprzedniego folderu.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"Przejdź do następnego folderu.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"Przejdź do folderu nadrzędnego.\"\n\nmsgid \"Path:\"\nmsgstr \"Ścieżka:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"Odśwież pliki.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"Przełącz widoczność ukrytych plików.\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Pliki oraz katalogi:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Utwórz folder\"\n\nmsgid \"File:\"\nmsgstr \"Plik:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"Wszystkie pliki\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"Wszystkie rozpoznane\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"Projekt Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"Obraz PNG\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"Obraz BMP\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"Obraz Radiance HDR\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"Obraz JPEG\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"Obraz SVG\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"Obraz TGA\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"Obraz WebP\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"Projekt OpenRaster\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"Projekt Aseprite\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"Projekt Krita\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"Projekt Piskel\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"Projekt Photoshop\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"Paleta typu Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"Paleta typu GIMP\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"Zaawansowane opcje\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolacja:\"\n\nmsgid \"Nearest\"\nmsgstr \"Najbliższy sąsiad\"\n\nmsgid \"Bilinear\"\nmsgstr \"Dwuliniowa\"\n\nmsgid \"Cubic\"\nmsgstr \"Sześcienna\"\n\nmsgid \"Trilinear\"\nmsgstr \"Trójlinowa\"\n\nmsgid \"Constant\"\nmsgstr \"Stała\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"Przestrzeń barw\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"Liniowy sRGB\"\n\nmsgid \"General\"\nmsgstr \"Ogólne\"\n\nmsgid \"Startup\"\nmsgstr \"Przy uruchomieniu\"\n\nmsgid \"Language\"\nmsgstr \"Język\"\n\nmsgid \"Interface\"\nmsgstr \"Interfejs\"\n\nmsgid \"Themes\"\nmsgstr \"Motywy\"\n\nmsgid \"Canvas\"\nmsgstr \"Płótno\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"Oś czasu\"\n\nmsgid \"Selection\"\nmsgstr \"Zaznaczanie\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Skróty klawiszowe\"\n\nmsgid \"Backup\"\nmsgstr \"Utwórz kopię zapasową\"\n\nmsgid \"Performance\"\nmsgstr \"Wydajność\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"Sterowniki\"\n\nmsgid \"Extensions\"\nmsgstr \"Rozszerzenia\"\n\nmsgid \"Cursors\"\nmsgstr \"Kursory\"\n\nmsgid \"Indicators\"\nmsgstr \"Wskaźniki\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"Pixelorama musi zostać uruchomiona ponownie, aby zastosować zmiany.\"\n\nmsgid \"On\"\nmsgstr \"Włączone\"\n\nmsgid \"Restore default value\"\nmsgstr \"Przywróć domyślne wartości\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Płynne przybliżanie\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Dodaje płynniejsze przejścia, kiedy się przybliża lub oddala\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"Powiększenie stopniowe\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"Ogranicza przybliżenie do wielokrotności 100%\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Czułość nacisku na tablecie:\"\n\nmsgid \"None\"\nmsgstr \"Brak\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Wpływa na przezroczystość pędzla\"\n\nmsgid \"Color:\"\nmsgstr \"Kolor:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Kolor prowadnicy:\"\n\nmsgid \"System Language\"\nmsgstr \"Język systemowy\"\n\nmsgid \"Display scale:\"\nmsgstr \"Pokaż Skalę:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"Czcionka:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"Rozmiar czcionki:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"Orientacja ekranu:\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Przyciemnij interfejs, kiedy pojawia się okno dialogowe\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"Wyświetlaj etykiety powiadomień\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"Użyj systemowych okien dialogowych plików\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"Gdy to ustawienie jest włączone, używane są natywne okna dialogowe plików systemu operacyjnego zamiast niestandardowych okien Pixeloramy.\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"Tryb pojedynczego okna\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"Gdy to ustawienie jest włączone, podokno Pixeloramy będzie osadzone w głównym oknie, w przeciwnym razie każde okno będzie jego oddzielnym oknem.\"\n\nmsgid \"Dark\"\nmsgstr \"Ciemny\"\n\nmsgid \"Gray\"\nmsgstr \"Szary\"\n\nmsgid \"Blue\"\nmsgstr \"Niebieski\"\n\nmsgid \"Caramel\"\nmsgstr \"Karmelowy\"\n\nmsgid \"Light\"\nmsgstr \"Światło\"\n\nmsgid \"Purple\"\nmsgstr \"Fioletowy\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"Różowy\"\n\nmsgid \"Theme\"\nmsgstr \"Motyw\"\n\nmsgid \"Buttons\"\nmsgstr \"Przyciski\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Kolor ikony z:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Kolor ikony:\"\n\nmsgid \"Background\"\nmsgstr \"Tło\"\n\nmsgid \"Background color from:\"\nmsgstr \"Kolor tła z:\"\n\nmsgid \"Background color:\"\nmsgstr \"Kolor tła:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"Tryb pojedynczego narzędzia\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"Jeśli ta opcja jest włączona, prawy przycisk myszy będzie zawsze aktywować to samo narzędzie, co lewy przycisk myszy.\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"Udostępnij opcje między narzędziami po lewej i prawej stronie\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"Jeśli ta opcja jest włączona, opcje będą synchronizowane między lewym i prawym narzędziem. Na przykład oba narzędzia będą miały ten sam rozmiar pędzla, a zmiana w jednym narzędziu spowoduje natychmiastową zmianę w drugim.\"\n\nmsgid \"Left tool color:\"\nmsgstr \"Kolor lewego narzędzia:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"Kolor prawego narzędzia:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Rozmiar przycisku narzędzi:\"\n\nmsgid \"Small\"\nmsgstr \"Mały\"\n\nmsgid \"Big\"\nmsgstr \"Duży\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Wpływ tylko na zaznaczenie\"\n\nmsgid \"Selected cels\"\nmsgstr \"Wybrane kalki\"\n\nmsgid \"Current cel\"\nmsgstr \"Bieżąca kalka\"\n\nmsgid \"Current frame\"\nmsgstr \"Aktualna klatka\"\n\nmsgid \"All frames\"\nmsgstr \"Wszystkie klatki\"\n\nmsgid \"All projects\"\nmsgstr \"Wszystkie projekty\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Odwróć kolory\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Modyfikuj kanał czerwony\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Modyfikuj kanał zielony\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Modyfikuj kanał niebieski\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Modyfikuj kanał alfa\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Desaturacja (zmniejsz nasycenie)\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Obrys\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Cień\"\n\nmsgid \"Offset X:\"\nmsgstr \"Przesunięcie X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"Przesunięcie Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"Kolor cienia:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"Rozmycie Gaussa\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"Typ rozmycia:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"Wartość rozmycia:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"Promień rozmycia:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"Kierunek rozmycia:\"\n\nmsgid \"Gradient\"\nmsgstr \"Gradient\"\n\nmsgid \"Gradient Map\"\nmsgstr \"Mapa gradientu\"\n\nmsgid \"Interpolation\"\nmsgstr \"Interpolacja\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"Odwróć\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"Równie rozdziel punkty\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"Podziel na równe części\"\n\nmsgid \"Parts:\"\nmsgstr \"Części:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"Dodaj punkt na końcu\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"Gdy włączone, ostatni punkt będzie dodawany na końcu gradientu.\\n\"\n\"Wyłącz, jeśli chcesz gradient ze stałą interpolacją, aby ostatni kolor był brany pod uwagę.\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"Zapisz w ustawieniach predefiniowanych\"\n\nmsgid \"Shape:\"\nmsgstr \"Kształt:\"\n\nmsgid \"Linear\"\nmsgstr \"Prosty\"\n\nmsgid \"Radial\"\nmsgstr \"Promienisty\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"Powtarzaj:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"Powtarzaj\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"Lustrzane odbicie\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"Przycinanie\"\n\nmsgid \"Transition size:\"\nmsgstr \"Rozmiar zmiany:\"\n\nmsgid \"Center:\"\nmsgstr \"Środek:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"Wzór ditheringu:\"\n\nmsgid \"Type:\"\nmsgstr \"Typ:\"\n\nmsgid \"Angle:\"\nmsgstr \"Kąt:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Dostosuj Odcień/Nasycenie/Wartość\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"Dostosuj HSV\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Odcień:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Nasycenie:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Wartość:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"Dostosuj jasność/kontrast\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"Jasność:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"Kontrast:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"Czerwona wartości:\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"Zielona wartość:\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"Wartość niebieska:\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"Odcień koloru:\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"Współczynnik efektu odcienia:\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"Krzywe koloru\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"Kanał:\"\n\nmsgid \"Red\"\nmsgstr \"Czerwony\"\n\nmsgid \"Green\"\nmsgstr \"Zielony\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"Wartość\"\n\nmsgid \"Presets\"\nmsgstr \"Predefiniowane\"\n\nmsgid \"Apply\"\nmsgstr \"Zastosuj\"\n\nmsgid \"Diagonal\"\nmsgstr \"Przekątna\"\n\nmsgid \"Place inside image\"\nmsgstr \"Umieść wewnątrz obrazu\"\n\nmsgid \"Thickness:\"\nmsgstr \"Grubość:\"\n\nmsgid \"Colors:\"\nmsgstr \"Kolory:\"\n\nmsgid \"Steps:\"\nmsgstr \"Kroki:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"Paletyzacja\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"Pixelizuj\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"Posteryzuj\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"Poziom posteryzacji:\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"Intensywność ditheringu:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Pokaż ekran powitalny\"\n\nmsgid \"Online Docs\"\nmsgstr \"Dokumentacja Online\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Zgłaszanie problemów\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"Przywróć kopię zapasową\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"Poprzednie sesje\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"Kliknij dwukrotnie, aby wczytać całą sesję lub konkretny projekt.\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"Sesje\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"Projekty\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"(Obecna sesja)\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"Otwórz folder danych edytora\"\n\nmsgid \"Changelog\"\nmsgstr \"Lista zmian\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"O Pixeloramie\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"Wesprzyj rozwój Pixeloramy\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - Spikselizuj swoje marzenia!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Tworzony przez: Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-teraz przez Oramę Interactive i współtwórców\"\n\nmsgid \"Website\"\nmsgstr \"Strona internetowa\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"Kod źródłowy\"\n\nmsgid \"Donate\"\nmsgstr \"Wspomóż\"\n\nmsgid \"Developers\"\nmsgstr \"Autorzy\"\n\nmsgid \"Contributors\"\nmsgstr \"Wnieśli wkład\"\n\nmsgid \"Donors\"\nmsgstr \"Darczyńcy\"\n\nmsgid \"Translators\"\nmsgstr \"Tłumacze\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Licencje\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"Licencja\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"Licencje Godot\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"Licencje stron trzecich\"\n\nmsgid \"English\"\nmsgstr \"Angielski\"\n\nmsgid \"Greek\"\nmsgstr \"Grecki\"\n\nmsgid \"French\"\nmsgstr \"Francuski\"\n\nmsgid \"German\"\nmsgstr \"Niemiecki\"\n\nmsgid \"Polish\"\nmsgstr \"Polski\"\n\nmsgid \"Portuguese\"\nmsgstr \"Portugalski\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Portugalski - Brazylijski\"\n\nmsgid \"Russian\"\nmsgstr \"Rosyjski\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Chiński (uproszczony)\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Chiński (tradycyjny)\"\n\nmsgid \"Italian\"\nmsgstr \"Włoski\"\n\nmsgid \"Latvian\"\nmsgstr \"Łotewski\"\n\nmsgid \"Spanish\"\nmsgstr \"Hiszpański\"\n\nmsgid \"Catalan\"\nmsgstr \"Kataloński\"\n\nmsgid \"Esperanto\"\nmsgstr \"Esperanto\"\n\nmsgid \"Indonesian\"\nmsgstr \"Indonezyjski\"\n\nmsgid \"Czech\"\nmsgstr \"Czeski\"\n\nmsgid \"Arabic\"\nmsgstr \"Arabski\"\n\nmsgid \"Turkish\"\nmsgstr \"Turecki\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Norweski (Bokmål)\"\n\nmsgid \"Korean\"\nmsgstr \"Koreański\"\n\nmsgid \"Hungarian\"\nmsgstr \"Węgierski\"\n\nmsgid \"Romanian\"\nmsgstr \"Rumuński\"\n\nmsgid \"Japanese\"\nmsgstr \"Japoński\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Ukraiński\"\n\nmsgid \"Danish\"\nmsgstr \"Duński\"\n\nmsgid \"Swedish\"\nmsgstr \"Szwedzki\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Serbski (Cyrylica)\"\n\nmsgid \"Dutch\"\nmsgstr \"Niderlandzki\"\n\nmsgid \"Belarusian\"\nmsgstr \"Białoruski\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"Główny programista\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"Projektant interfejsu użytkownika\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"Autorzy\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Artysta: %s\"\n\nmsgid \"untitled\"\nmsgstr \"bez nazwy\"\n\nmsgid \"imported\"\nmsgstr \"zaimportowane\"\n\nmsgid \"copy\"\nmsgstr \"kopia\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Na pewno chcesz opuścić Pixeloramę?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Niezapisany obraz\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Masz niezapisane zmiany. Jeśli kontynuujesz, postęp, który zrobiłeś/aś zostanie utracony.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Zapisać przed wyjściem?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"Projekt %s ma niezapisany postęp. Co chcesz zrobić?\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Zapisz i wyjdź\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Wyjdź bez zapisywania\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Okrągłe zaznaczanie\\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Zaznaczenie eliptyczne \\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Zaznaczenie wielokątem\\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\\n\\n\"\n\"Kliknij dwukrotnie, aby połączyć ostatni punkt, z pierwszym\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Zaznacz poprzez kolor\\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Magiczna różczka\\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Lasso / narzędzie swobodnego zaznaczania\\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Zaznacz rysując\\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Przenieś \\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Przybliżenie\\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Przesuń\\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"Wybór koloru\\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\\n\\n\"\n\"Wybierz kolor z piksela obrazu\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"Przytnj\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Ołówek\\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\\n\\n\"\n\"Przytrzymaj %s aby narysować linię\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Gumka\\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\\n\\n\"\n\"Przytrzymaj %s aby użyć w linii prostej\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Wiaderko\\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Narzędzie cieniowania\\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Narzędzie linii\\n\\n\"\n\"%s na lewy przycisk myszy\\n\"\n\"%s na prawy przycisk myszy\\n\\n\"\n\"Przytrzymaj %s aby zmieniać kąt stopniowo\\n\"\n\"Przytrzymaj %s aby wyśrodkować kształt na miejscu kliknięcia\\n\"\n\"Przytrzymaj %s aby zmienić pozycję źródła kształtu\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"Narzędzie Krzywej \\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\\n\"\n\"Rysuje krzywe Beziera\\n\"\n\"Naciśnij %s/%s, aby dodać nowe punkty\\n\"\n\"Naciśnij i przeciągnij, aby kontrolować krzywiznę\\n\"\n\"Naciśnij %s, aby usunąć ostatnio dodany punkt\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Prostokąt\\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\\n\\n\"\n\"Przytrzymaj %s aby stworzyć kształt 1:1\\n\"\n\"Przytrzymaj %s aby wyśrodkować kształt na miejscu kliknięcia\\n\"\n\"Przytrzymaj %s aby przemieścić pozycję źródłową kształtu\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Elipsa\\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\\n\\n\"\n\"Przytrzymaj %s aby stworzyć kształt 1:1\\n\"\n\"Przytrzymaj %s aby wyśrodkować kształt na miejscu kliknięcia\\n\"\n\"Przytrzymaj %s aby przemieścić pozycję źródłową kształtu\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\\n\"\n\"Rysuje prostopadłościan izometryczny\\n\"\n\"Naciśnij %s/%s aby dodać punkt bazowy\\n\"\n\"Przytrzymaj %s aby przyciągnąć kąt punktu początkowego\\n\"\n\"Przytrzymaj %s aby zmienić położenie punktu bazowego kształtu\\n\"\n\"Naciśnij %s aby edytować ostatnio dodany punkt bazowy\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Tekst\\n\\n\"\n\"%s dla lewego przycisku myszy\\n\"\n\"%s dla prawego przycisku myszy\"\n\nmsgid \"Rectangle\"\nmsgstr \"Prostokąt\"\n\nmsgid \"Ellipse\"\nmsgstr \"Elipsa\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Wybiera kolor dla lewego narzędzia\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Wybiera kolor dla prawego narzędzia\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"Podmień lewy kolor z prawym kolorem.\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"Średnia kolorów:\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Resetuje kolory do stanu domyślnego (czarny po lewej, biały po prawej)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"Wybierz kolor w oknie aplikacji.\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"Wpisz kod hex (\\\"#ff0000\\\") lub angielską nazwę koloru (\\\"red\\\").\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"Wybierz kształt selektora.\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"Opcje kolorów\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"Wybierz tryb próbnika.\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"Kolorowe suwaki\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"Próbki\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"Ostatnie kolory\"\n\nmsgid \"Left tool\"\nmsgstr \"Lewe narzędzie\"\n\nmsgid \"Right tool\"\nmsgstr \"Prawe narzędzie\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Wskaźnik lewego pędzla\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Wyświetl wskaźnik lewego narzędzia lub pędzla podczas rysowania\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Wskaźnik prawego pędzla\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Wyświetl wskaźnik prawego narzędzia lub pędzla podczas rysowania\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Pokaż ikonę lewego narzędzia\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Wyświetla ikonę lewego wybranego narzędzia obok kursora na płótnie\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Pokaż ikonę prawego narzędzia\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Wyświetla ikonę prawego wybranego narzędzia obok kursora na płótnie\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"Używaj systemowych kursorów\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"Używaj krzyżykowego kursora dla płótna\"\n\nmsgid \"Guides\"\nmsgstr \"Poradniki\"\n\nmsgid \"Guides color:\"\nmsgstr \"Kolor prowadnic:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Kolor prowadnic wyświetlanych na płótnie\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"Przyciąganie\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"Odległość przyciągania:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"To jest dystans w pikselach ekranu gdzie przyciąganie do prowadnic i siatki się aktywuje.\"\n\nmsgid \"Grid\"\nmsgstr \"Siatka\"\n\nmsgid \"Grid type:\"\nmsgstr \"Typ siatki:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Ustawia typ siatki pomiędzy prostokątną, izometryczną lub oba\"\n\nmsgid \"Rectangular\"\nmsgstr \"Prostokątna\"\n\nmsgid \"Isometric\"\nmsgstr \"Izometryczna\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"Sześciokątny\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"Sześciokątny (o spiczastym wierzchołku)\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"Sześciokątny (płaski wierzchołek)\"\n\nmsgid \"All\"\nmsgstr \"Wszystkie\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"Widoczne siatki:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"Edycja siatki:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"Rozmiar siatki:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"Przesunięcie siatki:\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"Przesuwa siatkę od początku płótna (lewy górny róg obrazu)\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"Rysuj nad trybem kafelkowym:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"Jeśli wyłączone, siatka będzie rysowana tylko nad oryginalnym obrazem\"\n\nmsgid \"Grid color:\"\nmsgstr \"Kolor siatki:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"Kolor siatki\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Siatka pikseli\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Pokaż w powiększeniu:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"Ustawia minimalne przybliżenie, przy którym siatka pixeli będzie wyświetlana\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Kolor siatki pikseli:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"Kolor siatki pikseli\"\n\nmsgid \"Transparency\"\nmsgstr \"Przezroczystość\"\n\nmsgid \"Checker size:\"\nmsgstr \"Rozmiar komórek przezroczystej siatki:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Rozmiar tła przezroczystej siatki\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Kolor komórek przezroczystej siatki 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"Pierwszy kolor komórek przezroczystej siatki\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Kolor komórek przezroczystej siatki 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"Drugi kolor komórek przezroczystej siatki\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"Śledź ruch płótna\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"Przezroczysta siatka śledzi ruch płótna\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"Śledź poziom przybliżenia płótna\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"Przezroczysta siatka śledzi poziom przybliżenia płótna\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"Wybierz warstwę, klikając na jeden z jej przycisków:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"Kolor przenikania przeszłych ujęć:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"Kolor przenikania następnych ujęć:\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"Animowana ramka obszaru zaznaczenia\"\n\nmsgid \"Border color 1:\"\nmsgstr \"Kolor obramowania 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Kolor obramowania 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"Podgląd transformacji alfa:\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Tylko niestandardowe ustawienia mogą być modyfikowane\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"Ustaw limit FPS dla aplikacji:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"Ustawia limit klatek aplikacji na sekundę. Im niższa liczba, tym niższe zużycie procesora, ale aplikacja staje się wolniejsza. 0 oznacza, że nie ma limitu.\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"Maksymalna liczba cofnięć zmian:\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"Zapauzuj aplikację, gdy straci skupienie\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"Jeśli ta opcja jest włączona i okno aplikacji traci skupienie, to program zostanie zapauzowany. To pomaga zmniejszyć użycie procesora, kiedy aplikacja działa w tle. Aplikacja zostaje odpauzowana, kiedy myszka pojawi się na oknie aplikacji.\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"Odświeżaj bezustannie\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"Jeśli ta opcja jest włączona, aplikacja będzie ciągle odświeżać ekran, nawet gdy nie jest używana. Wyłączenie tej opcji pomaga obniżyć użycie procesora i procesora graficznego w stanie bezczynności.\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"Włącz przezroczystość okna\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"Jeśli ta opcja jest włączona, okno aplikacji może stać się przezroczyste. Ma to na wpływ wydajność, więc wyłącz tę opcję, jeśli jej nie potrzebujesz.\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"Użyj fikcyjnego sterownika audio\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"Renderowanie:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"Wybiera sterownik renderowania, GLES2 jest lepsze dla starszych i słabszych urządzeń, a GLES3 posiada więcej funkcji.\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"Sterownik tabletu:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"Wybiera sterownik tabletu na Windowsie, jeżeli masz włączony \\\"Windows Ink\\\", wybierz \\\"winink\\\".\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Dodaj rozszerzenie\"\n\nmsgid \"Enable\"\nmsgstr \"Włącz\"\n\nmsgid \"Disable\"\nmsgstr \"Wyłącz\"\n\nmsgid \"Uninstall\"\nmsgstr \"Odinstaluj\"\n\nmsgid \"Open Folder\"\nmsgstr \"Otwórz folder\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"Przeglądaj w Internecie\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"Eksplorator rozszerzeń\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"Szukaj...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"Tagi:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"Zgłoś problem z rozszerzeniem\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"Pobierz\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"Linki repozytorium:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"Pobieranie danych ze zdalnego repozytorium.\\n\"\n\"Proszę czekać.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"Nie można pobrać informacji ze zdalnego repozytorium.\\n\\n\"\n\"- upewnij się, że masz połączenie z internetem.\\n\"\n\"- jeśli używasz wersji Flatpak pixeloramy, musisz przyznać uprawnienia do łączenia się z internetem. Aby to zrobić, możesz uruchomić następujące polecenie w swoim terminalu:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"Alternatywnie możesz pobrać Flatseal i tam ustawić uprawnienia dla aplikacji Flatpak.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"Nie można pobrać informacji ze zdalnego repozytorium.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"Wklej link do repozytorium, podany przez właściciela repozytorium. Jeśli pozostawisz pusty, zostanie automatycznie usunięty.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"Czy na pewno chcesz włączyć to rozszerzenie? Pamiętaj, aby włączać tylko rozszerzenia z zaufanych źródeł.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"Czy na pewno chcesz usunąć to rozszerzenie?\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"Dynamika\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"Stabilizator\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"Nacisk\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"Prędkość\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"Przezroczystość\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"Rozmiar\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"Limity wartości\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"Progi\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"Start\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"Koniec\"\n\nmsgid \"Brush:\"\nmsgstr \"Pędzel:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Wybierz pędzel\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"Domyślne pędzle\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Pikselowy pędzel\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Okrągły pędzel\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Wypełniony okrągły pędzel\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"Pędzle projektu\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"Pędzle z pliku\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"Śnieg\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"Losowe pędzle z pliku\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"Trawa\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"Gwiazda\"\n\nmsgid \"Custom brush\"\nmsgstr \"Niestandardowy pędzel\"\n\nmsgid \"Brush size:\"\nmsgstr \"Rozmiar pędzla:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"Opcje rotacji\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"Odwróć:\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"Obróć:\"\n\nmsgid \"Overwrite color\"\nmsgstr \"Nadpisz kolor\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Zastępuje kolor zamiast zmieszać się z nim. Ta opcja zadziała tylko dla kolorów, które nie są w pełni przezroczyste\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Pixel Perfect\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"Pikselowa Dokładność\\n\"\n\"sprawia, że linie są gładkie, usuwając dodatkowe piksele na krawędziach\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"Zablokuj alfa\"\n\nmsgid \"Fill inside\"\nmsgstr \"Wypełnij wnętrze\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"Odstęp\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"Odstęp X:\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"Odstęp Y:\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Wypełnij kształt\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"Wypełnia narysowany kształt kolorem, zamiast rysować same obramowanie\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"Gęstość:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"Kolor pędzla z:\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: Kolor pochodzący z samego pędzla, 100: Obecnie wybrany kolor rysowania\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"Wypełniony obszar:\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"Podobny obszar\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"Podobne kolory\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"Całe zaznaczenie\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"Wypełnij obszary z połączenia wszystkich warstw\"\n\nmsgid \"Fill with:\"\nmsgstr \"Wypełnij za pomocą:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"Wybrany kolor\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Wzorzec\"\n\nmsgid \"Offset\"\nmsgstr \"Przesunięcie\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Proste Cieniowanie\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Przesuwanie Hue\"\n\nmsgid \"Lighten\"\nmsgstr \"Rozjaśnianie\"\n\nmsgid \"Darken\"\nmsgstr \"Przyciemnianie\"\n\nmsgid \"Amount:\"\nmsgstr \"Siła:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Siła rozjaśnienia/przyciemnienia\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"Zamień kolor\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"Proszę wybrać kolor z palety.\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"Kolory po prawej:\"\n\nmsgid \"Pick for:\"\nmsgstr \"Wybierz dla:\"\n\nmsgid \"Left Color\"\nmsgstr \"Lewy kolor\"\n\nmsgid \"Right Color\"\nmsgstr \"Prawy kolor\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"Tryb wyboru:\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"Główny kolor\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"Obecna warstwa\"\n\nmsgid \"Mode:\"\nmsgstr \"Tryb:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Przybliż\"\n\nmsgid \"Zoom out\"\nmsgstr \"Oddal\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"Łańcuchowy: tworzy łańcuch wielu krzywych Beziera, podobne do narzędzia krzywej w Krita.\\n\"\n\"Pojedynczy: tworzy pojedynczą krzywą Beziera, podobne do narzędzia krzywej w Asperite.\"\n\nmsgid \"Options\"\nmsgstr \"Opcje\"\n\nmsgid \"Options:\"\nmsgstr \"Opcje:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"Dopasuj do ramki\"\n\nmsgid \"100% Zoom\"\nmsgstr \"Przybliżenie 100%\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"Nadpisz zaznaczenie\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"Dodaj do zaznaczenia\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"Odejmij od zaznaczenia\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"Część wspólna zaznaczeń\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"Styl:\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"Standardowy\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"Pogrubiony\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"Kursywa\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"Pogrubiona kursywa\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"Antyaliasing\"\n\nmsgid \"Grayscale\"\nmsgstr \"Skala szarości\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"Kolor krawędzi\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"Kolor narzędzia\"\n\nmsgid \"Adjusted average\"\nmsgstr \"Tryb dopasowania koloru krawędzi\"\n\nmsgid \"Blend at interface\"\nmsgstr \"Mieszanie na styku\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"Lewa ściana\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"Prawa ściana\"\n\nmsgid \"Mirroring\"\nmsgstr \"Lustrzane odbicie\"\n\nmsgid \"Horizontal\"\nmsgstr \"Poziome\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Włącza lustrzane odbicie w poziomie podczas rysowania\"\n\nmsgid \"Vertical\"\nmsgstr \"Pionowe\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Włącza lustrzane odbicie w pionie podczas rysowania\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"Włącz lustrzane odbicie rysunku po przekątnej (↗)\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"Włącz lustrzane odbicie rysunku po przekątnej (↘)\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"Przenieś do środka płótna\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"Przenieś do środka widoku\"\n\nmsgid \"Current frame:\"\nmsgstr \"Obecna klatka:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"Tryb Animacji:\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"Obecna klatka jako spritesheet\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"Skocz do pierwszej klatki\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"Idć do poprzedniej klatki\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"Odtwórz animację od tyłu\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"Odtwórz animację do przodu\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"Idź do następnej klatki\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"Skocz do ostatniej klatki\"\n\nmsgid \"Timeline settings\"\nmsgstr \"Ustawienia osi czasu\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Włącz/wyłącz Onion Skinning\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"W ilu klatkach na sekundę odtwarzana ma być animacja?\\n\"\n\"Większa ilość klatek na sekundę powoduje szybsze odtwarzanie.\"\n\nmsgid \"No loop\"\nmsgstr \"Brak zapętlania\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Zapętl odtwarzanie\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Zapętlanie typu ping-pong\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Kalkowanie klatek:\"\n\nmsgid \"Past Frames\"\nmsgstr \"Przeszłe klatki\"\n\nmsgid \"Future Frames\"\nmsgstr \"Przyszłe klatki\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Zarządzaj tagami klatek\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Właściwości tagu klatek\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Dodaj nowy tag klatek\"\n\nmsgid \"Name:\"\nmsgstr \"Nazwa:\"\n\nmsgid \"From:\"\nmsgstr \"Od:\"\n\nmsgid \"To:\"\nmsgstr \"Do:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"Animacja odtwarza się tylko na klatkach z tym samym tagiem\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Tag %s (Klatka %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Tag %s (Klatki %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Jeśli jest zaznaczone, animacja odtwarza się tylko na klatkach z tym samym tagiem.\\n\"\n\"W przeciwnym wypadku, animacja odtworzy się na wszystkich klatkach, ignorując tagi.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"Rozmiar kalki:\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"Tryb koloru\"\n\nmsgid \"Show past frames:\"\nmsgstr \"Pokaż poprzednie klatki:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"Pokaż przyszłe klatki:\"\n\nmsgid \"Above canvas\"\nmsgstr \"Nad płótnem\"\n\nmsgid \"Below canvas\"\nmsgstr \"Pod płótnem\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"Jeśli chcesz, aby onion skinning był ignorowany na warstwie, po prostu dodaj sufiks \\\"_io\\\" w jego nazwie.\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Dodaj nową klatkę\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Usuń klatkę\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Klonuj klatkę\"\n\nmsgid \"Move Left\"\nmsgstr \"Przesuń w lewo\"\n\nmsgid \"Move Right\"\nmsgstr \"Przesuń w prawo\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"Wybierz piksele\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"Połącz komórki z\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"Rozłącz komórki\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"Odtwarzaj dźwięk tutaj\"\n\nmsgid \"Properties\"\nmsgstr \"Właściwości\"\n\nmsgid \"Project Properties\"\nmsgstr \"Właściwości projektu\"\n\nmsgid \"Frame properties\"\nmsgstr \"Właściwości klatki\"\n\nmsgid \"Layer properties\"\nmsgstr \"Właściwości warstwy\"\n\nmsgid \"Cel properties\"\nmsgstr \"Właściwości kalki\"\n\nmsgid \"Tag properties\"\nmsgstr \"Właściwości tagu\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"Nowy tag\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"Import tagów\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"Odwróć Klatki\"\n\nmsgid \"Layer\"\nmsgstr \"Warstwa\"\n\nmsgid \"Group\"\nmsgstr \"Grupa\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"Mapa kafelków (Tilemap)\"\n\nmsgid \"Audio\"\nmsgstr \"Dźwięki\"\n\nmsgid \"Layers\"\nmsgstr \"Warstwy\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"Maska przycinająca\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"Wyrównaj\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"Wyrównaj widoczne\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Stwórz nową warstwę\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"Dodaj warstwę pikselową\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"Dodaj grupę warstw\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"Dodaj warstwę 3D\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"Dodaj warstwę kafelków\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"Dodaj warstwę dźwiękową\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Usuń obecną warstwę\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Przesuń obecną warstwę do góry\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Przesuń obecną warstwę w dół\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Duplikuj obecną warstwę\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Połącz obecną warstwę z warstwą powyżej\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"Rodzaj mieszania:\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"Normalny\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"Wyczyść\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"Mnożenie\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"Wypalenie koloru\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"Liniowe wypalenie\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"Ekran\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"Unikanie\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"Kontrast\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"Nakładanie\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"Łagodne światło\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"Twarde światło\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"Negatyw\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"Różnica\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"Wykluczenie\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"Odejmowanie\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"Dzielenie\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"Komponent\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"Barwa (Hue)\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"Nasycenie\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"Kolor\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"Jaskrawość\"\n\nmsgid \"Opacity:\"\nmsgstr \"Przezroczystość:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"Przezroczystość w trybie kafelkowym:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Ukrywanie warstwy\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Zablokuj/odblokuj warstwę\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Klatka: %s, Warstwa: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"Włącz/Wyłącz automatyczne łączenie nowych kalk, gdy są tworzone nowe klatki\\n\\n\"\n\"Połączone kalki dzielą zawartość pomiędzy wieloma klatkami\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"Rozwiń/zwiń grupę\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"Plik audio:\"\n\nmsgid \"Load file\"\nmsgstr \"Wczytaj plik\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"Paleta kolorów\"\n\nmsgid \"Palettes\"\nmsgstr \"Palety kolorów\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Dodaj nową paletę kolorów\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Edytuj aktualnie wybraną paletę kolorów\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Wybierz paletę kolorów\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Cofnij: Rysowanie\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Przywróć: Rysowanie\"\n\nmsgid \"Undo: Select\"\nmsgstr \"Cofnij: Zaznacz\"\n\nmsgid \"Redo: Select\"\nmsgstr \"Przywróć: Zaznacz\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Cofnij: Skalowanie\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Przywróć: Skalowanie\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Cofnij: Dodawanie warstwy\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Przywróć: Dodawanie warstwy\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Cofnij: Usuwanie warstwy\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Przywróć: Usuwanie warstwy\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Cofnij: Scalanie warstw\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Przywróć: Scalanie warstw\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Cofnij: Zmiana kolejności warstw\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Przywróć: Zmiana kolejności warstw\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Cofnij: Dodawanie klatki\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Przywróć: Dodawanie klatki\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Cofnij: Usunięcie klatki\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Przywróć: Usunięcie klatki\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Cofnij: Zmiana kolejności klatek\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Przywróć: Zmiana kolejności klatek\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Cofnij: Usuwanie niestandardowego pędzla\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Przywróć: Usuwanie niestandardowego pędzla\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"Cofnij: Modyfikuj tag klatek\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"Przywróć: Modyfikuj tag klatek\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"Cofnij: Usuń tag klatek\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"Przywróć: Usuń tag klatek\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"Cofnij: Zmień czas trwania klatki\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"Przywróć: Zmień czas trwania klatki\"\n\nmsgid \"Move Guide\"\nmsgstr \"Przesuń prowadnice\"\n\nmsgid \"File saved\"\nmsgstr \"Plik został zapisany\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"Kopia zapasowa zapisana\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"Nie udało się otworzyć pliku. Kod błędu %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"Nie udało się zapisać pliku. Kod błędu %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"Nie udało się wyeksportować pliku wideo. Upewnij się, że FFMPEG jest poprawnie zainstalowany.\"\n\nmsgid \"File(s) exported\"\nmsgstr \"Plik(i) wyeksportowane\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Nowa pusta paleta kolorów\"\n\nmsgid \"Import Palette\"\nmsgstr \"Importuj paletę kolorów\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Utwórz paletę z aktualnego Sprite'a\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Nazwa palety kolorów:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Nazwa koloru:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"Użyj aktualnych kolorów lewego i prawego\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Utworzyć nową pustą paletę kolorów?\"\n\nmsgid \"Error\"\nmsgstr \"Błąd\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Błąd: Paleta kolorów musi mieć poprawną nazwę.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Niepoprawny plik palety kolorów!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Edytuj paletę kolorów\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"Utwórz kolory z kanałem alpha\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"Pobierz kolory tylko z zaznaczenia\"\n\nmsgid \"Get colors from\"\nmsgstr \"Pobierz kolory z\"\n\nmsgid \"Patrons:\"\nmsgstr \"Patroni:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"Chcesz wyświetlać swoje imię lub nazwę swojej firmy na ekranie powitalnym?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Zostań Platynowym Sponsorem\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Zostań Złotym Sponsorem\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Zostań patronem\"\n\nmsgid \"Don't show again\"\nmsgstr \"Nie pokazuj ponownie\"\n\nmsgid \"Image Options\"\nmsgstr \"Opcje obrazu\"\n\nmsgid \"Default width:\"\nmsgstr \"Domyślna szerokość:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"Domyślna szerokość nowego obrazu\"\n\nmsgid \"Default height:\"\nmsgstr \"Domyślna długość:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"Domyślna długość nowego obrazu\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Domyślny kolor wypełnienia:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"Domyślny kolor tła dla nowego obrazu\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"Zresetuj wszystkie opcje dostępne w Preferencjach\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"Resetuj opcje osi czasu\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"Zresetuj wszystkie opcje narzędzi\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"Usuń wszystkie rozszerzenia\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"Usuń wszystkie kopie zapasowe\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"Wyczyść listę ostatnio otwieranych plików\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"Wymuś współczynnik proporcji\"\n\nmsgid \"Portrait\"\nmsgstr \"Orientacja pionowa\"\n\nmsgid \"Landscape\"\nmsgstr \"Orientacja pozioma\"\n\nmsgid \"Templates:\"\nmsgstr \"Szablony:\"\n\nmsgid \"Preset\"\nmsgstr \"Domyślnie\"\n\nmsgid \"Preset:\"\nmsgstr \"Domyślnie:\"\n\nmsgid \"Default\"\nmsgstr \"Podstawowy\"\n\nmsgid \"Custom\"\nmsgstr \"Niestandardowe\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Zaznaczenie prostokątne\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"Zaznaczenie eliptyczne\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"Zaznaczenie poligonalne\"\n\nmsgid \"Select By Color\"\nmsgstr \"Wybierz według koloru\"\n\nmsgid \"Magic Wand\"\nmsgstr \"Magiczna Różdżka\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"Lasso / Narzędzie wolnego zaznacznia\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"Wybierz poprzez rysowanie\"\n\nmsgid \"Move\"\nmsgstr \"Przenieś\"\n\nmsgid \"Zoom\"\nmsgstr \"Przybliżenie\"\n\nmsgid \"Pan\"\nmsgstr \"Przesunięcie\"\n\nmsgid \"Color Picker\"\nmsgstr \"Próbnik\"\n\nmsgid \"Pencil\"\nmsgstr \"Ołówek\"\n\nmsgid \"Eraser\"\nmsgstr \"Gumka\"\n\nmsgid \"Bucket\"\nmsgstr \"Wiaderko\"\n\nmsgid \"Shading Tool\"\nmsgstr \"Narzędzie cieniowania\"\n\nmsgid \"Line Tool\"\nmsgstr \"Linia\"\n\nmsgid \"Curve Tool\"\nmsgstr \"Narzędzie Krzywej\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"Prostokąt\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"Elipsa\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"Narzędzie \\\"Prostopadłościan izometryczny\\\"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Zmień kolory\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Ustaw skrót klawiszowy\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Naciśnij klawisz lub kombinację klawiszy, aby ustawić skrót klawiszowy\"\n\nmsgid \"Already assigned\"\nmsgstr \"Już przypisano\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Lewe narzędzie:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Narzędzie przypisane do lewego przycisku myszy\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Prawe narzędzie:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Narzędzie przypisane do prawego przycisku myszy\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"Nie można znaleźć pliku ostatniego projektu.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"Nie można znaleźć pliku projektu.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Nie zapisałeś lub nie otworzyłeś jeszcze żadnego projektu w Pixeloramie!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Otwórz ostatni projekt\"\n\nmsgid \"Open last project...\"\nmsgstr \"Otwórz ostatni projekt...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Po uruchomieniu załaduj ostatni projekt\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Po uruchomieniu, załaduje ostatni projekt\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"Potwierdzenie wyjścia z aplikacji\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"Lokalizacja FFMPEG\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Włącz automatyczne zapisywanie\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Częstotliwość automatycznego zapisu:\"\n\nmsgid \"minute(s)\"\nmsgstr \"minuta(y)\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"Eksportuj dane JSON\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"Podziel warstwy\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"Dołącz tagi klatki w nazwie pliku\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"Stwórz nowy folder dla każdego tagu animacji\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"Tworzy wiele plików, lecz każdy jest zapisywany w innym folderze, odpowiadającym tagowi animacji\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"Znak(i) rozdzielające:\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"Znak(i) oddzielające nazwę pliku od numeru klatki\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"Przytnij obrazy\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"Przycina eksportowane obrazy do ich widocznej części, uznając każdy piksel z kanałem alfa różnym od zera za widoczny.\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"Przytnij zawartość obrazu do zaznaczenia\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"Eksportuj tylko treści znajdujące się w granicach wybranego obszaru.\"\n\nmsgid \"Close\"\nmsgstr \"Zamknij\"\n\nmsgid \"Discard All\"\nmsgstr \"Odrzuć Wszystkie\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"Pixelorama nie zamknęła się poprawnie ostatnim razem. Czy chcesz przywrócić poprzednią sesję?\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"Wczytano ponownię kopię zapasową\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Usuń aktualnie wybraną paletę\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"Czy na pewno chcesz usunąć tą paletę? (Nie można cofnąć)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Nie możesz usunąć więcej palet!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Nie można usunąć palety, ponieważ nie istnieje!\"\n\nmsgid \"and\"\nmsgstr \"i\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Przenieś zaznaczoną klatkę w lewo.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Przenieś zaznaczoną klatkę w prawo.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"Czas trwania klatki:\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"Dane Użytkownika:\"\n\nmsgid \"Duration\"\nmsgstr \"Czas trwania\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"Kafelkowanie na obu osiach\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"Kafelkowanie na osi X\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Kafelkowanie na osi Y\"\n\nmsgid \"Create a new palette\"\nmsgstr \"Stwórz nową paletę\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"Utwórz nową paletę projektu\"\n\nmsgid \"Comment:\"\nmsgstr \"Komentarz:\"\n\nmsgid \"Empty\"\nmsgstr \"Pusta\"\n\nmsgid \"From Current Palette\"\nmsgstr \"Z bieżącej palety\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"Z bieżącego obrazu\"\n\nmsgid \"From Current Selection\"\nmsgstr \"Z bieżącego zaznaczenia\"\n\nmsgid \"Add a new color\"\nmsgstr \"Dodaj nowy kolor\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"Usuń wybrany kolor\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"Sortuj paletę kolorów\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"Odwróć kolory\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"Sortuj według odcienia\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"Sortuj według nasycenia\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"Sortuj według wartości\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"Sortuj według jasności\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"Sortuj według koloru czerwonego\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"Sortuj według koloru zielonego\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"Sortuj według koloru niebieskiego\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"Sortuj według alfa\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"Paleta z tą nazwą i ścieżką już istnieje!\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"Wymagana jest nazwa palety!\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"Zmniejszenie rozmiaru palety spowoduje zresetowanie pozycji kolorów.\\n\"\n\" Kolory nie mieszczące się w nowym rozmiarze palety zostaną utracone!\"\n\nmsgid \"Position:\"\nmsgstr \"Pozycja:\"\n\nmsgid \"Tools\"\nmsgstr \"Narzędzia\"\n\nmsgid \"Main Canvas\"\nmsgstr \"Główne płótno\"\n\nmsgid \"Second Canvas\"\nmsgstr \"Drugie płótno\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"Oś czasu animacji\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"Podgląd płótna\"\n\nmsgid \"Color Pickers\"\nmsgstr \"Wybieracze kolorów\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"Globalne opcje narzędzi\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"Opcje lewego narzędzia\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"Opcje prawego narzędzia\"\n\nmsgid \"Reference Images\"\nmsgstr \"Obrazy odniesienia\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"Edytor Perspektywy\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"Nagrywanie\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"Kafelki\"\n\nmsgid \"Crop\"\nmsgstr \"Przytnij\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"Zmień rozmiar płótna\"\n\nmsgid \"Margins\"\nmsgstr \"Marginesy\"\n\nmsgid \"Position + Size\"\nmsgstr \"Pozycja + Rozmiar\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"Zablokowany współczynnik proporcji\"\n\nmsgid \"Margins:\"\nmsgstr \"Marginesy:\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"Współczynnik proporcji:\"\n\nmsgid \"Top:\"\nmsgstr \"Góra:\"\n\nmsgid \"Bottom:\"\nmsgstr \"Dół:\"\n\nmsgid \"Left:\"\nmsgstr \"Lewa:\"\n\nmsgid \"Right:\"\nmsgstr \"Prawa:\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"Zablokowany rozmiar\\n\\n\"\n\"Gdy włączone, używanie narzędzia na płótnie będzie jedynie ruszać prostokąt przycinania.\\n\\n\"\n\"Gdy wyłączone, używanie narzędzia na płótnie narysuje prostokąt.\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"Edycja kształtu 3D\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"Prostopadłościan\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"Kula\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"Kapsuła\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"Cylinder\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"Pryzmat\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"Torus\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"Płaszczyzna\"\n\nmsgid \"Text\"\nmsgstr \"Tekst\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"Światło Ukierunkowane\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"Światło miejscowe\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"Światło punktowe\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"Własny model\"\n\nmsgid \"Selected object:\"\nmsgstr \"Wybrany obiekt:\"\n\nmsgid \"Add new object\"\nmsgstr \"Dodaj nowy obiekt\"\n\nmsgid \"Remove object\"\nmsgstr \"Usuń obiekt\"\n\nmsgid \"Camera\"\nmsgstr \"Kamera\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"Projekcja:\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"Perspektywiczna\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"Ortograficzna\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"Frustum\"\n\nmsgid \"Rotation:\"\nmsgstr \"Rotacja:\"\n\nmsgid \"Scale:\"\nmsgstr \"Skala:\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"Środowisko\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"Kolor Środowiska:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"Energia koloru środowiska:\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"Widoczny:\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"Przekształcenie\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"Siatka\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"Od lewej do prawej:\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"Promień:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"Segmenty radialne:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"Rzędy:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"Jest półkulą:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"Górny promień:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"Dolny promień:\"\n\nmsgid \"Text:\"\nmsgstr \"Tekst:\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"Głębia:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"Rozmiar piksela:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"Krok krzywej:\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"Poziome wyrównanie:\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"Wyrównanie pionowe:\"\n\nmsgid \"Left\"\nmsgstr \"Lewo\"\n\nmsgid \"Right\"\nmsgstr \"Prawo\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"Odstęp między liniami:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"Siła:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"Negatyw:\"\n\nmsgid \"Shadow:\"\nmsgstr \"Cień:\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"Zasięg:\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"Właściwości, które można animować\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"Podgląd klatki:\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"Animuj\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"Wartość początkowa:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"Wartość końcowa:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"Typ przejść:\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"Zaczyna powoli i przyśpiesza do końca\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"Zaczyna szybko i spowalnia do końca\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"Najwolniej na obu końcach, najszybsza w połowie\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"Najszybsza na obu końcach, najwolniejsza w połowie\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"Kwadratowy (do potęgi 2.)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"Sześcienny (do potęgi 3.)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"(do potęgi 4)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"(do potęgi 5)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"Wykładniczy (do potęgi x)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"Pierwiastkowy\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"Sinusoidalny\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"Drgania na krawędziach\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"Odbijanie na końcach\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"Wycofująca się na końcach\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"Przejdź do końca\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"Monochromatyczny\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"Otwierając obraz, można go zaimportować jako obraz odniesienia.\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"Wybierz obraz poniżej, aby zmienić jego proporcje.\\n\"\n\"Uwaga: nie możesz rysować, podczas gdy obraz odniesienia jest wybrany.\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"Usuń\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"Przytrzymaj Shift przy kliknięciu, aby usunąć natychmiastowo.\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"Czy jesteś pewny usunięcia tego obrazu odniesienia? Nie zostanie on usunięty z twojego systemu.\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"Przesuń wybrany obraz referencyjny w prawo\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"Przesuń wybrany obraz referencyjny w lewo\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"Wybiera obraz referencyjny na płótnie\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"Przesuń wybrany obraz referencyjny\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"Obróć wybrany obraz referencyjny\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"Skaluj wybrany obraz referencyjny\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"brak\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"Reset przekształceń\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"Pozycja\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"Skala\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"Obrót\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"Filtr\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"Przezroczystość\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"Ograniczanie koloru\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"Włączone\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"Efekty warstw\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"Dodaj efekt\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"Czy chcesz pobrać obraz z %s?\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"Zestaw kafelek\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"Zestaw kafelek:\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"Zestaw kafelek\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"Nowy zestaw kafelków\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"Nazwa kafelków:\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"Rozmiar kafelka:\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"Kształt kafelka:\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"Układ kafelka:\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"Oś przesunięcia kafelka:\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"Dla wszystkich kształtów z przesunięciem połówkowym (izometrycznych i sześciokątnych) określa oś przesunięcia.\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"Ułożone w stos\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"Przesunięcie stosu\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"Wybierz kafelek aby umieścić go na płótnie.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"Modyfikuj kafelki na płótnie.\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"Rysuj kafelki\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"Obróć kafelek w lewo (przeciwnie do ruchu wskazówek zegara)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"Obróć kafelek w prawo (zgodnie z ruchem wskazówek zegara)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"Odwróć kafelek poziomo\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"Odwróć kafelek w pionie\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"Ręczny\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Automatyczny\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"Rozmiar przycisku kafelka:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"Pokaż pusty kafelek:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"Właściwości kalki\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"Prawdopodobieństwo:\"\n\n"
  },
  {
    "path": "Translations/pt_BR.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: pt-BR\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Portuguese, Brazilian\\n\"\n\"Language: pt_BR\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"Cancelar\"\n\nmsgid \"Open\"\nmsgstr \"Abrir\"\n\nmsgid \"Save\"\nmsgstr \"Salvar\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Por favor, confirme...\"\n\nmsgid \"File Name:\"\nmsgstr \"Nome do arquivo:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Nome do projeto:\"\n\nmsgid \"Image Size\"\nmsgstr \"Tamanho da Imagem\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Tamanho da Tela\"\n\nmsgid \"Frame Size\"\nmsgstr \"Tamanho do Quadro\"\n\nmsgid \"Size:\"\nmsgstr \"Tamanho:\"\n\nmsgid \"Width:\"\nmsgstr \"Largura:\"\n\nmsgid \"Height:\"\nmsgstr \"Altura:\"\n\nmsgid \"Center\"\nmsgstr \"Centro\"\n\nmsgid \"File\"\nmsgstr \"Arquivo\"\n\nmsgid \"Edit\"\nmsgstr \"Editar\"\n\nmsgid \"Select\"\nmsgstr \"Selecionar\"\n\nmsgid \"View\"\nmsgstr \"Ver\"\n\nmsgid \"Window\"\nmsgstr \"Janela\"\n\nmsgid \"Image\"\nmsgstr \"Imagem\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"Projeto\"\n\nmsgid \"Effects\"\nmsgstr \"Efeitos\"\n\nmsgid \"Help\"\nmsgstr \"Ajuda\"\n\nmsgid \"New\"\nmsgstr \"Novo\"\n\nmsgid \"New...\"\nmsgstr \"Novo...\"\n\nmsgid \"Open...\"\nmsgstr \"Abrir...\"\n\nmsgid \"Save...\"\nmsgstr \"Salvar...\"\n\nmsgid \"Save as...\"\nmsgstr \"Salvar como...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"Incluir imagens combinadas\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"Se ativado, as imagens finais combinadas também serão armazenadas no .pxo, para cada quadro.\\n\"\n\"Isto aumenta o arquivo .pxo e é útil para importação por software de terceiros\\n\"\n\"ou pela exportação CLI. Para carregar arquivos .pxo no Pixelorama, essa opção não é necessária.\"\n\nmsgid \"Import\"\nmsgstr \"Importar\"\n\nmsgid \"Export\"\nmsgstr \"Exportar\"\n\nmsgid \"Overwrite\"\nmsgstr \"Substituir\"\n\nmsgid \"Export...\"\nmsgstr \"Exportar...\"\n\nmsgid \"Export as...\"\nmsgstr \"Exportar como...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Exportar PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Exportar PNG como...\"\n\nmsgid \"Quit\"\nmsgstr \"Sair\"\n\nmsgid \"Undo\"\nmsgstr \"Desfazer\"\n\nmsgid \"Redo\"\nmsgstr \"Refazer\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"Histórico de desfazer\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"Estado inicial\"\n\nmsgid \"Copy\"\nmsgstr \"Copiar\"\n\nmsgid \"Cut\"\nmsgstr \"Cortar\"\n\nmsgid \"Paste\"\nmsgstr \"Colar\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Colar no Local\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"Colar da Área de Transferência\"\n\nmsgid \"Delete\"\nmsgstr \"Deletar\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Excluir permanentemente\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Mover para a Lixeira\"\n\nmsgid \"New Brush\"\nmsgstr \"Novo Pincel\"\n\nmsgid \"Scale Image\"\nmsgstr \"Redimensionar Imagem\"\n\nmsgid \"Pixels\"\nmsgstr \"Pixels\"\n\nmsgid \"Percentage\"\nmsgstr \"Porcentagem\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"Modo de cor:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"Modo de Cor\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"Indexada\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"Cortar para a seleção\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"Cortar para o conteúdo\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Redimensionar Tela\"\n\nmsgid \"Offset Image\"\nmsgstr \"Deslocar Imagem\"\n\nmsgid \"Offset:\"\nmsgstr \"Deslocamento:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"Envolver em torno:\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"Centralizar Quadros\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Girar imagem\"\n\nmsgid \"Pivot x:\"\nmsgstr \"Eixo X:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"Eixo Y:\"\n\nmsgid \"Smear options:\"\nmsgstr \"Opções de Mancha:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Tolerância:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Ângulo inicial:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"Envolver pinceladas\"\n\nmsgid \"Clear\"\nmsgstr \"Limpar\"\n\nmsgid \"Invert\"\nmsgstr \"Inverter\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"Selecionar área do cel\"\n\nmsgid \"Modify\"\nmsgstr \"Modificar\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"Expandir\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"Expandir Seleção\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"Encolher\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"Encolher Seleção\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"Borda\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"Seleção de Borda\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"Losango\"\n\nmsgid \"Circle\"\nmsgstr \"Círculo\"\n\nmsgid \"Square\"\nmsgstr \"Quadrado\"\n\nmsgid \"Grayscale View\"\nmsgstr \"Visualização em tons de cinza\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Imagem espelhada\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Inverter Horizontalmente\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Inverter Verticalmente\"\n\nmsgid \"Preferences\"\nmsgstr \"Preferências\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"Procedural\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"Desfoque\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"Carregados\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"Centralizar Tela\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Modo de Tile\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"Deslocamentos do Modo de Tile\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"Base X:\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"Base Y:\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"Máscara:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Redefinir\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"Redefinir %s\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"Usar o Quadro Atual\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Redefinir máscara\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Opacidade da Janela\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"A Opacidade de janela não funciona no modo de tela cheia.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Layout do Painel\"\n\nmsgid \"Panels\"\nmsgstr \"Painéis\"\n\nmsgid \"Layouts\"\nmsgstr \"Layouts\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Painéis Móveis\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"Tornar Flutuante\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Gerenciar Layouts\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Pré-visualização\"\n\nmsgid \"Add\"\nmsgstr \"Adicionar\"\n\nmsgid \"Add Layout\"\nmsgstr \"Adicionar Layout\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"Deletar %s\"\n\nmsgid \"Copy from\"\nmsgstr \"Copiar de\"\n\nmsgid \"Rename\"\nmsgstr \"Renomear\"\n\nmsgid \"Rename Layout\"\nmsgstr \"Renomear layout\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"Layout atual\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Tem certeza de que deseja excluir este layout?\"\n\nmsgid \"Widescreen\"\nmsgstr \"Tela Cheia\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Tela Alta\"\n\nmsgid \"Mirror View\"\nmsgstr \"Visão Espelhada\"\n\nmsgid \"Show Grid\"\nmsgstr \"Mostrar Grade\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Exibir Grade de Pixels\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Mostrar Réguas\"\n\nmsgid \"Show Guides\"\nmsgstr \"Mostrar Guias\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"Mostrar Guias do Mouse\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"Mostrar Imagens de Referência\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"Exibir Efeitos da Camada\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"Encaixar (snap) em\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"Encaixar no Limite da Grade Retangular\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"Encaixar no Centro da Grade Retangular\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"Encaixar nas Guias\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"Encaixar nas Guias de Perspectiva\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Mostrar linha do tempo de animação\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Modo Zen\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Modo Tela Cheia\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Preencher com cor:\"\n\nmsgid \"Open a File\"\nmsgstr \"Abrir um Arquivo...\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Abrir Arquivo(s)...\"\n\nmsgid \"Import Options\"\nmsgstr \"Opções de Importação\"\n\nmsgid \"Import as:\"\nmsgstr \"Importar como:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Aplicar a todos\"\n\nmsgid \"Recent projects\"\nmsgstr \"Projetos recentes\"\n\nmsgid \"New project\"\nmsgstr \"Novo projeto\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"Spritesheet (novo projeto)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Spritesheet (nova camada)\"\n\nmsgid \"New frame\"\nmsgstr \"Novo quadro\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"Substituir a cel\"\n\nmsgid \"New layer\"\nmsgstr \"Nova camada\"\n\nmsgid \"New reference image\"\nmsgstr \"Nova imagem de referência\"\n\nmsgid \"New palette\"\nmsgstr \"Nova paleta\"\n\nmsgid \"New brush\"\nmsgstr \"Novo pincel\"\n\nmsgid \"New pattern\"\nmsgstr \"Novo padrão\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Quadros horizontais:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Quadros verticais:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"Fatia Inteligente\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"Limiar:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"Imagens que tiverem qualquer lado menor que este valor excederão o limite\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"Mesclar distância:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"Imagens que cruzaram o limiar serão mescladas em uma imagem maior, se estiverem dentro desta distância\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"Atualizar\"\n\nmsgid \"Start frame:\"\nmsgstr \"Quadro inicial:\"\n\nmsgid \"End frame:\"\nmsgstr \"Quadro final:\"\n\nmsgid \"At frame:\"\nmsgstr \"No quadro:\"\n\nmsgid \"At layer:\"\nmsgstr \"Na camada:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Tipo do pincel:\"\n\nmsgid \"File brush\"\nmsgstr \"Pincel de arquivo\"\n\nmsgid \"Project brush\"\nmsgstr \"Pincel do projeto\"\n\nmsgid \"Random brush\"\nmsgstr \"Pincel aleatório\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Salvar Sprite como .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Exportar Sprite como .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Exportar Sprite\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Arquivo Já Existe, Substituir?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"Os seguintes arquivos já existem. Você deseja substituí-los?\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"Caminho de pasta inválido!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"Nome de arquivo inválido!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"Caminho de diretório e nome de arquivo inválidos!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Exportação em andamento...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"Não é possível carregar o arquivo '%s'.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Impossível carregar o arquivo '%s'.\\n\"\n\"Código de erro: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"Não é possível carregar o arquivo '%s'.\\n\"\n\"Este não é um arquivo de paleta válido.\"\n\nmsgid \"Frame\"\nmsgstr \"Quadro\"\n\nmsgid \"Frames:\"\nmsgstr \"Quadros:\"\n\nmsgid \"All Frames\"\nmsgstr \"Todos os quadros\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Spritesheet\"\n\nmsgid \"Animation\"\nmsgstr \"Animação\"\n\nmsgid \"Preview:\"\nmsgstr \"Prévia:\"\n\nmsgid \"Frame:\"\nmsgstr \"Quadro:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Orientação:\"\n\nmsgid \"Browse\"\nmsgstr \"Localizar\"\n\nmsgid \"Resize:\"\nmsgstr \"Redimensionar:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"Qualidade:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Cancelar exportação\"\n\nmsgid \"Alert!\"\nmsgstr \"Alerta!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Selecionar pasta atual\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Abrir diretório\"\n\nmsgid \"Background:\"\nmsgstr \"Plano de fundo:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"Quadros selecionados\"\n\nmsgid \"Layers:\"\nmsgstr \"Camadas:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Camadas visíveis\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"Camadas selecionadas\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"Camada de pixel:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"Camada de grupo:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"Camada 3D:\"\n\nmsgid \"Direction:\"\nmsgstr \"Direção:\"\n\nmsgid \"Forward\"\nmsgstr \"Avançar\"\n\nmsgid \"Backwards\"\nmsgstr \"Voltar\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Pingue-pongue\"\n\nmsgid \"Columns\"\nmsgstr \"Colunas\"\n\nmsgid \"Columns:\"\nmsgstr \"Colunas:\"\n\nmsgid \"Rows\"\nmsgstr \"Linhas\"\n\nmsgid \"Rows:\"\nmsgstr \"Linhas:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"Tags em colunas\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"Tags em linhas\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"Exportar dimensões:\"\n\nmsgid \"Save a File\"\nmsgstr \"Salvar um Arquivo\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"Voltar para a pasta anterior.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"Ir para a próxima pasta.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"Ir para a pasta pai.\"\n\nmsgid \"Path:\"\nmsgstr \"Caminho:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"Atualizar arquivos.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"Mostrar/esconder arquivos ocultos.\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Diretórios e Arquivos:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Criar Pasta\"\n\nmsgid \"File:\"\nmsgstr \"Arquivo:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"Todos os Arquivos\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"Compatíveis\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"Projeto Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"Imagem PNG\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"Imagem BMP\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"Imagem Radiance HDR\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"Imagem JPEG\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"Imagem SVG\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"Imagem TGA\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"Imagem WebP\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"Projeto OpenRaster\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"Projeto Aseprite\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"Paleta Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"Paleta GIMP\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"Opções avançadas\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolação:\"\n\nmsgid \"Nearest\"\nmsgstr \"Mais Próximo\"\n\nmsgid \"Bilinear\"\nmsgstr \"Bilinear\"\n\nmsgid \"Cubic\"\nmsgstr \"Cúbica\"\n\nmsgid \"Trilinear\"\nmsgstr \"Trilinear\"\n\nmsgid \"Constant\"\nmsgstr \"Constante\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"Espaço de cores\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"Linear sRGB\"\n\nmsgid \"General\"\nmsgstr \"Geral\"\n\nmsgid \"Startup\"\nmsgstr \"Iniciar\"\n\nmsgid \"Language\"\nmsgstr \"Linguagem\"\n\nmsgid \"Interface\"\nmsgstr \"Interface\"\n\nmsgid \"Themes\"\nmsgstr \"Temas\"\n\nmsgid \"Canvas\"\nmsgstr \"Tela\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"Linha do tempo\"\n\nmsgid \"Selection\"\nmsgstr \"Seleção\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Atalhos\"\n\nmsgid \"Backup\"\nmsgstr \"Backup\"\n\nmsgid \"Performance\"\nmsgstr \"Desempenho\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"Drivers\"\n\nmsgid \"Extensions\"\nmsgstr \"Extensões\"\n\nmsgid \"Cursors\"\nmsgstr \"Cursores\"\n\nmsgid \"Indicators\"\nmsgstr \"Indicadores\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"Pixelorama deve ser reiniciado para que as mudanças entrem em vigor.\"\n\nmsgid \"On\"\nmsgstr \"Ligado\"\n\nmsgid \"Restore default value\"\nmsgstr \"Restaurar o valor padrão\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Ampliar Suave\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Adiciona uma transição mais suave ao aumentar ou diminuir o zoom\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"Zoom Inteiro\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"Restringe que o valor seja um número inteiro múltiplo de 100%\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Sensibilidade de pressão do Tablet:\"\n\nmsgid \"None\"\nmsgstr \"Nenhum\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Afetar o alfa do pincel\"\n\nmsgid \"Color:\"\nmsgstr \"Cor:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Cor da guia:\"\n\nmsgid \"System Language\"\nmsgstr \"Linguagem do Sistema\"\n\nmsgid \"Display scale:\"\nmsgstr \"Mostrar escala:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"Fonte:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"Tamanho da fonte:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Escurecer a interface em um pop-up de diálogo\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"Mostrar rótulos de notificação\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"Usar janela de seleção de arquivos nativa\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"Quando essa configuração está ativada, a janela de seleção de arquivos própria do sistema operacional é utilizada ao invés da do Pixelorama.\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"Modo de janela única\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"Quando essa configuração está ativada, as subjanelas do Pixelorama ficam embutidas na janela principal, caso contrário cada caixa de diálogo fica em sua própria janela separada.\"\n\nmsgid \"Dark\"\nmsgstr \"Escuro\"\n\nmsgid \"Gray\"\nmsgstr \"Cinza\"\n\nmsgid \"Blue\"\nmsgstr \"Azul\"\n\nmsgid \"Caramel\"\nmsgstr \"Caramelo\"\n\nmsgid \"Light\"\nmsgstr \"Claro\"\n\nmsgid \"Purple\"\nmsgstr \"Roxo\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"Rosa\"\n\nmsgid \"Theme\"\nmsgstr \"Tema\"\n\nmsgid \"Buttons\"\nmsgstr \"Botões\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Cor do ícone de:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Cor do ícone:\"\n\nmsgid \"Background\"\nmsgstr \"Plano de fundo\"\n\nmsgid \"Background color from:\"\nmsgstr \"Cor de fundo de:\"\n\nmsgid \"Background color:\"\nmsgstr \"Cor de fundo:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"Compartilhar opções entre as ferramentas esquerda e direita\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"Se estiver ativado, as opções vão se manter sincronizadas entre as ferramentas esquerda e direita.\\n\"\n\"Por exemplo, ambas as ferramentas terão o mesmo tamanho de pincel, e alterá-lo em uma delas também irá mudá-lo na outra.\"\n\nmsgid \"Left tool color:\"\nmsgstr \"Cor da ferramenta esquerda:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"Cor da ferramenta direita:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Tamanho do botão de ferramenta:\"\n\nmsgid \"Small\"\nmsgstr \"Pequeno\"\n\nmsgid \"Big\"\nmsgstr \"Grande\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Apenas afetar a seleção\"\n\nmsgid \"Selected cels\"\nmsgstr \"Cels selecionadas\"\n\nmsgid \"Current cel\"\nmsgstr \"Cel atual\"\n\nmsgid \"Current frame\"\nmsgstr \"Quadro atual\"\n\nmsgid \"All frames\"\nmsgstr \"Todos os quadros\"\n\nmsgid \"All projects\"\nmsgstr \"Todos Projetos\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Inverter Cores\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Modificar canal vermelho\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Modificar O Canal Verde\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Modificar O Canal Azul\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Modificar O Canal Alfa\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Dessaturação\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Contorno\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Sombra projetada\"\n\nmsgid \"Offset X:\"\nmsgstr \"Deslocar X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"Deslocar Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"Cor da sombra:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"Desfoque gaussiano\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"Tipo de desfoque:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"Quantidade de desfoque:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"Raio de desfocagem:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"Direção do desfoque:\"\n\nmsgid \"Gradient\"\nmsgstr \"Gradiente\"\n\nmsgid \"Gradient Map\"\nmsgstr \"Mapa de gradiente\"\n\nmsgid \"Interpolation\"\nmsgstr \"Interpolação\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"Reverter\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"Distribuir pontos uniformemente\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"Dividir em partes iguais\"\n\nmsgid \"Parts:\"\nmsgstr \"Partes:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"Adicionar ponto no final\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"Se isto estiver ativado, o último ponto é adicionado no final do gradiente.\\n\"\n\"Desative isso se você deseja converter o gradiente para ter interpolação constante, assim a última cor será levada em conta.\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"Salvar para predefinições\"\n\nmsgid \"Shape:\"\nmsgstr \"Forma:\"\n\nmsgid \"Linear\"\nmsgstr \"Linear\"\n\nmsgid \"Radial\"\nmsgstr \"Radial\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"Repetir:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"Repetir\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"Espelhar\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"Cortar\"\n\nmsgid \"Transition size:\"\nmsgstr \"Tamanho de transição:\"\n\nmsgid \"Center:\"\nmsgstr \"Centro:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"Padrão de Dithering:\"\n\nmsgid \"Type:\"\nmsgstr \"Tipo:\"\n\nmsgid \"Angle:\"\nmsgstr \"Ângulo:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Ajustar Matiz/Saturação/Valor\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"Ajustar MSV\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Matiz:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Saturação:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Valor:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"Ajustar Brilho/Contraste\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"Brilho:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"Contraste:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"Valor do vermelho:\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"Valor do verde:\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"Valor do Azul:\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"Cor de matiz:\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"Fator de efeito de matiz:\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"Curvas de Cor\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"Canal:\"\n\nmsgid \"Red\"\nmsgstr \"Vermelho\"\n\nmsgid \"Green\"\nmsgstr \"Verde\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"Valor\"\n\nmsgid \"Presets\"\nmsgstr \"Predefinições\"\n\nmsgid \"Apply\"\nmsgstr \"Aplique\"\n\nmsgid \"Diagonal\"\nmsgstr \"Diagonal\"\n\nmsgid \"Place inside image\"\nmsgstr \"Colocar dentro da imagem\"\n\nmsgid \"Thickness:\"\nmsgstr \"Espessura:\"\n\nmsgid \"Colors:\"\nmsgstr \"Cores:\"\n\nmsgid \"Steps:\"\nmsgstr \"Etapas:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"Paletizar\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"Pixelizar\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"Posterização\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"Níveis de posterização:\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"Intensidade do dither:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Ver Tela de Abertura\"\n\nmsgid \"Online Docs\"\nmsgstr \"Documentação Online\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Rastreador de problemas\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"Restaurar ''backup''\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"Sessões passadas\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"Clique duas vezes para carregar uma sessão inteira, ou um projeto específico.\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"Sessões\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"Projetos\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"(Sessão Atual)\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"Abrir pasta de dados do editor\"\n\nmsgid \"Changelog\"\nmsgstr \"Mudanças\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Sobre Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"Apoie o desenvolvimento do Pixelorama\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - Pixelize os seus sonhos!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Desenvolvido por Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"© 2019-por Orama Interactive e Contribuidores\"\n\nmsgid \"Website\"\nmsgstr \"Site\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"Código-fonte\"\n\nmsgid \"Donate\"\nmsgstr \"Doar\"\n\nmsgid \"Developers\"\nmsgstr \"Desenvolvedores\"\n\nmsgid \"Contributors\"\nmsgstr \"Contribuidores\"\n\nmsgid \"Donors\"\nmsgstr \"Doadores\"\n\nmsgid \"Translators\"\nmsgstr \"Tradutores\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Licenças\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"Licença\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"Licenças da Godot\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"Licenças de terceiros\"\n\nmsgid \"English\"\nmsgstr \"Inglês\"\n\nmsgid \"Greek\"\nmsgstr \"Grego\"\n\nmsgid \"French\"\nmsgstr \"Francês\"\n\nmsgid \"German\"\nmsgstr \"Alemão\"\n\nmsgid \"Polish\"\nmsgstr \"Polonês\"\n\nmsgid \"Portuguese\"\nmsgstr \"Português\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Português (Brasil)\"\n\nmsgid \"Russian\"\nmsgstr \"Russo\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Chinês (Simplificado)\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Chinês (Tradicional)\"\n\nmsgid \"Italian\"\nmsgstr \"Italiano\"\n\nmsgid \"Latvian\"\nmsgstr \"Letão\"\n\nmsgid \"Spanish\"\nmsgstr \"Espanhol\"\n\nmsgid \"Catalan\"\nmsgstr \"Catalão\"\n\nmsgid \"Esperanto\"\nmsgstr \"Esperanto\"\n\nmsgid \"Indonesian\"\nmsgstr \"Indonésio\"\n\nmsgid \"Czech\"\nmsgstr \"Tcheco\"\n\nmsgid \"Arabic\"\nmsgstr \"Árabe\"\n\nmsgid \"Turkish\"\nmsgstr \"Turco\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Norueguês Bokmahl\"\n\nmsgid \"Korean\"\nmsgstr \"Coreano\"\n\nmsgid \"Hungarian\"\nmsgstr \"Húngaro\"\n\nmsgid \"Romanian\"\nmsgstr \"Romeno\"\n\nmsgid \"Japanese\"\nmsgstr \"Japonês\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Ucraniano\"\n\nmsgid \"Danish\"\nmsgstr \"Dinamarquês\"\n\nmsgid \"Swedish\"\nmsgstr \"Sueco\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Sérvio (Cirílico)\"\n\nmsgid \"Dutch\"\nmsgstr \"Holandês\"\n\nmsgid \"Belarusian\"\nmsgstr \"Bielorrusso\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"Desenvolvedor Líder\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"Designer de UI\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"Autores\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Arte feita por: %s\"\n\nmsgid \"untitled\"\nmsgstr \"sem título\"\n\nmsgid \"imported\"\nmsgstr \"importado\"\n\nmsgid \"copy\"\nmsgstr \"cópia\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Tem certeza de que quer sair do Pixelorama?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Imagem não salva\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Você tem alterações não salvas. Se você prosseguir, o progresso que você fez será perdido.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Salvar antes de sair?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"Projeto %s tem progresso não salvo. Como deseja continuar?\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Salvar & Sair\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Sair sem salvar\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Seleção Retangular\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Seleção Elíptica\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Seleção Poligonal\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\\n\\n\"\n\"Clique duplo para conectar o último ponto ao ponto inicial\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Seleção por Cor\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Varinha Mágica\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Ferramenta de Seleção Livre / Laço\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Seleção por Desenho\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Mover Conteúdo ou Seleção\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Zoom\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Mover Visão\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"Seletor de Cores\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\\n\\n\"\n\"Seleciona a cor de um pixel do sprite\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"Cortar\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\\n\\n\"\n\"Redimensiona a tela\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Lápis\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\\n\\n\"\n\"Segure %s para desenhar uma linha\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Borracha\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\\n\\n\"\n\"Segure %s para desenhar uma linha\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Preenchimento\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Ferramenta de Sombreamento\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Ferramenta de Linha\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\\n\\n\"\n\"Segure %s para encaixar no ângulo da linha\\n\"\n\"Segure %s para centralizar a forma no clique de origem\\n\"\n\"Segure %s para deslocar a origem da forma\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"Ferramenta de Curva\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\\n\\n\"\n\"Desenha curvas de Bézier\\n\"\n\"Pressione %s/%s para adicionar novos pontos\\n\"\n\"Clique duas vezes para terminar de desenhar a curva\\n\"\n\"Pressione e arraste para controlar a curvatura\\n\"\n\"Pressione %s para remover o último ponto adicionado\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Ferramenta de Retângulo\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\\n\\n\"\n\"Segure %s para criar formas 1:1\\n\"\n\"Segure %s para centralizar a forma no clique de origem\\n\"\n\"Segure %s para deslocar a origem da forma\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Ferramenta de Elipse\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\\n\\n\"\n\"Segure %s para criar formas 1:1\\n\"\n\"Segure %s para centralizar a forma no clique de origem\\n\"\n\"Segure %s para deslocar a origem da forma\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"Caixa de ferramentas isométricas\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\\n\\n\"\n\"Desenhe uma caixa isométrica\\n\"\n\"Pressione %s/%s para adicionar um ponto base\\n\"\n\"Segure %s para ajustar o ângulo do ponto base\\n\"\n\"Segure %s para desposicionar a origem da forma\\n\"\n\"Pressione %s para editar a última base adicionada\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Texto\\n\\n\"\n\"%s para o botão esquerdo do mouse\\n\"\n\"%s para o botão direito do mouse\"\n\nmsgid \"Rectangle\"\nmsgstr \"Retângulo\"\n\nmsgid \"Ellipse\"\nmsgstr \"Elipse\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Escolha uma cor para a ferramenta esquerda\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Escolha uma cor para a ferramenta direita\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"Alternar cores esquerda e direita.\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"Cor intermediária:\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Redefina as cores para o seu estado padrão (preto para a esquerda, branco para a direita)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"Escolha uma cor da janela do aplicativo.\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"Digite um código hex (\\\"#ff0000\\\") ou nome de cor em inglês (\\\"red\\\").\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"Selecione uma forma de seletor.\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"Opções de cor\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"Selecione um modo de seletor.\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"Sliders Coloridos\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"Cores salvas\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"Cores recentes\"\n\nmsgid \"Left tool\"\nmsgstr \"Ferramenta da esquerda\"\n\nmsgid \"Right tool\"\nmsgstr \"Ferramenta da direita\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Indicador pixel do botão esquerdo\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Mostrar o indicador pixel do botão esquerdo do mouse ou o pincel na tela quando desenhando\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Indicador pixel do botão direito\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Mostrar o indicador pixel do botão direito do mouse ou o pincel na tela quando desenhando\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Mostrar ícone da ferramenta da esquerda\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Exibe um ícone da ferramenta selecionada da esquerda ao lado do cursor na tela\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Mostrar ícone da ferramenta da direita\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Exibe um ícone da ferramenta selecionada da direita ao lado do cursor na tela\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"Usar cursores nativos do mouse\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"Usar o cursor de cruz para a tela\"\n\nmsgid \"Guides\"\nmsgstr \"Guias\"\n\nmsgid \"Guides color:\"\nmsgstr \"Cor das guias:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Cor das guias de régua exibidas na tela\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"Encaixe (snap)\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"Distância de encaixe:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"Essa é a distância em pixels onde o encaixe de guia e de grade é ativado.\"\n\nmsgid \"Grid\"\nmsgstr \"Grade\"\n\nmsgid \"Grid type:\"\nmsgstr \"Tipo De Grade:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Define o tipo de grade entre retangular, isométrica ou ambas\"\n\nmsgid \"Rectangular\"\nmsgstr \"Retangular\"\n\nmsgid \"Isometric\"\nmsgstr \"Isométrico\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"Hexagonal\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"Hexagonal (vértices na vertical)\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"Hexagonal (vértices na horizontal)\"\n\nmsgid \"All\"\nmsgstr \"Tudo\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"Grades visíveis:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"Grade sendo editada:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"Tamanho da grade:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"Deslocamento da grade:\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"Define o deslocamento da grade em relação à origem da tela(canto superior esquerdo da imagem)\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"Desenhar sobre o Modo de Tile:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"Se desativado, a grade será desenhada somente sobre a imagem original\"\n\nmsgid \"Grid color:\"\nmsgstr \"Cor da grade:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"A cor da grade\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Grade de Pixel\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Mostrar no zoom:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"Define o zoom mínimo no qual a grade de pixel será exibida\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Cor da grade de pixels:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"A cor da grade de pixels\"\n\nmsgid \"Transparency\"\nmsgstr \"Transparência\"\n\nmsgid \"Checker size:\"\nmsgstr \"Tamanho do quadriculado xadrez:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Tamanho do xadrez do fundo transparente\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Cor 1 do xadrez:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"Primeira cor do xadrez do fundo transparente\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Cor 2 do xadrez:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"Segunda cor do xadrez do fundo transparente\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"Seguir Movimento da Tela\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"O verificador transparente segue o movimento da tela\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"Seguir Nível de Zoom da Tela\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"O verificador transparente segue o nível de zoom da tela\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"Selecione a camada ao clicar em um dos seus botões:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"Última cor do Onion Skinning:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"Próxima cor do Onion Skinning:\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"Bordas de seleção animada\"\n\nmsgid \"Border color 1:\"\nmsgstr \"Cor da borda 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Cor da borda 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"Pré-visualização de transformação alfa:\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Apenas predefinição personalizada pode ser modificada\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"Definir o limite de FPS do aplicativo:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"Define o limite de FPS (quadros por segundo) do aplicativo. Quanto menor o número, menor o uso da CPU, mas o aplicativo fica mais lento, com qualidade ruim e sem resposta. 0 significa que não há limite.\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"Máximo de ações salvas para desfazer:\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"Pausar aplicativo quando perder o foco\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"Se isto for ativado, quando a janela do aplicativo perder o foco, ele é pausado. Isso ajuda a reduzir o uso da CPU quando o aplicativo estiver ocioso. Ele volta à atividade quando o mouse entra em sua janela.\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"Atualização contínua\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"Se esta opção estiver habilitada, o aplicativo irá redesenhar a tela continuamente, mesmo enquanto não estiver em uso. Desligar isso ajuda a reduzir o uso de CPU e GPU quando estiver inativo.\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"Ativar transparência de janela\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"Se essa opção estiver ativada, a janela do aplicativo pode ficar transparente. Isso afeta o desempenho, então deixe-a desativada se não precisar dela.\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"Usar driver de áudio fictício\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"Renderizador:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"Especifica o driver de renderização/vídeo que está sendo usado. O GLES2 é melhor para dispositivos mais antigos e de baixo custo, mas o GLES3 pode oferecer mais recursos.\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"Driver do Tablet:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"Especifica o driver do tablet q está sendo usado no Windows. Se você tiver o Windows Ink ativado, selecione winink.\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Adicionar Extensão\"\n\nmsgid \"Enable\"\nmsgstr \"Habilitar\"\n\nmsgid \"Disable\"\nmsgstr \"Desabilitar\"\n\nmsgid \"Uninstall\"\nmsgstr \"Desinstalar\"\n\nmsgid \"Open Folder\"\nmsgstr \"Abrir Pasta\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"Explorar Online\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"Explorador de Extensões\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"Pesquisar...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"Tags:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"Relatar um problema com uma extensão\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"Baixar\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"Links de repositórios:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"Buscando dados do repositório remoto.\\n\"\n\"Aguarde.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"Não foi possível obter informações do repositório remoto.\\n\\n\"\n\"- Certifique-se de que seu dispositivo está conectado à internet.\\n\"\n\"- Se estiver usando a versão de Flatpak do Pixelorama, você precisa conceder ao programa a permissão de se conectar à internet. Para tanto, você pode executar o seguinte comando no seu terminal:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"Como alternativa, você pode baixar o Flatseal e nele configurar as permissões de aplicativos Flatpak.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"Não foi possível obter informações do repositório remoto.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"Cole aqui o link do repositório, fornecido pelo dono. Se este campo for deixado vazio, será automaticamente removido.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"Tem certeza de que deseja habilitar essa extensão? Certifique-se de habilitar apenas extensões de fontes em que você confia.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"Tem certeza de que deseja deletar essa extensão?\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"Dinâmicas\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"Estabilizador\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"Pressão\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"Velocidade\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"Alpha\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"Tamanho\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"Limites de valor\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"Limiares\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"Iniciar\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"Fim\"\n\nmsgid \"Brush:\"\nmsgstr \"Pincel:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Selecione um pincel\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"Pincéis Padrão\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Pincel de pixels\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Pincel circular\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Pincel circular preenchido\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"Pincéis do Projeto\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"Pincéis de Arquivo\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"Neve\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"Pincéis Aleatórios de Arquivo\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"Grama\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"Estrela\"\n\nmsgid \"Custom brush\"\nmsgstr \"Pincel customizado\"\n\nmsgid \"Brush size:\"\nmsgstr \"Tamanho do pincel:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"Opções de rotação\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"Inverter:\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"Girar:\"\n\nmsgid \"Overwrite color\"\nmsgstr \"Substituir Cor\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Substitui a cor ao invés de misturá-la. Esta opção é relevante apenas com cores que não são totalmente opacas\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Pixel Perfeito\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"Pixel Perfect\\n\"\n\"Torna as linhas suaves removendo pixels extras nas bordas\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"Bloquear alfa\"\n\nmsgid \"Fill inside\"\nmsgstr \"Preenchimento interno\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"Espaçamento\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"Espaçamento X:\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"Espaçamento Y:\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Preencher Forma\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"Preenche a forma desenhada com cor, em vez de desenhar uma forma oca\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"Densidade:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"Intensidade da cor:\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: Cor do próprio pincel, 100: A cor atualmente selecionada\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"Preencher área:\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"Área semelhante\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"Cores semelhantes\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"Seleção inteira\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"Preencha as regiões com a combinação de todas as camadas\"\n\nmsgid \"Fill with:\"\nmsgstr \"Preencher com:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"Cor selecionada\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Padrão\"\n\nmsgid \"Offset\"\nmsgstr \"Deslocamento\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Sombreamento Simples\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Deslocamento de Matiz\"\n\nmsgid \"Lighten\"\nmsgstr \"Iluminar\"\n\nmsgid \"Darken\"\nmsgstr \"Escurecer\"\n\nmsgid \"Amount:\"\nmsgstr \"Quantidade:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Quantidade de iluminação/escurecimento\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"Substituição de Cores\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"Por favor, selecione uma cor da paleta.\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"Cores à direita:\"\n\nmsgid \"Pick for:\"\nmsgstr \"Selecionar para:\"\n\nmsgid \"Left Color\"\nmsgstr \"Cor Esquerda\"\n\nmsgid \"Right Color\"\nmsgstr \"Cor Direita\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"Modo de seleção:\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"Cor Superior\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"Camada Atual\"\n\nmsgid \"Mode:\"\nmsgstr \"Modo:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Aumentar zoom\"\n\nmsgid \"Zoom out\"\nmsgstr \"Diminuir zoom\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"Simples\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"Cadeia\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"Cadeia: Faz uma cadeia de múltiplas curvas de Bézier, de modo similar à ferramenta de curva do Krita.\\n\"\n\"Simples: Faz uma única curva de Bézier, de modo similar à ferramenta de curva do Aseprite.\"\n\nmsgid \"Options\"\nmsgstr \"Opções\"\n\nmsgid \"Options:\"\nmsgstr \"Opções:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"Ajustar ao quadro\"\n\nmsgid \"100% Zoom\"\nmsgstr \"Zoom 100%\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"Substituir seleção\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"Adicionar à seleção\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"Subtrair da seleção\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"Interseção de seleções\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"Estilo:\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"Regular\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"Negrito\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"Itálico\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"Negrito itálico\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"Anti-aliasing\"\n\nmsgid \"Grayscale\"\nmsgstr \"Escala de cinza\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"Cor da borda\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"Cor da ferramenta\"\n\nmsgid \"Adjusted average\"\nmsgstr \"Média ajustada\"\n\nmsgid \"Blend at interface\"\nmsgstr \"Mesclar na ''interface''\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"Face Esquerda\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"Face Direita\"\n\nmsgid \"Mirroring\"\nmsgstr \"Espelhamento\"\n\nmsgid \"Horizontal\"\nmsgstr \"Horizontal\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Ativar desenho com espelhamento horizontal\"\n\nmsgid \"Vertical\"\nmsgstr \"Vertical\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Ativar desenho com espelhamento vertical\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"Habilitar desenho espelhado diagonal (↗)\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"Habilitar desenho espelhado diagonal (↘)\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"Mover para o centro da imagem\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"Mover para o centro da visão\"\n\nmsgid \"Current frame:\"\nmsgstr \"Quadro atual:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"Modo de animação:\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"Quadro atual como spritesheet\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"Pular para o primeiro quadro\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"Ir para o quadro anterior\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"Reproduzir animação de trás para frente\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"Reproduzir animação\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"Ir para o próximo quadro\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"Pular para o último quadro\"\n\nmsgid \"Timeline settings\"\nmsgstr \"Configurações da linha do tempo\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Ativar/desativar Onion Skinning\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"A quantos quadros por segundo a animação deverá tocar?\\n\"\n\"Quanto mais FPS (quadros por segundo), mais rápido a animação tocará.\"\n\nmsgid \"No loop\"\nmsgstr \"Sem loop\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Loop cíclico\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Loop vai-e-vem\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Onion Skinning:\"\n\nmsgid \"Past Frames\"\nmsgstr \"Quadros Anteriores\"\n\nmsgid \"Future Frames\"\nmsgstr \"Quadros Sucessores\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Gerenciar tags de quadro\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Propriedades do quadro\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Adicionar um novo quadro\"\n\nmsgid \"Name:\"\nmsgstr \"Nome:\"\n\nmsgid \"From:\"\nmsgstr \"De:\"\n\nmsgid \"To:\"\nmsgstr \"Para:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"A animação só é reproduzida em quadros de mesma tag\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Tag %s (Quadro %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Tag %s (Quadros %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Se selecionado, a animação é reproduzida apenas nos quadros que possuem a mesma tag.\\n\"\n\"Caso contrário, a animação será reproduzida em todos os quadros, ignorando as tags.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"Tamanho da cel:\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"Modo de cor\"\n\nmsgid \"Show past frames:\"\nmsgstr \"Mostrar quadros anteriores:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"Mostrar quadros sucessores:\"\n\nmsgid \"Above canvas\"\nmsgstr \"Acima da tela de desenho\"\n\nmsgid \"Below canvas\"\nmsgstr \"Abaixo da tela de desenho\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"Se você deseja que uma camada ignore o onion skinning simplesmente adicione o sufixo \\\"_io\\\" em seu nome.\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Adicionar um novo quadro\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Remover quadro\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Clonar quadro\"\n\nmsgid \"Move Left\"\nmsgstr \"Mover para a Esquerda\"\n\nmsgid \"Move Right\"\nmsgstr \"Mover para a Direita\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"Selecionar pixels\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"Vincular cels a\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"Desvincular cels\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"Reproduzir áudio aqui\"\n\nmsgid \"Properties\"\nmsgstr \"Propriedades\"\n\nmsgid \"Project Properties\"\nmsgstr \"Propriedades do Projeto\"\n\nmsgid \"Frame properties\"\nmsgstr \"Propriedades do quadro\"\n\nmsgid \"Layer properties\"\nmsgstr \"Propriedades da camada\"\n\nmsgid \"Cel properties\"\nmsgstr \"Propriedades da Cel\"\n\nmsgid \"Tag properties\"\nmsgstr \"Propriedades da Tag\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"Nova Tag\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"Importar Marcação\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"Inverter Quadros\"\n\nmsgid \"Layer\"\nmsgstr \"Camada\"\n\nmsgid \"Group\"\nmsgstr \"Grupo\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"Tilemap\"\n\nmsgid \"Audio\"\nmsgstr \"Áudio\"\n\nmsgid \"Layers\"\nmsgstr \"Camadas\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"Máscara de recorte\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"Achatar\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"Achatar visíveis\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Criar nova camada\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"Adicionar Camada de Pixel\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"Adicionar Camada de Grupo\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"Adicionar Camada 3D\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"Adicionar Camada de Tilemap\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"Adicionar Camada de Áudio\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Remover camada atual\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Mover para a cima a camada atual\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Mover para baixo a camada atual\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Clonar camada atual\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Combinar camada atual com a de baixo\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"Modo de mesclagem:\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"Passar através\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"Normal\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"Apagar\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"Multiplicar\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"Superexposição de cores\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"Superexposição linear\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"Divisão\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"Subexposição de cores\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"Contraste\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"Sobreposição\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"Luz suave\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"Luz dura\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"Inversão\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"Diferença\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"Exclusão\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"Subtrair\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"Divisão\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"Componente\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"Matriz\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"Saturação\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"Cor\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"Luminosidade\"\n\nmsgid \"Opacity:\"\nmsgstr \"Opacidade:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"Opacidade do modo de tile:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Mudar visibilidade da camada\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Bloquear/desbloquear camada\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Quadro: %s, Camada: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"Ativar/desativar a vinculação automática de novas cels ao criar novos quadros\\n\\n\"\n\"Cels vinculadas compartilham o conteúdo entre vários quadros\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"Expandir/recolher grupo\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"Arquivo de áudio:\"\n\nmsgid \"Load file\"\nmsgstr \"Carregar arquivo\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"Reproduzir a partir do frame:\"\n\nmsgid \"Palette\"\nmsgstr \"Paleta\"\n\nmsgid \"Palettes\"\nmsgstr \"Paletas\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Adicionar uma nova paleta\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Editar paleta selecionada\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Escolher uma paleta\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Desfazer: Desenhar\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Refazer: Desenhar\"\n\nmsgid \"Undo: Select\"\nmsgstr \"Desfazer: Selecionar\"\n\nmsgid \"Redo: Select\"\nmsgstr \"Refazer: Selecionar\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Desfazer: Redimensionar\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Refazer: Redimensionar\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Desfazer: Adicionar Camada\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Refazer: Adicionar Camada\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Desfazer: Remover Camada\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Refazer: Remover Camada\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Desfazer: Combinar Camada\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Refazer: Combinar Camada\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Desfazer: Mudar Ordem das Camadas\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Refazer: Mudar Ordem das Camadas\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Desfazer: Adicionar Quadro\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Refazer: Adicionar Quadro\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Desfazer: Remover Quadro\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Refazer: Remover Quadro\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Desfazer: Mudar Ordem dos Quadros\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Refazer: Mudar Ordem dos Quadros\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Desfazer: Deletar Pincel Customizado\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Refazer: Deletar Pincel Customizado\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"Desfazer: Modificar Tag do Quadro\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"Refazer: Modificar Tag do Quadro\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"Desfazer: Excluir Tag do Quadro\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"Refazer: Excluir Tag do Quadro\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"Desfazer: Alterar a duração do quadro\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"Refazer: Mudar a duração do quadro\"\n\nmsgid \"Move Guide\"\nmsgstr \"Mover Guia\"\n\nmsgid \"File saved\"\nmsgstr \"Arquivo salvo\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"Backup salvo\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"Arquivo falhou ao abrir. Código do erro %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"Arquivo falhou ao salvar. Código de erro %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"O vídeo falhou na exportação. Certifique-se de que o FFMPEG está instalado corretamente.\"\n\nmsgid \"File(s) exported\"\nmsgstr \"Arquivo(s) exportado(s)\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Nova Paleta Vazia\"\n\nmsgid \"Import Palette\"\nmsgstr \"Importar Paleta\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Criar paleta a partir do sprite atual\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Nome da Paleta:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Nome da Cor:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"Use as cores esquerda e direita atuais\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Criar uma nova paleta vazia?\"\n\nmsgid \"Error\"\nmsgstr \"Erro\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Erro: Paleta deve ter um nome válido.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Arquivo de Paleta inválido!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Editar Paleta\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"Crie cores com o componente alfa\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"Obter cores somente da seleção\"\n\nmsgid \"Get colors from\"\nmsgstr \"Obter cores de\"\n\nmsgid \"Patrons:\"\nmsgstr \"Patrões\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"Quer que seu nome ou sua empresa seja mostrado na tela de abertura?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Seja um Patrocinador Platina\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Seja um Patrocinador Ouro\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Seja um Patrono\"\n\nmsgid \"Don't show again\"\nmsgstr \"Não mostrar de novo\"\n\nmsgid \"Image Options\"\nmsgstr \"Opções de Imagem\"\n\nmsgid \"Default width:\"\nmsgstr \"Largura padrão:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"Largura padrão de uma nova imagem\"\n\nmsgid \"Default height:\"\nmsgstr \"Altura padrão:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"Altura padrão de uma nova imagem\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Cor de preenchimento padrão:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"Cor de fundo padrão de uma nova imagem\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"Redefinir todas as opções disponíveis nas Preferências\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"Redefinir opções da linha do tempo\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"Redefinir todas as opções de ferramenta\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"Remover todas as extensões\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"Limpar a lista de arquivos abertos recentemente\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"Fixar proporção\"\n\nmsgid \"Portrait\"\nmsgstr \"Retrato\"\n\nmsgid \"Landscape\"\nmsgstr \"Modo Paisagem / Horizontal\"\n\nmsgid \"Templates:\"\nmsgstr \"Modelos:\"\n\nmsgid \"Preset\"\nmsgstr \"Predefinição\"\n\nmsgid \"Preset:\"\nmsgstr \"Predefinição:\"\n\nmsgid \"Default\"\nmsgstr \"Padrão\"\n\nmsgid \"Custom\"\nmsgstr \"Personalizado\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Seleção Retangular\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"Seleção Elíptica\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"Seleção Poligonal\"\n\nmsgid \"Select By Color\"\nmsgstr \"Seleção por Cor\"\n\nmsgid \"Magic Wand\"\nmsgstr \"Varinha Mágica\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"Ferramenta de Seleção Livre / Laço\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"Seleção por Desenho\"\n\nmsgid \"Move\"\nmsgstr \"Mover\"\n\nmsgid \"Zoom\"\nmsgstr \"Zoom\"\n\nmsgid \"Pan\"\nmsgstr \"Mover\"\n\nmsgid \"Color Picker\"\nmsgstr \"Seleção de Cores\"\n\nmsgid \"Pencil\"\nmsgstr \"Lápis\"\n\nmsgid \"Eraser\"\nmsgstr \"Borracha\"\n\nmsgid \"Bucket\"\nmsgstr \"Preenchimento\"\n\nmsgid \"Shading Tool\"\nmsgstr \"Ferramenta de sombreamento\"\n\nmsgid \"Line Tool\"\nmsgstr \"Ferramenta Linha\"\n\nmsgid \"Curve Tool\"\nmsgstr \"Ferramenta de Curva\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"Ferramenta Retângulo\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"Ferramenta Elipse\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"Caixa de ferramenta isométrica\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Trocar Cores\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Definir o atalho\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Aperte uma tecla ou uma combinação de teclas para definir o atalho\"\n\nmsgid \"Already assigned\"\nmsgstr \"Já atribuído\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Ferramenta da Esquerda:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Ferramenta atribuída ao botão esquerdo do mouse\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Ferramenta da Direita:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Ferramenta atribuída ao botão direito do mouse\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"Não foi possível localizar arquivo do último projeto.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"Não foi possível localizar arquivo do último projeto.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Você ainda não salvou nem abriu nenhum projeto no Pixelorama!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Abrir último projeto\"\n\nmsgid \"Open last project...\"\nmsgstr \"Abrir último projeto...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Abrir último projeto ao iniciar\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Abrir último projeto aberto ao iniciar\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"Confirmação de saída\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"Caminho do FFMPEG\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Habilitar salvamento automático\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Intervalo do salvamento automático:\"\n\nmsgid \"minute(s)\"\nmsgstr \"minuto(s)\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"Exportar dados JSON\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"Separar camadas\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"Incluir tags do quadro no nome do arquivo\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"Criar nova pasta para cada tag de quadro\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"Cria vários arquivos, mas cada arquivo é armazenado em um diretório diferente que corresponde à sua tag de quadro\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"Usar caractere(s) de separação:\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"O(s) caractere(s) que separam o nome do arquivo e o número do quadro\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"Cortar imagens\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"Corta as imagens exportadas para sua parte visível, considerando cada pixel com um canal alfa diferente de zero como visível.\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"Cortar conteúdo da imagem para a seleção\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"Exportar apenas o conteúdo que está dentro dos limites da área selecionada.\"\n\nmsgid \"Close\"\nmsgstr \"Fechar\"\n\nmsgid \"Discard All\"\nmsgstr \"Descartar Todos\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"Pixelorama não foi encerrado corretamente da última vez. Você gostaria de restaurar a sessão anterior?\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"Backup recarregado\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Remover paleta selecionada\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"Você tem certeza que deseja remover esta paleta? (Não pode ser desfeito)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Você não pode remover mais paletas!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Não foi possível remover a paleta porque ela não existe!\"\n\nmsgid \"and\"\nmsgstr \"e\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Mover o quadro selecionado para a esquerda.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Mover o quadro selecionado para a direita.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"Duração do quadro:\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"Dados do usuário:\"\n\nmsgid \"Duration\"\nmsgstr \"Duração\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"Tiles em ambos os eixos\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"Tiles no eixo X\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Tiles no eixo Y\"\n\nmsgid \"Create a new palette\"\nmsgstr \"Criar uma nova paleta\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"Criar uma nova paleta de projeto\"\n\nmsgid \"Comment:\"\nmsgstr \"Comentário:\"\n\nmsgid \"Empty\"\nmsgstr \"Vazio\"\n\nmsgid \"From Current Palette\"\nmsgstr \"Da Paleta atual\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"Do Sprite Atual\"\n\nmsgid \"From Current Selection\"\nmsgstr \"Da Seleção Atual\"\n\nmsgid \"Add a new color\"\nmsgstr \"Adicionar uma nova cor\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"Remover uma cor selecionada\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"Ordenar paleta\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"Inverter cores\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"Ordenar por matiz\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"Ordenar por saturação\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"Ordenar por valor\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"Ordenar por claridade\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"Ordenar pelo vermelho\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"Ordenar pelo verde\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"Ordenar pelo azul\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"Ordenar pelo alfa\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"Já existe uma paleta com o mesmo nome e caminho!\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"O nome da paleta é obrigatório!\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"Reduzir o tamanho da paleta irá redefinir as posições de cores. Cores que não caibam no novo tamanho da paleta serão perdidas!\"\n\nmsgid \"Position:\"\nmsgstr \"Posição:\"\n\nmsgid \"Tools\"\nmsgstr \"Ferramentas\"\n\nmsgid \"Main Canvas\"\nmsgstr \"Tela principal\"\n\nmsgid \"Second Canvas\"\nmsgstr \"Segunda tela\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"Linha do tempo da animação\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"Pré-visualização da tela\"\n\nmsgid \"Color Pickers\"\nmsgstr \"Seletor de cores\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"Opções de ferramentas globais\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"Opções da Ferramenta Esquerda\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"Opções da Ferramenta Direita\"\n\nmsgid \"Reference Images\"\nmsgstr \"Imagens de Referência\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"Editor de Perspectiva\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"Gravador\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"Tiles\"\n\nmsgid \"Crop\"\nmsgstr \"Cortar\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"Redimensionar tela\"\n\nmsgid \"Margins\"\nmsgstr \"Margens\"\n\nmsgid \"Position + Size\"\nmsgstr \"Posição + Tamanho\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"Proporção Bloqueada\"\n\nmsgid \"Margins:\"\nmsgstr \"Margens:\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"Proporção:\"\n\nmsgid \"Top:\"\nmsgstr \"Topo:\"\n\nmsgid \"Bottom:\"\nmsgstr \"Base:\"\n\nmsgid \"Left:\"\nmsgstr \"Esquerda:\"\n\nmsgid \"Right:\"\nmsgstr \"Direita:\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"Tamanho bloqueado\\n\\n\"\n\"Quando ativado, usar a ferramenta na tela só irá mover o retângulo de corte.\\n\\n\"\n\"Quando desativado, usar a ferramenta da tela irá desenhar o retângulo.\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"Editar Forma 3D\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"Caixa\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"Esfera\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"Cápsula\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"Cilindro\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"Prisma\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"Torus\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"Plano\"\n\nmsgid \"Text\"\nmsgstr \"Texto\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"Luz direcional\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"Holofote\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"Ponto de luz\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"Modelo personalizado\"\n\nmsgid \"Selected object:\"\nmsgstr \"Objeto selecionado:\"\n\nmsgid \"Add new object\"\nmsgstr \"Adicionar um novo objeto\"\n\nmsgid \"Remove object\"\nmsgstr \"Remover objeto\"\n\nmsgid \"Camera\"\nmsgstr \"Câmera\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"Projeção:\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"Perspectiva\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"Ortogonal\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"Frustum\"\n\nmsgid \"Rotation:\"\nmsgstr \"Rotação:\"\n\nmsgid \"Scale:\"\nmsgstr \"Escala:\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"Ambiente\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"Cor ambiente:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"Energia da cor do ambiente:\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"Visível:\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"Transformar\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"Malha\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"Esquerda para a direita:\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"Raio:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"Segmentos radiais:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"Anéis:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"É hemisfério:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"Raio superior:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"Raio inferior:\"\n\nmsgid \"Text:\"\nmsgstr \"Texto:\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"Profundidade:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"Tamanho do pixel:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"Passo da curva:\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"Alinhamento horizontal:\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"Alinhamento vertical:\"\n\nmsgid \"Left\"\nmsgstr \"Esquerda\"\n\nmsgid \"Right\"\nmsgstr \"Direita\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"Espaçamento entre linhas:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"Energia:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"Negativo:\"\n\nmsgid \"Shadow:\"\nmsgstr \"Sombra:\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"Alcance:\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"Propriedades Animáveis\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"Pré-visualizar quadro:\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"Animar\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"Valor inicial:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"Valor final:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"Tipo de \\\"easing\\\":\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"Começa devagar e acelera no final\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"Começa rápido e desacelera no final\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"Lento nas extremidades, rápido no meio\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"Rápido nas extremidades, lento no meio\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"Quadrático (potência de 2)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"Cúbico (potência de 3)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"Quártico (potência de 4)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"Quíntico (potência de 5)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"Exponencial (potência de x)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"Raiz quadrada\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"Seno\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"Balançando nas bordas\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"Quicando no final\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"Recuando nos finais\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"Movimento súbito no fim\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"Monocromático\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"Ao abrir uma imagem, ela pode ser importada como uma referência.\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"Selecione uma imagem abaixo para alterar suas propriedades.\\n\"\n\"Note que você não pode desenhar enquanto uma imagem de referência está selecionada.\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"Remover\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"Segure Shift enquanto pressiona para remover instantaneamente.\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"Tem certeza de que deseja remover essa imagem de referência? Ela não será excluída do seu sistema.\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"Mover a imagem de referência selecionada para a direita\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"Mover a imagem de referência selecionada para a esquerda\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"Seleciona uma imagem de referência na tela\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"Mover a imagem de referência selecionada\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"Girar a imagem de referência selecionada\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"Redimensionar a imagem de referência selecionada\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"nenhuma\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"Redefinir Transformação\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"Posição\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"Escala\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"Rotação\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"Filtro\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"Opacidade\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"Clamping de cores\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"Ativado\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"Efeitos de camada\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"Adicionar efeito\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"Você deseja baixar a imagem de %s?\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"Tileset\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"Tileset:\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"Tilesets\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"Novo tileset\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"Nome do tileset:\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"Tamanho do tile:\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"Formato dos tiles:\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"Layout dos tiles:\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"Eixo do deslocamento dos tiles:\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"Para todos os formatos semi-deslocados (Isométrico & Hexagonal), determina o eixo do deslocamento.\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"Acumulado\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"Acumulado e deslocado\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"Escadas à direita\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"Escadas descendo\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"Losango à direita\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"Losango para baixo\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"Somente colocar tiles:\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"Ativar o modo para somente colocar tiles é uma ação permanente. Após ativado, você só poderá colocar tiles, sem a possibilidade de modificar os tiles existentes nessa camada.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"Selecione um tile para colocá-lo na tela.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"Modificar tiles na tela.\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"Desenhar tiles\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"Girar tile para a esquerda (anti-horário)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"Girar tile para a direita (horário)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"Inverter tile horizontalmente\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"Inverter tile verticalmente\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"Manual\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Automático\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"Acumular\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"Tamanho do botão de tile:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"Mostrar tile vazio:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"Propriedades do Tile\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"Probabilidade:\"\n\n"
  },
  {
    "path": "Translations/pt_PT.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: pt-PT\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Portuguese\\n\"\n\"Language: pt_PT\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"Cancelar\"\n\nmsgid \"Open\"\nmsgstr \"Abrir\"\n\nmsgid \"Save\"\nmsgstr \"Gravar\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Confirme por favor...\"\n\nmsgid \"File Name:\"\nmsgstr \"Nome do Ficheiro:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Nome do Projeto:\"\n\nmsgid \"Image Size\"\nmsgstr \"Tamanho de Imagem\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Tamanho da Tela\"\n\nmsgid \"Frame Size\"\nmsgstr \"Dimensões do fotograma\"\n\nmsgid \"Size:\"\nmsgstr \"Tamanho:\"\n\nmsgid \"Width:\"\nmsgstr \"Largura:\"\n\nmsgid \"Height:\"\nmsgstr \"Altura:\"\n\nmsgid \"Center\"\nmsgstr \"Centrar\"\n\nmsgid \"File\"\nmsgstr \"Ficheiro\"\n\nmsgid \"Edit\"\nmsgstr \"Editar\"\n\nmsgid \"Select\"\nmsgstr \"Selecionar\"\n\nmsgid \"View\"\nmsgstr \"Vista\"\n\nmsgid \"Window\"\nmsgstr \"Janela\"\n\nmsgid \"Image\"\nmsgstr \"Imagem\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"Projeto\"\n\nmsgid \"Effects\"\nmsgstr \"Efeitos\"\n\nmsgid \"Help\"\nmsgstr \"Ajuda\"\n\nmsgid \"New\"\nmsgstr \"Novo\"\n\nmsgid \"New...\"\nmsgstr \"Novo...\"\n\nmsgid \"Open...\"\nmsgstr \"Abrir...\"\n\nmsgid \"Save...\"\nmsgstr \"Gravar...\"\n\nmsgid \"Save as...\"\nmsgstr \"Gravar como...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"Incluir imagens mescladas\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"Se ativado, as imagens mescladas finais também serão armazenadas no pxo, para cada frame. Isto faz o ficheiro pxo maior e serve para importar por software de terceiros ou exportação por CLI. Esta opção não é necessária para abrir ficheiros pxo em Plexorama.\"\n\nmsgid \"Import\"\nmsgstr \"Importar\"\n\nmsgid \"Export\"\nmsgstr \"Exportar\"\n\nmsgid \"Overwrite\"\nmsgstr \"Sobrescrever\"\n\nmsgid \"Export...\"\nmsgstr \"Exportar...\"\n\nmsgid \"Export as...\"\nmsgstr \"Exportar como...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Exportar PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Exportar PNG como...\"\n\nmsgid \"Quit\"\nmsgstr \"Sair\"\n\nmsgid \"Undo\"\nmsgstr \"Desfazer\"\n\nmsgid \"Redo\"\nmsgstr \"Refazer\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"Copiar\"\n\nmsgid \"Cut\"\nmsgstr \"Cortar\"\n\nmsgid \"Paste\"\nmsgstr \"Colar\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Colar no Lugar\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"Colar da Área de Transferência\"\n\nmsgid \"Delete\"\nmsgstr \"Apagar\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Apagar Permanentemente\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Mover para o Lixo\"\n\nmsgid \"New Brush\"\nmsgstr \"Novo Pincel\"\n\nmsgid \"Scale Image\"\nmsgstr \"Escalar Imagem\"\n\nmsgid \"Pixels\"\nmsgstr \"Pixéis\"\n\nmsgid \"Percentage\"\nmsgstr \"Percentagem\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"Modo de cor:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"Modo de Cor\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"Indexado\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"Recortar à Seleção\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"Recortar ao Conteúdo\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Redimensionar Tela\"\n\nmsgid \"Offset Image\"\nmsgstr \"Deslocar Imagem\"\n\nmsgid \"Offset:\"\nmsgstr \"Descolamento:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"Envolver à volta:\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"Centrar Frames\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Rodar Imagem\"\n\nmsgid \"Pivot x:\"\nmsgstr \"Pivô x:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"Pivô y:\"\n\nmsgid \"Smear options:\"\nmsgstr \"Opções de smear:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Tolerância:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Ângulo inicial:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"Envolver Pinceladas\"\n\nmsgid \"Clear\"\nmsgstr \"Limpar\"\n\nmsgid \"Invert\"\nmsgstr \"Inverter\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"Selecionar área de célula\"\n\nmsgid \"Modify\"\nmsgstr \"Modificar\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"Expandir\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"Expandir Seleção\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"Diminuir\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"Diminuir Seleção\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"Borda\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"Seleção da Borda\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"Diamante\"\n\nmsgid \"Circle\"\nmsgstr \"Círculo\"\n\nmsgid \"Square\"\nmsgstr \"Quadrado\"\n\nmsgid \"Grayscale View\"\nmsgstr \"Visualização em escala de cinzentos\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Espelhar imagem\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Virar Horizontalmente\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Virar Verticalmente\"\n\nmsgid \"Preferences\"\nmsgstr \"Preferencias\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"Procedural\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"Desfoque\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"Carregado\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"Centrar Tela\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Modo de Azuleijo\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"Desvios do Modo Mosaico\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"Base X:\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"Base Y:\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"Máscara:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Repor\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"Repor %s\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"Utilizar fotograma atual\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Repor máscara\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Opacidade da janela\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"A opacidade da janela não funciona em modo de ecrã completo.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Esquema de Painel\"\n\nmsgid \"Panels\"\nmsgstr \"Painéis\"\n\nmsgid \"Layouts\"\nmsgstr \"Layouts\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Painéis amovíveis\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"Tornar Flutuante\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Gerir disposições\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Pré-visualização\"\n\nmsgid \"Add\"\nmsgstr \"Adicionar\"\n\nmsgid \"Add Layout\"\nmsgstr \"Adicionar disposição\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"Apagar %s\"\n\nmsgid \"Copy from\"\nmsgstr \"Copiar de\"\n\nmsgid \"Rename\"\nmsgstr \"Renomear\"\n\nmsgid \"Rename Layout\"\nmsgstr \"Renomear Layout\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"Layout atual\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Tem a certeza que pretende eliminar esta disposição?\"\n\nmsgid \"Widescreen\"\nmsgstr \"Modo Panorâmico\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Modo Retrato\"\n\nmsgid \"Mirror View\"\nmsgstr \"Vista Espelhada\"\n\nmsgid \"Show Grid\"\nmsgstr \"Mostrar Grelha\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Mostrar Grelha de Pixeis\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Mostrar Réguas\"\n\nmsgid \"Show Guides\"\nmsgstr \"Mostrar Guias\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"Mostrar Guias do Rato\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"Mostrar Imagens de Referência\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"Mostrar Efeitos da Camada\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"Encaixar a\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"Encaixar ao Limite da Grade Retangular\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"Encaixar ao Centro da Grade Retangular\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"Encaixar às Guias\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"Encaixar às Guias de Perspetiva\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Mostrar Linha de Tempo da Animação\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Modo Zen\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Modo de Ecrã Cheio\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Preencher com cor:\"\n\nmsgid \"Open a File\"\nmsgstr \"Abrir um Ficheiro\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Abrir Ficheiro(s)\"\n\nmsgid \"Import Options\"\nmsgstr \"Importar Opções\"\n\nmsgid \"Import as:\"\nmsgstr \"Importar como:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Aplicar a tudo\"\n\nmsgid \"Recent projects\"\nmsgstr \"Projetos recentes\"\n\nmsgid \"New project\"\nmsgstr \"Novo projeto\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"Spritesheet (novo projeto)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Folha de Imagens (nova camada)\"\n\nmsgid \"New frame\"\nmsgstr \"Novo fotograma\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"Substituir célula\"\n\nmsgid \"New layer\"\nmsgstr \"Nova camada\"\n\nmsgid \"New reference image\"\nmsgstr \"Nova imagem de referência\"\n\nmsgid \"New palette\"\nmsgstr \"Nova palete\"\n\nmsgid \"New brush\"\nmsgstr \"Novo pincel\"\n\nmsgid \"New pattern\"\nmsgstr \"Novo padrão\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Fotogramas horizontais:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Fotogramas verticais:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"Recorte Inteligente\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"Limiar:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"Imagens que tiverem qualquer lado menor que este valor ultrapassará o limiar\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"Mesclar distância:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"Imagens que ultrapassarem o limiar irão ser mescladas para uma imagem maior, se elas estiverem dentro desta distância\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"Atualizar\"\n\nmsgid \"Start frame:\"\nmsgstr \"Fotograma inicial:\"\n\nmsgid \"End frame:\"\nmsgstr \"Frame final:\"\n\nmsgid \"At frame:\"\nmsgstr \"No fotograma:\"\n\nmsgid \"At layer:\"\nmsgstr \"Na camada:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Tipo de pincel\"\n\nmsgid \"File brush\"\nmsgstr \"Ficheiro do pincel\"\n\nmsgid \"Project brush\"\nmsgstr \"Pincel do projeto\"\n\nmsgid \"Random brush\"\nmsgstr \"Pincel aleatório\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Gravar Imagem como .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Exportar Imagem como .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Exportar Imagem\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"O ficheiro já existe, Substituir?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"Os ficheiros seguintes já existem. Gostaria de os substituir?\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"Caminho do diretório inválido!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"Nome do ficheiro inválido!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"Caminho do diretório e nome do ficheiro inválido!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"A Exportar...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"Não foi possível carregar o ficheiro '%s'.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Não foi possível carregar o ficheiro '%s'.\\n\"\n\"Código de erro: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"Não foi possível carregar o ficheiro '%s', porque não é um ficheiro de palete válido.\"\n\nmsgid \"Frame\"\nmsgstr \"Fotograma\"\n\nmsgid \"Frames:\"\nmsgstr \"Fotogramas:\"\n\nmsgid \"All Frames\"\nmsgstr \"Todos os fotogramas\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Folha de Imagens\"\n\nmsgid \"Animation\"\nmsgstr \"Animação\"\n\nmsgid \"Preview:\"\nmsgstr \"Pré-Visualizar\"\n\nmsgid \"Frame:\"\nmsgstr \"Fotograma:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Oruentação\"\n\nmsgid \"Browse\"\nmsgstr \"Pesquisar\"\n\nmsgid \"Resize:\"\nmsgstr \"Redimensionar:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"Qualidade:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Cancelar Exportar\"\n\nmsgid \"Alert!\"\nmsgstr \"Alerta!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Selecionar Diretoria atual\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Abrir uma Diretoria\"\n\nmsgid \"Background:\"\nmsgstr \"Fundo de Ecrã:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"Frames selecionados\"\n\nmsgid \"Layers:\"\nmsgstr \"Camadas:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Camadas visíveis\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"Camadas selecionadas\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"Camada de pixel:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"Camada de grupo:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"Camada 3D:\"\n\nmsgid \"Direction:\"\nmsgstr \"Direção:\"\n\nmsgid \"Forward\"\nmsgstr \"Para a frente\"\n\nmsgid \"Backwards\"\nmsgstr \"Para Trás\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Ping-Pong\"\n\nmsgid \"Columns\"\nmsgstr \"Colunas\"\n\nmsgid \"Columns:\"\nmsgstr \"Colunas:\"\n\nmsgid \"Rows\"\nmsgstr \"Linhas\"\n\nmsgid \"Rows:\"\nmsgstr \"Linhas:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"Etiquetas em coluna\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"Etiquetas em linha\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"Exportar dimensões:\"\n\nmsgid \"Save a File\"\nmsgstr \"Salvar um Ficheiro\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"Ir para a pasta anterior.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"Ir para a pasta seguinte.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"Ir para a pasta pai.\"\n\nmsgid \"Path:\"\nmsgstr \"Caminho:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"Atualizar ficheiros.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"Alterar a visibilidade dos ficheiros escondidos.\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Diretorias e Ficheiros:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Criar uma Diretoria\"\n\nmsgid \"File:\"\nmsgstr \"Ficheiro:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"Todos os Ficheiros\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"Todos os Compatíveis\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"Projeto Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"Imagem PNG\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"Imagem BMP\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"Imagem Radiance HDR\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"Imagem JPEG\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"Imagem SVG\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"Imagem TGA\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"Imagem WebP\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"Projeto OpenRaster\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"Projeto Aseprite\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"Paleta Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"Paleta GIMP\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"Opções avançadas\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolação:\"\n\nmsgid \"Nearest\"\nmsgstr \"Mais próximo\"\n\nmsgid \"Bilinear\"\nmsgstr \"Bilinear\"\n\nmsgid \"Cubic\"\nmsgstr \"Cúbico\"\n\nmsgid \"Trilinear\"\nmsgstr \"Trilinear\"\n\nmsgid \"Constant\"\nmsgstr \"Constante\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"Espaço de cores\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"Linear sRGB\"\n\nmsgid \"General\"\nmsgstr \"Geral\"\n\nmsgid \"Startup\"\nmsgstr \"Inicialização\"\n\nmsgid \"Language\"\nmsgstr \"Linguagem\"\n\nmsgid \"Interface\"\nmsgstr \"Interface\"\n\nmsgid \"Themes\"\nmsgstr \"Temas\"\n\nmsgid \"Canvas\"\nmsgstr \"Tela\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"Cronologia\"\n\nmsgid \"Selection\"\nmsgstr \"Seleção\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Atalhos\"\n\nmsgid \"Backup\"\nmsgstr \"Cópia de Segurança\"\n\nmsgid \"Performance\"\nmsgstr \"Performance\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"Drivers\"\n\nmsgid \"Extensions\"\nmsgstr \"Extensões\"\n\nmsgid \"Cursors\"\nmsgstr \"Cursores\"\n\nmsgid \"Indicators\"\nmsgstr \"Indicadores\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"Pixelorama precisa de ser reiniciado para estas alterações entrarem em vigor.\"\n\nmsgid \"On\"\nmsgstr \"Ligado\"\n\nmsgid \"Restore default value\"\nmsgstr \"Restaurar valores padrão\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Zoom Suave\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Adiciona uma transição suave no durante o zoom\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"Zoom Inteiro\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"Restringe o valor para ser um múltiplo inteiro de 100%\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Sensibilidade de pressão no Tablet\"\n\nmsgid \"None\"\nmsgstr \"Nenhum\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Afetar Alpha do Pincel\"\n\nmsgid \"Color:\"\nmsgstr \"Cor:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Cor Guia:\"\n\nmsgid \"System Language\"\nmsgstr \"Linguagem de Sistema\"\n\nmsgid \"Display scale:\"\nmsgstr \"Mostrar escala:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"Tipo de letra:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"Tamanho do tipo de letra:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Escurecer interface durante uma caixa de diálogo\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"Mostrar etiquetas de notificação\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"Usar navegador de ficheiros nativo\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"Quando esta preferência está ativada, a janela de seleção de ficheiros do sistema operativo será usada, em vez do personalizado do Pixelorama.\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"Modo de janela única\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"Quando esta preferência está ativada, as subjanelas do Pixelorama vão ser embutidas na janela principal, senão qualquer diálogo irá ter a sua própria janela.\"\n\nmsgid \"Dark\"\nmsgstr \"Escuro\"\n\nmsgid \"Gray\"\nmsgstr \"Cinzento\"\n\nmsgid \"Blue\"\nmsgstr \"Azul\"\n\nmsgid \"Caramel\"\nmsgstr \"Caramelo\"\n\nmsgid \"Light\"\nmsgstr \"Claro\"\n\nmsgid \"Purple\"\nmsgstr \"Roxo\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"Rosa\"\n\nmsgid \"Theme\"\nmsgstr \"Tema\"\n\nmsgid \"Buttons\"\nmsgstr \"Botões\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Cor de Icon de:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Cor de Icon:\"\n\nmsgid \"Background\"\nmsgstr \"Fundo\"\n\nmsgid \"Background color from:\"\nmsgstr \"Cor de fundo de:\"\n\nmsgid \"Background color:\"\nmsgstr \"Cor de fundo:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"Partilhar opções entre as ferramentas da esquerda e da direita\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"Se estiver ativada, as opções estarão sincronizadas entre a ferramenta da esquerda e da direita.\\n\"\n\"Por exemplo, ambas as ferramentas irão partilhar o mesmo tamanho do pincel, e mudando-lo numa ferramenta irá mudar na outra instantaneamente.\"\n\nmsgid \"Left tool color:\"\nmsgstr \"Cor da ferramenta esquerda:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"Cor da ferramenta direita:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Tamanho de Botão de ferramenta:\"\n\nmsgid \"Small\"\nmsgstr \"Pequeno\"\n\nmsgid \"Big\"\nmsgstr \"Grande\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Apenas afetar seleção\"\n\nmsgid \"Selected cels\"\nmsgstr \"Células selecionadas\"\n\nmsgid \"Current cel\"\nmsgstr \"Célula atual\"\n\nmsgid \"Current frame\"\nmsgstr \"Fotograma atual\"\n\nmsgid \"All frames\"\nmsgstr \"Todas os fotogramas\"\n\nmsgid \"All projects\"\nmsgstr \"Todos os projetos\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Inverter Cores\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Alterar Canal Vermelho\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Alterar Canal Verde\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Alterar Canal Azul\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Alterar Canal Alpha\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Dessaturação\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Contorno\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Sombra Projetada\"\n\nmsgid \"Offset X:\"\nmsgstr \"Deslocamento X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"Deslocamento Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"Cor da sombra:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"Desfoque Gaussiano\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"Tipo de desfoque:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"Quantidade de desfoque:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"Raio do desfoque:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"Direção do desfoque:\"\n\nmsgid \"Gradient\"\nmsgstr \"Gradiente\"\n\nmsgid \"Gradient Map\"\nmsgstr \"Mapeamento gradiente\"\n\nmsgid \"Interpolation\"\nmsgstr \"Interpolação\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"Reverter\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"Distribuir pontos uniformemente\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"Dividir em partes iguais\"\n\nmsgid \"Parts:\"\nmsgstr \"Partes:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"Adicionar ponto no fim\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"Quando ativado, o último ponto é adicionado ao fim do gradiente.\\n\"\n\"Desative caso pretenda converter o gradiente numa interpolação constante, para que a última cor seja tida em conta.\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"Salvar para predefinições\"\n\nmsgid \"Shape:\"\nmsgstr \"Forma:\"\n\nmsgid \"Linear\"\nmsgstr \"Linear\"\n\nmsgid \"Radial\"\nmsgstr \"Radial\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"Repetir:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"Repetir\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"Espelhar\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"Cortar\"\n\nmsgid \"Transition size:\"\nmsgstr \"Tamanho da transição:\"\n\nmsgid \"Center:\"\nmsgstr \"Centro:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"Padrão de dithering:\"\n\nmsgid \"Type:\"\nmsgstr \"Tipo:\"\n\nmsgid \"Angle:\"\nmsgstr \"Angulo:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Ajustar Hue/Saturação/Valor\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"Ajustar HSV\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Hue:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Saturação:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Valor:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"Ajustar Brilho/Contraste\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"Brilho:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"Contraste:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"Valor do vermelho:\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"Valor do verde:\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"Valor do azul:\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"Tonalidade:\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"Fator da tonalidade:\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"Curvas de Cor\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"Canal:\"\n\nmsgid \"Red\"\nmsgstr \"Vermelho\"\n\nmsgid \"Green\"\nmsgstr \"Verde\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"Valor\"\n\nmsgid \"Presets\"\nmsgstr \"Predefinições\"\n\nmsgid \"Apply\"\nmsgstr \"Aplicar\"\n\nmsgid \"Diagonal\"\nmsgstr \"Diagonal\"\n\nmsgid \"Place inside image\"\nmsgstr \"Colocar dentro da imagem\"\n\nmsgid \"Thickness:\"\nmsgstr \"Espessura:\"\n\nmsgid \"Colors:\"\nmsgstr \"Cores:\"\n\nmsgid \"Steps:\"\nmsgstr \"Passos:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"Paletizar\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"Pixelizar\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"Posterizar\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"Níveis de posterização:\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"Intensidade de dither:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Ver o ecrã inicial\"\n\nmsgid \"Online Docs\"\nmsgstr \"Documentação Online\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Tracker de Problemas\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"Restaurar Backup\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"Sessões anteriores\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"Clique duplo para carregar uma sessão inteira, ou um projeto específico.\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"Sessões\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"Projetos\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"(Sessão Atual)\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"Abrir Pasta de Dados do Editor\"\n\nmsgid \"Changelog\"\nmsgstr \"Atualizações\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Sobre Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"Apoie o Desenvolvimento do Pixelorama\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - Pixeliza os teus sonhos!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Desenvolvido por Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-presente por Orama Interactive e contribuidores\"\n\nmsgid \"Website\"\nmsgstr \"Website\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"Código Fonte\"\n\nmsgid \"Donate\"\nmsgstr \"Doar\"\n\nmsgid \"Developers\"\nmsgstr \"Desenvolvedores\"\n\nmsgid \"Contributors\"\nmsgstr \"Contribuidores\"\n\nmsgid \"Donors\"\nmsgstr \"Doadores\"\n\nmsgid \"Translators\"\nmsgstr \"Tradutores\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Licenças\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"Licença\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"Licenças do Godot\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"Licenças de Terceiros\"\n\nmsgid \"English\"\nmsgstr \"Inglês\"\n\nmsgid \"Greek\"\nmsgstr \"Grego\"\n\nmsgid \"French\"\nmsgstr \"Françês\"\n\nmsgid \"German\"\nmsgstr \"Alemão\"\n\nmsgid \"Polish\"\nmsgstr \"Polaco\"\n\nmsgid \"Portuguese\"\nmsgstr \"Português\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Português do Brazil\"\n\nmsgid \"Russian\"\nmsgstr \"Russo\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Chinês Simplificado\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Chinês Tradicional\"\n\nmsgid \"Italian\"\nmsgstr \"Italiano\"\n\nmsgid \"Latvian\"\nmsgstr \"Letão\"\n\nmsgid \"Spanish\"\nmsgstr \"Espanhol\"\n\nmsgid \"Catalan\"\nmsgstr \"Catalão\"\n\nmsgid \"Esperanto\"\nmsgstr \"Esperanto\"\n\nmsgid \"Indonesian\"\nmsgstr \"Indonésio\"\n\nmsgid \"Czech\"\nmsgstr \"Checo\"\n\nmsgid \"Arabic\"\nmsgstr \"Árabe\"\n\nmsgid \"Turkish\"\nmsgstr \"Turco\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Bokmâl Noroeguês\"\n\nmsgid \"Korean\"\nmsgstr \"Koreano\"\n\nmsgid \"Hungarian\"\nmsgstr \"Húngaro\"\n\nmsgid \"Romanian\"\nmsgstr \"Romeno\"\n\nmsgid \"Japanese\"\nmsgstr \"Japonês\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Ukraniano\"\n\nmsgid \"Danish\"\nmsgstr \"Dinamarquês\"\n\nmsgid \"Swedish\"\nmsgstr \"Sueco\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Sérvio (Cirílico)\"\n\nmsgid \"Dutch\"\nmsgstr \"Holandês\"\n\nmsgid \"Belarusian\"\nmsgstr \"Bielorrusso\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"Programador Líder\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"Designer de Interface\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"Autores\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Arte por: %s\"\n\nmsgid \"untitled\"\nmsgstr \"Sem Título\"\n\nmsgid \"imported\"\nmsgstr \"importado\"\n\nmsgid \"copy\"\nmsgstr \"cópia\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Tem a certeza de que quer sair do Pixelorama?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Imagem não gravada\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Tem alterações não gravadas. Se prosseguir, o progresso que fez vai ser perdido.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Gravar antes de sair?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"Projeto %s tem progresso não salvo. Como gostaria de proceder?\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Gravar e Sair\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Sair sem Gravar\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Seleção Retangular\\n\\n\"\n\"%s para botão de lado esquerdo do rato%s para botão de lado direito do rato\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Seleção eliptica\\n\\n\"\n\"%s para botão de lado esquerdo do rato\\n\"\n\"%s para botão de lado direito do rato\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Seleção poligonal\\n\\n\"\n\"%s para o botão esquerdo do rato\\n\"\n\"%s para o botão direito do rato\\n\\n\"\n\"Duplo clique para ligar o último ponto ao primeiro\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Seleção por Cor\\n\\n\"\n\"%s para botão de lado esquerdo do rato\\n\"\n\"%s para botão de lado direito do rato\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Varinha Mágica\\n\\n\"\n\"%s para botão de lado esquerdo do rato\\n\"\n\"%s para botão de lado direito do rato\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Laço / Ferramenta de Seleção Livre\\n\\n\"\n\"%s para botão de lado esquerdo do rato\\n\"\n\"%s para botão de lado direito do rato\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Selecionar por Desenho\\n\\n\"\n\"%s para o botão esquerdo do rato\\n\"\n\"%s para o botão direito do rato\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Mover\\n\\n\"\n\"%s para botão de lado esquerdo do rato\\n\"\n\"%s para botão de lado direito do rato\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Zoom\\n\\n\"\n\"%s para botão de lado esquerdo do rato\\n\"\n\"%s para botão de lado direito do rato\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Mover\\n\\n\"\n\"%s para botão de lado esquerdo do rato\\n\"\n\"%s para botão de lado direito do rato\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"Pipeta de Cores\\n\\n\"\n\"%s para o botão esquerdo do rato\\n\"\n\"%s para o botão direito do rato\\n\\n\"\n\"Seleciona uma cor de um pixel do sprite\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"Cortar\\n\\n\"\n\"%s para o botão esquerdo do rato\\n\"\n\"%s para o botão direito do rato\\n\\n\"\n\"Redimensiona a tela\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Lápis\\n\\n\"\n\"%s para botão de lado esquerdo do rato\\n\"\n\"%s para botão de lado direito do rato\\n\\n\"\n\"Hold %s to make a line\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Borracha\\n\\n\"\n\"%s para botão de lado esquerdo do rato\\n\"\n\"%s para botão de lado direito do rato\\n\\n\"\n\"Hold %s to make a line\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Balde\\n\\n\"\n\"%s para botão de lado esquerdo do rato\\n\"\n\"%s para botão de lado direito do rato\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Ferramenta de Sobrear\\n\\n\"\n\"%s para botão de lado esquerdo do rato\\n\"\n\"%s para botão de lado direito do rato\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Ferramenta de Linha\\n\\n\"\n\"%s para botão de lado esquerdo do rato\\n\"\n\"%s para botão de lado direito do rato\\n\\n\"\n\"Pressione %s para prender o angulo da linha\\n\"\n\"Pressione %s para centrar a forma na origem\\n\"\n\"Pressione %s para deslocar a origem da forma\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"Ferramenta de Curva\\n\\n\"\n\"%s para o botão esquerdo do rato\\n\"\n\"%s para o botão direito do rato\\n\\n\"\n\"Desenha curvas de bezier\\n\"\n\"Pressione %s/%s para adicionar novos pontos\\n\"\n\"Clique duas vezes para acabar de desenhar a curva\\n\"\n\"Pressione e arraste para controlar a curvatura\\n\"\n\"Pressione %s para remover o último ponto\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Ferramenta de Retangulo\\n\\n\"\n\"%s para botão de lado esquerdo do rato\\n\"\n\"%s para botão de lado direito do rato\\n\\n\"\n\"Pressione %s para criar uma forma 1:1\\n\"\n\"Pressione %s para centrar a forma na origem\\n\"\n\"Pressione %s para deslocar a origem da forma\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Ferramenta de Elipse%s para botão de lado esquerdo do rato%s para botão de lado direito do ratoPressione %s para criar uma forma 1:1\\n\"\n\"Pressione %s para centrar a forma na origem\\n\"\n\"Pressione %s para deslocar a origem da forma\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"Ferramenta de Caixa Isométrica\\n\\n\"\n\"%s para botão esquerdo do rato\\n\"\n\"%s para botão direito do rato\\n\\n\"\n\"Desenha uma caixa isométrica\\n\"\n\"Pressione %s/%s para adicionar um ponto de base\\n\"\n\"Segure %s para encaixar o ângulo do ponto de base\\n\"\n\"Segure %s para deslocar a origem da forma\\n\"\n\"Pressione %s para editar a última base adicionada\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Texto\\n\\n\"\n\"%s para o botão esquerdo do rato\\n\"\n\"%s para o botão direito do rato\"\n\nmsgid \"Rectangle\"\nmsgstr \"Retangulo\"\n\nmsgid \"Ellipse\"\nmsgstr \"Elipse\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Escolher a cor para a ferramenta da esquerda\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Escolher a cor para a ferramenta da direita\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"Mudar as cores da esquerda e da direita.\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"Cor Média:\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Retornar as cores para o padrão (preto para a esquerda, branco para a direita)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"Escolha uma cor da janela da aplicação.\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"Escreva um código hexadecimal (\\\"#ff0000\\\") ou o nome da cor em inglês (\\\"red\\\").\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"Selecione uma forma da pipeta.\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"Opções de cor\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"Selecionar um modo da pipeta.\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"Sliders Coloridos\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"Cores Salvas\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"Cores Recentes\"\n\nmsgid \"Left tool\"\nmsgstr \"Ferramenta da Esquerda\"\n\nmsgid \"Right tool\"\nmsgstr \"Ferramenta da Direita\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"indicador de pixeis da esquerda\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Mostrar o indicador de pixeis da esquerda ou o pincel na tela quando a desenhar\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"indicador de pixeis da direita\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Mostrar o indicador de pixeis da direita ou o pincel na tela quando a desenhar\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Mostrar o icone da ferramenta da esquerda\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Mostra o icone da ferramenta da esquerda selecionada perto do cursor na tela\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Mostrar o icone da ferramenta da direita\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Mostra o icone da ferramenta da direita selecionada perto do cursor na tela\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"Usar cursores nativos\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"Usar cursor em cruz na tela\"\n\nmsgid \"Guides\"\nmsgstr \"Guias\"\n\nmsgid \"Guides color:\"\nmsgstr \"Cor das Guias:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Cor das réguas de guia mostradas na tela\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"Snapping\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"Distância de snapping:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"Esta é a distância em píxeis onde o snapping da guia e de grade é ativado.\"\n\nmsgid \"Grid\"\nmsgstr \"Grelha\"\n\nmsgid \"Grid type:\"\nmsgstr \"Tipo de Grelha:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Define o tipo de grelha entre retangular, isométrica, ou ambas\"\n\nmsgid \"Rectangular\"\nmsgstr \"Retangular\"\n\nmsgid \"Isometric\"\nmsgstr \"Isométrica\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"Hexagonal\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"Hexagonal (pontiagudo)\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"Hexagonal (ponta-plana)\"\n\nmsgid \"All\"\nmsgstr \"Ambas\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"Grades visíveis:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"A editar grade:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"Tamanho da grade:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"Deslocamento da grade:\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"Define o deslocamento da grade pela origem da tela (canto superior esquerdo da imagem)\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"Desenhar por cima do modo de Azuleijo\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"Quando desabilitado, a grelha é desenhada apenas por cima da imagem original\"\n\nmsgid \"Grid color:\"\nmsgstr \"Cor da grelha:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"Cor da grelha\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Grelha de pixeis\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Mostrar no zoom:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"Define o zoom minimo para quando a grelha de pixeis será mostrada\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Cor da grelha de pixeis\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"Cor da grelha de pixeis\"\n\nmsgid \"Transparency\"\nmsgstr \"Transparencia\"\n\nmsgid \"Checker size:\"\nmsgstr \"Tamanho do checker\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Tamanho do fundo do checker transparente\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Cor do checker 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"A primeira cor do fundo transparente do checker\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Cor do checker 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"A segunda cor do fundo transparente do checker\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"Seguir o movimento da tela\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"O checker transparente segue o movimento da tela\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"Seguir o nível de zoom da tela\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"O checker transparente segue o nível de zoom do quadro\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"Selecionar camada quando clicando num dos seus botões:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"Cor passada do onion skinning:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"Cor futura do onion skinning:\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"Seleção de bordas animada\"\n\nmsgid \"Border color 1:\"\nmsgstr \"Cor de borda 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Cor de borda 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Apenas presets personalizados podem ser modificados\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"Define o limite de FPS da aplicação:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"Define o limite de fotogramas por segundo da aplicação. Quanto mais baixo, mais baixo o uso do processador, no entanto, a aplicação fica mais lenta, com cortes, e pouco responsiva. 0 significa que não tem limite.\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"Máximo de ações de desfazer:\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"Pausar a aplicação quando perder o foco\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"Se ativado, e quando a janela da aplicação perder o foco, esta será pausada. Isto ajuda a baixar a utilização do processador durante inatividade. A aplicação é retomada quando o rato tornar a entrar na janela.\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"Atualizar continuamente\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"Se esta opção estiver ativada, a aplicação irá redesenhar o ecrã continuamente, mesmo enquanto não estiver a ser utilizada. Desativando irá ajudar a reduzir utilização de CPU e GPU quando inativo.\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"Ativar transparência de janela\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"Se ativado, a janela da aplicação pode ser transparente. Isto afeta desempenho, então será melhor ser desativada se não for necessária.\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"Usar driver de áudio fictício\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"Renderizador:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"Especifica o driver de renderização/vídeo a ser usado. GLES2 é melhor para dispositivos mais antigos ou menos potentes, mas GLES3 poderá oferecer mais funcionalidades.\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"Driver de tablet:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"Especifica a driver de tablet a ser usada em Windows. Se tiver Windows Ink ativado, selecione winink.\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Adicionar extensão\"\n\nmsgid \"Enable\"\nmsgstr \"Ativar\"\n\nmsgid \"Disable\"\nmsgstr \"Desativar\"\n\nmsgid \"Uninstall\"\nmsgstr \"Desinstalar\"\n\nmsgid \"Open Folder\"\nmsgstr \"Abrir pasta\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"Explorar Online\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"Explorador de Extensões\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"Pesquisar...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"Etiquetas:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"Reportar um problema com uma extensão\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"Descarregar\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"Links do repositório:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"A buscar data do repositório remoto.\\n\"\n\"Por favor aguarde.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"Não foi possível obter informação do repositório remoto.\\n\\n\"\n\"- Verifique a ligação à internet\\n\"\n\"- Se estiver a usar a versão de Flatpak do Pixelorama, terá que dar permissão para conectar à internet. Para o fazer, pode correr o seguinte comando no seu terminal:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"Como alternativa, pode descarregar o Flatseal e definir as permissões para aplicações Flatpak aí.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"Não foi possível obter informação do repositório remoto.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"Cole o link do repositório, dado pelo dono do repositório. Se deixado em branco, será automaticamente removido.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"Tem a certeza que quer ativar esta extensão? Certifiue-se de ativar extensões apenas de fontes confiáveis.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"Tem a certeza que quer apagar esta extensão?\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"Dinâmica\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"Estabilizador\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"Pressão\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"Velocidade\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"Alpha\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"Tamanho\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"Limites de valor\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"Limiares\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"Início\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"Fim\"\n\nmsgid \"Brush:\"\nmsgstr \"Pincel:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Selecionar pincel\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"Pincéis Padrão\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Pincel de pixel\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Pincel circular\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Pincel circular preenchido\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"Pincéis do Projeto\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"Pincéis do Ficheiro\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"Neve\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"Pincéis Aleatórios de Ficheiro\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"Relva\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"Estrela\"\n\nmsgid \"Custom brush\"\nmsgstr \"Pincel personalizado\"\n\nmsgid \"Brush size:\"\nmsgstr \"Tamanho de pincel:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"Opções de rotação\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"Inverter:\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"Rodar:\"\n\nmsgid \"Overwrite color\"\nmsgstr \"Substituir cor\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Sustitui a cor ao invés de a misturar. Esta opção é importante para cores que não são totalmente opacas\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Pixel Perfeito\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"Pixel Perfect\\n\"\n\"Torna as linhas suaves removendo pixeis extras nos cantos\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"Trancar alpha\"\n\nmsgid \"Fill inside\"\nmsgstr \"Preencher interior\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"Espaçamento\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"Espaçamento X:\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"Espaçamento Y:\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Preencher forma\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"Preenche forma com cor, ao invés de desenhar uma forma vazia\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"Densidade:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"Intensidade da cor:\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: Cor do próprio pincel, 100: cor atualmente selecionada\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"Preencher área:\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"Área semelhante\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"Cores semelhantes\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"Toda a seleção\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"Preencher com:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"Cor selecionada\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Padrão\"\n\nmsgid \"Offset\"\nmsgstr \"Deslocamento\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Sombrear simples\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Subir a Hue\"\n\nmsgid \"Lighten\"\nmsgstr \"Clarear\"\n\nmsgid \"Darken\"\nmsgstr \"Escurecer\"\n\nmsgid \"Amount:\"\nmsgstr \"Quantidade:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Quantidade de Clareamento/Escurecimento\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"Substituir Cor\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"Por favor seleciona uma cor da paleta.\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"Cores à direita:\"\n\nmsgid \"Pick for:\"\nmsgstr \"Escolher para:\"\n\nmsgid \"Left Color\"\nmsgstr \"Cor da Esquerda\"\n\nmsgid \"Right Color\"\nmsgstr \"Cor da Direita\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"Modo de seleção:\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"Cor Superior\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"Camada Atual\"\n\nmsgid \"Mode:\"\nmsgstr \"Modo:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Zoom para dentro\"\n\nmsgid \"Zoom out\"\nmsgstr \"Zoom para fora\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"Único\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"Encadeado\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"Encadeado: Faz uma cadeia de múltiplas curvas bezier, parecido à ferramenta de curva de Krita.\\n\"\n\"Único: Faz apenas uma curva bezier, parecido à ferramenta de curva de Aseprite.\"\n\nmsgid \"Options\"\nmsgstr \"Opções\"\n\nmsgid \"Options:\"\nmsgstr \"Opções:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"Ajustar ao fotograma\"\n\nmsgid \"100% Zoom\"\nmsgstr \"100% Zoom\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"Substituir seleção\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"Adicionar à seleção\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"Subtrair da seleção\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"Interseção das seleções\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"Estilo:\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"Regular\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"Bold\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"Itálico\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"Itálico Bold\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"Antialiasing\"\n\nmsgid \"Grayscale\"\nmsgstr \"Escala de cinza\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"Espelhar\"\n\nmsgid \"Horizontal\"\nmsgstr \"Horizontal\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Habilitar o desenho espelhado horizontalmente\"\n\nmsgid \"Vertical\"\nmsgstr \"Vertical\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Habilitar o desenho espelhado verticalmente\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"Mover para o centro da tela\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"Mover para o centro da visão\"\n\nmsgid \"Current frame:\"\nmsgstr \"Fotograma atual:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"Modo de animação:\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"Frame atual como spritesheet\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"Saltar para o primeiro frame\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"Ir para o frame anterior\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"Reproduzir animação para trás\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"Reproduzir animação\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"Ir para o próximo frame\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"Saltar para o último frame\"\n\nmsgid \"Timeline settings\"\nmsgstr \"Defenições da linha de tempo\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Habilitar/desabilitar o modo Cebola\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"Quantos fotogramas por segundo deve a pré-visualização da animação ter?\\n\"\n\"Quantos mais FPS, mais rapidamente a animação é reproduzida.\"\n\nmsgid \"No loop\"\nmsgstr \"Sem loop\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Loop cíclico\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Loop de Ping-Pong\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Modo Cebola:\"\n\nmsgid \"Past Frames\"\nmsgstr \"Fotogramas anteriores\"\n\nmsgid \"Future Frames\"\nmsgstr \"Fotogramas futuros\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Gerir as etiquetas de fotograma\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Propriedades da etiqueta de fotograma\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Adicionar uma nova etiqueta de fotograma\"\n\nmsgid \"Name:\"\nmsgstr \"Nome:\"\n\nmsgid \"From:\"\nmsgstr \"De:\"\n\nmsgid \"To:\"\nmsgstr \"Até:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"A animação reproduz apenas os fotogramas com a mesma etiqueta\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Etiqueta %s (Fotograma %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Etiqueta %s (Fotogramas %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Quando selecionado, a animação reproduz apenas os fotogramas com a mesma etiqueta.\\n\"\n\"Quando não selecionado, a animação reproduz todos os fotogramas, ignorando as etiquetas.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"Tamanho da célula:\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"Modo de cor\"\n\nmsgid \"Show past frames:\"\nmsgstr \"Mostrar fotogramas anteriores:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"Mostrar fotogramas futuros:\"\n\nmsgid \"Above canvas\"\nmsgstr \"Acima da tela\"\n\nmsgid \"Below canvas\"\nmsgstr \"Abaixo da tela\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"Se quer que uma camada ignore o onion skinning adicione o sufixo \\\"_io\\\" no seu nome.\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Adicionar um novo fotograma\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Remover fotograma\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Clonar fotograma\"\n\nmsgid \"Move Left\"\nmsgstr \"Mover para a Esquerda\"\n\nmsgid \"Move Right\"\nmsgstr \"Mover para a Direita\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"Selecionar pixeis\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"Associar células a\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"Desassociar células\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"Tocar áudio aqui\"\n\nmsgid \"Properties\"\nmsgstr \"Propriedades\"\n\nmsgid \"Project Properties\"\nmsgstr \"Propriedades do Projeto\"\n\nmsgid \"Frame properties\"\nmsgstr \"Propriedades do fotograma\"\n\nmsgid \"Layer properties\"\nmsgstr \"Propriedades da camada\"\n\nmsgid \"Cel properties\"\nmsgstr \"Propriedades da célula\"\n\nmsgid \"Tag properties\"\nmsgstr \"Propriedades da etiqueta\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"Nova Etiqueta\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"Importar Etiqueta\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"Inverter Frames\"\n\nmsgid \"Layer\"\nmsgstr \"Camada\"\n\nmsgid \"Group\"\nmsgstr \"Grupo\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"Tilemap\"\n\nmsgid \"Audio\"\nmsgstr \"Áudio\"\n\nmsgid \"Layers\"\nmsgstr \"Camadas\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"Máscara de recorte\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"Mesclar\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"Mesclar visíveis\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Criar uma nova camada\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"Adicionar Camada de Pixel\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"Adicionar Camada de Grupo\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"Adicionar Camada 3D\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"Adicionar Camada de Tilemap\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"Adicionar Camada de Áudio\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Remover a camada atual\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Mover a camada atual para cima\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Mover a camada atual para baixo\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Clonar a camada atual\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Fundir a camada atual com a de baixo\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"Blend mode:\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"Pass through\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"Normal\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"Apagar\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"Multiplicação\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"Color burn\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"Linear burn\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"Screen\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"Color dodge\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"Contraste\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"Overlay\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"Luz suave\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"Luz forte\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"Inversão\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"Diferença\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"Exclusão\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"Subtração\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"Dividir\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"Componente\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"Matriz\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"Saturação\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"Cor\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"Luminosidade\"\n\nmsgid \"Opacity:\"\nmsgstr \"Opacidade:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"Opacidade do modo de Azuleijo:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Alterar visibilidade de camada\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Trancar/destrancar camada\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Fotograma: %s, Camada: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"Ativar/desativar a associação automática de novas células ao criar fotogramas\\n\\n\"\n\"Células associadas partilham conteúdo entre vários fotogramas\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"Expandir/colapsar grupo\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"Ficheiro de áudio:\"\n\nmsgid \"Load file\"\nmsgstr \"Carregar ficheiro\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"Tocar no frame:\"\n\nmsgid \"Palette\"\nmsgstr \"Palete\"\n\nmsgid \"Palettes\"\nmsgstr \"Paletes\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Adicionar uma nova palete\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Editar a palete selecionada atualmente\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Escolha uma palete\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Desfazer: Desenhar\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Refazer: Desenhar\"\n\nmsgid \"Undo: Select\"\nmsgstr \"Desfazer: Selecionar\"\n\nmsgid \"Redo: Select\"\nmsgstr \"Refazer: Selecionar\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Desfazer: Redimensionar\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Refazer: Redimensionar\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Desfazer: Adicionar camada\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Refazer: Adicionar camada\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Desfazer: Remover camada\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Refazer: Remover camada\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Desfazer: Fundir camada\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Refazer: Fundir camada\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Desfazer: Alterar ordem de Camadas\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Refazer: Alterar ordem de Camadas\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Desfazer: Adicionar fotograma\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Refazer: Adicionar fotograma\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Desfazer: Remover fotograma\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Refazer: Remover fotograma\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Desfazer: Alterar ordem de fotogramas\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Refazer: Alterar ordem de fotogramas\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Desfazer: Apagar pincel personalizado\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Refazer: Apagar pincel personalizado\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"Desfazer: Alterar etiqueta do fotograma\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"Refazer: Alterar etiqueta do fotograma\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"Desfazer: Apagar etiqueta do fotograma\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"Refazer: Apagar etiqueta do fotograma\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"Desfazer: Alterar duração do fotograma\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"Refazer: Alterar duração do fotograma\"\n\nmsgid \"Move Guide\"\nmsgstr \"Guias de Movimento\"\n\nmsgid \"File saved\"\nmsgstr \"Ficheiro Gravado\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"Backup salvo\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"Problema ao abrir ficheiro. Código de erro %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"Problema ao gravar ficheiro. Código de erro %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"A exportação do vídeo falhou. Certifique-se que o FFMPEG está instalado corretamente.\"\n\nmsgid \"File(s) exported\"\nmsgstr \"Ficheiro(s) exportado(s)\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Nova Palete Vazia\"\n\nmsgid \"Import Palette\"\nmsgstr \"Importar Palete\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Criar Palete da imagem atual\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Nome da Palete:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Nome da COr:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"Usar cores da esquerda e direita atuais\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Criar nova palete vazia\"\n\nmsgid \"Error\"\nmsgstr \"Erro\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Erro: Palete tem de ter um nome válido.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Ficheiro de Palete inválido!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Editar Palete\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"Criar cores com Alpha\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"Ir buscar apenas cores da seleção\"\n\nmsgid \"Get colors from\"\nmsgstr \"Ir buscar cores de\"\n\nmsgid \"Patrons:\"\nmsgstr \"Patronos\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"Quer que o nome da sua empresa apareça no ecrã inicial?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Tornar-se um patrocinador de Platina\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Tornar-se um patrocinador de Ouro\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Tornar-se Patrono\"\n\nmsgid \"Don't show again\"\nmsgstr \"Não mostrar novamente\"\n\nmsgid \"Image Options\"\nmsgstr \"Opções de Imagem\"\n\nmsgid \"Default width:\"\nmsgstr \"Largura padrão\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"Largura padrão de uma nova imagem\"\n\nmsgid \"Default height:\"\nmsgstr \"Altura padrão\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"Altura padrão de uma nova imagem\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Cor de preenchimento padrão\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"Cor de fundo de uma nova imagem\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"Redefinir todas as opções disponíveis nas Definições\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"Redefinir opções das linhas de tempo\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"Redefinir todas as opções de ferramentas\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"Remover todas as extensões\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"Limpar a lista de arquivos abertos recentemente\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"Trancar resolução\"\n\nmsgid \"Portrait\"\nmsgstr \"Retrato\"\n\nmsgid \"Landscape\"\nmsgstr \"Paisagem\"\n\nmsgid \"Templates:\"\nmsgstr \"Modelo:\"\n\nmsgid \"Preset\"\nmsgstr \"Preset\"\n\nmsgid \"Preset:\"\nmsgstr \"Preset:\"\n\nmsgid \"Default\"\nmsgstr \"Padrão\"\n\nmsgid \"Custom\"\nmsgstr \"Personalizado\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Seleção Retangular\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"Seleção Elíptica\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"Seleção Poligonal\"\n\nmsgid \"Select By Color\"\nmsgstr \"Seleção por Cor\"\n\nmsgid \"Magic Wand\"\nmsgstr \"Varinha Mágica\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"Laço / Ferramenta de Seleção livre\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"Seleção por Desenho\"\n\nmsgid \"Move\"\nmsgstr \"Mover\"\n\nmsgid \"Zoom\"\nmsgstr \"Zoom\"\n\nmsgid \"Pan\"\nmsgstr \"Mover\"\n\nmsgid \"Color Picker\"\nmsgstr \"Escolher Cor\"\n\nmsgid \"Pencil\"\nmsgstr \"Lápis\"\n\nmsgid \"Eraser\"\nmsgstr \"Borracha\"\n\nmsgid \"Bucket\"\nmsgstr \"Balde\"\n\nmsgid \"Shading Tool\"\nmsgstr \"Ferramenta de Sombreado\"\n\nmsgid \"Line Tool\"\nmsgstr \"Ferramenta de Linha\"\n\nmsgid \"Curve Tool\"\nmsgstr \"Ferramenta de Curva\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"Ferramenta de Retangulo\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"Ferramenta de Elipse\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Trocar cores\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Atribuir atalho\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Pressione uma tecla ou combinação de teclas para atribuir atalho\"\n\nmsgid \"Already assigned\"\nmsgstr \"Já atribuída\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Ferramenta da Esquerda\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Uma ferramenta atribuída ao botão do lado esquerdo do rato\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Ferramenta da Direita:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Uma ferramenta atribuída ao botão do lado direito do rato\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"Não foi encontrado ficheiro do último projeto.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"Não foi encontrado ficheiro de projeto.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Ainda não gravou ou abriu nenhum projeto no Pixelorama!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Abrir último projeto\"\n\nmsgid \"Open last project...\"\nmsgstr \"Abrir último projeto...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Abrir último projeto na inicialização.\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Abre o último projeto aberto na inicialização\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"Confirmação de saída\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"Caminho do FFMPEG\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Ativar gravação automática\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Intervalo de Gravação automática:\"\n\nmsgid \"minute(s)\"\nmsgstr \"minuto(s)\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"Exportar dados JSON\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"Dividir camadas\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"Incluir etiquetas de frame no nome do arquivo\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"Criar uma pasta para cada etiqueta de frame\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"Cria múltiplos ficheiros mas cada ficheiro é guardado numa pasta que corresponde à sua etiqueta de frame\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"Carácter(es) separador(es):\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"O(s) carácter(es) que separam o nome do ficheiro do número do frame\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"Cortar imagens\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"Corta as imagens exportadas para a sua porção visível, considerando cada pixel não totalmente transparente como visível.\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"Cortar conteúdo da imagem à seleção\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"Exportar apenas o conteúdo que está numa área selecionada.\"\n\nmsgid \"Close\"\nmsgstr \"Fechar\"\n\nmsgid \"Discard All\"\nmsgstr \"Descartar tudo\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"Cópia de segurança carregada\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Remover a palete atual\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"Tem a certeza que pretende remover esta palete? (Não pode ser desfeito)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Não pode remover mais paletes!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Não foi possível remover a palete, pois esta não existe!\"\n\nmsgid \"and\"\nmsgstr \"e\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Move o fotograma selecionado para a direita.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Move o fotograma selecionado para a direita.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"Duração do frame:\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"Dados do utilizador:\"\n\nmsgid \"Duration\"\nmsgstr \"Duração\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"Tiled nos dois Eixos\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"Tiled no Eixo X\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Tiled no Eixo Y\"\n\nmsgid \"Create a new palette\"\nmsgstr \"Criar uma nova palete\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"Comentar:\"\n\nmsgid \"Empty\"\nmsgstr \"Vazio\"\n\nmsgid \"From Current Palette\"\nmsgstr \"Da palete atual\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"Da imagem atual\"\n\nmsgid \"From Current Selection\"\nmsgstr \"Da seleção atual\"\n\nmsgid \"Add a new color\"\nmsgstr \"Adiciona uma nova cor\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"Remove a cor selecionada\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"Ordenar paleta\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"Inverter cores\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"Ordenar por matriz\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"Ordenar por saturação\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"Ordenar por valor\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"Ordenar por luminosidade\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"Ordenar por vermelho\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"Ordenar por verde\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"Ordenar por azul\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"Ordenar por alpha\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"Já existe uma palete com esse nome!\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"É necessário um nome para a palete!\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"Reduzindo o tamanho da paleta irá redefinir as posições das cores.\\n\"\n\"Cores que não cabem no novo tamanho da paleta serão perdidas!\"\n\nmsgid \"Position:\"\nmsgstr \"Posição:\"\n\nmsgid \"Tools\"\nmsgstr \"Ferramentas\"\n\nmsgid \"Main Canvas\"\nmsgstr \"Tela principal\"\n\nmsgid \"Second Canvas\"\nmsgstr \"Tela secundária\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"Linha do Tempo da Animação\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"Pré-visualização da tela\"\n\nmsgid \"Color Pickers\"\nmsgstr \"Seletores de Cor\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"Opções de Ferramentas Global\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"Opções da Ferramenta Esquerda\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"Opções da Ferramenta Direita\"\n\nmsgid \"Reference Images\"\nmsgstr \"Imagens de Referência\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"Editor de Perspetiva\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"Gravador\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"Tiles\"\n\nmsgid \"Crop\"\nmsgstr \"Cortar\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"Redimensionar a tela\"\n\nmsgid \"Margins\"\nmsgstr \"Margens\"\n\nmsgid \"Position + Size\"\nmsgstr \"Posição + Tamanho\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"Proporção Trancada\"\n\nmsgid \"Margins:\"\nmsgstr \"Margens:\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"Proporção:\"\n\nmsgid \"Top:\"\nmsgstr \"Topo:\"\n\nmsgid \"Bottom:\"\nmsgstr \"Base:\"\n\nmsgid \"Left:\"\nmsgstr \"Esquerda:\"\n\nmsgid \"Right:\"\nmsgstr \"Direita:\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"Tamanho trancado\\n\\n\"\n\"Quando ativado usando a ferramenta na tela irá mover somente o retângulo de corte.\\n\\n\"\n\"Quando desativado usando a ferramenta na tela irá desenhar o triângulo.\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"Editar Forma 3D\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"Caixa\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"Esfera\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"Cápsula\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"Cilindro\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"Prisma\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"Toro\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"Plano\"\n\nmsgid \"Text\"\nmsgstr \"Texto\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"Luz direcional\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"Holofote\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"Ponto de luz\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"Modelo customizado\"\n\nmsgid \"Selected object:\"\nmsgstr \"Objeto selecionado:\"\n\nmsgid \"Add new object\"\nmsgstr \"Adicionar novo objeto\"\n\nmsgid \"Remove object\"\nmsgstr \"Remover objeto\"\n\nmsgid \"Camera\"\nmsgstr \"Câmara\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"Projeção:\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"Perspetiva\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"Ortogonal\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"Frustum\"\n\nmsgid \"Rotation:\"\nmsgstr \"Rotação:\"\n\nmsgid \"Scale:\"\nmsgstr \"Escala:\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"Ambiente\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"Cor ambiente:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"Energia da cor ambiente:\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"Visível:\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"Transformar\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"Mesh\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"Esquerda para a direita:\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"Raio:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"Segmentos radiais:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"Anéis:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"É hemisfério:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"Raio do topo:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"Raio de baixo:\"\n\nmsgid \"Text:\"\nmsgstr \"Texto:\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"Profundidade:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"Tamanho do pixel:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"Passo da curva:\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"Alinhamento horizontal:\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"Alinhamento vertical:\"\n\nmsgid \"Left\"\nmsgstr \"Esquerda\"\n\nmsgid \"Right\"\nmsgstr \"Direita\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"Espaçamento entre linhas:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"Energia:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"Negativo:\"\n\nmsgid \"Shadow:\"\nmsgstr \"Sombra:\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"Alcance:\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"Propriedades Animáveis\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"Pré-visualizar frame:\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"Animar\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"Valor inicial:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"Valor final:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"Tipo de easing:\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"Começa devagar e acelera ao fim\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"Começa acelerado e abranda no fim\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"Lento nas extremidades, rápido no meio\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"Rápido nas extremidades, lento no meio\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"Quadrático (elevado a 2)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"Cúbico (elevado a 3)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"Quadrático (elevado a 4)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"Quíntico (elevado a 5)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"Exponencial (elevado a x)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"Raiz quadrada\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"Seno\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"Balanceando nas bordas\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"Saltando no fim\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"Recuando no fim\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"Elástico perto do fim\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"Monocromático\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"Ao abrir uma imagem, ela pode ser importada como uma referência.\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"Selecione uma imagem para mudar as suas propriedades.\\n\"\n\"Note que não pode desenhar enquanto uma imagem de referência está selecionada.\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"Remover\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"Pressione Shift enquanto clica para remover instantaneamente.\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"Tem a certeza que quer remover esta imagem de referência? O ficheiro original não será apagado.\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"Mover a imagem de referência selecionada para a direita\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"Mover a imagem de referência selecionada para a esquerda\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"Seleciona uma imagem de referência na tela\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"Mover a imagem de referência selecionada\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"Rodar a imagem de referência selecionada\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"Redimensionar a imagem de referência selecionada\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"nenhuma\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"Redefinir Transformação\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"Posição\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"Escala\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"Rotação\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"Filtro\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"Opacidade\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"Clamping de Cor\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"Ativado\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"Efeitos de camada\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"Adicionar efeito\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"Gostaria de descarregar a imagem de %s?\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"Tileset\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"Tileset:\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"Tilesets\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"Novo tileset\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"Nome do tileset:\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"Tamanho do tile:\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"Forma do tile:\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"Layout do tile:\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"Eixo de deslocamento do tile:\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"Para todas as formas semi-deslocadas (Isométrica & Hexagonal), determina o eixo de deslocamento.\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"Empilhado\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"Empilhamento deslocado\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"Escadas para a direita\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"Escadas para baixo\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"Diamante para a direita\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"Diamante para baixo\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"Modo de apenas colocar:\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"Ativando o modo de apenas colocar é uma ação permanente. Quando ativado, só poderá colocar tiles, e não poderá modificar tiles pré-existentes na camada.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"Selecione um tile para colocar na tela.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"Modificar os tiles na tela.\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"Desenhar tiles\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"Rodar o tile para a esquerda (sentido anti-horário)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"Rodar o tile para a direita (sentido horário)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"Inverter o tile horizontalmente\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"Inverter o tile verticalmente\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"Manual\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Automático\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"Pilha\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"Tamanho do botão de tile:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"Mostrar tile vazio:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"Propriedades do tile\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"Probabilidade:\"\n\n"
  },
  {
    "path": "Translations/ro_RO.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ro\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Romanian\\n\"\n\"Language: ro_RO\\n\"\n\"PO-Revision-Date: 2025-11-04 18:28\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"Anulare\"\n\nmsgid \"Open\"\nmsgstr \"Deschide\"\n\nmsgid \"Save\"\nmsgstr \"Salvează\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Confirmă alegerea...\"\n\nmsgid \"File Name:\"\nmsgstr \"Numele fișierului:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Numele proiectului:\"\n\nmsgid \"Image Size\"\nmsgstr \"Dimensiunea imaginii\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Dimensiunea pânzei\"\n\nmsgid \"Frame Size\"\nmsgstr \"Dimensiunea cadrului\"\n\nmsgid \"Size:\"\nmsgstr \"Dimensiune:\"\n\nmsgid \"Width:\"\nmsgstr \"Lățime:\"\n\nmsgid \"Height:\"\nmsgstr \"Înălțime:\"\n\nmsgid \"Center\"\nmsgstr \"Centrare\"\n\nmsgid \"File\"\nmsgstr \"Fișier\"\n\nmsgid \"Edit\"\nmsgstr \"Editare\"\n\nmsgid \"Select\"\nmsgstr \"Selectare\"\n\nmsgid \"View\"\nmsgstr \"Vizualizare\"\n\nmsgid \"Window\"\nmsgstr \"Fereastră\"\n\nmsgid \"Image\"\nmsgstr \"Imagine\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"Proiect\"\n\nmsgid \"Effects\"\nmsgstr \"Efecte\"\n\nmsgid \"Help\"\nmsgstr \"Ajutor\"\n\nmsgid \"New\"\nmsgstr \"Nou\"\n\nmsgid \"New...\"\nmsgstr \"Nou...\"\n\nmsgid \"Open...\"\nmsgstr \"Deschidere...\"\n\nmsgid \"Save...\"\nmsgstr \"Salvare...\"\n\nmsgid \"Save as...\"\nmsgstr \"Salvare ca...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"Include imaginile amestecate\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"Dacă opțiunea este activată, imaginile amestecate finale sunt, de asemenea, stocate în pxo pentru fiecare cadru. Acest lucru face fișierul pxo mai mare și este util pentru importul de programe informatice terțe sau exportul în CLI. Nu este obligatorie ca această opțiune să fie activată pentru încărcarea fișierelor pxo în Pixelorama.\"\n\nmsgid \"Import\"\nmsgstr \"Importare\"\n\nmsgid \"Export\"\nmsgstr \"Exportare\"\n\nmsgid \"Overwrite\"\nmsgstr \"Suprascriere\"\n\nmsgid \"Export...\"\nmsgstr \"Exportare...\"\n\nmsgid \"Export as...\"\nmsgstr \"Exportare ca...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Exportare PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Exportare PNG ca...\"\n\nmsgid \"Quit\"\nmsgstr \"Ieșire\"\n\nmsgid \"Undo\"\nmsgstr \"Anulare\"\n\nmsgid \"Redo\"\nmsgstr \"Refacere\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"Istoric anulări editări\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"Stare inițială\"\n\nmsgid \"Copy\"\nmsgstr \"Copiere\"\n\nmsgid \"Cut\"\nmsgstr \"Decupare\"\n\nmsgid \"Paste\"\nmsgstr \"Lipire\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Lipire în loc\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"Lipire din memoria temporară\"\n\nmsgid \"Delete\"\nmsgstr \"Ștergere\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Ștergere permanenetă\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Mutare în coșul de gunoi\"\n\nmsgid \"New Brush\"\nmsgstr \"Pensulă nouă\"\n\nmsgid \"Scale Image\"\nmsgstr \"Scalare imagine\"\n\nmsgid \"Pixels\"\nmsgstr \"Pixeli\"\n\nmsgid \"Percentage\"\nmsgstr \"Procentaj\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"Mod culoare:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"Mod culoare\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"Indexat\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"Trunchiere la selecție\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"Trunchiere la conținut\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Redimensionare pânză\"\n\nmsgid \"Offset Image\"\nmsgstr \"Decalare imagine\"\n\nmsgid \"Offset:\"\nmsgstr \"Decalaj:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"Încapsulare:\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"Centrare cadre\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Rotire imagine\"\n\nmsgid \"Pivot x:\"\nmsgstr \"Pivot x:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"Pivot y:\"\n\nmsgid \"Smear options:\"\nmsgstr \"Animație prin efect de neclaritate:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Toleranță:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Unghi inițial:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"Încapsulare urme de pensulă\"\n\nmsgid \"Clear\"\nmsgstr \"Ștergere\"\n\nmsgid \"Invert\"\nmsgstr \"Inversare\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"Selectează zona celului\"\n\nmsgid \"Modify\"\nmsgstr \"Modificare\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"Extindere\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"Extindere selecție\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"Micșorare\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"Micșorare selecție\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"Margine\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"Selecție margine\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"Diamant\"\n\nmsgid \"Circle\"\nmsgstr \"Cerc\"\n\nmsgid \"Square\"\nmsgstr \"Pătrat\"\n\nmsgid \"Grayscale View\"\nmsgstr \"Vizualizare în tonuri de gri\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Oglindire imagine\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Răsturnare orizontală\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Răsturnare verticală\"\n\nmsgid \"Preferences\"\nmsgstr \"Preferințe\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"Procedural\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"Estompare\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"Încărcate\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"Centrare pânză\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Mod mozaic\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"Decalaje mod mozaic\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"Bază X:\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"Bază Y:\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"Mascare:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Resetare\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"Resetare %s\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"Utilizare cadru actual\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Resetare mască\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Opacitatea ferestrei\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"Opacitatea ferestrei nu funcționează în modul ecran complet.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Dispunerea panoului\"\n\nmsgid \"Panels\"\nmsgstr \"Panouri\"\n\nmsgid \"Layouts\"\nmsgstr \"Dispuneri\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Panouri mobile\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"Devenire flotant\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Gestionare dispuneri\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Previzualizare\"\n\nmsgid \"Add\"\nmsgstr \"Adăugare\"\n\nmsgid \"Add Layout\"\nmsgstr \"Adăugare dispunere\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"Ștergere %s\"\n\nmsgid \"Copy from\"\nmsgstr \"Copiere din\"\n\nmsgid \"Rename\"\nmsgstr \"Redenumire\"\n\nmsgid \"Rename Layout\"\nmsgstr \"Redenumire dispunere\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"Dispunere actuală\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Sigur vrei să ștergi această dispunere?\"\n\nmsgid \"Widescreen\"\nmsgstr \"Ecran lat\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Ecran înalt\"\n\nmsgid \"Mirror View\"\nmsgstr \"Vizualizare oglindită\"\n\nmsgid \"Show Grid\"\nmsgstr \"Afișare grilă\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Afișare grilă de pixeli\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Afișare rigle\"\n\nmsgid \"Show Guides\"\nmsgstr \"Afișare ghidaje\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"Afișare ghiduri maus\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"Afișare imagini de referință\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"Afișare efecte strat\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"Fixare la\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"Fixare la limita grilei dreptunghiulare\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"Fixare la centrul grilei dreptunghiulare\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"Fixare la ghiduri\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"Fixare la ghiduri de perspectivă\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Afișare cronologia animației\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Mod zen\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Mod ecran complet\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Umplere cu culoare:\"\n\nmsgid \"Open a File\"\nmsgstr \"Deschide un fișier\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Deschidere fișier(e)\"\n\nmsgid \"Import Options\"\nmsgstr \"Opțiuni de importare\"\n\nmsgid \"Import as:\"\nmsgstr \"Importare ca:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Aplicare la toate\"\n\nmsgid \"Recent projects\"\nmsgstr \"Proiecte recente\"\n\nmsgid \"New project\"\nmsgstr \"Proiect nou\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"Foaie cu grafice bidimensionale (proiect nou)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Foaie cu grafice bidimensionale (strat nou)\"\n\nmsgid \"New frame\"\nmsgstr \"Cadru nou\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"Înlocuire cel\"\n\nmsgid \"New layer\"\nmsgstr \"Strat nou\"\n\nmsgid \"New reference image\"\nmsgstr \"Imagine de referință nouă\"\n\nmsgid \"New palette\"\nmsgstr \"Paletă nouă\"\n\nmsgid \"New brush\"\nmsgstr \"Pensulă nouă\"\n\nmsgid \"New pattern\"\nmsgstr \"Model nou\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Cadre orizontale:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Cadre verticale:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"Secționare inteligentă\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"Prag:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"Imaginile care au oricare dintre laturi mai mici decât această valoare vor depăși pragul\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"Distanță de îmbinare:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"Imaginile care au trecut de prag vor fi îmbinate într-o imagine mai mare, dacă se află în cadrul acestei distanțe\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"Reîmprospătare\"\n\nmsgid \"Start frame:\"\nmsgstr \"Cadru de pornire:\"\n\nmsgid \"End frame:\"\nmsgstr \"Cadru de final:\"\n\nmsgid \"At frame:\"\nmsgstr \"La cadrul:\"\n\nmsgid \"At layer:\"\nmsgstr \"La stratul:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Tip de pensulă:\"\n\nmsgid \"File brush\"\nmsgstr \"Pensulă de fișier\"\n\nmsgid \"Project brush\"\nmsgstr \"Pensulă de proiect\"\n\nmsgid \"Random brush\"\nmsgstr \"Pensulă aleatorie\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Salvare grafic bidimensional ca .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Exportare grafic bidimensional ca .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Exportare grafic bidimensional\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Fișierul există deja. Suprascrii?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"Următoarele fișiere există deja. Dorești să le suprascrii?\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"Calea directorului nu este validă!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"Numele fișierului nu este valid!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"Calea directorului și numele fișierului nu sunt valide!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Exportare în desfășurare...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"Fișierul „%s” nu poate fi încărcat.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Nu se poate încărca fișierul '%s'.\\n\"\n\"Cod de eroare: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"Fișierul „%s” nu poate fi încărcat.\\n\"\n\"Acesta nu este un fișier de paletă valid.\"\n\nmsgid \"Frame\"\nmsgstr \"Cadru\"\n\nmsgid \"Frames:\"\nmsgstr \"Cadre:\"\n\nmsgid \"All Frames\"\nmsgstr \"Toate cadrele\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Foaie cu grafice bidimensionale\"\n\nmsgid \"Animation\"\nmsgstr \"Animație\"\n\nmsgid \"Preview:\"\nmsgstr \"Previzualizare:\"\n\nmsgid \"Frame:\"\nmsgstr \"Cadru:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Orientare:\"\n\nmsgid \"Browse\"\nmsgstr \"Răsfoire\"\n\nmsgid \"Resize:\"\nmsgstr \"Redimensionare:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"Calitate:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Anulare exportare\"\n\nmsgid \"Alert!\"\nmsgstr \"Alertă!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Selectează dosarul actual\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Deschide un director\"\n\nmsgid \"Background:\"\nmsgstr \"Fundal:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"Cadre selectate\"\n\nmsgid \"Layers:\"\nmsgstr \"Straturi:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Straturi vizibile\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"Straturi selectate\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"Strat de pixeli:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"Strat de grup:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"Strat 3D:\"\n\nmsgid \"Direction:\"\nmsgstr \"Direcție:\"\n\nmsgid \"Forward\"\nmsgstr \"Înainte\"\n\nmsgid \"Backwards\"\nmsgstr \"Înapoi\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Ping-Pong\"\n\nmsgid \"Columns\"\nmsgstr \"Coloane\"\n\nmsgid \"Columns:\"\nmsgstr \"Coloane:\"\n\nmsgid \"Rows\"\nmsgstr \"Rânduri\"\n\nmsgid \"Rows:\"\nmsgstr \"Rânduri:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"Etichete după coloană\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"Etichete după rând\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"Dimensiuni de export:\"\n\nmsgid \"Save a File\"\nmsgstr \"Salvează un fișier\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"Deplasează-te la dosarul anterior.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"Deplasează-te la dosarul următor.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"Deplasează-te la dosarul părinte.\"\n\nmsgid \"Path:\"\nmsgstr \"Cale:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"Reîmprospătează fișierele.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"Comută vizibilitatea fișierelor ascunse.\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Directoare și fișiere:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Creare dosar\"\n\nmsgid \"File:\"\nmsgstr \"Fișier:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"Toate fișierele\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"Toate recunoscute\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"Proiect Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"Imagine PNG\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"Imagine BMP\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"Imagine Radiance HDR\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"Imagine JPEG\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"Imagine SVG\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"Imagine TGA\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"Imagine WebP\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"Proiect OpenRaster\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"Proiect Aseprite\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"Proiect Krita\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"Proiect Piskel\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"Proiect Photoshop\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"Paletă Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"Paletă GIMP\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"Opțiuni avansate\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Interpolare:\"\n\nmsgid \"Nearest\"\nmsgstr \"Cea mai apropiată\"\n\nmsgid \"Bilinear\"\nmsgstr \"Biliniară\"\n\nmsgid \"Cubic\"\nmsgstr \"Cubică\"\n\nmsgid \"Trilinear\"\nmsgstr \"Triliniară\"\n\nmsgid \"Constant\"\nmsgstr \"Constantă\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"Spațiu de culoare\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"sRGB liniar\"\n\nmsgid \"General\"\nmsgstr \"General\"\n\nmsgid \"Startup\"\nmsgstr \"Pornire\"\n\nmsgid \"Language\"\nmsgstr \"Limbă\"\n\nmsgid \"Interface\"\nmsgstr \"Interfață\"\n\nmsgid \"Themes\"\nmsgstr \"Teme\"\n\nmsgid \"Canvas\"\nmsgstr \"Pânză\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"Cronologie\"\n\nmsgid \"Selection\"\nmsgstr \"Selecție\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Comenzi rapide\"\n\nmsgid \"Backup\"\nmsgstr \"Copie de rezervă\"\n\nmsgid \"Performance\"\nmsgstr \"Performanță\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"Drivere\"\n\nmsgid \"Extensions\"\nmsgstr \"Extensii\"\n\nmsgid \"Cursors\"\nmsgstr \"Cursoare\"\n\nmsgid \"Indicators\"\nmsgstr \"Indicatori\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"Pixelorama trebuie repornit pentru ca setările să aibă efect.\"\n\nmsgid \"On\"\nmsgstr \"Pornit\"\n\nmsgid \"Restore default value\"\nmsgstr \"Restabilire valoare implicită\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Transfocare lentă\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Adaugă o tranziție mai lentă la apropiere sau depărtare\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"Număr întreg transfocare\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"Restricționează valoarea la un multiplu întreg de 100%\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Sensibilitatea de apăsare a tabletei:\"\n\nmsgid \"None\"\nmsgstr \"Niciunul\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Afectează valoarea alfa a pensulei\"\n\nmsgid \"Color:\"\nmsgstr \"Culoare:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Culoarea ghidajului:\"\n\nmsgid \"System Language\"\nmsgstr \"Limba sistemului\"\n\nmsgid \"Display scale:\"\nmsgstr \"Scară de afișare:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"Font:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"Dimensiunea fontului:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"Orientarea ecranului:\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Întunecă interfața la apariția ferestrei de dialog\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"Arată etichetele de notificare\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"Folosește dialoguri native de fișiere\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"Când această setare este activată, sunt folosite dialogurile native de fişiere ale sistemului de operare, în loc de cele personalizate ale Pixelorama.\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"Mod fereastră simplă\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"Când această setare este activată, subferestrele aplicației Pixelorama vor fi încorporate în fereastra principală, în caz contrar fiecare dialog va fi în propria fereastră separată.\"\n\nmsgid \"Dark\"\nmsgstr \"Întunecat\"\n\nmsgid \"Gray\"\nmsgstr \"Gri\"\n\nmsgid \"Blue\"\nmsgstr \"Albastru\"\n\nmsgid \"Caramel\"\nmsgstr \"Caramel\"\n\nmsgid \"Light\"\nmsgstr \"Luminos\"\n\nmsgid \"Purple\"\nmsgstr \"Mov\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"Trandafiriu\"\n\nmsgid \"Theme\"\nmsgstr \"Temă\"\n\nmsgid \"Buttons\"\nmsgstr \"Butoane\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Culoarea pictogramei din:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Culoarea pictogramei:\"\n\nmsgid \"Background\"\nmsgstr \"Fundal\"\n\nmsgid \"Background color from:\"\nmsgstr \"Culoare de fundal din:\"\n\nmsgid \"Background color:\"\nmsgstr \"Culoare de fundal:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"Mod instrument unic\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"Dacă această opțiune este activată, butonul din dreapta al mausului va activa întotdeauna același instrument ca butonul din stânga al mausului.\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"Sincronizează opțiunile între instrumentele din stânga și cele din dreapta\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"Dacă această setare este activată, opțiunile vor fi sincronizate între instrumentul din stânga și cel din dreapta.\\n\"\n\"De exemplu, ambele instrumente vor folosi o pensulă de aceeași mărime, iar modificarea setării pentru un instrument se va aplica instantaneu și pentru cealaltă.\"\n\nmsgid \"Left tool color:\"\nmsgstr \"Culoarea instrumentului din stânga:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"Culoarea instrumentului din dreapta:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Mărimea butonului instrumentului:\"\n\nmsgid \"Small\"\nmsgstr \"Mică\"\n\nmsgid \"Big\"\nmsgstr \"Mare\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Afectează doar selecția\"\n\nmsgid \"Selected cels\"\nmsgstr \"Celuri selectate\"\n\nmsgid \"Current cel\"\nmsgstr \"Celul actual\"\n\nmsgid \"Current frame\"\nmsgstr \"Cadrul actual\"\n\nmsgid \"All frames\"\nmsgstr \"Toate cadrele\"\n\nmsgid \"All projects\"\nmsgstr \"Toate proiectele\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Inversare culori\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Modificare canal roșu\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Modificare canal verde\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Modificare canal albastru\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Modificare canal alfa\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Desaturație\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Contur\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Umbră\"\n\nmsgid \"Offset X:\"\nmsgstr \"Decalaj X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"Decalaj Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"Culoarea umbrei:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"Estompare gaussiană\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"Tip de estompare:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"Cantitate de estompare:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"Rază de estompare:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"Direcția de estompare:\"\n\nmsgid \"Gradient\"\nmsgstr \"Degrade\"\n\nmsgid \"Gradient Map\"\nmsgstr \"Hartă degrade\"\n\nmsgid \"Interpolation\"\nmsgstr \"Interpolare\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"Inversare\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"Distribuie echivalent punctele\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"Împărțire în părți egale\"\n\nmsgid \"Parts:\"\nmsgstr \"Părți:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"Adăugare punct la final\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"Dacă această opțiune este activată, ultimul punct este adăugat la sfârșitul degradeului.\\n\"\n\"Dezactivează opțiunea dacă dorești să convertești degradeul pentru a avea interpolare constantă, astfel încât să fie luată în considerare ultima culoare.\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"Salvare la prestabilite\"\n\nmsgid \"Shape:\"\nmsgstr \"Formă:\"\n\nmsgid \"Linear\"\nmsgstr \"Liniar\"\n\nmsgid \"Radial\"\nmsgstr \"Radial\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"Repetare:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"Repetare\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"Oglindire\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"Trunchiere\"\n\nmsgid \"Transition size:\"\nmsgstr \"Dimensiunea tranziției:\"\n\nmsgid \"Center:\"\nmsgstr \"Centru:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"Model de intercalare a nuanțelor:\"\n\nmsgid \"Type:\"\nmsgstr \"Tip:\"\n\nmsgid \"Angle:\"\nmsgstr \"Unghi:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Ajustare nuanță/saturație/valoare\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"Ajustare NSV\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Nuanță:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Saturație:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Valoare:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"Ajustare luminozitate/contrast\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"Luminozitate:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"Contrast:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"Valoare roșie:\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"Valoare verde:\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"Valoare albastră:\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"Culoare de nuanță:\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"Factor de efect de nuanță:\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"Curbe de culoare\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"Canal:\"\n\nmsgid \"Red\"\nmsgstr \"Roșu\"\n\nmsgid \"Green\"\nmsgstr \"Verde\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"Valoare\"\n\nmsgid \"Presets\"\nmsgstr \"Valori prestabilite\"\n\nmsgid \"Apply\"\nmsgstr \"Aplicare\"\n\nmsgid \"Diagonal\"\nmsgstr \"Diagonală\"\n\nmsgid \"Place inside image\"\nmsgstr \"Așezare în interiorul imaginii\"\n\nmsgid \"Thickness:\"\nmsgstr \"Grosime:\"\n\nmsgid \"Colors:\"\nmsgstr \"Culori:\"\n\nmsgid \"Steps:\"\nmsgstr \"Pași:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"Paletizare\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"Pixelizare\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"Posterizare\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"Niveluri de posterizare:\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"Intensitate de intercalare a nuanțelor:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Vizualizare ecran de întâmpinare\"\n\nmsgid \"Online Docs\"\nmsgstr \"Documentație virtuală\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Monitor de probleme\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"Restabilire copie de siguranță\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"Sesiuni anterioare\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"Dă dublu clic pentru a încărca o sesiune întreagă sau un proiect specific.\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"Sesiuni\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"Proiecte\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"(Sesiune curentă)\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"Deschide dosarul cu datele editorului\"\n\nmsgid \"Changelog\"\nmsgstr \"Jurnal de modificări\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Despre Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"Susține dezvoltarea aplicației Pixelorama\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama – Pixelează-ți visele!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Dezvoltat de Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-prezent de Orama Interactive și contribuitorii\"\n\nmsgid \"Website\"\nmsgstr \"Pagină de internet\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"Cod sursă\"\n\nmsgid \"Donate\"\nmsgstr \"Donează\"\n\nmsgid \"Developers\"\nmsgstr \"Dezvoltatori\"\n\nmsgid \"Contributors\"\nmsgstr \"Contribuitori\"\n\nmsgid \"Donors\"\nmsgstr \"Donatori\"\n\nmsgid \"Translators\"\nmsgstr \"Traducători\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Licențe\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"Licență\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"Licențe Godot\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"Licențe terțe\"\n\nmsgid \"English\"\nmsgstr \"Engleză\"\n\nmsgid \"Greek\"\nmsgstr \"Greacă\"\n\nmsgid \"French\"\nmsgstr \"Franceză\"\n\nmsgid \"German\"\nmsgstr \"Germană\"\n\nmsgid \"Polish\"\nmsgstr \"Poloneză\"\n\nmsgid \"Portuguese\"\nmsgstr \"Portugheză\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Portugheză braziliană\"\n\nmsgid \"Russian\"\nmsgstr \"Rusă\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Chineză simplificată\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Chineză tradițională\"\n\nmsgid \"Italian\"\nmsgstr \"Italiană\"\n\nmsgid \"Latvian\"\nmsgstr \"Letonă\"\n\nmsgid \"Spanish\"\nmsgstr \"Spaniolă\"\n\nmsgid \"Catalan\"\nmsgstr \"Catalană\"\n\nmsgid \"Esperanto\"\nmsgstr \"Esperanto\"\n\nmsgid \"Indonesian\"\nmsgstr \"Indoneziană\"\n\nmsgid \"Czech\"\nmsgstr \"Cehă\"\n\nmsgid \"Arabic\"\nmsgstr \"Arabă\"\n\nmsgid \"Turkish\"\nmsgstr \"Turcă\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Bokmål\"\n\nmsgid \"Korean\"\nmsgstr \"Coreeană\"\n\nmsgid \"Hungarian\"\nmsgstr \"Maghiară\"\n\nmsgid \"Romanian\"\nmsgstr \"Română\"\n\nmsgid \"Japanese\"\nmsgstr \"Japoneză\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Ucraineană\"\n\nmsgid \"Danish\"\nmsgstr \"Daneză\"\n\nmsgid \"Swedish\"\nmsgstr \"Suedeză\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Sârbă (alfabet chirilic)\"\n\nmsgid \"Dutch\"\nmsgstr \"Neerlandeză\"\n\nmsgid \"Belarusian\"\nmsgstr \"Belarusă\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"Dezvoltator principal\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"Proiectant UI\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"Autori\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Artă realizată de: %s\"\n\nmsgid \"untitled\"\nmsgstr \"fără titlu\"\n\nmsgid \"imported\"\nmsgstr \"importat\"\n\nmsgid \"copy\"\nmsgstr \"copie\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Sigur dorești să ieși din Pixelorama?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Imagine nesalvată\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Ai modificări nesalvate. Dacă continui, progresul efectuat va fi pierdut.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Salvezi înainte de ieșire?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"Proiectul %s are progres nesalvat. Cum dorești să continui?\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Salvare și ieșire\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Ieșire fără salvare\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Selectare dreptunghiulară\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Selectare eliptică\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Selectare poligonală\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\\n\\n\"\n\"Dublu-clic pentru a conecta ultimul punct la punctul de pornire\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Selectare după culoare\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Baghetă magică\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Lasou/instrument de selectare liberă\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Selectare după desen\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Deplasare\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Transfocare\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Panoramare\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"Selector de culoare\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\\n\\n\"\n\"Selectează o culoare dintr-un pixel al graficului bidimensional\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"Decupare\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Creion\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\\n\\n\"\n\"Ține apăsată tasta %s pentru a trasa o linie\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Radieră\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\\n\\n\"\n\"Ține apăsată tasta %s pentru a trasa o linie\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Recipient\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Instrument de umbrire\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Instrument Linie\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\\n\\n\"\n\"Ține apăsată tasta %s pentru a fixa unghiul liniei\\n\"\n\"Ține apăsată tasta %s pentru a centra forma pe originea clicului\\n\"\n\"Ține apăsată tasta %s pentru a deplasa originea formei\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"Instrument Curbă\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\\n\\n\"\n\"Desenează curbe Bézier\\n\"\n\"Apasă %s/%s pentru a adăuga puncte noi\\n\"\n\"Dă dublu clic pentru a finaliza desenarea curbei\\n\"\n\"Apasă și glisează pentru a controla curbura\\n\"\n\"Apasă %s pentru a elimina ultimul punct adăugat\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Instrument Dreptunghi\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\\n\\n\"\n\"Ține apăsată tasta %s pentru a crea o formă 1:1\\n\"\n\"Ține apăsată tasta %s pentru a centra forma pe originea clicului\\n\"\n\"Ține apăsată tasta %s pentru a deplasa originea formei\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Instrument Elipsă\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\\n\\n\"\n\"Ține apăsată tasta %s pentru a crea o formă 1:1\\n\"\n\"Ține apăsată tasta %s pentru a centra forma pe originea clicului\\n\"\n\"Ține apăsată tasta %s pentru a deplasa originea formei\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"Instrument Cutie izometrică\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\\n\\n\"\n\"Desenează o cutie izometrică\\n\"\n\"Apasă %s/%s pentru a adăuga un punct de bază\\n\"\n\"Ține apăsat %s pentru a fixa unghiul punctului de bază\\n\"\n\"Ține apăsat %s pentru a disloca originea formei\\n\"\n\"Apasă %s pentru a edita ultima bază adăugată\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Text\\n\\n\"\n\"%s pentru butonul din stânga al mausului\\n\"\n\"%s pentru butonul din dreapta al mausului\"\n\nmsgid \"Rectangle\"\nmsgstr \"Dreptunghi\"\n\nmsgid \"Ellipse\"\nmsgstr \"Elipsă\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Alege o culoare pentru instrumentul din stânga\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Alege o culoare pentru instrumentul din dreapta\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"Comută culorile din stânga și dreapta.\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"Culoare medie:\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Resetează culorile la starea lor implicită (negru pentru stânga, alb pentru dreapta)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"Alege o culoare din fereastra aplicației.\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"Introdu un cod hexazecimal („#ff0000”) sau numele culorii în engleză („red”).\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"Selectează o formă pentru selector.\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"Opțiuni de culoare\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"Selectează un mod selector.\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"Glisoare colorate\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"Eșantioane\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"Culori recente\"\n\nmsgid \"Left tool\"\nmsgstr \"Instrument stânga\"\n\nmsgid \"Right tool\"\nmsgstr \"Instrument dreapta\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Indicator pixel stânga\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Arată pe pânză pensula sau indicatorul pixel al butonului din stânga mausului atunci când se desenează\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Indicator pixel dreapta\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Arată pe pânză pensula sau indicatorul pixel al butonului din dreapta mausului atunci când se desenează\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Arată pictograma instrumentului din stânga\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Afișează o pictogramă a instrumentului selectat din stânga de lângă cursorul de pe pânză\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Arată pictograma instrumentului din dreapta\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Afișează o pictogramă a instrumentului selectat din dreapta de lângă cursorul de pe pânză\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"Folosește cursoarele native ale mausului\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"Folosește cursorul încrucișat pentru pânză\"\n\nmsgid \"Guides\"\nmsgstr \"Ghidaje\"\n\nmsgid \"Guides color:\"\nmsgstr \"Culoare pentru ghidaje:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Culoarea ghidajelor de riglă afișate pe pânză\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"Ancorare\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"Distanță de ancorare:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"Aceasta reprezintă distanța în pixeli unde ghidajul și fixarea la grilă sunt activate.\"\n\nmsgid \"Grid\"\nmsgstr \"Grilă\"\n\nmsgid \"Grid type:\"\nmsgstr \"Tip de grilă:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Setează tipul de grilă dintre dreptunghiulară, izometrică sau ambele\"\n\nmsgid \"Rectangular\"\nmsgstr \"Dreptunghiulară\"\n\nmsgid \"Isometric\"\nmsgstr \"Izometrică\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"Hexagonală\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"Hexagonală (cu vârf ascuțit)\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"Hexagonală (cu vârf plat)\"\n\nmsgid \"All\"\nmsgstr \"Toate\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"Grile vizibile:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"Grilă în editare:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"Dimensiune grilă:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"Decalaj grilă:\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"Setează decalajul grilei față de punctul de pornire al pânzei (colțul din partea din stânga sus a imaginii)\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"Afișare peste modul mozaic:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"Dacă opțiunea este dezactivată, grila va fi afișată doar peste imaginea originală\"\n\nmsgid \"Grid color:\"\nmsgstr \"Culoarea grilei:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"Culoarea atribuită grilei\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Grilă de pixeli\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Afișare la transfocare:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"Setează nivelul minim de transfocare la care va fi afișată grila de pixeli\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Culoarea grilei de pixeli:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"O culoare a grilei de pixeli\"\n\nmsgid \"Transparency\"\nmsgstr \"Transparență\"\n\nmsgid \"Checker size:\"\nmsgstr \"Dimensiunea carourilor:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Dimensiunea fundalului caroiat transparent\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Culoare carouri 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"Prima culoare a fundalului caroiat transparent\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Culoare carouri 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"A doua culoare a fundalului caroiat transparent\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"Urmărește mișcarea pânzei\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"Carourile transparente urmăresc mișcarea pânzei\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"Urmărește nivelul de transfocare al pânzei\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"Carourile transparente urmăresc nivelul de transfocare al pânzei\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"Selectează stratul atunci când dai clic pe unul din butoanele acestuia:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"Culoarea trecută a cadrelor multiple simultane:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"Culoarea viitoare a cadrelor multiple simultane:\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"Margini de selecție animate\"\n\nmsgid \"Border color 1:\"\nmsgstr \"Culoarea marginii 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Culoarea marginii 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"Previzualizare transformare alfa:\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Doar presetarea personalizată poate fi modificată\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"Setare limită de cadre pe secundă pentru aplicație:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"Setează limita de cadre pe secundă a aplicației. Cu cât numărul este mai mic, cu atât utilizarea procesorului este mai redusă, însă aplicația devine mai lentă, variabilă și nereceptivă. 0 înseamnă că nu există limite.\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"Pași max. de anulare:\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"Întrerupe aplicația atunci când pierde focalizarea\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"Dacă această opțiune este activată, în momentul în care fereastra aplicației pierde focalizarea, aceasta este întreruptă. Acest lucru ajută la reducerea utilizării procesorului pe durata perioadei de inactivitate. Aplicația își reia activitatea atunci când mausul intră în fereastra aplicației.\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"Actualizare continuă\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"Dacă această opțiune este activată, aplicația va redesena ecranul continuu, chiar dacă nu este folosit. Dezactivarea acestei opțiuni ajută la reducerea gradului de utilizare a unității centrale de procesare și a unității de procesare grafică în perioadele de inactivitate.\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"Activează transparența ferestrei\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"Dacă opțiunea este activată, fereastra aplicației poate deveni transparentă. Aceasta afectează performanța, așa că este recomandată dezactivarea opțiunii dacă nu este necesară.\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"Folosire driver audio fictiv\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"Randator:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"Specifică randatorul/driverul video utilizat. GLES2 este mai bun pentru dispozitivele mai vechi și cu o performanță mai redusă, dar GLES3 poate oferi mai multe caracteristici.\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"Driver tabletă:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"Specifică driverul tabletei utilizat pe Windows. Dacă ai Windows Ink activat, selectează winink.\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Adăugare extensie\"\n\nmsgid \"Enable\"\nmsgstr \"Activare\"\n\nmsgid \"Disable\"\nmsgstr \"Dezactivare\"\n\nmsgid \"Uninstall\"\nmsgstr \"Dezinstalare\"\n\nmsgid \"Open Folder\"\nmsgstr \"Deschidere dosar\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"Explorează pe internet\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"Explorator de extensii\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"Căutare...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"Etichete:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"Raportează o problemă cu o extensie\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"Descărcare\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"Linkuri depozite:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"Se preiau datele din depozitul la distanță.\\n\"\n\"Te rugăm să aștepți.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"Nu se pot obține informații din depozitul la distanță.\\n\\n\"\n\"- Asigură-te că te-ai conectat la internet.\\n\"\n\"- Dacă utilizezi versiunea Flatpak a Pixelorama, trebuie să îi acorzi permisiunea de a se conecta la internet. Pentru a face asta, poți rula următoarea comandă pe terminal:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"Alternativ, poți descărca Flatseal și stabili acolo permisiunile pentru aplicațiile Flatpak.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"Nu se pot obține informații din depozitul la distanță.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"Adaugă linkul depozitului, oferit de proprietarul depozitului. Dacă este lăsat gol, acesta va fi eliminat automat.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"Sigur vrei să activezi această extensie? Asigură-te că activezi doar extensii din surse în care ai încredere.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"Sigur vrei să ștergi această extensie?\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"Dinamică\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"Stabilizator\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"Presiune\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"Viteză\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"Alfa\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"Dimensiune\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"Limite de valoare\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"Praguri\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"Început\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"Sfârșit\"\n\nmsgid \"Brush:\"\nmsgstr \"Pensulă:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Selectează o pensulă\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"Pensule implicite\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Pensulă cu pixeli\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Pensulă cu cerc\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Pensulă cu cerc umplut\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"Pensule de proiect\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"Pensule de fișier\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"Zăpadă\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"Pensule de fișier aleatorii\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"Iarbă\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"Stea\"\n\nmsgid \"Custom brush\"\nmsgstr \"Pensulă personalizată\"\n\nmsgid \"Brush size:\"\nmsgstr \"Dimensiunea pensulei:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"Opțiuni de rotație\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"Răsturnare:\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"Rotire:\"\n\nmsgid \"Overwrite color\"\nmsgstr \"Suprascriere culoare\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Suprascrie culoarea în loc să o amestece. Această opțiune se aplică doar culorilor care nu sunt pe deplin opace\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Pixel Perfect\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"Pixel Perfect\\n\"\n\"Netezește liniile prin eliminarea pixelilor suplimentari de pe margini\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"Blocare valoare alfa\"\n\nmsgid \"Fill inside\"\nmsgstr \"Umplere pe interior\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"Spațiere\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"Decalaj X:\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"Decalaj Y:\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Umplere formă\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"În locul desenării unei forme goale, forma desenată este umplută cu culoare\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"Densitate:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"Culoarea pensulei de la:\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: culoarea provenită din pensulă, 100: culoarea selectată în prezent\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"Zona de umplere:\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"Zonă similară\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"Culori similare\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"Selecția completă\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"Umple regiunile de la îmbinarea tuturor straturilor\"\n\nmsgid \"Fill with:\"\nmsgstr \"Umplere cu:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"Culoare selectată\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Model\"\n\nmsgid \"Offset\"\nmsgstr \"Decalaj\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Umbrire simplă\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Schimbare de nuanță\"\n\nmsgid \"Lighten\"\nmsgstr \"Luminare\"\n\nmsgid \"Darken\"\nmsgstr \"Întunecare\"\n\nmsgid \"Amount:\"\nmsgstr \"Cantitate:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Cantitate luminare/întunecare\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"Înlocuire culoare\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"Selectează o culoare din paletă.\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"Culori dreapta:\"\n\nmsgid \"Pick for:\"\nmsgstr \"Alege pentru:\"\n\nmsgid \"Left Color\"\nmsgstr \"Culoarea stângă\"\n\nmsgid \"Right Color\"\nmsgstr \"Culoarea dreaptă\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"Mod alegere:\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"Culoarea de sus\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"Strat actual\"\n\nmsgid \"Mode:\"\nmsgstr \"Mod:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Apropiere\"\n\nmsgid \"Zoom out\"\nmsgstr \"Depărtare\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"Unic\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"Înlănțuit\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"Înlănțuit: creează o serie de curbe Bezier, asemănător instrumentului curbă Krita.\\n\"\n\"Unic: creează o singură curbă bezier, asemănător instrumentului curbă Aseprite.\"\n\nmsgid \"Options\"\nmsgstr \"Opțiuni\"\n\nmsgid \"Options:\"\nmsgstr \"Opțiuni:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"Potrivire la cadru\"\n\nmsgid \"100% Zoom\"\nmsgstr \"Transfocare 100%\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"Înlocuire selecție\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"Adăugare la selecție\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"Scădere din selecție\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"Intersecția selecțiilor\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"Stil:\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"Obișnuit\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"Aldin\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"Cursiv\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"Aldin Cursiv\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"Anticrenelaj\"\n\nmsgid \"Grayscale\"\nmsgstr \"Tonuri de gri\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"Culoare margine\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"Culoare instrument\"\n\nmsgid \"Adjusted average\"\nmsgstr \"Medie ajustată\"\n\nmsgid \"Blend at interface\"\nmsgstr \"Amestecare la interfață\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"Latura stângă\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"Latura dreaptă\"\n\nmsgid \"Mirroring\"\nmsgstr \"Oglindire\"\n\nmsgid \"Horizontal\"\nmsgstr \"Orizontal\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Activează desenul oglindit orizontal\"\n\nmsgid \"Vertical\"\nmsgstr \"Vertical\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Activează desenul oglindit vertical\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"Activează desenarea oglindită diagonală (↗)\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"Activează desenarea oglindită diagonală (↘)\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"Mutare în centrul pânzei\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"Mutare în centrul de vizualizare\"\n\nmsgid \"Current frame:\"\nmsgstr \"Cadrul actual:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"Mod de animație:\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"Cadrul curent ca foaie cu grafice bidimensionale\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"Sari la primul cadru\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"Deplasează-te la cadrul anterior\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"Redă animația înapoi\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"Redă animația înainte\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"Deplasează-te la cadrul următor\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"Sari la ultimul cadru\"\n\nmsgid \"Timeline settings\"\nmsgstr \"Setări cronologie\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Activează/dezactivează cadrele multiple simultane\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"Câte cadre pe secundă ar trebui să aibă previzualizarea animației?\\n\"\n\"Cu cât numărul de cadre pe secundă este mai mare, cu atât animația rulează mai repede.\"\n\nmsgid \"No loop\"\nmsgstr \"Fără buclă\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Buclă ciclică\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Buclă ping-pong\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Cadre multiple simultane:\"\n\nmsgid \"Past Frames\"\nmsgstr \"Cadre trecute\"\n\nmsgid \"Future Frames\"\nmsgstr \"Cadre viitoare\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Gestionează etichetele de cadru\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Proprietățile etichetelor de cadru\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Adaugă o nouă etichetă de cadru\"\n\nmsgid \"Name:\"\nmsgstr \"Nume:\"\n\nmsgid \"From:\"\nmsgstr \"De la:\"\n\nmsgid \"To:\"\nmsgstr \"Până la:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"Animația rulează doar pe cadrele din aceeași etichetă\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Eticheta %s (cadrul %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Eticheta %s (cadrele %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Dacă opțiunea este selectată, animația va rula doar pe cadrele cu aceeași etichetă.\\n\"\n\"În caz contrar, animația va rula pentru toate cadrele, ignorând etichetele.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"Dimensiune celuri:\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"Mod culoare\"\n\nmsgid \"Show past frames:\"\nmsgstr \"Arată cadrele trecute:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"Arată cadrele viitoare:\"\n\nmsgid \"Above canvas\"\nmsgstr \"Deasupra pânzei\"\n\nmsgid \"Below canvas\"\nmsgstr \"Sub pânză\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"Dacă vrei ca un strat să ignore opțiunea pentru cadre multiple simultane, adaugă sufixul „_io” în numele acestuia.\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Adaugă un cadru nou\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Elimină cadrul\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Clonează cadrul\"\n\nmsgid \"Move Left\"\nmsgstr \"Deplasare la stânga\"\n\nmsgid \"Move Right\"\nmsgstr \"Deplasare la dreapta\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"Selectare pixeli\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"Conectare celuri la\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"Deconectare celuri\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"Redare audio aici\"\n\nmsgid \"Properties\"\nmsgstr \"Proprietăți\"\n\nmsgid \"Project Properties\"\nmsgstr \"Proprietățile proiectului\"\n\nmsgid \"Frame properties\"\nmsgstr \"Proprietățile cadrului\"\n\nmsgid \"Layer properties\"\nmsgstr \"Proprietățile stratului\"\n\nmsgid \"Cel properties\"\nmsgstr \"Proprietăți cel\"\n\nmsgid \"Tag properties\"\nmsgstr \"Proprietăți etichetă\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"Etichetă nouă\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"Importare etichetă\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"Inversare cadre\"\n\nmsgid \"Layer\"\nmsgstr \"Strat\"\n\nmsgid \"Group\"\nmsgstr \"Grup\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"Hartă de dale\"\n\nmsgid \"Audio\"\nmsgstr \"Audio\"\n\nmsgid \"Layers\"\nmsgstr \"Straturi\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"Mască de decupare\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"Aplatizare\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"Aplatizare straturi vizibile\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Creează un strat nou\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"Adăugare strat pixel\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"Adăugare strat grup\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"Adăugare strat 3D\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"Adăugare strat cu hartă de dale\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"Adăugare strat audio\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Elimină stratul actual\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Deplasează în sus stratul actual\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Deplasează în jos stratul actual\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Clonează stratul actual\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Îmbină stratul actual cu cel de mai jos\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"Mod amestecare:\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"Trecere\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"Normal\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"Ștergere\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"Multiplicare\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"Supraexpunere coloră\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"Supraexpunere liniară\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"Ecran\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"Subexpunere coloră\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"Contrast\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"Suprapunere\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"Lumină delicată\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"Lumină dură\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"Inversare\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"Diferență\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"Excludere\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"Scădere\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"Împărțire\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"Componentă\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"Nuanță\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"Saturație\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"Culoare\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"Luminozitate\"\n\nmsgid \"Opacity:\"\nmsgstr \"Opacitate:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"Opacitatea modului mozaic:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Comută vizibilitatea stratului\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Blochează/deblochează stratul\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Cadru: %s, strat: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"Activează/dezactivează automat conectarea de celuri noi la crearea de cadre noi\\n\\n\"\n\"Celurile conectate împărtășesc conținut între mai multe cadre\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"Extindere/restrânge grup\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"Fișier audio:\"\n\nmsgid \"Load file\"\nmsgstr \"Încărcare fișier\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"Redare la cadrul:\"\n\nmsgid \"Palette\"\nmsgstr \"Paletă\"\n\nmsgid \"Palettes\"\nmsgstr \"Palete\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Adaugă o paletă nouă\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Editează paleta selectată în prezent\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Alege o paletă\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Anulare: desenare\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Refacere: desenare\"\n\nmsgid \"Undo: Select\"\nmsgstr \"Anulare: selectare\"\n\nmsgid \"Redo: Select\"\nmsgstr \"Refacere: selectare\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Anulare: scalare\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Refacere: scalare\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Anulare: adăugare strat\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Refacere: adăugare strat\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Anulare: eliminare strat\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Refacere: eliminare strat\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Anulare: îmbinare strat\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Refacere: îmbinare strat\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Anulare: modificarea ordinii stratului\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Refacere: modificarea ordinii stratului\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Anulare: adăugare cadru\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Refacere: adăugare cadru\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Anulare: eliminare cadru\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Refacere: eliminare cadru\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Anulare: modificarea ordinii cadrului\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Refacere: modificarea ordinii cadrului\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Anulare: ștergere pensulă personalizată\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Refacere: ștergere pensulă personalizată\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"Anulare: modificarea etichetei cadrului\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"Refacere: modificarea etichetei cadrului\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"Anulare: ștergerea etichetei cadrului\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"Refacere: ștergerea etichetei cadrului\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"Anulare: modificarea duratei cadrului\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"Refacere: modificarea duratei cadrului\"\n\nmsgid \"Move Guide\"\nmsgstr \"Deplasare ghidaj\"\n\nmsgid \"File saved\"\nmsgstr \"Fișier salvat\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"Copie de rezervă salvată\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"Fișierul nu a putut fi deschis. Cod de eroare %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"Fișierul nu a putut fi salvat. Cod de eroare %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"Exportarea videoclipului a eșuat. Asigură-te că FFMPEG este instalat corect.\"\n\nmsgid \"File(s) exported\"\nmsgstr \"Fișier(e) exportat(e)\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Paletă nouă goală\"\n\nmsgid \"Import Palette\"\nmsgstr \"Importare paletă\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Creare paletă din graficul bidimensional actual\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Numele paletei:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Numele culorii:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"Folosește culorile din stânga și dreapta\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Creezi o paletă nouă goală?\"\n\nmsgid \"Error\"\nmsgstr \"Eroare\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Eroare: paleta trebuie să aibă un nume valid.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Fișier de paletă invalid!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Editare paletă\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"Creează culori cu componentă alfa\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"Obține culori doar din selecție\"\n\nmsgid \"Get colors from\"\nmsgstr \"Obține culori din\"\n\nmsgid \"Patrons:\"\nmsgstr \"Susținători:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"Dorești ca numele tău sau al companiei tale să fie afișat pe ecranul de întâmpinare?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Devino susținător de top\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Devino susținător de vază\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Devino susținător\"\n\nmsgid \"Don't show again\"\nmsgstr \"Nu mai arăta\"\n\nmsgid \"Image Options\"\nmsgstr \"Opțiuni pentru imagine\"\n\nmsgid \"Default width:\"\nmsgstr \"Lățime implicită:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"Lățimea implicită a unei imagini noi\"\n\nmsgid \"Default height:\"\nmsgstr \"Înălțime implicită:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"Înălțimea implicită a unei imagini noi\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Culoare implicită de umplere:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"Culoarea implicită de fundal a unei imagini noi\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"Resetează toate opțiunile disponibile în Preferințe\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"Resetează opțiunile de cronologie\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"Resetați toate opțiunile de instrumente\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"Elimină toate extensiile\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"Elimină toate copiile de rezervă\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"Șterge lista de fișiere recent deschisă\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"Blocare raport aspect\"\n\nmsgid \"Portrait\"\nmsgstr \"Portret\"\n\nmsgid \"Landscape\"\nmsgstr \"Peisaj\"\n\nmsgid \"Templates:\"\nmsgstr \"Șabloane:\"\n\nmsgid \"Preset\"\nmsgstr \"Presetare\"\n\nmsgid \"Preset:\"\nmsgstr \"Presetare:\"\n\nmsgid \"Default\"\nmsgstr \"Implicită\"\n\nmsgid \"Custom\"\nmsgstr \"Personalizată\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Selectare dreptunghiulară\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"Selectare eliptică\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"Selectare poligonală\"\n\nmsgid \"Select By Color\"\nmsgstr \"Selectare după culoare\"\n\nmsgid \"Magic Wand\"\nmsgstr \"Baghetă magică\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"Lasou/instrument de selectare liberă\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"Selectare prin desenare\"\n\nmsgid \"Move\"\nmsgstr \"Deplasare\"\n\nmsgid \"Zoom\"\nmsgstr \"Transfocare\"\n\nmsgid \"Pan\"\nmsgstr \"Panoramare\"\n\nmsgid \"Color Picker\"\nmsgstr \"Selector de culoare\"\n\nmsgid \"Pencil\"\nmsgstr \"Creion\"\n\nmsgid \"Eraser\"\nmsgstr \"Radieră\"\n\nmsgid \"Bucket\"\nmsgstr \"Recipient\"\n\nmsgid \"Shading Tool\"\nmsgstr \"Instrument de umbrire\"\n\nmsgid \"Line Tool\"\nmsgstr \"Instrument Linie\"\n\nmsgid \"Curve Tool\"\nmsgstr \"Instrument Curbă\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"Instrument Dreptunghi\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"Instrument Elipsă\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"Instrument Cutie izometrică\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Comutare culori\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Setează comanda rapidă\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Apasă o tastă sau o combinație de taste pentru a seta comanda rapidă\"\n\nmsgid \"Already assigned\"\nmsgstr \"Alocată deja\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Instrumentul din stânga:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Un instrument alocat butonului din stânga al masului\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Instrumentul din dreapta:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Un instrument alocat butonului din dreapta al masului\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"Ultimul fișier de proiect nu poate fi găsit.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"Fișierul de proiect nu poate fi găsit.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Încă nu ai salvat sau deschis niciun proiect în Pixelorama!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Deschide ultimul proiect\"\n\nmsgid \"Open last project...\"\nmsgstr \"Deschide ultimul proiect...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Deschide ultimul proiect la pornire\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Deschide ultimul proiect deschis la pornire\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"Confirmare ieșire\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"Cale FFMPEG\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Activare autosalvare\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Interval de autosalvare:\"\n\nmsgid \"minute(s)\"\nmsgstr \"minut(e)\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"Exportare date JSON\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"Divizare straturi\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"Include etichetele cadrelor în numele fișierului\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"Creează un dosar nou pentru fiecare etichetă de cadru\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"Creează mai multe fișiere, dar fiecare fișier este stocat în alt dosar care corespunde cu eticheta de cadru a acestuia\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"Caractere separatoare:\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"Caracterele care separă numele fișierului și numărul cadrului\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"Trunchiere imagini\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"Trunchiază imaginile exportate până la porțiunea lor vizibilă, considerând fiecare pixel cu un canal alfa non-zero ca fiind vizibil.\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"Decupează conținutul imaginii la selecție\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"Exportă doar conținut care se află în limitele unei zone selectate.\"\n\nmsgid \"Close\"\nmsgstr \"Închide\"\n\nmsgid \"Discard All\"\nmsgstr \"Renunțare la toate\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"Pixelorama nu s-a închis corespunzător ultima dată. Dorești să restabilești o sesiune anterioară?\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"Copie de rezervă reîncărcată\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Elimină paleta selectată în prezent\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"Sigur vrei să elimini această paletă (nu va putea fi recuperată)?\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Nu poți elimina mai multe palete!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Paleta nu poate fi eliminată, deoarece nu există!\"\n\nmsgid \"and\"\nmsgstr \"și\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Deplasează cadrul selectat la stânga.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Deplasează cadrul selectat la dreapta.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"Durata cadrului:\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"Datele utilizatorului:\"\n\nmsgid \"Duration\"\nmsgstr \"Durată\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"Mozaicat pe ambele axe\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"Mozaicat pe axa X\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Mozaicat pe axa Y\"\n\nmsgid \"Create a new palette\"\nmsgstr \"Creează o paletă nouă\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"Creează o paletă de proiect nouă\"\n\nmsgid \"Comment:\"\nmsgstr \"Comentariu:\"\n\nmsgid \"Empty\"\nmsgstr \"Goală\"\n\nmsgid \"From Current Palette\"\nmsgstr \"Din paleta actuală\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"Din graficul bidimensional actual\"\n\nmsgid \"From Current Selection\"\nmsgstr \"Din selecția actuală\"\n\nmsgid \"Add a new color\"\nmsgstr \"Adaugă o culoare nouă\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"Elimină o culoare selectată\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"Sortare paletă\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"Inversare culori\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"Sortare după nuanță\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"Sortare după saturație\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"Sortează după valoare\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"Sortează după luminozitate\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"Sortare după roșu\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"Sortare după verde\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"Sortare după albastru\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"Sortare după alfa\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"Există deja paleta cu același nume și aceeași cale!\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"Denumirea paletei este necesară!\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"Reducerea dimensiunii paletei va reseta pozițiile culorilor.\\n\"\n\"Culorile care nu se potrivesc cu dimensiunea paletei noi vor fi pierdute!\"\n\nmsgid \"Position:\"\nmsgstr \"Poziție:\"\n\nmsgid \"Tools\"\nmsgstr \"Instrumente\"\n\nmsgid \"Main Canvas\"\nmsgstr \"Pânză principală\"\n\nmsgid \"Second Canvas\"\nmsgstr \"Pânză secundară\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"Cronologia animației\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"Previzualizare pânză\"\n\nmsgid \"Color Pickers\"\nmsgstr \"Selectori de culori\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"Opțiuni pentru instrumentul global\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"Opțiuni pentru instrumentul din stânga\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"Opțiuni pentru instrumentul din dreapta\"\n\nmsgid \"Reference Images\"\nmsgstr \"Imagini de referință\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"Editor perspectivă\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"Înregistrator\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"Dale\"\n\nmsgid \"Crop\"\nmsgstr \"Trunchiere\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"Redimensionare pânză\"\n\nmsgid \"Margins\"\nmsgstr \"Margini\"\n\nmsgid \"Position + Size\"\nmsgstr \"Poziție + dimensiune\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"Raport aspect blocat\"\n\nmsgid \"Margins:\"\nmsgstr \"Margini:\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"Raport aspect:\"\n\nmsgid \"Top:\"\nmsgstr \"Sus:\"\n\nmsgid \"Bottom:\"\nmsgstr \"Jos:\"\n\nmsgid \"Left:\"\nmsgstr \"Stânga:\"\n\nmsgid \"Right:\"\nmsgstr \"Dreapta:\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"Dimensiune blocată\\n\\n\"\n\"Când este activată opțiunea, folosirea instrumentului pe pânză doar va muta dreptunghiul de trunchiere.\\n\\n\"\n\"Când este dezactivată opțiunea, folosirea uneltei pe pânză va desena dreptunghiul.\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"Editare formă 3D\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"Casetă\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"Sferă\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"Capsulă\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"Cilindru\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"Prismă\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"Tor\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"Plan\"\n\nmsgid \"Text\"\nmsgstr \"Text\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"Lumină direcțională\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"Reflector\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"Punct luminos\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"Model personalizat\"\n\nmsgid \"Selected object:\"\nmsgstr \"Obiect selectat:\"\n\nmsgid \"Add new object\"\nmsgstr \"Adăugare obiect nou\"\n\nmsgid \"Remove object\"\nmsgstr \"Eliminare obiect\"\n\nmsgid \"Camera\"\nmsgstr \"Cameră\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"Proiecție:\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"Perspectivă\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"Ortogonală\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"Trunchi\"\n\nmsgid \"Rotation:\"\nmsgstr \"Rotație:\"\n\nmsgid \"Scale:\"\nmsgstr \"Scală:\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"Mediu\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"Culoare ambientală:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"Energia ambientală a culorii:\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"Vizibil:\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"Transformare\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"Plasă\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"De la stânga la dreapta:\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"Rază:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"Segmentele radiale:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"Inele:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"Este emisferă:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"Rază superioară:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"Rază inferioară:\"\n\nmsgid \"Text:\"\nmsgstr \"Text:\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"Adâncime:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"Dimensiune pixeli:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"Pasul curbei:\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"Aliniere orizontală:\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"Aliniere verticală:\"\n\nmsgid \"Left\"\nmsgstr \"Stânga\"\n\nmsgid \"Right\"\nmsgstr \"Dreapta\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"Spațiere între linii:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"Energie:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"Negativ:\"\n\nmsgid \"Shadow:\"\nmsgstr \"Umbră:\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"Rază de acțiune:\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"Proprietățiile animării\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"Ramă previzualizată:\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"Animare\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"Valoare inițială:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"Valoare finală:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"Tip de tranziție pentru animare:\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"Pornește lent și accelerează spre final\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"Pornește repede și încetinește spre final\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"Lent la ambele capete, rapid la mijloc\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"Rapid la ambele capete, lent la mijloc\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"Pătratic (puterea lui 2)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"Cubic (puterea lui 3)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"Cvartic (puterea lui 4)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"Cvintic (puterea lui 6)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"Exponențial (puterea lui x)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"Rădăcină pătrată\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"Sinus\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"Balans în jurul marginilor\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"În salt la capăt\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"În retragere la capete\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"Salt spre final\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"Monocrom\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"La deschiderea unei imagini, aceasta poate fi importată ca referință.\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"Selectează o imagine de mai jos pentru a-i schimba proprietățile.\\n\"\n\"Reține că nu poți desena cât timp este selectată o imagine de referință.\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"Elimină\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"Ține apăsat Shift în timp ce apeși pentru a elimina instant.\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"Sigur vrei să ștergi această imagine de referință? Nu va fi ștearsă din sistemul de fișiere.\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"Deplasează imaginea de referință selectată la dreapta\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"Deplasează imaginea de referință selectată la stânga\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"Selectează o imagine de referință pe pânză\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"Deplasează imaginea de referință selectată\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"Rotește imaginea de referință selectată\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"Scalează imaginea de referință selectată\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"niciuna\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"Resetează transformarea\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"Poziție\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"Scală\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"Rotație\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"Filtru\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"Opacitate\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"Limitarea valorilor de culoare\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"Activat\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"Efecte strat\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"Adăugare efect\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"Vrei să descarci imaginea din %s?\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"Set de dale\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"Set de dale:\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"Seturi de dale\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"Set de dale nou\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"Denumire set de dale:\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"Dimensiune dală:\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"Formă dală:\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"Dispunere dală:\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"Axă decalaj dală:\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"Pentru toate formele semidecalate (izometrice și hexagonale), determină axa de decalare.\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"Stivuit\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"Decalaj stivuit\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"Scări dreapta\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"Scări jos\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"Diamant dreapta\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"Diamant jos\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"Mod doar plasare:\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"Activarea modului doar plasare este o acțiune permanentă. Odată activat, vei putea plasa doar dale și nu vei mai putea modifica dalele existente pe acest strat.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"Selectează o dală pentru a o plasa pe pânză.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"Modifică dalele de pe pânză.\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"Desenare dale\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"Rotire dală la stânga (în sens invers acelor de ceasornic)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"Rotire dală la dreapta (în sensul acelor de ceasornic)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"Răsturnare dală pe orizontală\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"Răsturnare dală pe verticală\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"Manual\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Auto\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"Stivă\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"Mărimea butonului dalei:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"Afișare dală goală:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"Proprietăți dală\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"Probabilitate:\"\n\n"
  },
  {
    "path": "Translations/ru_RU.po",
    "content": "msgid \"\"\nmsgstr \"\"\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ru\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Russian\\n\"\n\"Language: ru_RU\\n\"\n\"PO-Revision-Date: 2025-11-04 16:55\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"Отмена\"\n\nmsgid \"Open\"\nmsgstr \"Открыть\"\n\nmsgid \"Save\"\nmsgstr \"Сохранить\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Пожалуйста подтвердите...\"\n\nmsgid \"File Name:\"\nmsgstr \"Имя файла:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Название проекта:\"\n\nmsgid \"Image Size\"\nmsgstr \"Размер изображения\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Размер холста\"\n\nmsgid \"Frame Size\"\nmsgstr \"Размер кадра\"\n\nmsgid \"Size:\"\nmsgstr \"Размер:\"\n\nmsgid \"Width:\"\nmsgstr \"Ширина:\"\n\nmsgid \"Height:\"\nmsgstr \"Высота:\"\n\nmsgid \"Center\"\nmsgstr \"По центру\"\n\nmsgid \"File\"\nmsgstr \"Файл\"\n\nmsgid \"Edit\"\nmsgstr \"Редактировать\"\n\nmsgid \"Select\"\nmsgstr \"Выделить\"\n\nmsgid \"View\"\nmsgstr \"Просмотр\"\n\nmsgid \"Window\"\nmsgstr \"Окно\"\n\nmsgid \"Image\"\nmsgstr \"Изображение\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"Проект\"\n\nmsgid \"Effects\"\nmsgstr \"Эффекты\"\n\nmsgid \"Help\"\nmsgstr \"Помощь\"\n\nmsgid \"New\"\nmsgstr \"Новый\"\n\nmsgid \"New...\"\nmsgstr \"Создать...\"\n\nmsgid \"Open...\"\nmsgstr \"Открыть...\"\n\nmsgid \"Save...\"\nmsgstr \"Сохранить...\"\n\nmsgid \"Save as...\"\nmsgstr \"Сохранить как...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"Включать смешанные изображения\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"Если эта функция включена, смешанные изображения также сохраняются в .pxo для каждого кадра. Это увеличивает размер файла .pxo и полезно для импорта сторонними программами\\n\"\n\"или экспорта через CLI. Для загрузки файлов .pxo в Pixelorama, включение этой опции не требуется.\"\n\nmsgid \"Import\"\nmsgstr \"Импортировать\"\n\nmsgid \"Export\"\nmsgstr \"Экспорт\"\n\nmsgid \"Overwrite\"\nmsgstr \"Перезаписать\"\n\nmsgid \"Export...\"\nmsgstr \"Экспортировать...\"\n\nmsgid \"Export as...\"\nmsgstr \"Экспортировать как...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Экспорт PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Экспорт PNG как...\"\n\nmsgid \"Quit\"\nmsgstr \"Выйти\"\n\nmsgid \"Undo\"\nmsgstr \"Отменить\"\n\nmsgid \"Redo\"\nmsgstr \"Повторить\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"Копировать\"\n\nmsgid \"Cut\"\nmsgstr \"Вырезать\"\n\nmsgid \"Paste\"\nmsgstr \"Вставить\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Вставить на место\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"Вставить из буфера обмена\"\n\nmsgid \"Delete\"\nmsgstr \"Удалить\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Удалить навсегда\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Переместить в корзину\"\n\nmsgid \"New Brush\"\nmsgstr \"Новая кисть\"\n\nmsgid \"Scale Image\"\nmsgstr \"Изменить размер изображения\"\n\nmsgid \"Pixels\"\nmsgstr \"Пиксели\"\n\nmsgid \"Percentage\"\nmsgstr \"Процент\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"Цветовой режим:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"Цветовой режим\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"Индексированный цвет\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"Обрезать по выбранному\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"Обрезать по содержимому\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Изменить размер холста\"\n\nmsgid \"Offset Image\"\nmsgstr \"Сместить изображение\"\n\nmsgid \"Offset:\"\nmsgstr \"Смещение:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"Повторение по кругу:\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"Центрировать кадры\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Повернуть изображение\"\n\nmsgid \"Pivot x:\"\nmsgstr \"X центра:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"Y центра:\"\n\nmsgid \"Smear options:\"\nmsgstr \"Настройки мазка:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Допустимое отклонение:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Начальный угол:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"Обтекание штрихов\"\n\nmsgid \"Clear\"\nmsgstr \"Очистить\"\n\nmsgid \"Invert\"\nmsgstr \"Инвертировать\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"Выберите область ячейки\"\n\nmsgid \"Modify\"\nmsgstr \"Изменить\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"Раскрыть\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"Раскрыть выбранное\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"Сжать\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"Сжать выделенное\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"Граница\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"Выбор границы\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"Ромб\"\n\nmsgid \"Circle\"\nmsgstr \"Круг\"\n\nmsgid \"Square\"\nmsgstr \"Квадрат\"\n\nmsgid \"Grayscale View\"\nmsgstr \"Вид в оттенках серого\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Отразить изображение\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Отразить по горизонтали\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Отразить по вертикали\"\n\nmsgid \"Preferences\"\nmsgstr \"Настройки\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"Процедурный\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"Размытие\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"Загружено\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"Центрировать холст\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Режим тайла\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"Сдвиг в бесшовном режиме\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"Ось Х:\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"Ось Y:\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"Маскирование:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Сброс\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"Сбросить %s\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"Использовать текущий кадр\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Сбросить маску\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Прозрачность окна\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"Прозрачность окна не работает в полноэкранном режиме.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Расположение панелей\"\n\nmsgid \"Panels\"\nmsgstr \"Панели\"\n\nmsgid \"Layouts\"\nmsgstr \"Слои\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Перемещаемые панели\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"Сделать плавающим\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Управление слоями\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Предпросмотр\"\n\nmsgid \"Add\"\nmsgstr \"Добавить\"\n\nmsgid \"Add Layout\"\nmsgstr \"Добавить компоновку\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"Удалить %s\"\n\nmsgid \"Copy from\"\nmsgstr \"Копировать из\"\n\nmsgid \"Rename\"\nmsgstr \"Переименовать\"\n\nmsgid \"Rename Layout\"\nmsgstr \"Переименовать слой\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"Текущий слой\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Вы уверены, что хотите удалить эту компоновку?\"\n\nmsgid \"Widescreen\"\nmsgstr \"Широкий экран\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Режим высокого экрана\"\n\nmsgid \"Mirror View\"\nmsgstr \"Зеркальный вид\"\n\nmsgid \"Show Grid\"\nmsgstr \"Показать сетку\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Показать пиксельную сетку\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Показать линейки\"\n\nmsgid \"Show Guides\"\nmsgstr \"Показать направляющие\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"Показать направляющие курсора\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"Показать референсные изображения\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"Показать эффекты слоя\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"Прилипание\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"Прилипать к границе прямоугольной сетки\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"Прилипать к центру прямоугольной сетки\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"Прилипать к направляющим\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"Прилипать к направляющим перспективы\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Показать таймлайн анимации\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Режим «Дзен»\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Во весь экран\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Заливка цветом:\"\n\nmsgid \"Open a File\"\nmsgstr \"Октрыть файл\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Открыть файл(ы)\"\n\nmsgid \"Import Options\"\nmsgstr \"Настройки импорта\"\n\nmsgid \"Import as:\"\nmsgstr \"Импортировать как:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Применить ко всем\"\n\nmsgid \"Recent projects\"\nmsgstr \"Недавние проекты\"\n\nmsgid \"New project\"\nmsgstr \"Новый проект\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"Таблица спрайтов (новый проект)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Таблица спрайтов (новый слой)\"\n\nmsgid \"New frame\"\nmsgstr \"Новый кадр\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"Заменить ячейку\"\n\nmsgid \"New layer\"\nmsgstr \"Новый слой\"\n\nmsgid \"New reference image\"\nmsgstr \"Новое референсное изображение\"\n\nmsgid \"New palette\"\nmsgstr \"Новая палитра\"\n\nmsgid \"New brush\"\nmsgstr \"Новая кисть\"\n\nmsgid \"New pattern\"\nmsgstr \"Новый узор\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Кадров по горизонтали:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Кадров по вертикали:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"Умная нарезка\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"Порог:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"Изображения, у которых одна из сторон меньше чем это значение, будут выходить за заданное пороговое значение\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"Дистанция слияния:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"Изображения, выходящие за заданный порог, будут объединены в большее изображение, если находятся на этом расстоянии\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"Обновить\"\n\nmsgid \"Start frame:\"\nmsgstr \"Начальный кадр:\"\n\nmsgid \"End frame:\"\nmsgstr \"Конечный кадр:\"\n\nmsgid \"At frame:\"\nmsgstr \"В кадре:\"\n\nmsgid \"At layer:\"\nmsgstr \"На слое:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Тип кисти:\"\n\nmsgid \"File brush\"\nmsgstr \"Файл кисти\"\n\nmsgid \"Project brush\"\nmsgstr \"Кисть проекта\"\n\nmsgid \"Random brush\"\nmsgstr \"Случайная кисть\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Сохранить спрайт как .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Экспортировать спрайт как .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Экспортировать спрайт\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Файл уже существует, перезаписать?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"Указанные ниже файлы уже существуют. Перезаписать их?\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"Недопустимый путь к папке!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"Неправильное имя файла!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"Недопустимый путь к папке или имя файла!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Выполняется экспорт...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"Не удается загрузить файл '%s'.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Не удалось загрузить файл '%s'.\\n\"\n\"Код ошибки: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"Невозможно загрузить файл '%s'.\\n\"\n\"Не допустимый файл палитры.\"\n\nmsgid \"Frame\"\nmsgstr \"Кадр\"\n\nmsgid \"Frames:\"\nmsgstr \"Кадры:\"\n\nmsgid \"All Frames\"\nmsgstr \"Все кадры\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Таблица спрайтов\"\n\nmsgid \"Animation\"\nmsgstr \"Анимация\"\n\nmsgid \"Preview:\"\nmsgstr \"Предпросмотр:\"\n\nmsgid \"Frame:\"\nmsgstr \"Кадр:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Ориентация:\"\n\nmsgid \"Browse\"\nmsgstr \"Обзор\"\n\nmsgid \"Resize:\"\nmsgstr \"Изменить размер:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"Качество:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Отменить экспорт\"\n\nmsgid \"Alert!\"\nmsgstr \"Внимание!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Выбрать текущую папку\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Открыть папку\"\n\nmsgid \"Background:\"\nmsgstr \"Фон:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"Выбранные кадры\"\n\nmsgid \"Layers:\"\nmsgstr \"Слои:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Видимые слои\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"Выбранные слои\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"Слой пикселей:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"Групповой слой:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"3D слой:\"\n\nmsgid \"Direction:\"\nmsgstr \"Направление:\"\n\nmsgid \"Forward\"\nmsgstr \"Вперед\"\n\nmsgid \"Backwards\"\nmsgstr \"Назад\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Туда-сюда\"\n\nmsgid \"Columns\"\nmsgstr \"Столбцы\"\n\nmsgid \"Columns:\"\nmsgstr \"Столбцы:\"\n\nmsgid \"Rows\"\nmsgstr \"Строки\"\n\nmsgid \"Rows:\"\nmsgstr \"Строки:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"Теги по столбцам\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"Теги по строкам\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"Размер для экспорта:\"\n\nmsgid \"Save a File\"\nmsgstr \"Сохранить файл\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"Перейти к предыдущей папке.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"Перейти к следующей папке.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"Перейти в родительскую папку.\"\n\nmsgid \"Path:\"\nmsgstr \"Путь:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"Обновить файлы.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"Переключение видимости скрытых файлов.\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Папки и файлы:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Создать папку\"\n\nmsgid \"File:\"\nmsgstr \"Файл:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"Все файлы\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"Все распознано\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"Проект Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"Изображение PNG\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"Изображение BMP\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"Изображение HDR Radiance\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"Изображение JPEG\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"Изображение SVG\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"Изображение TGA\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"Изображение WebP\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"OpenRaster Проект\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"Проект Aseprite\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"Палитра Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"Палитра GIMP\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"Расширенные опции\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Интерполяция:\"\n\nmsgid \"Nearest\"\nmsgstr \"Ближайшая\"\n\nmsgid \"Bilinear\"\nmsgstr \"Билинейная\"\n\nmsgid \"Cubic\"\nmsgstr \"Кубическая\"\n\nmsgid \"Trilinear\"\nmsgstr \"Трилинейный\"\n\nmsgid \"Constant\"\nmsgstr \"Константа\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"Цветовое пространство\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"Линейное sRGB\"\n\nmsgid \"General\"\nmsgstr \"Общие\"\n\nmsgid \"Startup\"\nmsgstr \"Запуск\"\n\nmsgid \"Language\"\nmsgstr \"Язык\"\n\nmsgid \"Interface\"\nmsgstr \"Интерфейс\"\n\nmsgid \"Themes\"\nmsgstr \"Темы оформления\"\n\nmsgid \"Canvas\"\nmsgstr \"Холст\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"Хронология\"\n\nmsgid \"Selection\"\nmsgstr \"Выделение\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Горячие клавиши\"\n\nmsgid \"Backup\"\nmsgstr \"Резервная копия\"\n\nmsgid \"Performance\"\nmsgstr \"Производительность\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"Драйверы\"\n\nmsgid \"Extensions\"\nmsgstr \"Расширения\"\n\nmsgid \"Cursors\"\nmsgstr \"Курсоры\"\n\nmsgid \"Indicators\"\nmsgstr \"Индикаторы\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"Для применения изменений перезапустите Pixeloram’у.\"\n\nmsgid \"On\"\nmsgstr \"Вкл\"\n\nmsgid \"Restore default value\"\nmsgstr \"Восстановить по умолчанию\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Плавное масштабирование\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Добавляет более плавный переход при увеличении или уменьшении масштаба изображения\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"Целочисленное масштабирование\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"Ограничивает значение целым числом, кратным 100%\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Чувствительность к нажатию на планшет:\"\n\nmsgid \"None\"\nmsgstr \"Нет\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Влияние на прозрачность кисти\"\n\nmsgid \"Color:\"\nmsgstr \"Цвет:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Цвет направляющих:\"\n\nmsgid \"System Language\"\nmsgstr \"Системный язык\"\n\nmsgid \"Display scale:\"\nmsgstr \"Масштаб интерфейса:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"Шрифт:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"Размер шрифта:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Затемнять интерфейс при появлении диалога\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"Показывать уведомления\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"Использовать нативные уведомления\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"Когда эта настройка включена, вместо пользовательских диалоговых окон Pixelorama, используются системные.\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"Однооконный режим\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"Если этот параметр включен, вложенные окна Pixelorama будут встроены в главное окно, в противном случае каждый диалог будет представлять собой отдельное окно.\"\n\nmsgid \"Dark\"\nmsgstr \"Тёмный\"\n\nmsgid \"Gray\"\nmsgstr \"Серый\"\n\nmsgid \"Blue\"\nmsgstr \"Синий\"\n\nmsgid \"Caramel\"\nmsgstr \"Карамельный\"\n\nmsgid \"Light\"\nmsgstr \"Светлый\"\n\nmsgid \"Purple\"\nmsgstr \"Фиолетовый\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"Розовый\"\n\nmsgid \"Theme\"\nmsgstr \"Тема\"\n\nmsgid \"Buttons\"\nmsgstr \"Кнопки\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Источник цвета значков:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Цвет значков:\"\n\nmsgid \"Background\"\nmsgstr \"Фон\"\n\nmsgid \"Background color from:\"\nmsgstr \"Источник цвета фона:\"\n\nmsgid \"Background color:\"\nmsgstr \"Цвет фона:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"Разделяет параметры между левыми и правыми инструментами\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"Если эта опция включена, параметры будут синхронизированы между левым и правым инструментом.\\n\"\n\"Например, оба инструмента будут использовать один и тот же размер кисти, и его изменение в одном инструменте мгновенно отразится на другом.\"\n\nmsgid \"Left tool color:\"\nmsgstr \"Цвет левого инструмента:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"Цвет правого инструмента:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Размер кнопок инструментов:\"\n\nmsgid \"Small\"\nmsgstr \"Маленький\"\n\nmsgid \"Big\"\nmsgstr \"Большой\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Применить к\"\n\nmsgid \"Selected cels\"\nmsgstr \"Выбранные ячейки\"\n\nmsgid \"Current cel\"\nmsgstr \"Текущая ячейка\"\n\nmsgid \"Current frame\"\nmsgstr \"Текущий кадр\"\n\nmsgid \"All frames\"\nmsgstr \"Все кадры\"\n\nmsgid \"All projects\"\nmsgstr \"Все проекты\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Инвертировать цвета\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Изменять красный канал\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Изменять зеленый канал\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Изменять синий канал\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Изменять альфа-канал\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Обесцвечивание\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Обводка\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Отбросить тень\"\n\nmsgid \"Offset X:\"\nmsgstr \"Смещение по X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"Смещение по Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"Цвет тени:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"Размытие по Гауссу\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"Тип размытия:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"Количество размытия:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"Радиус размытия:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"Направление размытия:\"\n\nmsgid \"Gradient\"\nmsgstr \"Градиент\"\n\nmsgid \"Gradient Map\"\nmsgstr \"Карта градиента\"\n\nmsgid \"Interpolation\"\nmsgstr \"Интерполяция\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"Обратный\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"Равномерно распределять точки\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"Разделить на равные части\"\n\nmsgid \"Parts:\"\nmsgstr \"Части:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"Добавить точку в конце\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"Если включено, последняя точка добавляется в конце градиента. Отключите, если вы хотите, чтобы у градиента была константная интерполяция, чтобы учитывался последний цвет.\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"Сохранить в пресеты\"\n\nmsgid \"Shape:\"\nmsgstr \"Форма:\"\n\nmsgid \"Linear\"\nmsgstr \"Линейная\"\n\nmsgid \"Radial\"\nmsgstr \"Радиальная\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"Повтор:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"Повтор\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"Отражение\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"Усечение\"\n\nmsgid \"Transition size:\"\nmsgstr \"Размер перехода:\"\n\nmsgid \"Center:\"\nmsgstr \"Центр:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"Шаблон дизеринга:\"\n\nmsgid \"Type:\"\nmsgstr \"Тип:\"\n\nmsgid \"Angle:\"\nmsgstr \"Угол:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Изменить оттенок/насыщенность/яркость\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"Настройка цвета\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Оттенок:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Насыщенность:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Яркость:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"Регулировка яркости/контрастности\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"Яркость:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"Контраст:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"Значение красного:\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"Значение зеленого:\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"Значение синего:\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"Цвет тона:\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"Параметр эффекта тонировки:\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"Цветовые кривые\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"Канал:\"\n\nmsgid \"Red\"\nmsgstr \"Красный\"\n\nmsgid \"Green\"\nmsgstr \"Зеленый\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"Значение\"\n\nmsgid \"Presets\"\nmsgstr \"Пресеты\"\n\nmsgid \"Apply\"\nmsgstr \"Применить\"\n\nmsgid \"Diagonal\"\nmsgstr \"Диагональ\"\n\nmsgid \"Place inside image\"\nmsgstr \"Поместить внутри изображения\"\n\nmsgid \"Thickness:\"\nmsgstr \"Толщина:\"\n\nmsgid \"Colors:\"\nmsgstr \"Цвета:\"\n\nmsgid \"Steps:\"\nmsgstr \"Шаги:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"Паллетизация\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"Пикселизация\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"Постеризация\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"Уровни постеризации:\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"Интенсивность дизеринга:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Экран приветствия\"\n\nmsgid \"Online Docs\"\nmsgstr \"Онлайн документация\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Баг трекер\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"Открыть папку с данными редактора\"\n\nmsgid \"Changelog\"\nmsgstr \"Список изменений\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"О Pixeloram'е\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"Поддержите развитие Pixelorama\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - пикселизуйте свои мечты!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Разработано Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-2024 Orama Interactive и участники\"\n\nmsgid \"Website\"\nmsgstr \"Сайт\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"Исходный код\"\n\nmsgid \"Donate\"\nmsgstr \"Пожертвовать\"\n\nmsgid \"Developers\"\nmsgstr \"Разработчики\"\n\nmsgid \"Contributors\"\nmsgstr \"Участники\"\n\nmsgid \"Donors\"\nmsgstr \"Спонсоры\"\n\nmsgid \"Translators\"\nmsgstr \"Переводчики\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Лицензии\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"Лицензия\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"Лицензии Godot\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"Лицензии третьих сторон\"\n\nmsgid \"English\"\nmsgstr \"Английский\"\n\nmsgid \"Greek\"\nmsgstr \"Греческий\"\n\nmsgid \"French\"\nmsgstr \"Французский\"\n\nmsgid \"German\"\nmsgstr \"Немецкий\"\n\nmsgid \"Polish\"\nmsgstr \"Польский\"\n\nmsgid \"Portuguese\"\nmsgstr \"Португальский\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Бразильский португальский\"\n\nmsgid \"Russian\"\nmsgstr \"Русский\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Китайский (упрощенный)\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Китайский (Традиционный)\"\n\nmsgid \"Italian\"\nmsgstr \"Итальянский\"\n\nmsgid \"Latvian\"\nmsgstr \"Латышский\"\n\nmsgid \"Spanish\"\nmsgstr \"Испанский\"\n\nmsgid \"Catalan\"\nmsgstr \"Каталонский\"\n\nmsgid \"Esperanto\"\nmsgstr \"Esperanto\"\n\nmsgid \"Indonesian\"\nmsgstr \"Индонезийский\"\n\nmsgid \"Czech\"\nmsgstr \"Чешский\"\n\nmsgid \"Arabic\"\nmsgstr \"Арабский\"\n\nmsgid \"Turkish\"\nmsgstr \"Турецкий\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Норвежский (букмол)\"\n\nmsgid \"Korean\"\nmsgstr \"Корейский\"\n\nmsgid \"Hungarian\"\nmsgstr \"Венгерский\"\n\nmsgid \"Romanian\"\nmsgstr \"Румынский\"\n\nmsgid \"Japanese\"\nmsgstr \"Японский\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Украинский\"\n\nmsgid \"Danish\"\nmsgstr \"Датский\"\n\nmsgid \"Swedish\"\nmsgstr \"Шведский\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Сербский (кириллица)\"\n\nmsgid \"Dutch\"\nmsgstr \"Голландский\"\n\nmsgid \"Belarusian\"\nmsgstr \"Белорусский\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"Ведущий разработчик\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"Дизайнер интерфейса\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"Авторы\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Художник: %s\"\n\nmsgid \"untitled\"\nmsgstr \"безымянный\"\n\nmsgid \"imported\"\nmsgstr \"импортировано\"\n\nmsgid \"copy\"\nmsgstr \"копия\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Вы действительно хотите выйти из Pixeloram'ы?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Несохраненное изображение\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"У вас есть несохраненные изменения. Если вы продолжите, прогресс будет утерян.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Сохранить перед выходом?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"Проект %s имеет несохраненные изменения. Как хотите продолжить?\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Сохранить и выйти\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Выйти без сохранения\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Прямоугольное выделение\\n\\n\"\n\"%s левой кнопкой мыши\\n\"\n\"%s для правой кнопки мыши\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Эллиптическое выделение\\n\\n\"\n\"%s левой кнопкой мыши\\n\"\n\"%s для правой кнопки мыши\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Многоугольное выделение\\n\\n\"\n\"%s для левой кнопки мыши\\n\"\n\"%s для правой кнопкой мыши\\n\\n\"\n\"Двойной клик для соединения последней точки с первой\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Выбор по цвету\\n\\n\"\n\"%s левой кнопкой мыши\\n\"\n\"%s для правой кнопки мыши\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Волшебная палочка\\n\\n\"\n\"%s левой кнопкой мыши\\n\"\n\"%s для правой кнопки мыши\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Лассо / свободное выделение\\n\\n\"\n\"%s левой кнопкой мыши\\n\"\n\"%s для правой кнопки мыши\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Выбор по рисунку\\n\\n\"\n\"%s левой кнопкой мыши\\n\"\n\"%s для правой кнопки мыши\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Перемещение\\n\\n\"\n\"%s для левой кнопки мыши\\n\"\n\"%s для правой кнопки мыши\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Масштаб\\n\\n\"\n\"%s левой кнопкой мыши\\n\"\n\"%s для правой кнопки мыши\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Сдвиг\\n\\n\"\n\"%s левой кнопкой мыши\\n\"\n\"%s для правой кнопки мыши\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"Пипетка\\n\\n\"\n\"%s для левой кнопки мыши\\n\"\n\"%s для правой кнопки мыши\\n\\n\"\n\"Получает цвет из выбранного пикселя\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"Обрезка\\n\\n\"\n\"%s для левой кнопки мыши\\n\"\n\"%s для правой кнопки мыши\\n\\n\"\n\"Размер холста\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Карандаш\\n\\n\"\n\"%s для левой кнопки мыши\\n\"\n\"%s для правой кнопки мыши\\n\\n\"\n\"Зажать %s для рисования прямой\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Ластик\\n\\n\"\n\"%s для левой кнопки мыши\\n\"\n\"%s для правой кнопки мыши\\n\\n\"\n\"Зажать %s для очистки прямой линией\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Заливка\\n\\n\"\n\"%s для левой кнопки мыши\\n\"\n\"%s для правой кнопки мыши\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Затенение\\n\\n\"\n\"%s для левой кнопки мыши\\n\"\n\"%s для правой кнопки мыши\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Прямая\\n\\n\"\n\"%s для левой кнопки мыши\\n\"\n\"%s для правой кнопки мыши\\n\\n\"\n\"Зажать %s для фиксации угла\\n\"\n\"Зажать %s для размещения центра в месте начала нажатия\\n\"\n\"Зажать %s для изменения исходной точки фигуры\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"%s - левая кнопка мыши\\n\"\n\"%s - правая кнопка мыши\\n\\n\"\n\"Рисует кривые Безье\\n\"\n\"Нажмите %s/%s для добавления новых точек\\n\"\n\"Нажмите и перетащите для управления кривой\\n\"\n\"Нажмите %s для удаления последней добавленной точки\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Прямоугольник\\n\\n\"\n\"%s для левой кнопки мыши\\n\"\n\"%s для правой кнопки мыши\\n\\n\"\n\"Зажать %s для создания фигуры 1:1\\n\"\n\"Зажать %s для размещения центра в месте начала нажатия\\n\"\n\"Зажать %s для изменения исходной точки фигуры\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Эллипс\\n\\n\"\n\"%s для левой кнопки мыши\\n\"\n\"%s для правой кнопки мыши\\n\\n\"\n\"Зажать %s для создания фигуры 1:1\\n\"\n\"Зажать %s для размещения центра в месте начала нажатия\\n\"\n\"Зажать %s для изменения исходной точки фигуры\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Текст\\n\\n\"\n\"%s для левой кнопки мыши\\n\"\n\"%s для правой кнопки мыши\"\n\nmsgid \"Rectangle\"\nmsgstr \"Прямоугольник\"\n\nmsgid \"Ellipse\"\nmsgstr \"Эллипс\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Выбор цвета для левого инструмента\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Выбор цвета для правого инструмента\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"Поменять левый и правый цвета местами.\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"Средний цвет:\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Сбросить цвета по умолчанию (слева черный, справа белый)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"Выберите цвет из окна приложения.\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"Введите шестнадцатеричный код (\\\"#ff0000\\\") или название цвета (\\\"красный\\\").\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"Выбрать форму пикера.\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"Настройки цвета\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"Выбрать режим пикера.\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"Цветные ползунки\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"Образцы\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"Недавние цвета\"\n\nmsgid \"Left tool\"\nmsgstr \"Левый инструмент\"\n\nmsgid \"Right tool\"\nmsgstr \"Правый инструмент\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Цвет для ЛКМ\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Отображать цвет кисти для ЛКМ во время рисования\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Цвет для ПКМ\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Отображать цвет кисти для ПКМ во время рисования\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Показать левый значок инструмента\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Отображает иконку выбранного левого инструмента рядом с курсором на холсте\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Показать правый значок инструмента\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Отображает значок выбранного правого инструмента рядом с курсором на холсте\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"Использовать нативный курсор мыши\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"Использовать курсор-перекрестие для холста\"\n\nmsgid \"Guides\"\nmsgstr \"Направляющие\"\n\nmsgid \"Guides color:\"\nmsgstr \"Цвет направляющих:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Цвет направляющих линейки, отображаемых на холсте\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"Прилипание\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"Расстояние прилипания:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"Расстояние в пикселях, на котором срабатывает функция прилипания к сетке и направляющим.\"\n\nmsgid \"Grid\"\nmsgstr \"Сетка\"\n\nmsgid \"Grid type:\"\nmsgstr \"Тип сетки:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Переключает тип сетки между прямоугольной, изометрической или обеими сразу\"\n\nmsgid \"Rectangular\"\nmsgstr \"Прямоугольная\"\n\nmsgid \"Isometric\"\nmsgstr \"Изометрическая\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"Шестиугольная сетка\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"Шестиугольная сетка (с острыми шестиугольниками)\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"Шестиугольная сетка (с плоскими шестиугольниками)\"\n\nmsgid \"All\"\nmsgstr \"Все\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"Отображаемые сетки:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"Редактирование сетки:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"Размер сетки:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"Смещение сетки:\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"Устанавливает смещение сетки от начала координат холста (верхнего левого угла изображения)\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"Показывать в бесшовном режиме:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"Если отключено, сетка будет рисоваться только поверх исходного изображения\"\n\nmsgid \"Grid color:\"\nmsgstr \"Цвет сетки:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"Цвет сетки\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Пиксельная сетка\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Показать при масштабе:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"Минимальный масштаб, при котором отображается пиксельная сетка\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Цвет пиксельной сетки:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"Цвет пиксельной сетки\"\n\nmsgid \"Transparency\"\nmsgstr \"Прозрачность\"\n\nmsgid \"Checker size:\"\nmsgstr \"Размер клеток:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Размер клеток прозрачного фона\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Цвет клеток 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"Первый цвет клеток прозрачного фона\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Цвет клеток 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"Второй цвет клеток прозрачного фона\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"Следовать движению холста\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"Клеточки прозрачности следуют движению холста\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"Следовать масштабу холста\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"Клеточки прозрачности следуют увеличению/уменьшению холста\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"Выбор слоя при нажатии на одну из его кнопок:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"Цвет кальки прошлого кадра:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"Цвет кальки будущего кадра:\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"Анимировать границы выделения\"\n\nmsgid \"Border color 1:\"\nmsgstr \"Цвет границы 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Цвет границы 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Только пользовательские предустановки могут быть изменены\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"Ограничение кадров в секунду:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"Устанавливает лимит на количество кадров в секунду для программы. Чем ниже это число, тем меньше используется процессор, но приложение становится медленнее, дольше реагирует на действия, а движения будут менее плавными. 0 значит отсутствие лимита.\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"Максимум шагов отмены:\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"Приостановить приложение при потере фокуса\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"Если этот параметр включен, то, когда окно приложения теряет фокус, оно приостанавливается. Это помогает снизить загрузку процессора в режиме бездействие. Приложение продолжит работать, когда мышь попадет в окно приложения.\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"Постоянно обновлять\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"Если включено, приложение будет перерисовывать экран постоянно, даже если он не используется. Отключение этого режима поможет снизить нагрузку на процессор и GPU.\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"Включить прозрачность окна\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"Если этот параметр включен, окно приложения становится прозрачным. При проблемах с производительностью, отключите эту настройку.\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"Использовать пустой аудиодрайвер\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"Рендер:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"Указывает используемый рендер/видеодрайвер. GLES2 лучше подходит для старых и маломощных устройств, но GLES3 может предложить больше возможностей.\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"Драйвер планшета:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"Укажите драйвер планшета, используемый в Windows. Если у вас включена функция Windows Ink, выберите winink.\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Добавить расширение\"\n\nmsgid \"Enable\"\nmsgstr \"Включить\"\n\nmsgid \"Disable\"\nmsgstr \"Отключить\"\n\nmsgid \"Uninstall\"\nmsgstr \"Удалить\"\n\nmsgid \"Open Folder\"\nmsgstr \"Открыть папку\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"Посмотреть онлайн\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"Обозреватель расширений\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"Поиск...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"Теги:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"Сообщить об ошибке с расширением\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"Скачать\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"Ссылка на репозиторий:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"Получение данных из удаленного репозитория.\\n\"\n\"Пожалуйста, подождите.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"Не удалось получить информацию из удалённого репозитория.\\n\\n\"\n\"- Проверьте подключение к интернету.\\n\"\n\"- Если используете Flatpak версию Pixelorama, дайте ей разрешение на доступ в интернет. Для этого выполните в терминале следующую команду:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"Кроме того, вы можете скачать Flatseal и установить там разрешения для Flatpak приложений.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"Невозможно получить информацию из удаленного репозитория.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"Вы уверены, что хотите включить это расширение? Убедитесь, что включаете только те расширения, которым доверяете.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"Вы уверены что хотите удалить это расширение?\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"Динамика\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"Стабилизатор\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"Давление\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"Ускорение\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"Прозрачность\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"Размер\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"Ограничения значений\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"Лимиты\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"Начало\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"Конец\"\n\nmsgid \"Brush:\"\nmsgstr \"Кисть:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Выбрать кисть\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"Кисти по умолчанию\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Кисть-пиксель\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Круглая кисть\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Заполненная круглая кисть\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"Кисти проекта\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"Файлы кистей\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"Снег\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"Случайные файлы кистей\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"Трава\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"Звезда\"\n\nmsgid \"Custom brush\"\nmsgstr \"Своя кисть\"\n\nmsgid \"Brush size:\"\nmsgstr \"Размер кисти:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"Настройки вращения\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"Отразить:\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"Повернуть:\"\n\nmsgid \"Overwrite color\"\nmsgstr \"Заменить цвет\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Перезаписывает цвет вместо смешивания. Этот параметр применим только к цветам, которые не являются полностью непрозрачными\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Pixel Perfect\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"Pixel Perfect\\n\"\n\"Делает линии плавными, удаляя лишние пиксели по краям\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"Зафиксировать прозрачность\"\n\nmsgid \"Fill inside\"\nmsgstr \"Заполнить\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"Расстояние\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"Разрыв по X:\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"Разрыв по Y:\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Заполнить фигуру\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"Заполняет нарисованную фигуру цветом, вместо того, чтобы нарисовать пустую фигуру\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"Плотность:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"Цвет кисти из:\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: Собственный цвет кисти, 100: Выбранный цвет\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"Область заливки:\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"Похожая область\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"Похожие цвета\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"Всё выделение\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"Заполнить:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"Выбранный цвет\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Узор\"\n\nmsgid \"Offset\"\nmsgstr \"Смещение\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Простое затенение\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Сдвиг оттенка\"\n\nmsgid \"Lighten\"\nmsgstr \"Осветлить\"\n\nmsgid \"Darken\"\nmsgstr \"Затемнить\"\n\nmsgid \"Amount:\"\nmsgstr \"Кол-во:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Интенсивность осветления/затемнения\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"Замена цвета\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"Пожалуйста, выберите цвет из палитры.\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"Цвета справа:\"\n\nmsgid \"Pick for:\"\nmsgstr \"Выбрать для:\"\n\nmsgid \"Left Color\"\nmsgstr \"Цвет слева\"\n\nmsgid \"Right Color\"\nmsgstr \"Цвет справа\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"Режим выбора:\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"Верхний цвет\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"Текущий слой\"\n\nmsgid \"Mode:\"\nmsgstr \"Режим:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Увеличить\"\n\nmsgid \"Zoom out\"\nmsgstr \"Уменьшить\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"Одиночный режим\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"Режим цепи\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"Режим цепи: Делает цепь из кривых безье, схоже с инструментом для создания кривых в Krita'a.\\n\"\n\"Одиночный режим: Делает одиночную кривую безье, схоже с инструментов для создания кривых Aseprite'a.\"\n\nmsgid \"Options\"\nmsgstr \"Настройки\"\n\nmsgid \"Options:\"\nmsgstr \"Опции:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"По размеру кадра\"\n\nmsgid \"100% Zoom\"\nmsgstr \"100% масштаб\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"Заменить выделение\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"Добавить к выделению\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"Вычесть из выделения\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"Пересечение выделений\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"Стиль:\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"Стандартный\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"Жирный\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"Курсив\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"Полужирный курсив\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"Сглаживание\"\n\nmsgid \"Grayscale\"\nmsgstr \"Оттенки серого\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"Зеркало\"\n\nmsgid \"Horizontal\"\nmsgstr \"Горизонально\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Режим рисования с горизонтальным зеркалированием\"\n\nmsgid \"Vertical\"\nmsgstr \"Вертикально\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Режим рисования с вертикальным зеркалированием\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"Переместить в центр холста\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"Переместить в центр\"\n\nmsgid \"Current frame:\"\nmsgstr \"Текущий кадр:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"Режим анимации:\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"Текущий кадр как спрайт лист\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"Перейти к первому кадру\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"На предыдущий кадр\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"Воспроизвести анимацию назад\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"Воспроизвести анимацию вперед\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"На следующий кадр\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"Перейти на последний кадр\"\n\nmsgid \"Timeline settings\"\nmsgstr \"Настройка таймлана\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Включить/выключить шлейф кадров\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"Количество кадров в секунду анимации.\\n\"\n\"Больше кадров - плавнее анимация.\"\n\nmsgid \"No loop\"\nmsgstr \"Не зацикливать\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Зациклить\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Туда-сюда\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Калькирование:\"\n\nmsgid \"Past Frames\"\nmsgstr \"Предыдущие кадры\"\n\nmsgid \"Future Frames\"\nmsgstr \"Последующие кадры\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Управление метками кадров\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Свойства метки кадров\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Добавить новую метку\"\n\nmsgid \"Name:\"\nmsgstr \"Название:\"\n\nmsgid \"From:\"\nmsgstr \"От:\"\n\nmsgid \"To:\"\nmsgstr \"До:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"Анимация воспроизводится только на фреймах одной и той же метки\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Метка %s (Кадр %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Метка %s (Кадры %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Если этот параметр включён, при анимации будут проигрываться только кадры с той же меткой.\\n\"\n\"Если выключен, анимация будет включать все кадры, независимо от меток.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"Размер ячейки:\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"Режим цвета\"\n\nmsgid \"Show past frames:\"\nmsgstr \"Показывать прошлые кадры:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"Показывать следующие кадры:\"\n\nmsgid \"Above canvas\"\nmsgstr \"Над холстом\"\n\nmsgid \"Below canvas\"\nmsgstr \"Под холстом\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"Если вы хотите, чтобы слой игнорировал скин лука, просто добавьте суффикс \\\"_io\\\" в его имя.\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Добавить новый кадр\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Удалить кадр\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Дублировать кадр\"\n\nmsgid \"Move Left\"\nmsgstr \"Сместить влево\"\n\nmsgid \"Move Right\"\nmsgstr \"Сместить вправо\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"Добавить тег кадра\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"Выбрать пиксели\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"Привязать ячейки к\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"Отвязать ячейки\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"Воспроизвести аудио здесь\"\n\nmsgid \"Properties\"\nmsgstr \"Свойства\"\n\nmsgid \"Project Properties\"\nmsgstr \"Свойства проекта\"\n\nmsgid \"Frame properties\"\nmsgstr \"Свойства кадра\"\n\nmsgid \"Layer properties\"\nmsgstr \"Параметры слоя\"\n\nmsgid \"Cel properties\"\nmsgstr \"Свойства клетки\"\n\nmsgid \"Tag properties\"\nmsgstr \"Параметры тега\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"Новый тег\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"Импорт метки\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"Реверсировать кадры\"\n\nmsgid \"Layer\"\nmsgstr \"Слой\"\n\nmsgid \"Group\"\nmsgstr \"Группа\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"Тайлмэп\"\n\nmsgid \"Audio\"\nmsgstr \"Аудио\"\n\nmsgid \"Layers\"\nmsgstr \"Слои\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"Обтравочная маска\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"Объединить\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"Объединить все видимые\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Создать новый слой\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"Добавить пиксельный cлой\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"Добавить групповой cлой\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"Добавить 3D слой\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"Добавить слой тайлмэпа\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"Добавить слой аудио\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Удалить текущий слой\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Поднять текущий слой выше\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Опустить текущий слой ниже\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Клонировать текущий слой\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Объединить слой ниже с текущим\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"Режим смешивания:\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"Пропуск\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"Нормальный\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"Стереть\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"Умножить\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"Затемнение цвета\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"Линейное затемнение\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"Экран\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"Осветление цвета\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"Контраст\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"Наложение\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"Мягкий свет\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"Жесткий свет\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"Инверсия\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"Разница\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"Исключение\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"Вычесть\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"Разделить\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"Компонент\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"Оттенок\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"Насыщенность\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"Цвет\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"Яркость\"\n\nmsgid \"Opacity:\"\nmsgstr \"Прозрачность:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"Режим прозрачности тайла:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Переключить видимость слоя\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Блокировать/разблокировать слой\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Кадр: %s, слой: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"Включить/отключить автоматическую привязку новых ячеек при создании новых кадров\\n\\n\"\n\"Содержание привязанных ячеей используется в нескольких кадрах\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"Развернуть/свернуть группу\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"Аудиофайл:\"\n\nmsgid \"Load file\"\nmsgstr \"Загрузить файл\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"Проиграть кадр:\"\n\nmsgid \"Palette\"\nmsgstr \"Палитра\"\n\nmsgid \"Palettes\"\nmsgstr \"Палитры\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Добавить новую палитру\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Редактировать выбранную палитру\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Выберите палитру\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Отменить: Рисование\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Повторить: Рисование\"\n\nmsgid \"Undo: Select\"\nmsgstr \"Отменить: Выбрать\"\n\nmsgid \"Redo: Select\"\nmsgstr \"Повторить: Выбрать\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Отменить: Масштабирование\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Повторить: Масштабирование\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Отменить: Добавление слоя\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Повторить: Добавление слоя\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Отменить: Удаление слоя\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Повторить: Удаление слоя\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Отменить: Объединение слоев\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Повторить: Объединение слоев\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Отменить: Смена порядка слоев\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Повторить: Смена порядка слоев\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Отменить: Добавление кадра\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Повторить: Добавление кадра\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Отменить: Удаление кадра\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Повторить: Удаление кадра\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Отменить: Смена последовательности кадров\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Повторить: Смена последовательности кадров\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Отменить: Удаление своей кисти\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Повторить: Удаление своей кисти\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"Отменить: Изменить метку кадра\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"Повтор: Изменить метку кадра\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"Отменить: Удалить метку кадра\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"Повторить: Удалить метку кадра\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"Отменить: Изменить длительность кадра\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"Повторить: Изменить длительность кадра\"\n\nmsgid \"Move Guide\"\nmsgstr \"Сдвинуть направляющие\"\n\nmsgid \"File saved\"\nmsgstr \"Файл сохранен\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"Резервная копия сохранена\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"Не удалось открыть файл. Код ошибки %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"Не удалось сохранить файл. Код ошибки %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"Не удалось экспортировать видео. Убедитесь, что FFMPEG установлен правильно.\"\n\nmsgid \"File(s) exported\"\nmsgstr \"Файл(ы) экспортированы\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Создать пустую палитру\"\n\nmsgid \"Import Palette\"\nmsgstr \"Импорт Палитры\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Создать палитру из текущего спрайта\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Название палитры:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Название цвета:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"Использовать текущие левый и правый цвета\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Создать пустую палитру?\"\n\nmsgid \"Error\"\nmsgstr \"Ошибка\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Ошибка: Палитра должна иметь корректное имя.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Недопустимый файл палитры!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Изменить палитру\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"Создание цветов с помощью альфа-компонента\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"Получить цвета только из выделенного\"\n\nmsgid \"Get colors from\"\nmsgstr \"Получить цвета из\"\n\nmsgid \"Patrons:\"\nmsgstr \"Материальная поддержка (Patreon):\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"Хотите, чтобы ваше имя или компания были показаны на заставке?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Стать платиновым спонсором\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Стать золотым спонсором\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Стать спонсором\"\n\nmsgid \"Don't show again\"\nmsgstr \"Не показывать снова\"\n\nmsgid \"Image Options\"\nmsgstr \"Параметры изображения\"\n\nmsgid \"Default width:\"\nmsgstr \"Ширина по умолчанию:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"Ширина нового изображения по умолчанию\"\n\nmsgid \"Default height:\"\nmsgstr \"Высота по умолчанию:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"Высота нового изображения по умолчанию\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Цвет заливки по умолчанию:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"Цвет фона по умолчанию для нового изображения\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"Сбросить все параметры, доступные в настройках\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"Сброс настроек шкалы времени\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"Сбросить параметры всех инструментов\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"Удалить все расширения\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"Очистить список недавно открытых файлов\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"Заблокировать соотношение сторон\"\n\nmsgid \"Portrait\"\nmsgstr \"Портретная\"\n\nmsgid \"Landscape\"\nmsgstr \"Горизонтальная\"\n\nmsgid \"Templates:\"\nmsgstr \"Шаблоны:\"\n\nmsgid \"Preset\"\nmsgstr \"Предустановка\"\n\nmsgid \"Preset:\"\nmsgstr \"Предустановка:\"\n\nmsgid \"Default\"\nmsgstr \"По умолчанию\"\n\nmsgid \"Custom\"\nmsgstr \"Пользовательский\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Прямоугольное выделение\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"Эллиптическое выделение\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"Многоугольное выделение\"\n\nmsgid \"Select By Color\"\nmsgstr \"Выделение по цвету\"\n\nmsgid \"Magic Wand\"\nmsgstr \"Волшебная палочка\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"Лассо / произвольное выделение\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"Выбрать по рисунку\"\n\nmsgid \"Move\"\nmsgstr \"Перемещение\"\n\nmsgid \"Zoom\"\nmsgstr \"Масштаб\"\n\nmsgid \"Pan\"\nmsgstr \"Рука\"\n\nmsgid \"Color Picker\"\nmsgstr \"Выбор цвета (пипетка)\"\n\nmsgid \"Pencil\"\nmsgstr \"Карандаш\"\n\nmsgid \"Eraser\"\nmsgstr \"Ластик\"\n\nmsgid \"Bucket\"\nmsgstr \"Заливка\"\n\nmsgid \"Shading Tool\"\nmsgstr \"Затенение\"\n\nmsgid \"Line Tool\"\nmsgstr \"Рисование линий\"\n\nmsgid \"Curve Tool\"\nmsgstr \"Инструмент кривой\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"Рисование прямоугольников\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"Рисование эллипсов\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Переключить цвета\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Выставить горячую(ие) клавишу(и)\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Нажмите клавишу или комбинацию клавиш\"\n\nmsgid \"Already assigned\"\nmsgstr \"Уже назначено\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Левый инструмент:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Инструмент, присвоенный левой кнопке мыши\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Правый инструмент:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Инструмент, присвоенный правой кнопкой мыши\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"Не могу найти файл последнего проекта.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"Не могу найти файл проекта.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Вы еще не сохранили и не открыли ни одного проекта в Pixelorama!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Открыть последний проект\"\n\nmsgid \"Open last project...\"\nmsgstr \"Открыть последний проект...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Открывать последний проект при запуске\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Открывает последний открытый проект при запуске\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"Подтверждение выхода\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"Путь к FFMPEG\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Включить автосохранение\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Интервал автосохранения:\"\n\nmsgid \"minute(s)\"\nmsgstr \"мин.\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"Экспорт данных JSON\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"Разделить слои\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"Включить теги кадров в имя файла\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"Создать по папке для метки кадров\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"Создаёт много файлов, но каждый файл будет в отдельной папке согласно его метке кадра\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"Разделитель символов:\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"Символы, разделяющие имя файла и номер кадра\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"Обрезать изображения\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"Обрезает экспортированные изображения по видимой части, принимая во внимание каждый пиксел с каналом альфа ненуля как видимый.\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"Выбор содержимого изображения\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"Экспортировать только содержимое, находящееся в пределах выбранной области.\"\n\nmsgid \"Close\"\nmsgstr \"Закрыть\"\n\nmsgid \"Discard All\"\nmsgstr \"Отменить все\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"Резервная копия восстановлена\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Удалить выбранную на данный момент палитру\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"Вы уверены, что хотите удалить эту палитру? (Действие необратимо)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Нельзя удалить больше палитр!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Невозможно удалить палитру, потому что она не существует!\"\n\nmsgid \"and\"\nmsgstr \"и\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Переместить выделенный кадр влево.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Переместить выделенный кадр вправо.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"Длительность кадра:\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"Данные пользователя:\"\n\nmsgid \"Duration\"\nmsgstr \"Длительность\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"Повторять по обеим осям\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"Повторять по оси X\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Повторять по оси Y\"\n\nmsgid \"Create a new palette\"\nmsgstr \"Создать новую палитру\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"Комментарий:\"\n\nmsgid \"Empty\"\nmsgstr \"Пустой\"\n\nmsgid \"From Current Palette\"\nmsgstr \"Из текущей палитры\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"Из текущего спрайта\"\n\nmsgid \"From Current Selection\"\nmsgstr \"Из выделенного\"\n\nmsgid \"Add a new color\"\nmsgstr \"Добавить новый цвет\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"Удалить выбранный цвет\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"Сортировка палитры\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"Инвертировать цвета\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"Отсортировать по оттенку\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"Отсортировать по насыщенности\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"Отсортировать по значению\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"Сортировать по светлости\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"Отсортировать по красному\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"Отсортировать по зеленому\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"Отсортировать по синему\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"Отсортировать по алфавиту\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"Палитра с таким названием по такому пути уже существует!\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"Необходимо указать имя палитры!\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"Уменьшение размера палитры сбросит позиции цветов. Цвета, которые не поместятся в новую палитру, будут потеряны!\"\n\nmsgid \"Position:\"\nmsgstr \"Положение:\"\n\nmsgid \"Tools\"\nmsgstr \"Инструменты\"\n\nmsgid \"Main Canvas\"\nmsgstr \"Основной холст\"\n\nmsgid \"Second Canvas\"\nmsgstr \"Второй холст\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"Временная шкала анимации\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"Предпросмотр холста\"\n\nmsgid \"Color Pickers\"\nmsgstr \"Пипетки\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"Глобальные настройки инструментов\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"Настройки левого инструмента\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"Настройки правого инструмента\"\n\nmsgid \"Reference Images\"\nmsgstr \"Референсные изображения\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"Редактор перспективы\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"Рекордер\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"Тайлы\"\n\nmsgid \"Crop\"\nmsgstr \"Обрезать\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"Изменить размер холста\"\n\nmsgid \"Margins\"\nmsgstr \"Значения\"\n\nmsgid \"Position + Size\"\nmsgstr \"Положение + размер\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"Заблокированное соотношение сторон\"\n\nmsgid \"Margins:\"\nmsgstr \"Значения:\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"Соотношение сторон:\"\n\nmsgid \"Top:\"\nmsgstr \"Верх:\"\n\nmsgid \"Bottom:\"\nmsgstr \"Низ:\"\n\nmsgid \"Left:\"\nmsgstr \"Слева:\"\n\nmsgid \"Right:\"\nmsgstr \"Справа:\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"Зафиксированный размер.\\n\\n\"\n\"При включении инструмента на холсте прямоугольник обрезки будет только перемещаться.\\n\\n\"\n\"При отключении инструмента на холсте прямоугольник будет нарисован.\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"Редактирование 3D формы\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"Прямоугольник\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"Сфера\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"Капсула\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"Цилиндр\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"Призма\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"Тороид\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"Плоскость\"\n\nmsgid \"Text\"\nmsgstr \"Текст\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"Направленный свет\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"Прожектор\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"Точечный источник света\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"Пользовательская модель\"\n\nmsgid \"Selected object:\"\nmsgstr \"Выбранный объект:\"\n\nmsgid \"Add new object\"\nmsgstr \"Добавить новый объект\"\n\nmsgid \"Remove object\"\nmsgstr \"Удалить объект\"\n\nmsgid \"Camera\"\nmsgstr \"Камера\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"Проекция:\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"Перспектива\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"Ортогональный\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"Пирамида без верхушки\"\n\nmsgid \"Rotation:\"\nmsgstr \"Поворот:\"\n\nmsgid \"Scale:\"\nmsgstr \"Масштаб:\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"Окружающая среда\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"Цвет окружающей среды:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"Энергия цвета окружающей среды:\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"Видимость:\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"Трансформация\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"Сетка\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"Слева направо:\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"Радиус:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"Радиальные сегменты:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"Кольца:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"Полушарие:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"Верхний радиус:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"Нижний радиус:\"\n\nmsgid \"Text:\"\nmsgstr \"Текст:\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"Глубина:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"Размер пикселя:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"Шаг кривой:\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"Горизонтальное выравнивание:\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"Вертикальное выравнивание:\"\n\nmsgid \"Left\"\nmsgstr \"Слева\"\n\nmsgid \"Right\"\nmsgstr \"Справа\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"Интервал линии:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"Энергия:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"Отрицательный:\"\n\nmsgid \"Shadow:\"\nmsgstr \"Тень:\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"Диапазон:\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"Параметры анимации\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"Предпросмотр кадра:\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"Анимировать\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"Начальное значение:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"Конечное значение:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"Тип ease-анимации:\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"Начинается медленно и ускоряется к концу\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"Начинается быстро и замедляется к концу\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"Медленно в конце и в начале, быстро в середине\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"Быстро в конце и в начале, медленно в середине\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"Квадратичная (во 2 степени)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"Кубическая (в 3 степени)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"Биквадратная (в 4 степени)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"Пятый порядок (в 5 степени)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"Экспоненциально (мощность Х)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"Квадратный корень\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"Синус\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"Вибрирование по краям\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"Отскок в конце\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"Обратный отскок в конце\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"Пружинная анимация в конце\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"Монохром\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"При открытии изображения он может быть импортирован в качестве референса.\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"Выберите изображение ниже, чтобы изменить его свойства.\\n\"\n\"Обратите внимание, что нельзя рисовать, пока выбрано референсное изображение.\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"Удалить\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"Удерживайте Shift, чтобы мгновенно удалить.\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"Вы уверены, что хотите удалить референсное изображение? Оно не будет удалено из вашей файловой системы.\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"Переместить выбранное референсное изображение вправо\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"Переместить выбранное референсное изображение влево\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"Выбор референсного изображения на холсте\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"Переместить выбранное референсное изображение\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"Повернуть выбранное референсное изображение\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"Масштабировать выбранное референсное изображение\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"нет\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"Сбросить трансформацию\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"Положение\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"Масштаб\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"Поворот\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"Фильтр\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"Прозрачность\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"Цветовая гамма\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"Включено\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"Эффекты слоя\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"Добавить эффект\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"Хотите загрузить изображение из %s?\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"Тайлсет\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"Тайлсет:\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"Тайлсеты\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"Новый тайлсет\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"Имя тайлсейта:\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"Размер тайла:\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"Форма фигуры\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"Расположение фигур\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"Сложённо\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"Включение режима построения является необратимым действием. При включении этого режима вы не сможете редактировать уже существующие фигуры на этом слое.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"Выбрать тайл для размещения на холсте.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"Модифицировать тайл на холсте.\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"Нарисовать тайлы\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"Повернуть тайл против часовой стрелки\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"Повернуть тайл по часовой стрелке\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"Отразить тайл по горизонтали\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"Отразить тайл по вертикали\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"Вручную\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Автоматически\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"Стек\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"Размер кнопки тайла:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"Показать пустой тайл:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"Параметры тайла\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"Вероятность:\"\n\n"
  },
  {
    "path": "Translations/si_LK.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: si-LK\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Sinhala\\n\"\n\"Language: si_LK\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"හරි\"\n\nmsgid \"Cancel\"\nmsgstr \"අවලංගු\"\n\nmsgid \"Open\"\nmsgstr \"විවෘත\"\n\nmsgid \"Save\"\nmsgstr \"සුරකින්න\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"ගොනුවේ නම:\"\n\nmsgid \"Project Name:\"\nmsgstr \"ව්‍යාපෘතියේ නම:\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"ප්‍රමාණය:\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"උදව්\"\n\nmsgid \"New\"\nmsgstr \"නව\"\n\nmsgid \"New...\"\nmsgstr \"නව...\"\n\nmsgid \"Open...\"\nmsgstr \"විවෘත...\"\n\nmsgid \"Save...\"\nmsgstr \"සුරකින්න...\"\n\nmsgid \"Save as...\"\nmsgstr \"ලෙස සුරකින්න...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"ආයාත කරන්න\"\n\nmsgid \"Export\"\nmsgstr \"නිර්යාත කරන්න\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"නිර්යාත...\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"ඉවත් වන්න\"\n\nmsgid \"Undo\"\nmsgstr \"පෙරසේ\"\n\nmsgid \"Redo\"\nmsgstr \"පසුසේ\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"පිටපත්\"\n\nmsgid \"Cut\"\nmsgstr \"කපන්න\"\n\nmsgid \"Paste\"\nmsgstr \"අලවන්න\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"පෙරදසුන:\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"පිරික්සන්න\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"පසුබිම:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"තීරු\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"ගොනුව:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"භාෂාව\"\n\nmsgid \"Interface\"\nmsgstr \"අතුරුමුහුණත\"\n\nmsgid \"Themes\"\nmsgstr \"තේමා\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"කෙටිමං\"\n\nmsgid \"Backup\"\nmsgstr \"උපස්ථය\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"පද්ධතියේ භාෂාව\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"අඳුරු\"\n\nmsgid \"Gray\"\nmsgstr \"අළු\"\n\nmsgid \"Blue\"\nmsgstr \"නිල්\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"දම්\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"තේමාව\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"අගය:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"යොදන්න\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"පියවර:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"වියමන අඩවිය\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"පරිත්‍යාග\"\n\nmsgid \"Developers\"\nmsgstr \"සංවර්ධකයින්\"\n\nmsgid \"Contributors\"\nmsgstr \"දායකයින්\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"පරිවර්තකයින්\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"ඉංග්‍රීසි\"\n\nmsgid \"Greek\"\nmsgstr \"ග්‍රීක\"\n\nmsgid \"French\"\nmsgstr \"ප්‍රංශ\"\n\nmsgid \"German\"\nmsgstr \"ජර්මානු\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"රුසියානු\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"සරල චීන\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"සාම්ප්‍රදායික චීන\"\n\nmsgid \"Italian\"\nmsgstr \"ඉතාලි\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"ස්පාඤ්ඤ\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"ඉන්දුනීසියානු\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"අරාබි\"\n\nmsgid \"Turkish\"\nmsgstr \"තුර්කි\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"නෝර්වේජියානු බොක්මාල්\"\n\nmsgid \"Korean\"\nmsgstr \"කොරියානු\"\n\nmsgid \"Hungarian\"\nmsgstr \"හංගේරියානු\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"ජපන්\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"සියල්ල\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/sk_SK.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: sk\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Slovak\\n\"\n\"Language: sk_SK\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/sl_SI.po",
    "content": "msgid \"\"\nmsgstr \"\"\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: sl\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Slovenian\\n\"\n\"Language: sl_SI\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/sq_AL.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: sq\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Albanian\\n\"\n\"Language: sq_AL\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"Ne rregull\"\n\nmsgid \"Cancel\"\nmsgstr \"Anulo\"\n\nmsgid \"Open\"\nmsgstr \"Hapur\"\n\nmsgid \"Save\"\nmsgstr \"Ruaj\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Ju lutemi konfirmoni...\"\n\nmsgid \"File Name:\"\nmsgstr \"Emri i skedarit:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Emri i Projektit:\"\n\nmsgid \"Image Size\"\nmsgstr \"Madhësia e imazhit\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/sr_SP.po",
    "content": "msgid \"\"\nmsgstr \"\"\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: sr\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Serbian (Cyrillic)\\n\"\n\"Language: sr_SP\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"ОК\"\n\nmsgid \"Cancel\"\nmsgstr \"Одустани\"\n\nmsgid \"Open\"\nmsgstr \"Отвори\"\n\nmsgid \"Save\"\nmsgstr \"Сачувај\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Молимо вас потврдите...\"\n\nmsgid \"File Name:\"\nmsgstr \"Име фајла:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Назив пројекта:\"\n\nmsgid \"Image Size\"\nmsgstr \"Величина слике\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Величина канваса\"\n\nmsgid \"Frame Size\"\nmsgstr \"Величина фрејма\"\n\nmsgid \"Size:\"\nmsgstr \"Величина:\"\n\nmsgid \"Width:\"\nmsgstr \"Ширина:\"\n\nmsgid \"Height:\"\nmsgstr \"Висина:\"\n\nmsgid \"Center\"\nmsgstr \"Центар\"\n\nmsgid \"File\"\nmsgstr \"Фајл\"\n\nmsgid \"Edit\"\nmsgstr \"Уреди\"\n\nmsgid \"Select\"\nmsgstr \"Изабери\"\n\nmsgid \"View\"\nmsgstr \"Преглед\"\n\nmsgid \"Window\"\nmsgstr \"Прозор\"\n\nmsgid \"Image\"\nmsgstr \"Слика\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"Ефекти\"\n\nmsgid \"Help\"\nmsgstr \"Помоћ\"\n\nmsgid \"New\"\nmsgstr \"Ново\"\n\nmsgid \"New...\"\nmsgstr \"Ново...\"\n\nmsgid \"Open...\"\nmsgstr \"Отвори...\"\n\nmsgid \"Save...\"\nmsgstr \"Сачувај...\"\n\nmsgid \"Save as...\"\nmsgstr \"Сачувај као...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"Увези\"\n\nmsgid \"Export\"\nmsgstr \"Извези\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"Извези...\"\n\nmsgid \"Export as...\"\nmsgstr \"Извези као...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Извези PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Извези PNG као...\"\n\nmsgid \"Quit\"\nmsgstr \"Изађи\"\n\nmsgid \"Undo\"\nmsgstr \"Опозови\"\n\nmsgid \"Redo\"\nmsgstr \"Вратити\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"Копирај\"\n\nmsgid \"Cut\"\nmsgstr \"Исеци\"\n\nmsgid \"Paste\"\nmsgstr \"Налепи\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"Обриши\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"Нова четка\"\n\nmsgid \"Scale Image\"\nmsgstr \"Скалирај слику\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"Посто\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Промијените величину канваса\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Ротирај слику\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"Брисати\"\n\nmsgid \"Invert\"\nmsgstr \"Обрнути\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Обрни хоризонтално\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Обрни вертикално\"\n\nmsgid \"Preferences\"\nmsgstr \"Подешавања\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Бешавни режим\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Непрозирност прозора\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"Прикажи решетку\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Прикажи лењир\"\n\nmsgid \"Show Guides\"\nmsgstr \"Прикажи помоћнике\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Прикажи траку са анимацијама\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Зен мод\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Пуноекрански мод\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Попуни бојом:\"\n\nmsgid \"Open a File\"\nmsgstr \"Отвори фајл\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Отвори фајл(ове)\"\n\nmsgid \"Import Options\"\nmsgstr \"Опције увоза\"\n\nmsgid \"Import as:\"\nmsgstr \"Увези као:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"Скорашњи пројекти\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Табла спраjтов (нови слоj)\"\n\nmsgid \"New frame\"\nmsgstr \"Нови фрејм\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"Нови слој\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"Нова палета\"\n\nmsgid \"New brush\"\nmsgstr \"Нова четкица\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Хоризонтални фрејмови:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Вертикални фрејмови:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"Почетни фреjм:\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"У фреjму:\"\n\nmsgid \"At layer:\"\nmsgstr \"На слоју:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Тип четке:\"\n\nmsgid \"File brush\"\nmsgstr \"Фаjл четке\"\n\nmsgid \"Project brush\"\nmsgstr \"Четка проjекта\"\n\nmsgid \"Random brush\"\nmsgstr \"Случаjна четка\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Сачувати спраjт као .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"Фрејм\"\n\nmsgid \"Frames:\"\nmsgstr \"Фрејмови:\"\n\nmsgid \"All Frames\"\nmsgstr \"Сви фрејмови\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"Фрејм:\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"Позадина:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"Смер:\"\n\nmsgid \"Forward\"\nmsgstr \"Напред\"\n\nmsgid \"Backwards\"\nmsgstr \"Назад\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Пинг-Понг\"\n\nmsgid \"Columns\"\nmsgstr \"Колоне\"\n\nmsgid \"Columns:\"\nmsgstr \"Колоне:\"\n\nmsgid \"Rows\"\nmsgstr \"Редови\"\n\nmsgid \"Rows:\"\nmsgstr \"Редови:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"Патх:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Директоријуми & Фајлови:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Направи фолдер\"\n\nmsgid \"File:\"\nmsgstr \"Фајл:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"Најближи\"\n\nmsgid \"Bilinear\"\nmsgstr \"Билинеарно\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"Трилинеарно\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"Опште\"\n\nmsgid \"Startup\"\nmsgstr \"Покретање\"\n\nmsgid \"Language\"\nmsgstr \"Језик\"\n\nmsgid \"Interface\"\nmsgstr \"Интерфејс\"\n\nmsgid \"Themes\"\nmsgstr \"Теме\"\n\nmsgid \"Canvas\"\nmsgstr \"Канвас\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Пречице\"\n\nmsgid \"Backup\"\nmsgstr \"Резервна копија\"\n\nmsgid \"Performance\"\nmsgstr \"Перформансе\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"Индикатори\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"Укључено\"\n\nmsgid \"Restore default value\"\nmsgstr \"Врати подразумевану вриједност\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"Ништа\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"Боја:\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"Системски језик\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"Тамно\"\n\nmsgid \"Gray\"\nmsgstr \"Сиво\"\n\nmsgid \"Blue\"\nmsgstr \"Плаво\"\n\nmsgid \"Caramel\"\nmsgstr \"Карамел\"\n\nmsgid \"Light\"\nmsgstr \"Светло\"\n\nmsgid \"Purple\"\nmsgstr \"Љубичасто\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"Мало\"\n\nmsgid \"Big\"\nmsgstr \"Велико\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"Тренутни фрејм\"\n\nmsgid \"All frames\"\nmsgstr \"Сви фрејмови\"\n\nmsgid \"All projects\"\nmsgstr \"Сви пројекти\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"Тип:\"\n\nmsgid \"Angle:\"\nmsgstr \"Угао:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Засићење:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"Боја:\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"Веб сајт\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"Енглески\"\n\nmsgid \"Greek\"\nmsgstr \"Грчки\"\n\nmsgid \"French\"\nmsgstr \"Француски\"\n\nmsgid \"German\"\nmsgstr \"Њемачки\"\n\nmsgid \"Polish\"\nmsgstr \"Пољски\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Бразилски португалски\"\n\nmsgid \"Russian\"\nmsgstr \"Руски\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Кинески поједностављени\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Кинески традиционални\"\n\nmsgid \"Italian\"\nmsgstr \"Италијански\"\n\nmsgid \"Latvian\"\nmsgstr \"Летонски\"\n\nmsgid \"Spanish\"\nmsgstr \"Шпански\"\n\nmsgid \"Catalan\"\nmsgstr \"Каталонски\"\n\nmsgid \"Esperanto\"\nmsgstr \"Есперанто\"\n\nmsgid \"Indonesian\"\nmsgstr \"Индонежански\"\n\nmsgid \"Czech\"\nmsgstr \"Чешки\"\n\nmsgid \"Arabic\"\nmsgstr \"Арапски\"\n\nmsgid \"Turkish\"\nmsgstr \"Турски\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"Корејски\"\n\nmsgid \"Hungarian\"\nmsgstr \"Мађарски\"\n\nmsgid \"Romanian\"\nmsgstr \"Румунски\"\n\nmsgid \"Japanese\"\nmsgstr \"Јапански\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"UI дизајнер\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"безимено\"\n\nmsgid \"imported\"\nmsgstr \"увезено\"\n\nmsgid \"copy\"\nmsgstr \"копирано\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Да ли сте сигурни да желите да изађете из Pixelorama-е?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Несачуване слика\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Имате несачуване измене. Ако наставите даље, сав напредак ће бити изгубљен.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Сачувајте прије изласка?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Сачувај & изађи\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Изађи без чувања\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"Правоугаоник\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"Сви\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"Броj:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"Изаберите за:\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Аутоматски\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/sv_SE.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: sv-SE\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Swedish\\n\"\n\"Language: sv_SE\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"Okej\"\n\nmsgid \"Cancel\"\nmsgstr \"Avbryt\"\n\nmsgid \"Open\"\nmsgstr \"Öppna\"\n\nmsgid \"Save\"\nmsgstr \"Spara\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Vänligen bekräfta...\"\n\nmsgid \"File Name:\"\nmsgstr \"Filnamn:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Projektnamn:\"\n\nmsgid \"Image Size\"\nmsgstr \"Bildstorlek\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Canvas-storlek\"\n\nmsgid \"Frame Size\"\nmsgstr \"Ramstorlek\"\n\nmsgid \"Size:\"\nmsgstr \"Storlek:\"\n\nmsgid \"Width:\"\nmsgstr \"Bredd:\"\n\nmsgid \"Height:\"\nmsgstr \"Höjd:\"\n\nmsgid \"Center\"\nmsgstr \"Centrera\"\n\nmsgid \"File\"\nmsgstr \"Fil\"\n\nmsgid \"Edit\"\nmsgstr \"Redigera\"\n\nmsgid \"Select\"\nmsgstr \"Välj\"\n\nmsgid \"View\"\nmsgstr \"Visa\"\n\nmsgid \"Window\"\nmsgstr \"Fönster\"\n\nmsgid \"Image\"\nmsgstr \"Bild\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"Projekt\"\n\nmsgid \"Effects\"\nmsgstr \"Effekter\"\n\nmsgid \"Help\"\nmsgstr \"Hjälp\"\n\nmsgid \"New\"\nmsgstr \"Ny\"\n\nmsgid \"New...\"\nmsgstr \"Ny...\"\n\nmsgid \"Open...\"\nmsgstr \"Öppna...\"\n\nmsgid \"Save...\"\nmsgstr \"Spara...\"\n\nmsgid \"Save as...\"\nmsgstr \"Spara som...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"Importera\"\n\nmsgid \"Export\"\nmsgstr \"Exportera\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"Exportera...\"\n\nmsgid \"Export as...\"\nmsgstr \"Exportera som...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Exportera PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Exportera PNG som...\"\n\nmsgid \"Quit\"\nmsgstr \"Avsluta\"\n\nmsgid \"Undo\"\nmsgstr \"Ångra\"\n\nmsgid \"Redo\"\nmsgstr \"Gör om\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"Kopiera\"\n\nmsgid \"Cut\"\nmsgstr \"Klipp ut\"\n\nmsgid \"Paste\"\nmsgstr \"Klistra in\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"Klistra in från Urklipp\"\n\nmsgid \"Delete\"\nmsgstr \"Radera\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Ta bort Permanent\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Flytta till Papperskorg\"\n\nmsgid \"New Brush\"\nmsgstr \"Ny Pensel\"\n\nmsgid \"Scale Image\"\nmsgstr \"Skala Bild\"\n\nmsgid \"Pixels\"\nmsgstr \"Pixlar\"\n\nmsgid \"Percentage\"\nmsgstr \"Procent\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Rotera bild\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Tolerans:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Ursprunglig vinkel:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"Rensa\"\n\nmsgid \"Invert\"\nmsgstr \"Invertera\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"Modifiera\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"Expandera\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"Krymp\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"Diamant\"\n\nmsgid \"Circle\"\nmsgstr \"Cirkel\"\n\nmsgid \"Square\"\nmsgstr \"Kvadrat\"\n\nmsgid \"Grayscale View\"\nmsgstr \"Gråskalevy\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Spegla Bild\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Vänd Horisontellt\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Vänd Lodrätt\"\n\nmsgid \"Preferences\"\nmsgstr \"Inställningar\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Återställ\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"Återställ %s\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"Använd Nuvarande Ram\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Återställ Mask\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Fönster Opacitet\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"Vyer\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Förhandsvisa\"\n\nmsgid \"Add\"\nmsgstr \"Lägg till\"\n\nmsgid \"Add Layout\"\nmsgstr \"Lägg till Vy\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"Ta bort %s\"\n\nmsgid \"Copy from\"\nmsgstr \"Kopiera från\"\n\nmsgid \"Rename\"\nmsgstr \"Döp om\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Öppna fil(er)\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"Importera som:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"Nytt lager\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"Ny palett\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"Bläddra\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"Bakgrund:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"Kolumner\"\n\nmsgid \"Columns:\"\nmsgstr \"Kolumner:\"\n\nmsgid \"Rows\"\nmsgstr \"Rader\"\n\nmsgid \"Rows:\"\nmsgstr \"Rader:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"Skapa mapp\"\n\nmsgid \"File:\"\nmsgstr \"Fil:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"Språk\"\n\nmsgid \"Interface\"\nmsgstr \"Gränssnitt\"\n\nmsgid \"Themes\"\nmsgstr \"Teman\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"Ingen\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"Färg:\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"Mörk\"\n\nmsgid \"Gray\"\nmsgstr \"Grå\"\n\nmsgid \"Blue\"\nmsgstr \"Blå\"\n\nmsgid \"Caramel\"\nmsgstr \"Karamell\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"Lila\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"Tema\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"Ikonfärg:\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"Liten\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"Alla projekt\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"Typ:\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Värde:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"Tjocklek:\"\n\nmsgid \"Colors:\"\nmsgstr \"Färger:\"\n\nmsgid \"Steps:\"\nmsgstr \"Steg:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"Webbplats\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"Donera\"\n\nmsgid \"Developers\"\nmsgstr \"Utvecklare\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"Engelska\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"Franska\"\n\nmsgid \"German\"\nmsgstr \"Tyska\"\n\nmsgid \"Polish\"\nmsgstr \"Polska\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"Ryska\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"Italienska\"\n\nmsgid \"Latvian\"\nmsgstr \"Lettiska\"\n\nmsgid \"Spanish\"\nmsgstr \"Spanska\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"Arabiska\"\n\nmsgid \"Turkish\"\nmsgstr \"Turkiska\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"Koreanska\"\n\nmsgid \"Hungarian\"\nmsgstr \"Ungerska\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Ukrainska\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"importerad\"\n\nmsgid \"copy\"\nmsgstr \"kopiera\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"Rektangel\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"Rektangulär\"\n\nmsgid \"Isometric\"\nmsgstr \"Isometrisk\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"Alla\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"Genomskinlighet\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"Avinstallera\"\n\nmsgid \"Open Folder\"\nmsgstr \"Öppna mapp\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"Fyll med:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"Läge:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Zooma in\"\n\nmsgid \"Zoom out\"\nmsgstr \"Zooma ut\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"Alternativ:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"Horisontell\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"Vertikal\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"Namn:\"\n\nmsgid \"From:\"\nmsgstr \"Från:\"\n\nmsgid \"To:\"\nmsgstr \"Till:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"Flytta höger\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"Lager\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"Lager\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"Opacitet:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"Palett\"\n\nmsgid \"Palettes\"\nmsgstr \"Paletter\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"Fil sparad\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"Fel\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Redigera palett\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"Landskap\"\n\nmsgid \"Templates:\"\nmsgstr \"Mallar:\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"Flytta\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"Penna\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"minut(er)\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"Stäng\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"och\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"Tom\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Auto\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/sw_KE.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: sw\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Swahili\\n\"\n\"Language: sw_KE\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/ta_IN.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ta\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Tamil\\n\"\n\"Language: ta_IN\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/th_TH.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: th\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Thai\\n\"\n\"Language: th_TH\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/tlh_AA.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: tlh-AA\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Klingon\\n\"\n\"Language: tlh_AA\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Open\"\nmsgstr \"\"\n\nmsgid \"Save\"\nmsgstr \"\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"\"\n\nmsgid \"File Name:\"\nmsgstr \"\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"\"\n\nmsgid \"Canvas Size\"\nmsgstr \"\"\n\nmsgid \"Frame Size\"\nmsgstr \"\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"\"\n\nmsgid \"Height:\"\nmsgstr \"\"\n\nmsgid \"Center\"\nmsgstr \"\"\n\nmsgid \"File\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"\"\n\nmsgid \"Help\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"New...\"\nmsgstr \"\"\n\nmsgid \"Open...\"\nmsgstr \"\"\n\nmsgid \"Save...\"\nmsgstr \"\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/tr_TR.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: tr\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Turkish\\n\"\n\"Language: tr_TR\\n\"\n\"PO-Revision-Date: 2025-12-04 22:08\\n\"\n\nmsgid \"OK\"\nmsgstr \"Tamam\"\n\nmsgid \"Cancel\"\nmsgstr \"İptal\"\n\nmsgid \"Open\"\nmsgstr \"Aç\"\n\nmsgid \"Save\"\nmsgstr \"Kaydet\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Lütfen Olaylayın...\"\n\nmsgid \"File Name:\"\nmsgstr \"Dosya Adı:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Proje Adı:\"\n\nmsgid \"Image Size\"\nmsgstr \"Resim Boyutu\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Tuval Boyutu\"\n\nmsgid \"Frame Size\"\nmsgstr \"Çerçeve Boyutu\"\n\nmsgid \"Size:\"\nmsgstr \"Boyut:\"\n\nmsgid \"Width:\"\nmsgstr \"Genişlik:\"\n\nmsgid \"Height:\"\nmsgstr \"Yükseklik:\"\n\nmsgid \"Center\"\nmsgstr \"Ortala\"\n\nmsgid \"File\"\nmsgstr \"Dosya\"\n\nmsgid \"Edit\"\nmsgstr \"Düzenle\"\n\nmsgid \"Select\"\nmsgstr \"Seç\"\n\nmsgid \"View\"\nmsgstr \"Görünüm\"\n\nmsgid \"Window\"\nmsgstr \"Pencere\"\n\nmsgid \"Image\"\nmsgstr \"Resim\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"Proje\"\n\nmsgid \"Effects\"\nmsgstr \"Efektler\"\n\nmsgid \"Help\"\nmsgstr \"Yardım\"\n\nmsgid \"New\"\nmsgstr \"Yeni\"\n\nmsgid \"New...\"\nmsgstr \"Yeni...\"\n\nmsgid \"Open...\"\nmsgstr \"Aç...\"\n\nmsgid \"Save...\"\nmsgstr \"Kaydet...\"\n\nmsgid \"Save as...\"\nmsgstr \"Farklı Kaydet...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"Harmanlanmış görüntüleri dahil et\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"Etkinleştirilirse, son harmanlanmış görüntüler de her kare için pxo'da saklanır. Bu, pxo dosyasını \\n\"\n\"daha büyük hale getirir ve üçüncü taraf yazılımlar tarafından içe ya da CLI dışa aktarma için kullanışlıdır. \\n\"\n\"Pixelorama'da pxo dosyalarını yüklemek için bu seçeneğin etkinleştirilmesine gerek yoktur.\"\n\nmsgid \"Import\"\nmsgstr \"İçe Aktar\"\n\nmsgid \"Export\"\nmsgstr \"Dışa Aktar\"\n\nmsgid \"Overwrite\"\nmsgstr \"Üzerine Yaz\"\n\nmsgid \"Export...\"\nmsgstr \"Dışa Aktar...\"\n\nmsgid \"Export as...\"\nmsgstr \"Dışa Farklı Aktar...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"PNG'yi Dışa Aktar...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"PNG'yi Farklı Dışa Aktar...\"\n\nmsgid \"Quit\"\nmsgstr \"Çık\"\n\nmsgid \"Undo\"\nmsgstr \"Geri\"\n\nmsgid \"Redo\"\nmsgstr \"Yinele\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"Geri Alma Geçmişi\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"Başlangıç durumu\"\n\nmsgid \"Copy\"\nmsgstr \"Kopyala\"\n\nmsgid \"Cut\"\nmsgstr \"Kes\"\n\nmsgid \"Paste\"\nmsgstr \"Yapıştır\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Yerinde Yapıştır\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"Panodan Yapıştır\"\n\nmsgid \"Delete\"\nmsgstr \"Sil\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Kalıcı Olarak Sil\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Çöp Kutusuna taşı\"\n\nmsgid \"New Brush\"\nmsgstr \"Yeni Fırça\"\n\nmsgid \"Scale Image\"\nmsgstr \"Resmi Ölçüle\"\n\nmsgid \"Pixels\"\nmsgstr \"Pikseller\"\n\nmsgid \"Percentage\"\nmsgstr \"Yüzde\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"Renk modu:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"Renk Modu\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"Numaralı\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"Seçime Kırp\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"İçeriğe Kırp\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Tuvali Yeniden Boyutlandır\"\n\nmsgid \"Offset Image\"\nmsgstr \"Resmi Ötele\"\n\nmsgid \"Offset:\"\nmsgstr \"Ötele:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"Çevresini sar:\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"Kareleri Ortala\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Resmi Döndür\"\n\nmsgid \"Pivot x:\"\nmsgstr \"Pivot X:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"Pivot Y:\"\n\nmsgid \"Smear options:\"\nmsgstr \"Smear seçenekleri:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Tolerans:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Başlangıç açısı:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"Darbeleri Sar\"\n\nmsgid \"Clear\"\nmsgstr \"Temizle\"\n\nmsgid \"Invert\"\nmsgstr \"Ters Çevir\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"Hücre alanını seç\"\n\nmsgid \"Modify\"\nmsgstr \"Değiştir\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"Genişlet\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"Seçimi Genişlet\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"Küçült\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"Seçimi Daralt\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"Kenarlık\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"Kenarlık Seçimi\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"Karo\"\n\nmsgid \"Circle\"\nmsgstr \"Daire\"\n\nmsgid \"Square\"\nmsgstr \"Kare\"\n\nmsgid \"Grayscale View\"\nmsgstr \"Gri Tonlamalı Görünüm\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Resmi Aynala\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Yatay Döndür\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Dikey Döndür\"\n\nmsgid \"Preferences\"\nmsgstr \"Tercihler\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"Aşamalı\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"Bulanık\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"Yüklendi\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"Tuvale Ortala\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Döşeme Kipi\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"Döşeme Kipi Uzaklıkları\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"X-tabanlı:\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"Y-tabanlı:\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"Maskeleme:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Sıfırla\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"%s sıfırla\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"Geçerli Kareyi Kullan\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Maskeyi Sıfırla\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Pencere Matlığı\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"Pencere matlığı tam ekran kipinde çalışmaz.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Panel Düzeni\"\n\nmsgid \"Panels\"\nmsgstr \"Paneller\"\n\nmsgid \"Layouts\"\nmsgstr \"Düzenler\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Taşınır Paneller\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"Yüzen Yap\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Düzenleri Yönet\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Önizleme\"\n\nmsgid \"Add\"\nmsgstr \"Ekle\"\n\nmsgid \"Add Layout\"\nmsgstr \"Düzen Ekle\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"Sil: %s\"\n\nmsgid \"Copy from\"\nmsgstr \"Şuradan kopyala\"\n\nmsgid \"Rename\"\nmsgstr \"Yeniden adlandır\"\n\nmsgid \"Rename Layout\"\nmsgstr \"Düzeni Yeniden Adlandır\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"Geçerli yerleşim\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Bu düzeni silmek istediğinize emin misiniz?\"\n\nmsgid \"Widescreen\"\nmsgstr \"Geniş ekran\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Dikey\"\n\nmsgid \"Mirror View\"\nmsgstr \"Ayna Görünümü\"\n\nmsgid \"Show Grid\"\nmsgstr \"Izgarayı Göster\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Piksel Izgarayı Göster\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Cetvelleri Göster\"\n\nmsgid \"Show Guides\"\nmsgstr \"Kılavuzları Göster\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"Faker Kılavuzlarını Göster\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"Referans Resimleri Göster\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"Katman Efektlerini Göster\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"Yapış\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"Dikdörtgen Izgara Sınırlarına Yapış\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"Dikdörtgen Izgara Merkezine Yapış\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"Kılavuzlara Yapış\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"Perspektif Kılavuzlarına Yapış\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Animasyon Çizelgesini Göster\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Sade Mod\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Tam Ekran Kipi\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Renk ile doldur:\"\n\nmsgid \"Open a File\"\nmsgstr \"Dosya Aç\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Dosya(ları) Aç\"\n\nmsgid \"Import Options\"\nmsgstr \"İçeri Aktarma Seçenekleri\"\n\nmsgid \"Import as:\"\nmsgstr \"İçe farklı aktar:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Hepsine uygula\"\n\nmsgid \"Recent projects\"\nmsgstr \"Son Projeler\"\n\nmsgid \"New project\"\nmsgstr \"Yeni proje\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"Hareketli sayfa (yeni proje)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Hareketli sayfa (yeni katman)\"\n\nmsgid \"New frame\"\nmsgstr \"Yeni kare\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"Hücreyi değiştir\"\n\nmsgid \"New layer\"\nmsgstr \"Yeni katman\"\n\nmsgid \"New reference image\"\nmsgstr \"Yeni referans resmi\"\n\nmsgid \"New palette\"\nmsgstr \"Yeni palet\"\n\nmsgid \"New brush\"\nmsgstr \"Yeni fırça\"\n\nmsgid \"New pattern\"\nmsgstr \"Yeni kalıp\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Yatay kareler:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Dikey kareler:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"Akıllı Dilimleme\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"Eşik:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"Herhangi bir kenarı bu değerden küçük olan resimler eşiği geçer\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"Birleştirme mesafesi:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"Eşiği aşan resimler, bu mesafe içindeyse daha büyük resimle birleştirilir\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"Yenile\"\n\nmsgid \"Start frame:\"\nmsgstr \"Başlangıç karesi:\"\n\nmsgid \"End frame:\"\nmsgstr \"Bitiş karesi:\"\n\nmsgid \"At frame:\"\nmsgstr \"Karede:\"\n\nmsgid \"At layer:\"\nmsgstr \"Katmanda:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Fırça tipi:\"\n\nmsgid \"File brush\"\nmsgstr \"Dosya fırçası\"\n\nmsgid \"Project brush\"\nmsgstr \"Proje fırçası\"\n\nmsgid \"Random brush\"\nmsgstr \"Rastgele fırça\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Sprite'ı .pxo Olarak Kaydet\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Sprite'ı .png Olarak Dışa Aktar\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Sprite'ı Dışa Aktar\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Dosya Zaten Var, Üzerine Yazılsın mı?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"Aşağıdaki dosyalar zaten mevcut. Var olan dosyaların üzerine yazmak ister misiniz?\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"Dizin yolu geçersiz!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"Dosya adı geçersiz!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"Dizin yolu ve dosya adı geçersiz!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Dışa aktarma işlemi devam ediyor...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"'%s' dosyası yüklenemedi.\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"'%s' dosyası yüklenemedi.\\n\"\n\"Hata kodu: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"'%s' dosyası yüklenemedi.\\n\"\n\"Geçerli bir palet dosyası değil.\"\n\nmsgid \"Frame\"\nmsgstr \"Kare\"\n\nmsgid \"Frames:\"\nmsgstr \"Kareler:\"\n\nmsgid \"All Frames\"\nmsgstr \"Tüm Kareler\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Hareketli sayfa\"\n\nmsgid \"Animation\"\nmsgstr \"Animasyon\"\n\nmsgid \"Preview:\"\nmsgstr \"Önizleme:\"\n\nmsgid \"Frame:\"\nmsgstr \"Kare:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Yönelim:\"\n\nmsgid \"Browse\"\nmsgstr \"Gözat\"\n\nmsgid \"Resize:\"\nmsgstr \"Boyutlandır:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"Kalite:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Dışarı Aktarmayı İptal Et\"\n\nmsgid \"Alert!\"\nmsgstr \"Dikkat!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Geçerli Klasörü Seç\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Dizin Aç\"\n\nmsgid \"Background:\"\nmsgstr \"Arka plan:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"Seçili kareler\"\n\nmsgid \"Layers:\"\nmsgstr \"Katmanlar:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Görünür katmanlar\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"Seçili katmanlar\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"Piksel katmanı:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"Grup katmanı:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"3B katman:\"\n\nmsgid \"Direction:\"\nmsgstr \"Yön:\"\n\nmsgid \"Forward\"\nmsgstr \"İleri\"\n\nmsgid \"Backwards\"\nmsgstr \"Geri\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Ping Pong\"\n\nmsgid \"Columns\"\nmsgstr \"Sütunlar\"\n\nmsgid \"Columns:\"\nmsgstr \"Sütunlar:\"\n\nmsgid \"Rows\"\nmsgstr \"Satırlar\"\n\nmsgid \"Rows:\"\nmsgstr \"Sıralar:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"Sütuna göre etiketle\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"Satıra göre etiketle\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"Dışa aktarma boyutları:\"\n\nmsgid \"Save a File\"\nmsgstr \"Dosya Kaydet\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"Önceki klasöre git.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"Sonraki klasöre git.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"Üst klasöre git.\"\n\nmsgid \"Path:\"\nmsgstr \"Yol:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"Dosyaları yenile.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"Gizli dosyaların görünürlüğünü değiştir.\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Dizinler ve Dosyalar:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Klasör Oluştur\"\n\nmsgid \"File:\"\nmsgstr \"Dosya:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"Tüm Dosyalar\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"Tüm Tanınanlar\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"Pixelorama Projesi\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"PNG Görüntüsü\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"BMP Görüntüsü\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"Radiance HDR Görüntüsü\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"JPEG Görüntüsü\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"SVG Görüntüsü\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"TGA Görüntüsü\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"WebP Görüntüsü\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"OpenRaster Projesi\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"Aseprite Projesi\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"Krita Projesi\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"Piskel Projesi\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"Photoshop Projesi\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"Pixelorama paleti\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"GIMP paleti\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"Gelişmiş seçenekler\"\n\nmsgid \"Interpolation:\"\nmsgstr \"İnterpolasyon:\"\n\nmsgid \"Nearest\"\nmsgstr \"En yakın\"\n\nmsgid \"Bilinear\"\nmsgstr \"Çift doğrusal\"\n\nmsgid \"Cubic\"\nmsgstr \"Kübik\"\n\nmsgid \"Trilinear\"\nmsgstr \"Üç çizgili\"\n\nmsgid \"Constant\"\nmsgstr \"Sabit\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"Renk uzayı\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"Doğrusal sRGB\"\n\nmsgid \"General\"\nmsgstr \"Genel\"\n\nmsgid \"Startup\"\nmsgstr \"Başlangıç\"\n\nmsgid \"Language\"\nmsgstr \"Dil\"\n\nmsgid \"Interface\"\nmsgstr \"Arayüz\"\n\nmsgid \"Themes\"\nmsgstr \"Temalar\"\n\nmsgid \"Canvas\"\nmsgstr \"Tuval\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"Zaman çizelgesi\"\n\nmsgid \"Selection\"\nmsgstr \"Seçim\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Kısayollar\"\n\nmsgid \"Backup\"\nmsgstr \"Yedekleme\"\n\nmsgid \"Performance\"\nmsgstr \"Performans\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"Sürücüler\"\n\nmsgid \"Extensions\"\nmsgstr \"Uzantılar\"\n\nmsgid \"Cursors\"\nmsgstr \"İmleçler\"\n\nmsgid \"Indicators\"\nmsgstr \"Göstergeler\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"Değişikliklerin etkili olabilmesi için Pixeloroma yeniden başlatılmalıdır.\"\n\nmsgid \"On\"\nmsgstr \"Açık\"\n\nmsgid \"Restore default value\"\nmsgstr \"Varsayılan değeri geri yükle\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"Yumuşak Yakınlaştırma\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Yakınlaştırırken veya uzaklaştırırken daha yumuşak geçiş ekler\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"Tam Sayı Yakınlaştırma\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"Değeri %100'ün tamsayı katı olacak şekilde kısıtlar\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Tablet basınç hassasiyeti:\"\n\nmsgid \"None\"\nmsgstr \"Hiç biri\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Fırçanın Alfasını Etkiler\"\n\nmsgid \"Color:\"\nmsgstr \"Renk:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Kılavuz rengi:\"\n\nmsgid \"System Language\"\nmsgstr \"Sistem Dili\"\n\nmsgid \"Display scale:\"\nmsgstr \"Ekran ölçeği:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"Yazı Tipi:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"Yazı tipi boyutu:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"Ekran yönü:\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Diyalog penceresinde arayüzü karart\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"Bildirim etiketlerini göster\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"Yerel dosya iletişim kutularını kullan\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"Etkinleştirildiğinde, Pixelorama özel iletişim kutuları yerine işletim sisteminin yerel dosya iletişim kutuları kullanılır.\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"Tek pencere kipi\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"Etkinleştirildiğinde, Pixelorama alt pencereleri ana pencereye gömülür, aksi takdirde her iletişim kutusu kendi penceresini kullanır.\"\n\nmsgid \"Dark\"\nmsgstr \"Koyu\"\n\nmsgid \"Gray\"\nmsgstr \"Gri\"\n\nmsgid \"Blue\"\nmsgstr \"Mavi\"\n\nmsgid \"Caramel\"\nmsgstr \"Karamel\"\n\nmsgid \"Light\"\nmsgstr \"Açık\"\n\nmsgid \"Purple\"\nmsgstr \"Mor\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"Gül\"\n\nmsgid \"Theme\"\nmsgstr \"Tema\"\n\nmsgid \"Buttons\"\nmsgstr \"Düğmeler\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Şuradan simge rengi:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Simge rengi:\"\n\nmsgid \"Background\"\nmsgstr \"Arka plan\"\n\nmsgid \"Background color from:\"\nmsgstr \"Şuradan arkaplan rengi:\"\n\nmsgid \"Background color:\"\nmsgstr \"Arkaplan rengi:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"Tek araç kipi\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"Sol ve sağ araçlar arasında seçenekleri paylaş\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"Etkinleştirilirse, seçenekler sol ve sağ araç arasında eşzamanlanır.\\n\"\n\"Örneğin, her iki araç da aynı fırça boyutunu paylaşır ve bir araçta değiştirildiğinde anında diğerinde de değişir.\"\n\nmsgid \"Left tool color:\"\nmsgstr \"Sol araç rengi:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"Sağ araç rengi:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Araç düğme boyutu:\"\n\nmsgid \"Small\"\nmsgstr \"Küçük\"\n\nmsgid \"Big\"\nmsgstr \"Büyük\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Sadece seçimi etkiler\"\n\nmsgid \"Selected cels\"\nmsgstr \"Seçilen hücreler\"\n\nmsgid \"Current cel\"\nmsgstr \"Geçerli hücre\"\n\nmsgid \"Current frame\"\nmsgstr \"Geçerli kare\"\n\nmsgid \"All frames\"\nmsgstr \"Tüm kareler\"\n\nmsgid \"All projects\"\nmsgstr \"Tüm projeler\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Renkleri Ters Çevir\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Kırmızı Kanalı Düzenle\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Yeşil Kanalı Düzenle\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Mavi Kanalı Düzenle\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Alfa Kanalını Düzenle\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Doygunluğu azalt\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Anahat\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Gölge\"\n\nmsgid \"Offset X:\"\nmsgstr \"Uzaklık X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"Uzaklık Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"Gölge rengi:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"Gauss Bulanıklığı\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"Bulanıklık türü:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"Bulanıklık miktarı:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"Bulanıklık yarıçapı:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"Bulanıklık yönü:\"\n\nmsgid \"Gradient\"\nmsgstr \"Gradyan\"\n\nmsgid \"Gradient Map\"\nmsgstr \"Gradyan Haritası\"\n\nmsgid \"Interpolation\"\nmsgstr \"Ara değerleme\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"Ters\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"Noktaları eşit dağıt\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"Eşit parçalara böl\"\n\nmsgid \"Parts:\"\nmsgstr \"Parçalar:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"Sonuna nokta ekle\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"Bu etkinleştirilirse, son nokta gradnayın sonuna eklenir.\\n\"\n\"Son rengin dikkate alınması için, gradyanı sabit ara değerlemeye dönüştürmek istiyorsanız bunu devre dışı bırakın.\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"Önayarlara kaydet\"\n\nmsgid \"Shape:\"\nmsgstr \"Şekil:\"\n\nmsgid \"Linear\"\nmsgstr \"Doğrusal\"\n\nmsgid \"Radial\"\nmsgstr \"Radyal\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"Yinele:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"Yinele\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"Ayna\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"Buda\"\n\nmsgid \"Transition size:\"\nmsgstr \"Geçiş boyutu:\"\n\nmsgid \"Center:\"\nmsgstr \"Ortala:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"Titreme kalıbı:\"\n\nmsgid \"Type:\"\nmsgstr \"Tür:\"\n\nmsgid \"Angle:\"\nmsgstr \"Açı:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Renk Tonu/Doygunluk/Değer Ayarla\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"HSV Ayarla\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Renk Tonu:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Doygunluk:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Değer:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"Parlaklığı/Karşıtlığı Ayarla\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"Parlaklık:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"Karşıtlık:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"Kırmızı değeri:\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"Yeşil değeri:\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"Mavi değeri:\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"Renk tonu rengi:\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"Renk tonu efekti katsayısı:\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"Renk Eğrileri\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"Kanal:\"\n\nmsgid \"Red\"\nmsgstr \"Kırmızı\"\n\nmsgid \"Green\"\nmsgstr \"Yeşil\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"Değer\"\n\nmsgid \"Presets\"\nmsgstr \"Ön Ayarlar\"\n\nmsgid \"Apply\"\nmsgstr \"Uygula\"\n\nmsgid \"Diagonal\"\nmsgstr \"Çapraz\"\n\nmsgid \"Place inside image\"\nmsgstr \"Resmin içine yerleştir\"\n\nmsgid \"Thickness:\"\nmsgstr \"Kalınlık:\"\n\nmsgid \"Colors:\"\nmsgstr \"Renkler:\"\n\nmsgid \"Steps:\"\nmsgstr \"Adımlar:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"Paletleştir\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"Pikselleştir\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"Posterleştir\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"Posterleştirme düzeyleri:\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"Titreme yoğunluğu:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Açılış Ekranını Göster\"\n\nmsgid \"Online Docs\"\nmsgstr \"Çevrimiçi Belgeler\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Sorun İzleyici\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"Yedeği Geri Yükle\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"Geçmiş oturumlar\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"Oturumlar\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"Projeler\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"(Geçerli Oturum)\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"Düzenleyici Veri Klasörünü Aç\"\n\nmsgid \"Changelog\"\nmsgstr \"Değişiklikler\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Pixelorama Hakkında\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"Pixelorama'yı Destekle\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - Hayallerini pikselleştir!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Orama Interactive Tarafından Geliştirilmiştir\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-günümüz, Orama Interactive ve destekçileri tarafından\"\n\nmsgid \"Website\"\nmsgstr \"Web sitesi\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"Kaynak Kodu\"\n\nmsgid \"Donate\"\nmsgstr \"Bağış Yap\"\n\nmsgid \"Developers\"\nmsgstr \"Geliştiriciler\"\n\nmsgid \"Contributors\"\nmsgstr \"Katkıda Bulunanlar\"\n\nmsgid \"Donors\"\nmsgstr \"Bağışçılar\"\n\nmsgid \"Translators\"\nmsgstr \"Çevirmenler\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Lisanslar\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"Lisans\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"Godot Lisansları\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"Üçüncü Parti Lisanslar\"\n\nmsgid \"English\"\nmsgstr \"İngilizce\"\n\nmsgid \"Greek\"\nmsgstr \"Yunanca\"\n\nmsgid \"French\"\nmsgstr \"Fransızca\"\n\nmsgid \"German\"\nmsgstr \"Almanca\"\n\nmsgid \"Polish\"\nmsgstr \"Lehçe\"\n\nmsgid \"Portuguese\"\nmsgstr \"Portekizce\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Brezilya Portekizcesi\"\n\nmsgid \"Russian\"\nmsgstr \"Rusça\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Basitleştirilmiş Çince\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Geleneksel Çince\"\n\nmsgid \"Italian\"\nmsgstr \"İtalyanca\"\n\nmsgid \"Latvian\"\nmsgstr \"Letonca\"\n\nmsgid \"Spanish\"\nmsgstr \"İspanyolca\"\n\nmsgid \"Catalan\"\nmsgstr \"Katalanca\"\n\nmsgid \"Esperanto\"\nmsgstr \"Esperanto\"\n\nmsgid \"Indonesian\"\nmsgstr \"Endonezce\"\n\nmsgid \"Czech\"\nmsgstr \"Çekçe\"\n\nmsgid \"Arabic\"\nmsgstr \"Arapça\"\n\nmsgid \"Turkish\"\nmsgstr \"Türkçe\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Bokmal Norveççesi\"\n\nmsgid \"Korean\"\nmsgstr \"Korece\"\n\nmsgid \"Hungarian\"\nmsgstr \"Macarca\"\n\nmsgid \"Romanian\"\nmsgstr \"Rumence\"\n\nmsgid \"Japanese\"\nmsgstr \"Japonca\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Ukraynaca\"\n\nmsgid \"Danish\"\nmsgstr \"Danca\"\n\nmsgid \"Swedish\"\nmsgstr \"İsveççe\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Sırpça (Kiril)\"\n\nmsgid \"Dutch\"\nmsgstr \"Flemenkçe\"\n\nmsgid \"Belarusian\"\nmsgstr \"Belarusça\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"Baş Geliştirici\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"Kullanıcı Arayüzü Tasarımcısı\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"Yazarlar\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Sanatçı: %s\"\n\nmsgid \"untitled\"\nmsgstr \"başlıksız\"\n\nmsgid \"imported\"\nmsgstr \"içe aktarılan\"\n\nmsgid \"copy\"\nmsgstr \"kopya\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Pixelorama'dan çıkmak istediğine emin misin?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Kaydedilmemiş Resim\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"Kaydedilmemiş değişiklikler var. Devam ederseniz bunlar kaybolacak.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Çıkıştan önce kaydetsin mi?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"%s projesinin kaydedilmemiş işlemi var. Ne yapılmasını istersin?\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Kaydet ve Çık\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Kaydetmeden Çık\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Dikdörtgen Seçim\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Eliptik Seçim\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Çokgen Seçim\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\\n\\n\"\n\"Son noktayı başlangıç noktasına bağlamak için çift tıklayın\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Renge Göre Seç\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Sihirli Değnek\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Kement / Serbest Seçim Aracı\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Çizime Göre Seç\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Taşı\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Yakınlaştır\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Kaydır\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"Renk Seçici\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\\n\\n\"\n\"Sprite pikselinden renk seç\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"Kırp\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\\n\\n\"\n\"Tuvali yeniden boyutlandır\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Kalem\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\\n\\n\"\n\"Çizgi çizmek için %s basılı tut\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Silgi\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\\n\\n\"\n\"Bir çizgi için %s basılı tutun\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Kova\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Gölgeleme Aracı\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Çizgi Aracı\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\\n\\n\"\n\"Çizginin açısına yapışmak için %s tuşunu basılı tutun\\n\"\n\"Şekli tıklama orijininde ortalamak için %s tuşunu basılı tutun\\n\"\n\"Şeklin orijinini değiştirmek için %s tuşunu basılı tutun\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Dikdörtgen Aracı\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\\n\\n\"\n\"1:1 şekil oluşturmak için %s tuşunu basılı tutun\\n\"\n\"Şekli tıklama orijininde ortalamak için %s tuşunu basılı tutun\\n\"\n\"Şeklin orijinini değiştirmek için %s tuşunu basılı tutun\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Elips Aracı\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\\n\\n\"\n\"1:1 şekil oluşturmak için %s tuşunu basılı tutun\\n\"\n\"Şekli tıklama orijininde ortalamak için %s tuşunu basılı tutun\\n\"\n\"Şeklin orijinini değiştirmek için %s tuşunu basılı tutun\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Metin\\n\\n\"\n\"Sol fare düğmesi için %s\\n\"\n\"Sağ fare düğmesi için %s\"\n\nmsgid \"Rectangle\"\nmsgstr \"Dikdörtgen\"\n\nmsgid \"Ellipse\"\nmsgstr \"Elips\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Sol araç için renk seç\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Sağ araç için renk seç\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"Sağ ve sol renklerini yer değiştir.\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"Ortalama Renk:\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Renkleri varsayılan durumuna sıfırla (sol için siyah, sağ için beyaz)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"Uygulama penceresinden renk seç.\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"On altılık renk kodu (\\\"#ff0000\\\") ya da renk adı (\\\"red\\\") giriniz.\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"Seçici şekli seç.\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"Renk seçenekleri\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"Seçici kipi seç.\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"Renkli Kaydırıcılar\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"Renk Örnekleri\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"Son Renkler\"\n\nmsgid \"Left tool\"\nmsgstr \"Sol araç\"\n\nmsgid \"Right tool\"\nmsgstr \"Sağ araç\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Sol piksel göstergesi\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Çizim yaparken tuval üzerinde sol fare piksel göstergesini ya da fırçayı göster\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Sağ piksel göstergesi\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Çizim yaparken sağ fare piksel göstergesini ya da tuval üzerinde ki fırçayı göster\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Sol araç simgesini göster\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Tuvalde imlecin yanında seçilen sol aracın simgesini görüntüler\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Sağ araç simgesini göster\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Tuvalde imlecin yanında seçilen sağ aracın simgesini görüntüler\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"Yerel fare imleçlerini kullan\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"Tuval için çarpı imlecini kullan\"\n\nmsgid \"Guides\"\nmsgstr \"Kılavuzlar\"\n\nmsgid \"Guides color:\"\nmsgstr \"Kılavuzların rengi:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Tuvalde görüntülenen cetvel kılavuzlarının rengi\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"Yapışma\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"Yapışma mesafesi:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"Bu, kılavuzun ve ızgaraya yapışmanın etkinleştirildiği ekran pikselleri cinsinden mesafedir.\"\n\nmsgid \"Grid\"\nmsgstr \"Izgara\"\n\nmsgid \"Grid type:\"\nmsgstr \"Izgara tipi:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Izgara kipini dikdörtgen, izometrik veya her ikisi birden olarak ayarlar\"\n\nmsgid \"Rectangular\"\nmsgstr \"Dikdörtgen\"\n\nmsgid \"Isometric\"\nmsgstr \"İzometrik\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"Altıgen\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"Altıgensel (sivri üst)\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"Altıgensel (düz üst)\"\n\nmsgid \"All\"\nmsgstr \"Tümü\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"Izgaralar görünür:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"Izgara düzenleme:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"Izgara boyutu:\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"Kılavuz uzaklığı:\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"Izgaranın tuval kaynağından (görüntünün sol üst köşesi) uzaklığını ayarlar\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"Döşeme Kipinde Çizim:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"Devre dışı bırakılırsa, ızgara yalnızca orijinal resmin üzerine çizilir\"\n\nmsgid \"Grid color:\"\nmsgstr \"Izgara rengi:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"Izgaranın rengi\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Piksel Izgara\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Yakınlaştırmada göster:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"Piksel ızgarasının gösterileceği asgari yakınlaştırmayı ayarlar\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Piksel ızgara rengi:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"Piksel ızgaranın rengi\"\n\nmsgid \"Transparency\"\nmsgstr \"Saydamlık\"\n\nmsgid \"Checker size:\"\nmsgstr \"Dama deseni boyutu:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Saydam arkaplan dama deseninin boyutu\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Dama deseni rengi 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"Saydam arkaplan dama deseninin ilk rengi\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Dama deseni rengi 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"Saydam arkaplan dama deseninin ikinci rengi\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"Tuvaldeki Hareketi Takip Et\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"Saydam dama deseni tuval hareketlerini takip eder\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"Tuval Yakınlaştırma Düzeyini Takip Et\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"Saydam dama deseni tuval yakınlaştırma düzeyini takip eder\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"Düğmelerinden birine tıkladığınızda katmanı seç:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"Soğan kabuğunun geçmiş rengi:\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"Soğan kabuğunun gelecek rengi:\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"Animasyonlu seçim kenarlıkları\"\n\nmsgid \"Border color 1:\"\nmsgstr \"Kenarlık rengi 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Kenarlık rengi 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Sadece özel önayar değiştirilebilir\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"Uygulama FPS sınırını ayarla:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"Uygulamanın saniyedeki kare sınırını ayarlar. Rakam ne kadar düşük olursa CPU kullanımı o kadar düşük olur, ancak uygulama daha yavaş, kesikli ve tepkisiz hale gelir. 0, sınır olmadığı anlamına gelir.\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"Azami geri alma adımı:\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"Odağı kaybettiğinde uygulamayı duraklat\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"Bu açılırsa, uygulamanın penceresi odağı kaybettiğinde duraklatılır. Bu, boştayken CPU kullanımını düşürmeye yardımcı olur. Fare uygulamanın penceresine girdiğinde uygulamanın duraklatılması kaldırılır.\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"Sürekli güncelle\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"Etkinse, uygulama kullanılmasa bile ekranı sürekli olarak yeniden çizer. Bunu kapatmak, boştayken işlemci ve ekran kartı kullanımını azaltmaya yardımcı olur.\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"Pencere saydamlığını etkinleştir\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"Etkinleştirilirse uygulama penceresi saydam olur. Başarımı etkilediği için ihtiyacınız yoksa kapatınız.\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"Sahte ses sürücüsü kullan\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"İşleyici:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"Kullanılan işleyiciyi/video sürücüsünü belirtir. GLES2, eski ve düşük özellikli cihazlar için daha iyidir, ancak GLES3 daha fazla özellik sunabilir.\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"Table sürücüsü:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"Windows'ta kullanılan tablet sürücüsünü belirtir. Windows Ink'i etkinleştirdiyseniz, winnk'i seçin.\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Uzantı Ekle\"\n\nmsgid \"Enable\"\nmsgstr \"Etkinleştir\"\n\nmsgid \"Disable\"\nmsgstr \"Devre dışı bırak\"\n\nmsgid \"Uninstall\"\nmsgstr \"Kaldır\"\n\nmsgid \"Open Folder\"\nmsgstr \"Klasörü Aç\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"Çevrimiçi Keşfet\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"Uzantı Gezgini\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"Ara...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"Etiketler:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"Uzantıyla hata raporla\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"İndir\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"Depo bağlantıları:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"Uzak depodan veri çekiliyor.\\n\"\n\"Lütfen bekleyin.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"Uzak depodan bilgi alınamadı.\\n\\n\"\n\"- İnternete bağlı olduğunuzdan emin olun.\\n\"\n\"- Eğer Pixelorama'nın Flatpak sürümünü kullanıyorsanız, internete bağlanması için yetki vermeniz gerekmektedir. Bunu yapmak için terminalde şu kodu çalıştırabilirsiniz:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"Ya da Flatseal'ı indirebilir ve Flatpak uygulamalarının izinlerini oradan verebilirsiniz.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"Uzak depodan bilgi alınamadı.\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"Bu uzantıyı etkinleştirmek istediğinize emin misiniz? Yalnızca güvendiğiniz kaynaklardan gelen eklentileri etkinleştirin.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"Bu uzantıyı silmek istediğinize emin misiniz?\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"Dinamikler\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"Sabitleyici\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"Basınç\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"Hız\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"Alfa\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"Boyut\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"Değer sınırları\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"Eşikler\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"Başlangıç\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"Bitiş\"\n\nmsgid \"Brush:\"\nmsgstr \"Fırça:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Fırça seç\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"Öntanımlı Fırçalar\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Piksel fırçası\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Daire fırça\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Dolgulu daire fırça\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"Proje Fırçaları\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"Dosya Fırçaları\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"Kar\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"Rasgele Dosya Firçaları\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"Çimen\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"Yıldız\"\n\nmsgid \"Custom brush\"\nmsgstr \"Özel fırça\"\n\nmsgid \"Brush size:\"\nmsgstr \"Fırça boyutu:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"Döndürme seçenekleri\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"Çevir:\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"Döndür:\"\n\nmsgid \"Overwrite color\"\nmsgstr \"Rengin üzerine yaz\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Renkleri karıştırmak yerine rengin üzerine yazar. Bu seçenek sadece tamamiyle opak olmayan renkler için geçerlidir\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Mükemmel Piksel\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"Mükemmel Piksel\\n\"\n\"Kenarlardaki fazla pikselleri kaldırarak çizgileri pürüzsüzleştirir\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"Alfayı kilitle\"\n\nmsgid \"Fill inside\"\nmsgstr \"İçini doldur\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"Aralık\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"Boşluk X:\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"Boşluk Y:\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Şekli Doldur\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"İçi boş bir şekil çizmek yerine çizilen şekli renkle doldurur\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"Yoğunluk:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"Fırça rengi şuradan:\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: Rengi fırçadan alır, 100: şu an seçili olan renk\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"Alanı doldur:\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"Benzer alan\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"Benzer renkler\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"Tam seçim\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"Şununla doldur:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"Seçilen renk\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Kalıp\"\n\nmsgid \"Offset\"\nmsgstr \"Uzaklık\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Basit Gölgeleme\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Renk Tonu Kayması\"\n\nmsgid \"Lighten\"\nmsgstr \"Açıklaştır\"\n\nmsgid \"Darken\"\nmsgstr \"Koyulaştır\"\n\nmsgid \"Amount:\"\nmsgstr \"Miktar:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Açıklaştır/Koyulaştır miktarı\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"Renk Değiştir\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"Paletten bir renk seçin.\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"Renk sağı:\"\n\nmsgid \"Pick for:\"\nmsgstr \"İçin Seç:\"\n\nmsgid \"Left Color\"\nmsgstr \"Sol Renk\"\n\nmsgid \"Right Color\"\nmsgstr \"Sağ Renk\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"Seçim kipi:\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"Gözde Renk\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"Geçerli Katman\"\n\nmsgid \"Mode:\"\nmsgstr \"Kip:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Yakınlaştır\"\n\nmsgid \"Zoom out\"\nmsgstr \"Uzaklaştır\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"Tekli\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"Zincirli\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"Seçenekler\"\n\nmsgid \"Options:\"\nmsgstr \"Seçenekler:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"Kareye Sığdır\"\n\nmsgid \"100% Zoom\"\nmsgstr \"100% Yakınlaştırma\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"Seçimi yer değiştir\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"Seçime ekle\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"Seçimden çıkar\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"Seçimlerin kesişimi\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"Biçem:\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"Normal\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"Kalın\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"Eğik\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"Kalın eğik\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"Kenar yumuşatma\"\n\nmsgid \"Grayscale\"\nmsgstr \"Gri tonlama\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"Kenar Rengi\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"Araç rengi\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"Sol Yüz\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"Sağ Yüz\"\n\nmsgid \"Mirroring\"\nmsgstr \"Yansıtma\"\n\nmsgid \"Horizontal\"\nmsgstr \"Yatay\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Çizim için yatay aynamalamayı etkinleştir\"\n\nmsgid \"Vertical\"\nmsgstr \"Dikey\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Çizim için dikey aynamalamayı etkinleştir\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"Tuval merkezine taşı\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"Görünüm merkezine taşı\"\n\nmsgid \"Current frame:\"\nmsgstr \"Geçerli kare:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"Animasyon kipi:\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"Model sayfası olarak geçerli kare\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"İlk kareye atla\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"Önceki kareye git\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"Canlandırmayı geri oynat\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"Canlandırmayı ileri oynat\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"Sonraki kareye git\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"Son kareye atla\"\n\nmsgid \"Timeline settings\"\nmsgstr \"Zaman çizelgesi ayarları\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Onion Skinning aktif/pasif et\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"Animasyon gösterimi saniyede kaç kare olmalı?\\n\"\n\"Kare sayısı yükseldikçe, animasyon daha hızlı oynar.\"\n\nmsgid \"No loop\"\nmsgstr \"Döngü kapalı\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Döngü açık\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Pinpon döngüsü\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Onion Skinning:\"\n\nmsgid \"Past Frames\"\nmsgstr \"Önceki Kareler\"\n\nmsgid \"Future Frames\"\nmsgstr \"Gelecek Kareler\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Kare etiketlerini yönet\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Kare Etiketi Özellikleri\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Yeni kare etiketi ekle\"\n\nmsgid \"Name:\"\nmsgstr \"Ad:\"\n\nmsgid \"From:\"\nmsgstr \"Gönderen:\"\n\nmsgid \"To:\"\nmsgstr \"Alıcı:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"Animasyon sadece aynı etiketli karelerde oynatılır\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Etiket %s(Kare %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Etiket %s (Kareler %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Eğer seçili ise animasyon sadece aynı etikete sahip karelerde oynatılır.\\n\"\n\"Seçili değil ise animasyon bütün karelerde oynatılır.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"Hücre boyutu:\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"Renk kipi\"\n\nmsgid \"Show past frames:\"\nmsgstr \"Önceki kareleri göster:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"Gelecek kareleri göster:\"\n\nmsgid \"Above canvas\"\nmsgstr \"Tuvalin üstünde\"\n\nmsgid \"Below canvas\"\nmsgstr \"Tuvalin altında\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"Bir katmanın soğan kabuğunu yok saymasını istiyorsanız, adına \\\"_io\\\" son ekini eklemeniz yeterlidir.\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Yeni kare ekle\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Kareyi Kaldır\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Kareyi Klonla\"\n\nmsgid \"Move Left\"\nmsgstr \"Sola Taşı\"\n\nmsgid \"Move Right\"\nmsgstr \"Sağa Taşı\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"Pikselleri seç\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"Hücreleri şuraya bağla\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"Hücre bağlantılarını kaldır\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"Sesi burada oynat\"\n\nmsgid \"Properties\"\nmsgstr \"Özellikler\"\n\nmsgid \"Project Properties\"\nmsgstr \"Proje Özellikleri\"\n\nmsgid \"Frame properties\"\nmsgstr \"Kare özellikleri\"\n\nmsgid \"Layer properties\"\nmsgstr \"Katman Özellikleri\"\n\nmsgid \"Cel properties\"\nmsgstr \"Hücre özellikleri\"\n\nmsgid \"Tag properties\"\nmsgstr \"Etiket özellikleri\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"Yeni etiket\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"Etiketi İçe Aktar\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"Kareleri Ters Çevir\"\n\nmsgid \"Layer\"\nmsgstr \"Katman\"\n\nmsgid \"Group\"\nmsgstr \"Grup\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"Döşeme eşlemi\"\n\nmsgid \"Audio\"\nmsgstr \"Ses\"\n\nmsgid \"Layers\"\nmsgstr \"Katmanlar\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"Kırpma maskesi\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"Düzleştir\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Yeni katman oluştur\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"Piksel Katmanı Ekle\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"Grup Katmanı Ekle\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"3B Katmanı Ekle\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"Döşeme Eşlemi Katmanı Ekle\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"Ses Katmanı Ekle\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Geçerli katmanı kaldır\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Katmanı yukarı taşı\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Katmanı aşağı taşı\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Katmanı klonla\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Aktif katmanı alttaki katmanla birleştir\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"Harmanlama kipi:\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"Doğrudan geçiş\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"Normal\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"Sil\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"Çarp\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"Renk yanması\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"Doğrusal yanma\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"Ekran\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"Renk soldurma\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"Karşıtlık\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"Kaplama\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"Yumuşak ışık\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"Sert ışık\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"Tersine çevir\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"Fark\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"Hariç tut\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"Çıkart\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"Böl\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"Bileşen\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"Renk tonu\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"Doygunluk\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"Renk\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"Renk parlaklığı\"\n\nmsgid \"Opacity:\"\nmsgstr \"Matlık:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"Döşeme kipi matlığı:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Katmanın görünürlüğünü aç/kapat\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Katmanı kilitle/kilidini kaldır\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Kare: %s, Katman: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"Yeni kare oluştururken yeni hücrelerin otomatik olarak bağlanmasını etkinleştirin/devre dışı bırakın\\n\\n\"\n\"Bağlantısı olan hücreler, içeriği birden fazla çerçeve arasında paylaşır\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"Grubu genişlet/daralt\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"Ses dosyası:\"\n\nmsgid \"Load file\"\nmsgstr \"Dosya yükle\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"Karede oynat:\"\n\nmsgid \"Palette\"\nmsgstr \"Palet\"\n\nmsgid \"Palettes\"\nmsgstr \"Paletler\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Yeni palet ekle\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Seçili paleti düzenle\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Palet seç\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Geri Al: Çizim\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Yinele: Çizim\"\n\nmsgid \"Undo: Select\"\nmsgstr \"Geri Al: Seçim\"\n\nmsgid \"Redo: Select\"\nmsgstr \"Yinele: Seçim\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Geri al: Ölçülendirme\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Yinele: Ölçülendirme\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Geri Al: Katman Ekle\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Yinele: Katman Ekle\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Geri Al: Katmanı Kaldır\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Yinele: Katmanı Kaldır\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Geri Al: Katmanı Birleştir\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Yinele: Katmanı Birleştir\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Geri Al: Katman Sırasını Değiştir\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Yinele: Katman Sırasını Değiştir\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Geri Al: Kare Ekle\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Yinele: Kare Ekle\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Geri Al: Kareyi Kaldır\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Yinele: Kareyi Kaldır\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Geri Al: Kare Sırasını Değiştir\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Yinele: Kare Sırasını Değiştir\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Geri Al: Özel Fırçayı Sil\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Yinele: Özel Fırçayı Sil\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"Geri Al: Kare Etiketini Düzenle\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"Yinele: Kare Etiketini Düzenle\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"Geri Al: Kare Etiketini Sil\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"Yinele: Kare Etiketini Sil\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"Geri Al: Kare Süresini Değiştir\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"Yinele: Kare Süresini Değiştir\"\n\nmsgid \"Move Guide\"\nmsgstr \"Kılavuzu Taşı\"\n\nmsgid \"File saved\"\nmsgstr \"Dosya kaydedildi\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"Yedek kaydedildi\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"Dosya açılamadı. Hata kodu %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"Dosya kaydedilemedi. Hata kodu %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"Video dışa aktarılamadı. FFMPEG'in doğru kurulduğundan emin olun.\"\n\nmsgid \"File(s) exported\"\nmsgstr \"Dosya(lar) dışa aktarıldı\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Yeni Boş Palet\"\n\nmsgid \"Import Palette\"\nmsgstr \"Paleti İçe Aktar\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Geçerli Hareketli Sayfadan Palet Oluştur\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Palet Adı:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Renk Adı:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"Geçerli sol ve sağ renkleri kullan\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Yeni boş palet oluşturulsun mu?\"\n\nmsgid \"Error\"\nmsgstr \"Hata\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Hata: Paletin geçerli bir adı olmalıdır.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Geçersiz palet dosyası!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Paleti Düzenle\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"Alfa bileşeniyle renkler oluştur\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"Renkleri sadece seçimden al\"\n\nmsgid \"Get colors from\"\nmsgstr \"Renkleri şuradan al\"\n\nmsgid \"Patrons:\"\nmsgstr \"Patronlar:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"Senin yada şirketinin adının açılış ekranında görünmesini ister misin?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Platin Sponsor Ol\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Altın Sponsor Ol\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Patron Ol\"\n\nmsgid \"Don't show again\"\nmsgstr \"Bir daha gösterme\"\n\nmsgid \"Image Options\"\nmsgstr \"Resim Seçenekleri\"\n\nmsgid \"Default width:\"\nmsgstr \"Varsayılan genişlik:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"Yeni resmin varsayılan genişliği\"\n\nmsgid \"Default height:\"\nmsgstr \"Varsayılan yükseklik:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"Yeni resmin varsayılan yüksekliği\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Varsayılan dolgu rengi:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"Yeni resmin varsayılan arkaplan rengi\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"Tercihler'deki tüm seçenekleri sıfırla\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"Zaman çizelgesi seçeneklerini sıfırla\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"Tüm araç seçeneklerini sıfırla\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"Tüm uzantıları kaldır\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"Tüm yedekleri kaldır\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"Geçerli seçilmiş dosya listesini temizle\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"En boy oranını kilitle\"\n\nmsgid \"Portrait\"\nmsgstr \"Dikey\"\n\nmsgid \"Landscape\"\nmsgstr \"Yatay\"\n\nmsgid \"Templates:\"\nmsgstr \"Şablonlar:\"\n\nmsgid \"Preset\"\nmsgstr \"Önayar\"\n\nmsgid \"Preset:\"\nmsgstr \"Önayar:\"\n\nmsgid \"Default\"\nmsgstr \"Varsayılan\"\n\nmsgid \"Custom\"\nmsgstr \"Özel\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Dikdörtgen Seçim\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"Eliptik Seçim\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"Çokgen Seçim\"\n\nmsgid \"Select By Color\"\nmsgstr \"Renge Göre Seç\"\n\nmsgid \"Magic Wand\"\nmsgstr \"Sihirli Değnek\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"Kement / Serbest Seçim Aracı\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"Çizime Göre Seç\"\n\nmsgid \"Move\"\nmsgstr \"Taşı\"\n\nmsgid \"Zoom\"\nmsgstr \"Yakınlaştır\"\n\nmsgid \"Pan\"\nmsgstr \"Kaydır\"\n\nmsgid \"Color Picker\"\nmsgstr \"Renk Seçici\"\n\nmsgid \"Pencil\"\nmsgstr \"Kalem\"\n\nmsgid \"Eraser\"\nmsgstr \"Silgi\"\n\nmsgid \"Bucket\"\nmsgstr \"Kova\"\n\nmsgid \"Shading Tool\"\nmsgstr \"Gölgeleme Aracı\"\n\nmsgid \"Line Tool\"\nmsgstr \"Çizgi Aracı\"\n\nmsgid \"Curve Tool\"\nmsgstr \"Eğri Aracı\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"Dikdörtgen Araç\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"Elips Araç\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Rekleri Değiştir\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Kısayol ayarla\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Kısayol ayarlamak için bir tuş yada bir tuş kombinasyonuna basın\"\n\nmsgid \"Already assigned\"\nmsgstr \"Zaten atanıldı\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Sol Araç:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Sol fare düğmesine bir araç atandı\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Sağ Araç:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Sağ fare düğmesine bir araç atandı\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"Son proje dosyası bulunamadı.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"Proje dosyası bulunamadı.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Pixelorama'da henüz bir proje açmadın yada kaydetmedin!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Son Projeyi Aç\"\n\nmsgid \"Open last project...\"\nmsgstr \"Son Projeyi Aç...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Başlangıçta son projeyi aç\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Başlangıçta son açılan projeyi açar\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"Çıkış onayı\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"FFMPEG yolu\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Otomatik kaydetmeyi etkinleştir\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Otomatik kaydetme sıklığı:\"\n\nmsgid \"minute(s)\"\nmsgstr \"dakika\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"JSON verilerini dışa aktar\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"Katmanları ayır\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"Dosya adınki kare etiketlerini dahil et\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"Her kare etiketi için yeni klasör oluştur\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"Birden çok dosya oluşturur ancak her dosya, kare etiketine karşılık gelen farklı klasörde depolanır\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"Ayırcı karakter(ler):\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"Dosya adını ve kare numarasını ayıran karakter(ler)\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"Görüntüleri kırp\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"Dışa aktarılan görüntüleri görünür kısımlarına kırpar, sıfır olmayan alfa kanalına sahip her piksel görünür kabul edilir.\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"Görüntü içeriğini seçime tuttur\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"Yalnızca seçilen alanın sınırları içindeki içeriği dışa aktar.\"\n\nmsgid \"Close\"\nmsgstr \"Kapat\"\n\nmsgid \"Discard All\"\nmsgstr \"Hepsinden Vazgeç\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"Yedek yeniden yüklendi\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Seçili paleti kaldır\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"Paleti kaldırmak istediğine emin misin? (Geri alınamaz)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Daha fazla palet kaldıramazsın!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Olmayan paleti kaldıramazsın!\"\n\nmsgid \"and\"\nmsgstr \"ve\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Seçili kareyi sola taşı.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Seçili kareyi sağa taşı.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"Kare süresi:\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"Kullanıcı verileri:\"\n\nmsgid \"Duration\"\nmsgstr \"Süre\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"İki Eksende Döşenmiş\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"X Ekseninde Döşenmiş\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Y Ekseninde Düşenmiş\"\n\nmsgid \"Create a new palette\"\nmsgstr \"Yeni palet oluştur\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"Yorum:\"\n\nmsgid \"Empty\"\nmsgstr \"Boş\"\n\nmsgid \"From Current Palette\"\nmsgstr \"Geçerli Paletten\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"Geçerli Sprite'dan\"\n\nmsgid \"From Current Selection\"\nmsgstr \"Geçerli Seçimden\"\n\nmsgid \"Add a new color\"\nmsgstr \"Yeni renk ekle\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"Seçili rengi kaldır\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"Paleti sırala\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"Renkleri ters çevir\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"Renk tonuna göre sırala\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"Doygunluğa göre sırala\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"Değere göre sırala\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"Aydınlığa göre sırala\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"Kırmızıya göre sırala\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"Yeşile göre sırala\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"Maviye göre sırala\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"Alfaya göre sırala\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"Aynı ada ve yola sahip palet zaten var!\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"Palet adı gerekli!\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"Palet boyutunu küçültmek renklerin konumlarını sıfırlar.\\n\"\n\"Yeni palet boyutuna uymayan renkler kaybolacak!\"\n\nmsgid \"Position:\"\nmsgstr \"Konum:\"\n\nmsgid \"Tools\"\nmsgstr \"Araçlar\"\n\nmsgid \"Main Canvas\"\nmsgstr \"Ana Tuval\"\n\nmsgid \"Second Canvas\"\nmsgstr \"İkincil Tuval\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"Animasyon Zaman Çizelgesi\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"Tuval Önizleme\"\n\nmsgid \"Color Pickers\"\nmsgstr \"Renk Seçiciler\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"Küresel Araç Seçenekleri\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"Sol Araç Seçenekleri\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"Sağ Araç Seçenekleri\"\n\nmsgid \"Reference Images\"\nmsgstr \"Referans Resimler\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"Perspektif düzenleyici\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"Kaydedici\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"Döşemeler\"\n\nmsgid \"Crop\"\nmsgstr \"Kırp\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"Tuvali yeniden boyutlandır\"\n\nmsgid \"Margins\"\nmsgstr \"Kenar boşlukları\"\n\nmsgid \"Position + Size\"\nmsgstr \"Konum ve Boyut\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"Kilitli En Boy Oranı\"\n\nmsgid \"Margins:\"\nmsgstr \"Kenar boşlukları:\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"En-Boy Oranı:\"\n\nmsgid \"Top:\"\nmsgstr \"Üst:\"\n\nmsgid \"Bottom:\"\nmsgstr \"Alt:\"\n\nmsgid \"Left:\"\nmsgstr \"Sol:\"\n\nmsgid \"Right:\"\nmsgstr \"Sağ:\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"Kilitli boyut\\n\\n\"\n\"Aracın tuval üzerinde kullanılması etkinleştirildiğinde, yalnızca kırpma dikdörtgenini hareket ettirir.\\n\\n\"\n\"Devre dışı bırakıldığında aracı kullanarak tuval üzerine dikdörtgen çizer.\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"3B Şekil Düzenle\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"Kutu\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"Küre\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"Kapsül\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"Silindir\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"Prizma\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"Halka\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"Uçak\"\n\nmsgid \"Text\"\nmsgstr \"Metin\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"Doğrusal ışık\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"Sahne ışığı\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"Nokta ışığı\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"Özel model\"\n\nmsgid \"Selected object:\"\nmsgstr \"Seçilen nesneler:\"\n\nmsgid \"Add new object\"\nmsgstr \"Yeni nesne ekle\"\n\nmsgid \"Remove object\"\nmsgstr \"Nesneyi kaldır\"\n\nmsgid \"Camera\"\nmsgstr \"Kamera\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"Projeksiyon:\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"Perspektif\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"Dikey\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"Frustum\"\n\nmsgid \"Rotation:\"\nmsgstr \"Döndürme:\"\n\nmsgid \"Scale:\"\nmsgstr \"Ölçek:\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"Ortam\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"Ortam rengi:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"Ortam renk enerjisi:\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"Görünür:\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"Dönüştür\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"Örgü\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"Soldan sağa:\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"Yarıçap:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"Radyal segmentler:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"Halkalar:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"Yarım küre mi:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"Üst yarıçap:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"Alt yarıçap:\"\n\nmsgid \"Text:\"\nmsgstr \"Metin:\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"Derinlik:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"Piksel boyutu:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"Eğri adımı:\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"Yatay hizalama:\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"Dikey hizalama:\"\n\nmsgid \"Left\"\nmsgstr \"Sol\"\n\nmsgid \"Right\"\nmsgstr \"Sağ\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"Satır aralığı:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"Enerji:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"Negatif:\"\n\nmsgid \"Shadow:\"\nmsgstr \"Gölge:\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"Erim:\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"Animasyonlu Özellikler\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"Kareyi ön izle:\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"Canlandır\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"Başlangıç değeri:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"Son değer:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"Azalma türü:\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"Yavaş başlar ve sona doğru hızlanır\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"Hızlı başlar ve sona doğru yavaşlar\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"Her iki uçta da en yavaş, ortada hızlı\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"Her iki uçta hızlı, ortada yavaş\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"İkinci dereceden (2'nin kuvveti)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"Kübik (3'ün kuvveti)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"Kuartik (4'ün kuvveti)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"Kuintik (5'in kuvveti)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"Üstel (x'in kuvveti)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"Kare kök\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"Sinüs\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"Kenarlarda kıvrılma\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"Sonunda zıplama\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"Sonunda geri çekilme\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"Sona doğru hızlan\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"Tek Renk\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"Görüntü açılırken, referans olarak içe aktarılabilir.\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"Özelliklerini değiştirmek için aşağıdan görüntü seçin.\\n\"\n\"Referans görüntü seçiliyken çizim yapamayacağınızı unutmayın.\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"Kaldır\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"Anında kaldırmak için Shift tuşunu basılı tutun.\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"Bu referans görüntüyü kaldırmak istediğinizden emin misiniz? Dosya sisteminizden silinmeyecek.\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"Seçilen referans görüntüyü sağa taşı\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"Seçilen referans görüntüyü sola taşı\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"Tuval üzerinde referans görüntü seçer\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"Seçilen referans görüntüyü taşı\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"Seçilen referans görüntüyü döndür\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"Seçilen referans görüntüyü ölçekle\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"hiç biri\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"Dönüşmeyi Sıfırla\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"Konum\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"Ölçek\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"Döndürme\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"Süz\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"Matlık\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"Renk Yakalama\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"Etkin\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"Katman efektleri\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"Efekt ekle\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"Görüntü %s kaynağından indirilsin mi?\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"Döşeme kümesi\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"Döşeme kümesi:\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"Döşeme kümeleri\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"Yeni döşeme kümesi\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"Döşeme kümesi adı:\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"Döşeme boyutu:\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"Döşeme şekli:\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"Döşeme yerleşimi:\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"Yığılmış\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"Merdiven sağı\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"Merdiven aşağı\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"Sadece yerleşim kipi:\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"Tuvale yerleştirmek için döşeme seç.\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"Tuvaldeki döşemeleri düzenle.\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"Döşemeleri çiz\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"Döşemeyi sola döndür (saat yönünün tersine)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"Döşemeyi sağa döndür (saat yönünde)\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"Döşemeyi yatay çevir\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"Döşemeyi dikey çevir\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"Elle\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Otomatik\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"Yığın\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"Döşeme düğme boyutu:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"Boş döşemeyi göster:\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"Döşeme özellikleri\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"İhtimal:\"\n\n"
  },
  {
    "path": "Translations/uk_UA.po",
    "content": "msgid \"\"\nmsgstr \"\"\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: uk\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Ukrainian\\n\"\n\"Language: uk_UA\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"Гаразд\"\n\nmsgid \"Cancel\"\nmsgstr \"Скасувати\"\n\nmsgid \"Open\"\nmsgstr \"Відкрити\"\n\nmsgid \"Save\"\nmsgstr \"Зберегти\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Будь ласка, підтвердіть...\"\n\nmsgid \"File Name:\"\nmsgstr \"Ім'я файлу:\"\n\nmsgid \"Project Name:\"\nmsgstr \"Назва проєкту:\"\n\nmsgid \"Image Size\"\nmsgstr \"Розмір зображення\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Розмір полотна\"\n\nmsgid \"Frame Size\"\nmsgstr \"Розмір кадру\"\n\nmsgid \"Size:\"\nmsgstr \"Розмір:\"\n\nmsgid \"Width:\"\nmsgstr \"Ширина:\"\n\nmsgid \"Height:\"\nmsgstr \"Висота:\"\n\nmsgid \"Center\"\nmsgstr \"По центру\"\n\nmsgid \"File\"\nmsgstr \"Файл\"\n\nmsgid \"Edit\"\nmsgstr \"Редагувати\"\n\nmsgid \"Select\"\nmsgstr \"Виділення\"\n\nmsgid \"View\"\nmsgstr \"Перегляд\"\n\nmsgid \"Window\"\nmsgstr \"Вікно\"\n\nmsgid \"Image\"\nmsgstr \"Зображення\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"Ефекти\"\n\nmsgid \"Help\"\nmsgstr \"Допомога\"\n\nmsgid \"New\"\nmsgstr \"Новий\"\n\nmsgid \"New...\"\nmsgstr \"Новий...\"\n\nmsgid \"Open...\"\nmsgstr \"Відкрити...\"\n\nmsgid \"Save...\"\nmsgstr \"Зберегти...\"\n\nmsgid \"Save as...\"\nmsgstr \"Зберегти як...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"Включати змішані зображення\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"Якщо увімкнуто, остаточні змішані зображення також зберігатиметься в pxo, для кожного кадру.\\n\"\n\"Це збільшує файл pxo, але корисно для імпорту стороннім програмним забезпеченням\\n\"\n\"або експорту через CLI. Завантаження файлів pxo в Pixelorama не потребує цієї опції бути увімкненим.\"\n\nmsgid \"Import\"\nmsgstr \"Імпортувати\"\n\nmsgid \"Export\"\nmsgstr \"Експортувати\"\n\nmsgid \"Overwrite\"\nmsgstr \"Перезапис\"\n\nmsgid \"Export...\"\nmsgstr \"Експортувати...\"\n\nmsgid \"Export as...\"\nmsgstr \"Експортувати як...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"Експорт у PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"Експорт в PNG як...\"\n\nmsgid \"Quit\"\nmsgstr \"Вийти\"\n\nmsgid \"Undo\"\nmsgstr \"Скасувати\"\n\nmsgid \"Redo\"\nmsgstr \"Відновити\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"Копіювати\"\n\nmsgid \"Cut\"\nmsgstr \"Вирізати\"\n\nmsgid \"Paste\"\nmsgstr \"Вставити\"\n\nmsgid \"Paste in Place\"\nmsgstr \"Вставити на місце\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"Вставити з буфера обміну\"\n\nmsgid \"Delete\"\nmsgstr \"Вилучити\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"Видалити назавжди\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"Перемістити в смітник\"\n\nmsgid \"New Brush\"\nmsgstr \"Новий пензель\"\n\nmsgid \"Scale Image\"\nmsgstr \"Масштабувати зображення\"\n\nmsgid \"Pixels\"\nmsgstr \"Пікселі\"\n\nmsgid \"Percentage\"\nmsgstr \"Відсоток\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"Режим кольору:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"Режим Кольору\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"Індексоване\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"Обрізати до виділеного\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"Обрізати до вмісту\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"Змінити розмір полотна\"\n\nmsgid \"Offset Image\"\nmsgstr \"Зсув Зображення\"\n\nmsgid \"Offset:\"\nmsgstr \"Зсув:\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"Обгорнути:\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"Центрувати кадри\"\n\nmsgid \"Rotate Image\"\nmsgstr \"Повернути зображення\"\n\nmsgid \"Pivot x:\"\nmsgstr \"X центра:\"\n\nmsgid \"Pivot y:\"\nmsgstr \"Y центра:\"\n\nmsgid \"Smear options:\"\nmsgstr \"Параметри мазку:\"\n\nmsgid \"Tolerance:\"\nmsgstr \"Допустиме відхилення:\"\n\nmsgid \"Initial angle:\"\nmsgstr \"Початковий кут:\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"Очистити\"\n\nmsgid \"Invert\"\nmsgstr \"Інвертувати\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"Змінити\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"Розгорнути\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"Розширити виділення\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"Зменшити\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"Зменшити виділене\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"Рамка\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"Рамка виділеного\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"Алмаз\"\n\nmsgid \"Circle\"\nmsgstr \"Коло\"\n\nmsgid \"Square\"\nmsgstr \"Квадрат\"\n\nmsgid \"Grayscale View\"\nmsgstr \"Сірий режим перегляду\"\n\nmsgid \"Mirror Image\"\nmsgstr \"Віддзеркалити зображення\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"Віддзеркалити по горизонталі\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"Віддзеркалити по вертикалі\"\n\nmsgid \"Preferences\"\nmsgstr \"Налаштування\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"Процедурні\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"Розмиття\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"Завантажені\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"Відцентрувати Полотно\"\n\nmsgid \"Tile Mode\"\nmsgstr \"Безшовний режим\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"Зміщення в безшовному режимі\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"X-базис:\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"Y-базис:\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"Маска:\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"Скинути\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"Скинути %s\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"З поточного кадра\"\n\nmsgid \"Reset Mask\"\nmsgstr \"Скинути маску\"\n\nmsgid \"Window Opacity\"\nmsgstr \"Непрозорість вікна\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"Прозорість вікна не працює в повноекранному режимі.\"\n\nmsgid \"Panel Layout\"\nmsgstr \"Позиція панелей\"\n\nmsgid \"Panels\"\nmsgstr \"Панелі\"\n\nmsgid \"Layouts\"\nmsgstr \"Розміщення\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"Рухомі панелі\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"Відокремити\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"Керування розміщеннями\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"Перегляд\"\n\nmsgid \"Add\"\nmsgstr \"Додати\"\n\nmsgid \"Add Layout\"\nmsgstr \"Додати розміщення\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"Видалити %s\"\n\nmsgid \"Copy from\"\nmsgstr \"Копіювати з\"\n\nmsgid \"Rename\"\nmsgstr \"Перейменувати\"\n\nmsgid \"Rename Layout\"\nmsgstr \"Перейменувати розміщення\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"Поточне розміщення\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"Ви дійсно бажаєте видалити це розміщення?\"\n\nmsgid \"Widescreen\"\nmsgstr \"Для широкого екрана\"\n\nmsgid \"Tallscreen\"\nmsgstr \"Для високого екрана\"\n\nmsgid \"Mirror View\"\nmsgstr \"Дзеркальний перегляд\"\n\nmsgid \"Show Grid\"\nmsgstr \"Показати сітку\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"Показати сітку пікселів\"\n\nmsgid \"Show Rulers\"\nmsgstr \"Показати лінійки\"\n\nmsgid \"Show Guides\"\nmsgstr \"Показати посібники\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"Показати посібники з миші\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"Показати еталонні зображення\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"Показати розміщення ефектів\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"Притягнути до\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"Прив'язати до меж прямокутної сітки\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"Прив'язати до центру прямокутної сітки\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"Зафіксувати до напрямних\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"Зафіксувати до перспективних напрямних\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"Показувати шкалу часу анімацій\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Режим \\\"Дзен\\\"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"Повноекранний режим\"\n\nmsgid \"Fill with color:\"\nmsgstr \"Заливка кольором:\"\n\nmsgid \"Open a File\"\nmsgstr \"Відкрити файл\"\n\nmsgid \"Open File(s)\"\nmsgstr \"Відкрити файл(и)\"\n\nmsgid \"Import Options\"\nmsgstr \"Параметри імпорту\"\n\nmsgid \"Import as:\"\nmsgstr \"Імпортувати як:\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"Застосувати до всіх\"\n\nmsgid \"Recent projects\"\nmsgstr \"Нещодавні проєкти\"\n\nmsgid \"New project\"\nmsgstr \"Новий проєкт\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"Таблиця спрайтів (новий проєкт)\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"Таблиця спрайтів (новий шар)\"\n\nmsgid \"New frame\"\nmsgstr \"Новий кадр\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"Замінити клітинку\"\n\nmsgid \"New layer\"\nmsgstr \"Новий шар\"\n\nmsgid \"New reference image\"\nmsgstr \"Нове еталонне зображення\"\n\nmsgid \"New palette\"\nmsgstr \"Нова палітра\"\n\nmsgid \"New brush\"\nmsgstr \"Новий пензель\"\n\nmsgid \"New pattern\"\nmsgstr \"Новий шаблон\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"Горизонтальні кадри:\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"Вертикальні кадри:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"Розумний зріз\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"Поріг:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"Зображення, що мають будь-яку одну сторону меншу, ніж це значення, переступить поріг\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"Об'єднати відстань:\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"Зображення, які перетнули цей поріг будуть об’єднуватися в більше зображення, якщо вони на цій відстані\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"Оновити\"\n\nmsgid \"Start frame:\"\nmsgstr \"Початковий кадр:\"\n\nmsgid \"End frame:\"\nmsgstr \"Кінцевий кадр:\"\n\nmsgid \"At frame:\"\nmsgstr \"До кадру:\"\n\nmsgid \"At layer:\"\nmsgstr \"На шарі:\"\n\nmsgid \"Brush type:\"\nmsgstr \"Тип пензля:\"\n\nmsgid \"File brush\"\nmsgstr \"Файл щітки\"\n\nmsgid \"Project brush\"\nmsgstr \"Пензель проєкту\"\n\nmsgid \"Random brush\"\nmsgstr \"Випадковий пензель\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"Зберегти спрайт як .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"Експортувати спрайт в .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"Експортувати спрайт\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"Файл існує, перезаписати?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"Вказані нижче файли вже існують. Перезаписати їх?\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"Шлях до директорії неправильний!\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"Назва файла неправильна!\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"Шлях до директорії і назва файла неправильні!\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"Виконується експорт...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"Не вдалося прочитати файл «%s».\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"Не вдалося завантажити файл '%s.\\n\"\n\"Код помилки: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"Не вдалося прочитати файл «%s».\\n\"\n\"Це не правильний файл палітри.\"\n\nmsgid \"Frame\"\nmsgstr \"Кадр\"\n\nmsgid \"Frames:\"\nmsgstr \"Кадри:\"\n\nmsgid \"All Frames\"\nmsgstr \"Всі кадри\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Таблиця спрайтів\"\n\nmsgid \"Animation\"\nmsgstr \"Анімація\"\n\nmsgid \"Preview:\"\nmsgstr \"Попередній перегляд:\"\n\nmsgid \"Frame:\"\nmsgstr \"Кадр:\"\n\nmsgid \"Orientation:\"\nmsgstr \"Орієнтація:\"\n\nmsgid \"Browse\"\nmsgstr \"Огляд\"\n\nmsgid \"Resize:\"\nmsgstr \"Змінити розмір:\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"Якість:\"\n\nmsgid \"Cancel Export\"\nmsgstr \"Скасувати експорт\"\n\nmsgid \"Alert!\"\nmsgstr \"Увага!\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"Виберіть поточний каталог\"\n\nmsgid \"Open a Directory\"\nmsgstr \"Відкрити каталог\"\n\nmsgid \"Background:\"\nmsgstr \"Фон:\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"Вибрані кадри\"\n\nmsgid \"Layers:\"\nmsgstr \"Шари:\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"Видимі шари\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"Вибрані шари\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"Шар пікселів:\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"Груповий шар:\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"3D-шар:\"\n\nmsgid \"Direction:\"\nmsgstr \"Напрямок:\"\n\nmsgid \"Forward\"\nmsgstr \"Вперед\"\n\nmsgid \"Backwards\"\nmsgstr \"Назад\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"Пінг-Понг\"\n\nmsgid \"Columns\"\nmsgstr \"Стовпці\"\n\nmsgid \"Columns:\"\nmsgstr \"Стовпці:\"\n\nmsgid \"Rows\"\nmsgstr \"Рядки\"\n\nmsgid \"Rows:\"\nmsgstr \"Рядки:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"Теги за стовпцем\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"Теги за рядком\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"Розміри для експорту:\"\n\nmsgid \"Save a File\"\nmsgstr \"Зберегти файл\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"Перейти до попереднього каталогу.\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"Перейти до наступного каталогу.\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"Перейти до батьківського каталогу.\"\n\nmsgid \"Path:\"\nmsgstr \"Шлях:\"\n\nmsgid \"Refresh files.\"\nmsgstr \"Оновити файли.\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"Перемкнути видимість прихованих файлів.\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"Каталоги та файли:\"\n\nmsgid \"Create Folder\"\nmsgstr \"Створити каталог\"\n\nmsgid \"File:\"\nmsgstr \"Файл:\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"Усі файли\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"Усі розпізнавані\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"Проєкт Pixelorama\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"PNG Зображення\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"BMP Зображення\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"Radiance HDR Зображення\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"JPEG Зображення\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"SVG Зображення\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"TGA Зображення\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"WebP Зображення\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"Pixelorama палітра\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"GIMP палітра\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"Розширені опції\"\n\nmsgid \"Interpolation:\"\nmsgstr \"Інтерполяція:\"\n\nmsgid \"Nearest\"\nmsgstr \"Найближчі\"\n\nmsgid \"Bilinear\"\nmsgstr \"Білінійна\"\n\nmsgid \"Cubic\"\nmsgstr \"Кубічна\"\n\nmsgid \"Trilinear\"\nmsgstr \"Трилінійна\"\n\nmsgid \"Constant\"\nmsgstr \"Константа\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"Колірний простір\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"Лінійний sRGB\"\n\nmsgid \"General\"\nmsgstr \"Загальні\"\n\nmsgid \"Startup\"\nmsgstr \"Запуск\"\n\nmsgid \"Language\"\nmsgstr \"Мова\"\n\nmsgid \"Interface\"\nmsgstr \"Інтерфейс\"\n\nmsgid \"Themes\"\nmsgstr \"Теми\"\n\nmsgid \"Canvas\"\nmsgstr \"Полотно\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"Шкала часу\"\n\nmsgid \"Selection\"\nmsgstr \"Виділення\"\n\nmsgid \"Shortcuts\"\nmsgstr \"Комбінації клавіш\"\n\nmsgid \"Backup\"\nmsgstr \"Резервна копія\"\n\nmsgid \"Performance\"\nmsgstr \"Продуктивність\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"Драйвери\"\n\nmsgid \"Extensions\"\nmsgstr \"Розширення\"\n\nmsgid \"Cursors\"\nmsgstr \"Курсори\"\n\nmsgid \"Indicators\"\nmsgstr \"Індикатори\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"Треба перезапустити Pixeloram’у, щоб зміни набули чинності.\"\n\nmsgid \"On\"\nmsgstr \"Вкл\"\n\nmsgid \"Restore default value\"\nmsgstr \"Відновити значення за замовчуванням\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"М'яке масштабування\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"Додає більш плавний перехід при масштабуванні\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"Ціле масштабування\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"Чутливість до натиску на планшет:\"\n\nmsgid \"None\"\nmsgstr \"Нічого\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"Вплив на альфу пензля\"\n\nmsgid \"Color:\"\nmsgstr \"Колір:\"\n\nmsgid \"Guide color:\"\nmsgstr \"Колір напрямних:\"\n\nmsgid \"System Language\"\nmsgstr \"Мова системи\"\n\nmsgid \"Display scale:\"\nmsgstr \"Масштаб екрану:\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"Шрифт:\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"Розмір шрифту:\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"Затемнити інтерфейс під діалоговими вікнами\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"Використовувати нативні діалогові вікна\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"Режим одного вікна\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"Темна\"\n\nmsgid \"Gray\"\nmsgstr \"Cіра\"\n\nmsgid \"Blue\"\nmsgstr \"Синя\"\n\nmsgid \"Caramel\"\nmsgstr \"Карамель\"\n\nmsgid \"Light\"\nmsgstr \"Світла\"\n\nmsgid \"Purple\"\nmsgstr \"Фіолетова\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"Тема\"\n\nmsgid \"Buttons\"\nmsgstr \"Кнопки\"\n\nmsgid \"Icon color from:\"\nmsgstr \"Колір значків з:\"\n\nmsgid \"Icon color:\"\nmsgstr \"Колір значків:\"\n\nmsgid \"Background\"\nmsgstr \"Фон\"\n\nmsgid \"Background color from:\"\nmsgstr \"Колір фону з:\"\n\nmsgid \"Background color:\"\nmsgstr \"Колір фону:\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"Ділитися налаштуваннями між лівими та правими інструментами\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"Колір лівого інструменту:\"\n\nmsgid \"Right tool color:\"\nmsgstr \"Колір правого інструменту:\"\n\nmsgid \"Tool button size:\"\nmsgstr \"Розмір кнопок інструментів:\"\n\nmsgid \"Small\"\nmsgstr \"Малий\"\n\nmsgid \"Big\"\nmsgstr \"Великий\"\n\nmsgid \"Only affect selection\"\nmsgstr \"Впливає лише на обране\"\n\nmsgid \"Selected cels\"\nmsgstr \"Вибрані клітинки\"\n\nmsgid \"Current cel\"\nmsgstr \"Поточна клітинка\"\n\nmsgid \"Current frame\"\nmsgstr \"Поточний кадр\"\n\nmsgid \"All frames\"\nmsgstr \"Всі кадри\"\n\nmsgid \"All projects\"\nmsgstr \"Всі проєкти\"\n\nmsgid \"Invert Colors\"\nmsgstr \"Інвертувати кольори\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"Змінити червоний канал\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"Змінити зелений канал\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"Змінити синій канал\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"Змінити альфа-канал\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"Знебарвлення\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"Контур\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"Тінь\"\n\nmsgid \"Offset X:\"\nmsgstr \"Зсув за X:\"\n\nmsgid \"Offset Y:\"\nmsgstr \"Зсув за Y:\"\n\nmsgid \"Shadow color:\"\nmsgstr \"Колір тіні:\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"Тип розмиття:\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"Рівень розмиття:\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"Радіус розмиття:\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"Напрямок розмиття:\"\n\nmsgid \"Gradient\"\nmsgstr \"Градієнт\"\n\nmsgid \"Gradient Map\"\nmsgstr \"Карта градієнту\"\n\nmsgid \"Interpolation\"\nmsgstr \"Інтерполяція\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"Розвернути\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"Розділити на рівні частини\"\n\nmsgid \"Parts:\"\nmsgstr \"Частини:\"\n\nmsgid \"Add point at the end\"\nmsgstr \"Додати точку в кінці\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"Якщо увімкнено, останню точку буде додано в кінець градієнту.\\n\"\n\"Вимкніть, щоб перетворити градієнт таким чином, щоб в ньому була константна інтерполяція, щоб останній колір враховувався.\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"Зберегти до шаблонів\"\n\nmsgid \"Shape:\"\nmsgstr \"Форма:\"\n\nmsgid \"Linear\"\nmsgstr \"Лінійний\"\n\nmsgid \"Radial\"\nmsgstr \"Радіальний\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"Повтор:\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"Повтор\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"Віддзеркалення\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"Усічення\"\n\nmsgid \"Transition size:\"\nmsgstr \"Розмір переходу:\"\n\nmsgid \"Center:\"\nmsgstr \"Центр:\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"Шаблон точок:\"\n\nmsgid \"Type:\"\nmsgstr \"Тип:\"\n\nmsgid \"Angle:\"\nmsgstr \"Кут:\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"Змінити Відтінки/Насиченість/Яскравість\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"Налаштування HSV\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"Відтінок:\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"Насиченість:\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"Яскравість:\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"Яскравість:\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"Контраст:\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"Значення червоного:\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"Значення зеленого:\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"Значення синього:\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"Колір відтінку:\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"Фактор ефекту відтінку:\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"Криві Кольору\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"Канал:\"\n\nmsgid \"Red\"\nmsgstr \"Червоний\"\n\nmsgid \"Green\"\nmsgstr \"Зелений\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"Значення\"\n\nmsgid \"Presets\"\nmsgstr \"Шаблони\"\n\nmsgid \"Apply\"\nmsgstr \"Застосувати\"\n\nmsgid \"Diagonal\"\nmsgstr \"Діагональ\"\n\nmsgid \"Place inside image\"\nmsgstr \"Розмістити всередині зображення\"\n\nmsgid \"Thickness:\"\nmsgstr \"Товщина:\"\n\nmsgid \"Colors:\"\nmsgstr \"Кольори:\"\n\nmsgid \"Steps:\"\nmsgstr \"Кроки:\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"Пікселізація\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"Постеризація\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"Рівні постеризації:\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"Інтенсивність коливання:\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"Переглянути екран привітання\"\n\nmsgid \"Online Docs\"\nmsgstr \"Онлайн документація\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"Трекер помилок\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"Відкрити теку з даними редактора\"\n\nmsgid \"Changelog\"\nmsgstr \"Список змін\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"Про Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"Підтримка розробки Pixelorama\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - пікселізуйте свої мрії!\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"Розроблено Orama Interactive\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"©2019-сьогодні Orama Interactive і учасники\"\n\nmsgid \"Website\"\nmsgstr \"Веб-сайт\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"Вихідний код\"\n\nmsgid \"Donate\"\nmsgstr \"Підтримати\"\n\nmsgid \"Developers\"\nmsgstr \"Розробники\"\n\nmsgid \"Contributors\"\nmsgstr \"Учасники\"\n\nmsgid \"Donors\"\nmsgstr \"Спонсори\"\n\nmsgid \"Translators\"\nmsgstr \"Перекладачі\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"Ліцензії\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"Ліцензія\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"Англійська\"\n\nmsgid \"Greek\"\nmsgstr \"Грецька\"\n\nmsgid \"French\"\nmsgstr \"Французька\"\n\nmsgid \"German\"\nmsgstr \"Німецька\"\n\nmsgid \"Polish\"\nmsgstr \"Польська\"\n\nmsgid \"Portuguese\"\nmsgstr \"Португальська\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"Бразильська португальська\"\n\nmsgid \"Russian\"\nmsgstr \"Російська\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"Китайська спрощена\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"Китайська традиційна\"\n\nmsgid \"Italian\"\nmsgstr \"Італійська\"\n\nmsgid \"Latvian\"\nmsgstr \"Латвійська\"\n\nmsgid \"Spanish\"\nmsgstr \"Іспанська\"\n\nmsgid \"Catalan\"\nmsgstr \"Каталанська\"\n\nmsgid \"Esperanto\"\nmsgstr \"Есперанто\"\n\nmsgid \"Indonesian\"\nmsgstr \"Індонезійська\"\n\nmsgid \"Czech\"\nmsgstr \"Чеська\"\n\nmsgid \"Arabic\"\nmsgstr \"Арабська\"\n\nmsgid \"Turkish\"\nmsgstr \"Турецька\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"Норвезька (букмол)\"\n\nmsgid \"Korean\"\nmsgstr \"Корейська\"\n\nmsgid \"Hungarian\"\nmsgstr \"Венгерська\"\n\nmsgid \"Romanian\"\nmsgstr \"Румунська\"\n\nmsgid \"Japanese\"\nmsgstr \"Японська\"\n\nmsgid \"Ukrainian\"\nmsgstr \"Українська\"\n\nmsgid \"Danish\"\nmsgstr \"Датська\"\n\nmsgid \"Swedish\"\nmsgstr \"Шведська\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"Сербська (кирилиця)\"\n\nmsgid \"Dutch\"\nmsgstr \"Голландська\"\n\nmsgid \"Belarusian\"\nmsgstr \"Білоруська\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"Головний розробник\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"UI дизайнер\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"Автори\"\n\nmsgid \"Art by: %s\"\nmsgstr \"Художник: %s\"\n\nmsgid \"untitled\"\nmsgstr \"без назви\"\n\nmsgid \"imported\"\nmsgstr \"імпортовано\"\n\nmsgid \"copy\"\nmsgstr \"копіювати\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"Ви дійсно бажаєте вийти з Pixelorama?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"Незбережене зображення\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"У вас є незбережені зміни. Якщо ви продовжите, прогрес буде втрачений.\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"Зберегти перед виходом?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"Зберегти та вийти\"\n\nmsgid \"Exit without saving\"\nmsgstr \"Вийти без збереження\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Прямокутне виділення\\n\\n\"\n\"%s для лівої кнопки миші\\n\"\n\"%s для правої кнопки миші\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Еліптичне виділення\\n\\n\"\n\"%s для лівої кнопки миші\\n\"\n\"%s для правої кнопки миші\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"Полігональне виділення\\n\\n\"\n\"%s для лівої кнопки миші\\n\"\n\"%s для правої кнопки миші\\n\\n\"\n\"Двійне натиснення з'єднує останню точку з першою\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Вибір за кольором\\n\\n\"\n\"%s для лівої кнопки миші\\n\"\n\"%s для правої кнопки миші\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Чарівна паличка\\n\\n\"\n\"%s для лівої кнопки миші\\n\"\n\"%s для правої кнопки миші\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Ласо / довільне виділення\\n\\n\"\n\"%s для лівої кнопки миші\\n\"\n\"%s для правої кнопки миші\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Пересування\\n\\n\"\n\"%s для лівої кнопки миші\\n\"\n\"%s для правої кнопки миші\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Масштабування\\n\\n\"\n\"%s для лівої кнопки миші\\n\"\n\"%s для правої кнопки миші\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Пересування\\n\\n\"\n\"%s для лівої кнопки миші\\n\"\n\"%s для правої кнопки миші\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"Піпетка\\n\\n\"\n\"%s для лівої кнопки миші\\n\"\n\"%s для правої кнопки миші\\n\\n\"\n\"Вибрати колір пікселя зі спрайта\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Олівець\\n\\n\"\n\"%s для лівої кнопки миші\\n\"\n\"%s для правої кнопки миші\\n\\n\"\n\"Утримуйте %s, щоб намалювати лінію\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"Гумка\\n\\n\"\n\"%s для лівої кнопки миші\\n\"\n\"%s для правої кнопки миші\\n\\n\"\n\"Утримуйте %s, щоб стерти лінію\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Заливка\\n\\n\"\n\"%s для лівої кнопки миші\\n\"\n\"%s для правої кнопки миші\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"Інструмент світла/тіні\\n\\n\"\n\"%s для лівої кнопки миші\\n\"\n\"%s для правої кнопки миші\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Лінія\\n\\n\"\n\"%s для лівої кнопки миші\\n\"\n\"%s для правої кнопки миші\\n\\n\"\n\"Утримуйте %s, щоб зафіксувати кут лінії\\n\"\n\"Утримуйте %s, щоб встановити центр лінії в місці початку малювання\\n\"\n\"Утримуйте %s, щоб пересувати початкову точку фігури\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Прямокутник\\n\\n\"\n\"%s для лівої кнопки миші\\n\"\n\"%s для правої кнопки миші\\n\\n\"\n\"Утримуйте %s, щоб створити квадрат 1:1\\n\"\n\"Утримуйте %s, щоб встановити центр лінії в місці початку малювання\\n\"\n\"Утримуйте %s, щоб пересувати початкову точку фігури\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"Еліпс\\n\\n\"\n\"%s для лівої кнопки миші\\n\"\n\"%s для правої кнопки миші\\n\\n\"\n\"Утримуйте %s, щоб створити круг 1:1\\n\"\n\"Утримуйте %s, щоб встановити центр лінії в місці початку малювання\\n\"\n\"Утримуйте %s, щоб пересувати початкову точку фігури\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"Прямокутник\"\n\nmsgid \"Ellipse\"\nmsgstr \"Еліпс\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"Вибрати колір для лівого інструмента\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"Вибрати колір для правого інструмента\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"Скинути кольори до стандартних (зліва чорний, справа білий)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"Введіть шістнадцятковий код (\\\"#ff0000\\\") або назву кольору (\\\"red\\\").\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"Виберіть форму піпетки.\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"Налаштування кольору\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"Перейдіть до режиму вибору.\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"Кольорові повзунки\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"Лівий інструмент\"\n\nmsgid \"Right tool\"\nmsgstr \"Правий інструмент\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"Лівий індикатор пікселя\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Показати на полотні індикатор пікселя або пензель для лівої кнопки миші при малюванні\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"Правий індикатор пікселя\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"Показати на полотні індикатор пікселя або пензель для правої кнопки миші при малюванні\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"Показувати значок лівого інструмента\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"Показує значок вибраного лівого інструмента поруч з курсором на полотні\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"Показувати значок правого інструмента\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"Показує значок вибраного правого інструмента поруч з курсором на полотні\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"Використовувати системні курсори миші\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"Використовувати перехресний курсор на полотні\"\n\nmsgid \"Guides\"\nmsgstr \"Напрямні лінії\"\n\nmsgid \"Guides color:\"\nmsgstr \"Колір напрямних:\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"Колір напрямних ліній на полотні\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"Прив'язка\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"Відстань прив'язки:\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"Сітка\"\n\nmsgid \"Grid type:\"\nmsgstr \"Тип сітки:\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"Встановлює тип сітки між прямокутником, ізометричним або обидва\"\n\nmsgid \"Rectangular\"\nmsgstr \"Прямокутна\"\n\nmsgid \"Isometric\"\nmsgstr \"Ізометрична\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"Усі\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"Зміщення сітки:\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"Встановлює зсув сітки від початку координат (верхній лівий кут зображення)\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"Малювати в безшовному режимі:\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"Якщо вимкнено, сітка буде показуватися тільки над оригінальним зображенням\"\n\nmsgid \"Grid color:\"\nmsgstr \"Колір сітки:\"\n\nmsgid \"A color of the grid\"\nmsgstr \"Колір, який матиме сітка\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"Сітка пікселів\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"Показати при збільшенні:\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"Встановлює мінімальне масштабування, при якому буде відображатися сітка для пікселів\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"Колір піксельної сітки:\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"Колір піксельної сітки\"\n\nmsgid \"Transparency\"\nmsgstr \"Прозорість\"\n\nmsgid \"Checker size:\"\nmsgstr \"Розмір шахового фону:\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"Розмір шахового узору для прозорого фону\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"Шаховий колір 1:\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"Перший колір шахового узору для прозорого фону\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"Шаховий колір 2:\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"Другий колір шахового узору для прозорого фону\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"Рухати з полотном\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"Шаховий фон рухається з полотном\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"Міняти розмір за масштабом\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"Шаховий фон міняє розмір за масштабом\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"Анімовані межі виділення\"\n\nmsgid \"Border color 1:\"\nmsgstr \"Колір рамки 1:\"\n\nmsgid \"Border color 2:\"\nmsgstr \"Колір рамки 2:\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"Можна міняти тільки користувацький набір налаштувань\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"Встановити обмеження FPS додатку:\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"Встановлює обмеження кадрів в секунду. Чим нижче значення, ти менше додаток використовує CPU, але програма починає працювати повільніше, стає менш стабільною і може не реагувати. 0 означає, що немає ніяких обмежень.\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"Призупиняти програму, коли вона не має фокусу\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"Якщо вибрано цей параметр, коли вікно програми губитиме фокус, програма призупинятиметься. Це допомагає не використовувати процесор дарма. Програма буде знов активована, коли курсор миші буде рухатися в вікні програми.\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"Завжди оновлювати\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"Якщо це увімкнено, програма буде перемалювати екран постійно, навіть поки його не використовується. Вимкнення цього дозволяє знизити навантаження на процесор та відеокарту при простої.\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"Увімкнути прозорість вікна\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"Якщо увімкнуто, вікно програми може стати прозорим. Це впливає на продуктивність, тому тримайте його виключеним, якщо вам не потрібно.\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"Рендерер:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"Вказує, який використовуватиметься рендерер/відеодрайвер. GLES2 кращий для старіших та менш потужних пристроїв, а в GLES3 більше можливостей.\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"Драйвер планшету:\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"В Windows вказує, який використовується драйвер планшета. Якщо увімкнено Windows Ink, оберіть winink.\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"Додати розширення\"\n\nmsgid \"Enable\"\nmsgstr \"Увімкнути\"\n\nmsgid \"Disable\"\nmsgstr \"Вимкнути\"\n\nmsgid \"Uninstall\"\nmsgstr \"Видалити\"\n\nmsgid \"Open Folder\"\nmsgstr \"Відкрити директорію\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"Переглянути Онлайн\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"Пошук...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"Теги:\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"Завантажити\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"Ви впевнені, що хочете включити це розширення? Переконайтеся, що розширення з джерел, яким ви довіряєте.\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"Ви дійсно бажаєте видалити це розширення?\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"Динаміка\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"Стабілізатор\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"Натиск\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"Швидкість\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"Альфа\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"Розмір\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"Ліміти значень\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"Пороги\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"Початок\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"Кінець\"\n\nmsgid \"Brush:\"\nmsgstr \"Пензель:\"\n\nmsgid \"Select a brush\"\nmsgstr \"Вибрати пензель\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"Типовий пензлик\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"Піксельний пензель\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"Пензель-коло\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"Пензель—заповнене коло\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"Пензлі проєкту\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"Пензлі файлу\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"Сніг\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"Трава\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"Зірка\"\n\nmsgid \"Custom brush\"\nmsgstr \"Користувацький пензель\"\n\nmsgid \"Brush size:\"\nmsgstr \"Розмір пензля:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"Параметри обертання\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"Віддзеркалити:\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"Повернути:\"\n\nmsgid \"Overwrite color\"\nmsgstr \"Перезапис кольору\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"Переписує колір замість змішування кольорів. Ця опція має сенс лише для частково прозорих кольорів\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"Піксельна точність\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"Піксельна точність\\n\"\n\"Робить лініі плавними, забираючи зайві пікселі по краях\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"Зафіксувати прозорість\"\n\nmsgid \"Fill inside\"\nmsgstr \"Заливка всередині\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"Інтервал\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"Пропуск X:\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"Пропуск Y:\"\n\nmsgid \"Fill Shape\"\nmsgstr \"Залити фігуру\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"Заливає намальовану фігуру кольором замість того, щоб малювати лише контур\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"Щільність:\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"Колір пензля з:\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: Колір з самого пензля, 100: поточний колір\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"Область заповнення:\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"Подібна область\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"Подібні кольори\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"Все виділення\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"Чим залити:\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"Вибраній колір\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"Шаблон\"\n\nmsgid \"Offset\"\nmsgstr \"Зсування\"\n\nmsgid \"Simple Shading\"\nmsgstr \"Просте світло\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"Зсування відтінку\"\n\nmsgid \"Lighten\"\nmsgstr \"Освітлити\"\n\nmsgid \"Darken\"\nmsgstr \"Затемнити\"\n\nmsgid \"Amount:\"\nmsgstr \"Сила:\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"Сила освітлення/затемнення\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"Заміна кольору\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"Будь ласка, виберіть колір із палітри.\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"Кольори справа:\"\n\nmsgid \"Pick for:\"\nmsgstr \"Вибрати для:\"\n\nmsgid \"Left Color\"\nmsgstr \"Лівий колір\"\n\nmsgid \"Right Color\"\nmsgstr \"Правий колір\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"Режим Вибору:\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"Верхній колір\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"Поточний Шар\"\n\nmsgid \"Mode:\"\nmsgstr \"Режим:\"\n\nmsgid \"Zoom in\"\nmsgstr \"Збільшити масштаб\"\n\nmsgid \"Zoom out\"\nmsgstr \"Зменшити масштаб\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"Параметри\"\n\nmsgid \"Options:\"\nmsgstr \"Опції:\"\n\nmsgid \"Fit to frame\"\nmsgstr \"За розміром кадру\"\n\nmsgid \"100% Zoom\"\nmsgstr \"100% масштаб\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"Замінити виділення\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"Додати до виділення\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"Відняти від виділення\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"Перетинання виділень\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"Стиль:\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"Звичайний\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"Жирний\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"Курсив\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"Жирний курсив\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"Згладжування\"\n\nmsgid \"Grayscale\"\nmsgstr \"Відтінки сірого\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"Віддзеркалення\"\n\nmsgid \"Horizontal\"\nmsgstr \"Горизонтально\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"Увімкнути горизонтальне віддзеркалення для малювання\"\n\nmsgid \"Vertical\"\nmsgstr \"Вертикально\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"Увімкнути вертикальне віддзеркалення для малювання\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"Перемістити в центр полотна\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"Перемістити в центр перегляду\"\n\nmsgid \"Current frame:\"\nmsgstr \"Поточний кадр:\"\n\nmsgid \"Animation mode:\"\nmsgstr \"Режим анімації:\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"Поточний кадр як таблиця спрайтів\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"Перейти до першого кадру\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"Перейти до попереднього кадру\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"Відтворити анімацію назад\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"Відтворити анімацію вперед\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"Перейти до наступного кадру\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"Перейти до останнього кадру\"\n\nmsgid \"Timeline settings\"\nmsgstr \"Налаштування часової шкали\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"Увімкнути/вимкнути шлейф сусідніх кадрів\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"Скільки кадрів у секунду показувати при програванні анімації?\\n\"\n\"Чим більше кадрів у секунду, тим швидшою буде анімація.\"\n\nmsgid \"No loop\"\nmsgstr \"Без зациклення\"\n\nmsgid \"Cycle loop\"\nmsgstr \"Кругове зациклення\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"Зациклення туди-назад\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Шлейф сусідніх кадрів:\"\n\nmsgid \"Past Frames\"\nmsgstr \"Минулі кадри\"\n\nmsgid \"Future Frames\"\nmsgstr \"Майбутні кадри\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"Керування тегами кадрів\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"Властивості тегу кадрів\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"Додати новий тег кадрів\"\n\nmsgid \"Name:\"\nmsgstr \"Назва:\"\n\nmsgid \"From:\"\nmsgstr \"З:\"\n\nmsgid \"To:\"\nmsgstr \"До:\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"Анімація відтворюється тільки на кадрах того ж тегу\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"Тег %s (Кадр %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"Тег %s (Кадри %s—%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"Якщо вибрано цю опцію, анімація буде програватися тільки на кадрах з одним і тим же тегом.\\n\"\n\"Якщо не вибрано, анімація буде програватися на всіх кадрах, ігноруючи теги.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"Розмір клітинки:\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"Режим кольору\"\n\nmsgid \"Show past frames:\"\nmsgstr \"Показ минулих кадрів:\"\n\nmsgid \"Show future frames:\"\nmsgstr \"Показ майбутніх кадрів:\"\n\nmsgid \"Above canvas\"\nmsgstr \"Над полотном\"\n\nmsgid \"Below canvas\"\nmsgstr \"Під полотном\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"Якщо ви хочете, щоб шар ігнорував шлейф сусідніх кадрів, просто додайте до назви суфікс «_io» латиницею.\"\n\nmsgid \"Add a new frame\"\nmsgstr \"Додати новий кадр\"\n\nmsgid \"Remove Frame\"\nmsgstr \"Видалити кадр\"\n\nmsgid \"Clone Frame\"\nmsgstr \"Клонувати кадр\"\n\nmsgid \"Move Left\"\nmsgstr \"Перейти вліво\"\n\nmsgid \"Move Right\"\nmsgstr \"Перейти вправо\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"Відтворити аудіо тут\"\n\nmsgid \"Properties\"\nmsgstr \"Властивості\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"Властивості кадру\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"Зворотний порядок кадрів\"\n\nmsgid \"Layer\"\nmsgstr \"Шар\"\n\nmsgid \"Group\"\nmsgstr \"Група\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"Шари\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"Створити новий шар\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"Додати шар пікселів\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"Додати груповий шар\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"Додати 3D-шар\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"Видалити поточний шар\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"Підняти поточний шар\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"Опустити поточний шар\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"Клонувати поточний шар\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"Об’єднати поточний шар з шаром під ним\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"Непрозорість:\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"Прозорість безшовного режиму:\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"Перемкнути видимість шару\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"Заблокувати/розблокувати шар\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"Кадр: %s, шар: %s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"Увімкнути/вимкнути автоматичне зв'язання нових клітинок при створенні нових кадрів\\n\\n\"\n\"Пов'язані клітинки будуть одночасно використовуватися в різних кадрах\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"Розгорнути/згорнути групу\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"Палітра\"\n\nmsgid \"Palettes\"\nmsgstr \"Палітри\"\n\nmsgid \"Add a new palette\"\nmsgstr \"Додати нову палітру\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"Редагувати вибрану палітру\"\n\nmsgid \"Choose a palette\"\nmsgstr \"Вибір палітри\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"Скасувати: малювання\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"Повторити: малювання\"\n\nmsgid \"Undo: Select\"\nmsgstr \"Скасувати: виділення\"\n\nmsgid \"Redo: Select\"\nmsgstr \"Повторити: виділення\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"Скасувати: масштабування\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"Повторити: масштабування\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"Скасувати: додавання шару\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"Повторити: додавання шару\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"Скасувати: видалення шару\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"Повторити: видалення шару\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"Скасувати: об’єднання шару\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"Повторити: об’єднання шару\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"Скасувати: зміна порядку шарів\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"Повторити: зміна порядку шарів\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"Скасувати: додавання кадру\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"Повторити: додавання кадру\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"Скасувати: видалення кадру\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"Повторити: видалення кадру\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"Скасувати: зміна порядку кадрів\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"Повторити: зміна порядку кадрів\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"Скасувати: видалення користувацького пензля\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"Повторити: видалення користувацького пензля\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"Скасувати: зміна тегу кадру\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"Повторити: зміна тегу кадру\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"Скасувати: видалення тегу кадру\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"Повторити: видалення тегу кадру\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"Скасувати: зміна тривалості кадру\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"Повторити: зміна тривалості кадру\"\n\nmsgid \"Move Guide\"\nmsgstr \"Пересунути керівну\"\n\nmsgid \"File saved\"\nmsgstr \"Файл збережено\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"Не вдалося відкрити файл. Код помилки %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"Не вдалося зберегти файл. Код помилки %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"Файл(и) експортовано\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"Нова пуста палітра\"\n\nmsgid \"Import Palette\"\nmsgstr \"Імпортувати палітру\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"Створити палітру з поточного спрайту\"\n\nmsgid \"Palette Name:\"\nmsgstr \"Назва палітри:\"\n\nmsgid \"Color Name:\"\nmsgstr \"Назва кольору:\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"Використовувати поточні лівий і правий кольори\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"Створити нову пусту палітру?\"\n\nmsgid \"Error\"\nmsgstr \"Помилка\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"Помилка: у палітри має бути правильна назва.\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"Неправильний файл палітри!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"Редагувати палітру\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"Створювати кольори з альфа-компонентом\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"Брати кольори тільки з виділення\"\n\nmsgid \"Get colors from\"\nmsgstr \"Брати кольори з\"\n\nmsgid \"Patrons:\"\nmsgstr \"Меценати:\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"Хочете, щоб ваше ім’я або назва вашої компанії була на екрані завантаження?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"Стати платиновим спонсором\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"Стати золотим спонсором\"\n\nmsgid \"Become a Patron\"\nmsgstr \"Стати меценатом\"\n\nmsgid \"Don't show again\"\nmsgstr \"Не показувати знову\"\n\nmsgid \"Image Options\"\nmsgstr \"Опції зображення\"\n\nmsgid \"Default width:\"\nmsgstr \"Стандартна ширина:\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"Стандартна ширина для нового зображення\"\n\nmsgid \"Default height:\"\nmsgstr \"Стандартна висота:\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"Стандартна висота для нового зображення\"\n\nmsgid \"Default fill color:\"\nmsgstr \"Стандартний колір заливки:\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"Стандартний фоновий колір нового зображення\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"Зафіксувати співвідношення сторін\"\n\nmsgid \"Portrait\"\nmsgstr \"Вертикальна орієнтація\"\n\nmsgid \"Landscape\"\nmsgstr \"Горизонтальна орієнтація\"\n\nmsgid \"Templates:\"\nmsgstr \"Шаблони:\"\n\nmsgid \"Preset\"\nmsgstr \"Набір налаштувань\"\n\nmsgid \"Preset:\"\nmsgstr \"Набір налаштувань:\"\n\nmsgid \"Default\"\nmsgstr \"Стандартно\"\n\nmsgid \"Custom\"\nmsgstr \"Користувацьке\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"Прямокутне виділення\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"Еліптичне виділення\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"Полігональне виділення\"\n\nmsgid \"Select By Color\"\nmsgstr \"Вибір за кольором\"\n\nmsgid \"Magic Wand\"\nmsgstr \"Чарівна паличка\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"Ласо / довільне виділення\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"Пересування\"\n\nmsgid \"Zoom\"\nmsgstr \"Масштаб\"\n\nmsgid \"Pan\"\nmsgstr \"Пересування\"\n\nmsgid \"Color Picker\"\nmsgstr \"Піпетка\"\n\nmsgid \"Pencil\"\nmsgstr \"Олівець\"\n\nmsgid \"Eraser\"\nmsgstr \"Гумка\"\n\nmsgid \"Bucket\"\nmsgstr \"Заливка\"\n\nmsgid \"Shading Tool\"\nmsgstr \"Інструмент світла/тіні\"\n\nmsgid \"Line Tool\"\nmsgstr \"Лінія\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"Прямокутник\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"Еліпс\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"Поміняти кольори місцями\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Асоціювати клавішу\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Натисніть клавішу або комбінацію клавіш, щоб асоціювати її з дією\"\n\nmsgid \"Already assigned\"\nmsgstr \"Вже призначене\"\n\nmsgid \"Left Tool:\"\nmsgstr \"Лівий інструмент:\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"Інструмент, який встановлено для лівої кнопки миші\"\n\nmsgid \"Right Tool:\"\nmsgstr \"Правий інструмент:\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"Інструмент, який встановлено для правої кнопки миші\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"Неможливо знайти останній файл проєкту.\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"Неможливо знайти файл проєкту.\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"Ви ще не зберегли та не відкрили в Pixelorama жодного проєкту!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"Відкрити останній проєкт\"\n\nmsgid \"Open last project...\"\nmsgstr \"Відкрити останній проєкт...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"Відкривати останній проєкт при запуску\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"Відкривати проєкт, який було останнім відкрито, при запуску програми\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"Підтвердження виходу\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"Увімкнути автозбереження\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"Інтервал автозбереження:\"\n\nmsgid \"minute(s)\"\nmsgstr \"хв.\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"Включати теги кадрів в назву файлу\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"Створити по каталогу для тегу кадрів\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"Створює декілька файлів, але кожен файл буде зберігатися в окремому каталозі, відповідно до тегу кадрів\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"Роздільні символ(и):\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"Символ(и), що розділяють назву файлу та номер кадра\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"Обрізати зображення\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"Обрізати експортовані зображення до їх видимої частини, розглядаючи кожен піксель з ненульовим альфа-каналом як видимий.\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"Обрізати вміст зображення до виділеного\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"Експортувати лише вміст у межах виділеної області.\"\n\nmsgid \"Close\"\nmsgstr \"Закрити\"\n\nmsgid \"Discard All\"\nmsgstr \"Відкинути все\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"Завантажено резервну копію\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"Видалити вибрану палітру\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"Ви впевнені, що хочете видалити цю палітру? (Цю дію неможливо скасувати)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"Неможливо видалити більш палітр!\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"Неможливо видалити палітру, бо вона не існує!\"\n\nmsgid \"and\"\nmsgstr \"і\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"Пересунути виділений кадр вліво.\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"Пересунути виділений кадр вправо.\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"Тривалість кадру:\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"Дані користувача:\"\n\nmsgid \"Duration\"\nmsgstr \"Тривалість\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"Повтори по обидвох осях\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"Повтори по осі X\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"Повтори по осі Y\"\n\nmsgid \"Create a new palette\"\nmsgstr \"Створити нову палітру\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"Коментар:\"\n\nmsgid \"Empty\"\nmsgstr \"Пуста\"\n\nmsgid \"From Current Palette\"\nmsgstr \"З поточної палітри\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"З поточного спрайту\"\n\nmsgid \"From Current Selection\"\nmsgstr \"З поточного виділення\"\n\nmsgid \"Add a new color\"\nmsgstr \"Додати новий колір\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"Видалити вибраний колір\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"Сортувати палітру\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"Зворотні кольори\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"Сортувати за відтінком\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"Сортувати за насиченістю\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"Сортувати за значенням\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"Сортувати за яскравістю\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"Сортувати за червоним\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"Сортувати за зеленим\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"Сортувати за синім\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"Сортувати за прозорістю\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"Палітра з такою назвою та шляхом вже існує!\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"Назва палітри обов’язкова!\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"Зменшення розміру палітри призведе до скидання позицій кольорів.\\n\"\n\"Кольори які не відповідають новій палітрі, будуть втрачені!\"\n\nmsgid \"Position:\"\nmsgstr \"Позиція:\"\n\nmsgid \"Tools\"\nmsgstr \"Інструменти\"\n\nmsgid \"Main Canvas\"\nmsgstr \"Основне полотно\"\n\nmsgid \"Second Canvas\"\nmsgstr \"Друге полотно\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"Шкала часу анімацій\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"Попередній перегляд полотна\"\n\nmsgid \"Color Pickers\"\nmsgstr \"Піпетки\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"Глобальні параметри інструментів\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"Параметри лівого інструмента\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"Параметри правого інструмента\"\n\nmsgid \"Reference Images\"\nmsgstr \"Еталонні зображення\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"Редактор перспективи\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"Записувач\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"Плитки\"\n\nmsgid \"Crop\"\nmsgstr \"Обрізати\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"Змінити розмір полотна\"\n\nmsgid \"Margins\"\nmsgstr \"Поля\"\n\nmsgid \"Position + Size\"\nmsgstr \"Положення + розмір\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"Фіксовані пропорції\"\n\nmsgid \"Margins:\"\nmsgstr \"Поля:\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"Пропорції:\"\n\nmsgid \"Top:\"\nmsgstr \"Верх:\"\n\nmsgid \"Bottom:\"\nmsgstr \"Низ:\"\n\nmsgid \"Left:\"\nmsgstr \"Ліво:\"\n\nmsgid \"Right:\"\nmsgstr \"Право:\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"Фіксований розмір\\n\\n\"\n\"Якщо вибрано, при використанні цього інструменту на полотні, він лише пересуне прямокутник, вибраний для обрізання.\\n\\n\"\n\"Якщо не вибрано, при використанні інструменту на полотні буде намальований прямокутник.\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"Редагування 3D-форми\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"Куб\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"Сфера\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"Капсула\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"Циліндр\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"Призма\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"Тор\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"Площина\"\n\nmsgid \"Text\"\nmsgstr \"Текст\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"Спрямоване світло\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"Прожектор\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"Світлова точка\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"Користувацька модель\"\n\nmsgid \"Selected object:\"\nmsgstr \"Виділений об'єкт:\"\n\nmsgid \"Add new object\"\nmsgstr \"Додати новий об'єкт\"\n\nmsgid \"Remove object\"\nmsgstr \"Видалити об'єкт\"\n\nmsgid \"Camera\"\nmsgstr \"Камера\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"Проєкція:\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"Перспектива\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"Ортогональне\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"Пірамідальна\"\n\nmsgid \"Rotation:\"\nmsgstr \"Поворот:\"\n\nmsgid \"Scale:\"\nmsgstr \"Масштаб:\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"Навколишнє середовище\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"Колір оточення:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"Енергія кольору оточення:\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"Видимий:\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"Трансформація\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"Сітка\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"Зліва направо:\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"Радіус:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"Радіальні сегменти:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"Кільця:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"Це півкуля:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"Верхній радіус:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"Нижній радіус:\"\n\nmsgid \"Text:\"\nmsgstr \"Текст:\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"Глибина:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"Розмір пікселя:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"Крок кривої:\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"Горизонтальне вирівнювання:\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"Вирівнювання по вертикалі:\"\n\nmsgid \"Left\"\nmsgstr \"Вліво\"\n\nmsgid \"Right\"\nmsgstr \"Вправо\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"Міжрядковий інтервал:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"Енергія:\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"Негативне:\"\n\nmsgid \"Shadow:\"\nmsgstr \"Тінь:\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"Діапазон:\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"Анімовані властивості\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"Попередній перегляд кадру:\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"Анімувати\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"Початкове значення:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"Остаточне значення:\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"Прозорість\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"Увімкнено\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"Додати ефект\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"Автоматична\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/vi_VN.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: vi\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Vietnamese\\n\"\n\"Language: vi_VN\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"OK\"\n\nmsgid \"Cancel\"\nmsgstr \"Huỷ\"\n\nmsgid \"Open\"\nmsgstr \"Mở\"\n\nmsgid \"Save\"\nmsgstr \"Lưu\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"Vui lòng xác nhận...\"\n\nmsgid \"File Name:\"\nmsgstr \"Tên Tệp:\"\n\nmsgid \"Project Name:\"\nmsgstr \"\"\n\nmsgid \"Image Size\"\nmsgstr \"Kích thước hình ảnh\"\n\nmsgid \"Canvas Size\"\nmsgstr \"Kích thước tấm nền\"\n\nmsgid \"Frame Size\"\nmsgstr \"Kích thước khung hình\"\n\nmsgid \"Size:\"\nmsgstr \"\"\n\nmsgid \"Width:\"\nmsgstr \"Rộng:\"\n\nmsgid \"Height:\"\nmsgstr \"Cao:\"\n\nmsgid \"Center\"\nmsgstr \"Căn giữa\"\n\nmsgid \"File\"\nmsgstr \"Tệp\"\n\nmsgid \"Edit\"\nmsgstr \"Chỉnh sửa\"\n\nmsgid \"Select\"\nmsgstr \"\"\n\nmsgid \"View\"\nmsgstr \"Xem\"\n\nmsgid \"Window\"\nmsgstr \"\"\n\nmsgid \"Image\"\nmsgstr \"Hình ảnh\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"\"\n\nmsgid \"Effects\"\nmsgstr \"Hiệu ứng\"\n\nmsgid \"Help\"\nmsgstr \"Trợ giúp\"\n\nmsgid \"New\"\nmsgstr \"Mới\"\n\nmsgid \"New...\"\nmsgstr \"Mới...\"\n\nmsgid \"Open...\"\nmsgstr \"Mở...\"\n\nmsgid \"Save...\"\nmsgstr \"Lưu...\"\n\nmsgid \"Save as...\"\nmsgstr \"\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"\"\n\nmsgid \"Export\"\nmsgstr \"\"\n\nmsgid \"Overwrite\"\nmsgstr \"\"\n\nmsgid \"Export...\"\nmsgstr \"\"\n\nmsgid \"Export as...\"\nmsgstr \"\"\n\nmsgid \"Export PNG...\"\nmsgstr \"\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"\"\n\nmsgid \"Quit\"\nmsgstr \"\"\n\nmsgid \"Undo\"\nmsgstr \"\"\n\nmsgid \"Redo\"\nmsgstr \"\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"\"\n\nmsgid \"Cut\"\nmsgstr \"\"\n\nmsgid \"Paste\"\nmsgstr \"\"\n\nmsgid \"Paste in Place\"\nmsgstr \"\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"\"\n\nmsgid \"New Brush\"\nmsgstr \"\"\n\nmsgid \"Scale Image\"\nmsgstr \"\"\n\nmsgid \"Pixels\"\nmsgstr \"\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"\"\n\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"\"\n\nmsgid \"Show Grid\"\nmsgstr \"\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"\"\n\nmsgid \"Show Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Zen Mode\"\nmsgstr \"\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"\"\n\nmsgid \"Fill with color:\"\nmsgstr \"\"\n\nmsgid \"Open a File\"\nmsgstr \"\"\n\nmsgid \"Open File(s)\"\nmsgstr \"\"\n\nmsgid \"Import Options\"\nmsgstr \"\"\n\nmsgid \"Import as:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"\"\n\nmsgid \"New brush\"\nmsgstr \"\"\n\nmsgid \"New pattern\"\nmsgstr \"\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"\"\n\nmsgid \"File brush\"\nmsgstr \"\"\n\nmsgid \"Project brush\"\nmsgstr \"\"\n\nmsgid \"Random brush\"\nmsgstr \"\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"\"\n\nmsgid \"Export Sprite\"\nmsgstr \"\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"\"\n\nmsgid \"Frames:\"\nmsgstr \"\"\n\nmsgid \"All Frames\"\nmsgstr \"\"\n\nmsgid \"Spritesheet\"\nmsgstr \"\"\n\nmsgid \"Animation\"\nmsgstr \"\"\n\nmsgid \"Preview:\"\nmsgstr \"\"\n\nmsgid \"Frame:\"\nmsgstr \"\"\n\nmsgid \"Orientation:\"\nmsgstr \"\"\n\nmsgid \"Browse\"\nmsgstr \"\"\n\nmsgid \"Resize:\"\nmsgstr \"\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"\"\n\nmsgid \"Alert!\"\nmsgstr \"\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"\"\n\nmsgid \"Open a Directory\"\nmsgstr \"\"\n\nmsgid \"Background:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"\"\n\nmsgid \"Forward\"\nmsgstr \"\"\n\nmsgid \"Backwards\"\nmsgstr \"\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"\"\n\nmsgid \"Columns\"\nmsgstr \"\"\n\nmsgid \"Columns:\"\nmsgstr \"\"\n\nmsgid \"Rows\"\nmsgstr \"\"\n\nmsgid \"Rows:\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"\"\n\nmsgid \"Create Folder\"\nmsgstr \"\"\n\nmsgid \"File:\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"\"\n\nmsgid \"Nearest\"\nmsgstr \"\"\n\nmsgid \"Bilinear\"\nmsgstr \"\"\n\nmsgid \"Cubic\"\nmsgstr \"\"\n\nmsgid \"Trilinear\"\nmsgstr \"\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"\"\n\nmsgid \"Startup\"\nmsgstr \"\"\n\nmsgid \"Language\"\nmsgstr \"\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"\"\n\nmsgid \"Canvas\"\nmsgstr \"\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"\"\n\nmsgid \"Backup\"\nmsgstr \"\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"\"\n\nmsgid \"Restore default value\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"\"\n\nmsgid \"None\"\nmsgstr \"\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"\"\n\nmsgid \"Color:\"\nmsgstr \"\"\n\nmsgid \"Guide color:\"\nmsgstr \"\"\n\nmsgid \"System Language\"\nmsgstr \"\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"\"\n\nmsgid \"Gray\"\nmsgstr \"\"\n\nmsgid \"Blue\"\nmsgstr \"\"\n\nmsgid \"Caramel\"\nmsgstr \"\"\n\nmsgid \"Light\"\nmsgstr \"\"\n\nmsgid \"Purple\"\nmsgstr \"\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"\"\n\nmsgid \"Big\"\nmsgstr \"\"\n\nmsgid \"Only affect selection\"\nmsgstr \"\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"\"\n\nmsgid \"Current frame\"\nmsgstr \"\"\n\nmsgid \"All frames\"\nmsgstr \"\"\n\nmsgid \"All projects\"\nmsgstr \"\"\n\nmsgid \"Invert Colors\"\nmsgstr \"\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"\"\n\nmsgid \"Angle:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"\"\n\nmsgid \"Diagonal\"\nmsgstr \"\"\n\nmsgid \"Place inside image\"\nmsgstr \"\"\n\nmsgid \"Thickness:\"\nmsgstr \"\"\n\nmsgid \"Colors:\"\nmsgstr \"\"\n\nmsgid \"Steps:\"\nmsgstr \"\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"\"\n\nmsgid \"Online Docs\"\nmsgstr \"\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"\"\n\nmsgid \"Developers\"\nmsgstr \"\"\n\nmsgid \"Contributors\"\nmsgstr \"\"\n\nmsgid \"Donors\"\nmsgstr \"\"\n\nmsgid \"Translators\"\nmsgstr \"\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"\"\n\nmsgid \"Greek\"\nmsgstr \"\"\n\nmsgid \"French\"\nmsgstr \"\"\n\nmsgid \"German\"\nmsgstr \"\"\n\nmsgid \"Polish\"\nmsgstr \"\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"\"\n\nmsgid \"Russian\"\nmsgstr \"\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"\"\n\nmsgid \"Italian\"\nmsgstr \"\"\n\nmsgid \"Latvian\"\nmsgstr \"\"\n\nmsgid \"Spanish\"\nmsgstr \"\"\n\nmsgid \"Catalan\"\nmsgstr \"\"\n\nmsgid \"Esperanto\"\nmsgstr \"\"\n\nmsgid \"Indonesian\"\nmsgstr \"\"\n\nmsgid \"Czech\"\nmsgstr \"\"\n\nmsgid \"Arabic\"\nmsgstr \"\"\n\nmsgid \"Turkish\"\nmsgstr \"\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"\"\n\nmsgid \"Hungarian\"\nmsgstr \"\"\n\nmsgid \"Romanian\"\nmsgstr \"\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"\"\n\nmsgid \"untitled\"\nmsgstr \"\"\n\nmsgid \"imported\"\nmsgstr \"\"\n\nmsgid \"copy\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"\"\n\nmsgid \"Save & Exit\"\nmsgstr \"\"\n\nmsgid \"Exit without saving\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"\"\n\nmsgid \"Left tool\"\nmsgstr \"\"\n\nmsgid \"Right tool\"\nmsgstr \"\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"\"\n\nmsgid \"Guides color:\"\nmsgstr \"\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"\"\n\nmsgid \"Grid type:\"\nmsgstr \"\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"\"\n\nmsgid \"Rectangular\"\nmsgstr \"\"\n\nmsgid \"Isometric\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the grid\"\nmsgstr \"\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"\"\n\nmsgid \"Checker size:\"\nmsgstr \"\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"\"\n\nmsgid \"Select a brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"\"\n\nmsgid \"Brush size:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"\"\n\nmsgid \"Offset\"\nmsgstr \"\"\n\nmsgid \"Simple Shading\"\nmsgstr \"\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"\"\n\nmsgid \"Darken\"\nmsgstr \"\"\n\nmsgid \"Amount:\"\nmsgstr \"\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"\"\n\nmsgid \"Left Color\"\nmsgstr \"\"\n\nmsgid \"Right Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"\"\n\nmsgid \"Zoom in\"\nmsgstr \"\"\n\nmsgid \"Zoom out\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"\"\n\nmsgid \"Fit to frame\"\nmsgstr \"\"\n\nmsgid \"100% Zoom\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"\"\n\nmsgid \"Horizontal\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"\"\n\nmsgid \"Vertical\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"\"\n\nmsgid \"No loop\"\nmsgstr \"\"\n\nmsgid \"Cycle loop\"\nmsgstr \"\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"\"\n\nmsgid \"Past Frames\"\nmsgstr \"\"\n\nmsgid \"Future Frames\"\nmsgstr \"\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"\"\n\nmsgid \"Name:\"\nmsgstr \"\"\n\nmsgid \"From:\"\nmsgstr \"\"\n\nmsgid \"To:\"\nmsgstr \"\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"\"\n\nmsgid \"Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Clone Frame\"\nmsgstr \"\"\n\nmsgid \"Move Left\"\nmsgstr \"\"\n\nmsgid \"Move Right\"\nmsgstr \"\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"\"\n\nmsgid \"Palettes\"\nmsgstr \"\"\n\nmsgid \"Add a new palette\"\nmsgstr \"\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Choose a palette\"\nmsgstr \"\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"\"\n\nmsgid \"Move Guide\"\nmsgstr \"\"\n\nmsgid \"File saved\"\nmsgstr \"\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"\"\n\nmsgid \"Import Palette\"\nmsgstr \"\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"Palette Name:\"\nmsgstr \"\"\n\nmsgid \"Color Name:\"\nmsgstr \"\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"\"\n\nmsgid \"Error\"\nmsgstr \"\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"\"\n\nmsgid \"Edit Palette\"\nmsgstr \"\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"\"\n\nmsgid \"Get colors from\"\nmsgstr \"\"\n\nmsgid \"Patrons:\"\nmsgstr \"\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"\"\n\nmsgid \"Become a Patron\"\nmsgstr \"\"\n\nmsgid \"Don't show again\"\nmsgstr \"\"\n\nmsgid \"Image Options\"\nmsgstr \"\"\n\nmsgid \"Default width:\"\nmsgstr \"\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"\"\n\nmsgid \"Default height:\"\nmsgstr \"\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"\"\n\nmsgid \"Default fill color:\"\nmsgstr \"\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"\"\n\nmsgid \"Preset\"\nmsgstr \"\"\n\nmsgid \"Preset:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"\"\n\nmsgid \"Pencil\"\nmsgstr \"\"\n\nmsgid \"Eraser\"\nmsgstr \"\"\n\nmsgid \"Bucket\"\nmsgstr \"\"\n\nmsgid \"Shading Tool\"\nmsgstr \"\"\n\nmsgid \"Line Tool\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Already assigned\"\nmsgstr \"\"\n\nmsgid \"Left Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"\"\n\nmsgid \"Right Tool:\"\nmsgstr \"\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"\"\n\nmsgid \"Open Last Project\"\nmsgstr \"\"\n\nmsgid \"Open last project...\"\nmsgstr \"\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"\"\n\nmsgid \"minute(s)\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"\"\n\nmsgid \"and\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"\"\n\nmsgid \"Empty\"\nmsgstr \"\"\n\nmsgid \"From Current Palette\"\nmsgstr \"\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "Translations/zh_CN.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: zh-CN\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Chinese Simplified\\n\"\n\"Language: zh_CN\\n\"\n\"PO-Revision-Date: 2025-11-30 12:35\\n\"\n\nmsgid \"OK\"\nmsgstr \"确定\"\n\nmsgid \"Cancel\"\nmsgstr \"取消\"\n\nmsgid \"Open\"\nmsgstr \"打开\"\n\nmsgid \"Save\"\nmsgstr \"保存\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"请确认...\"\n\nmsgid \"File Name:\"\nmsgstr \"文件名称：\"\n\nmsgid \"Project Name:\"\nmsgstr \"项目名称:\"\n\nmsgid \"Image Size\"\nmsgstr \"图像大小\"\n\nmsgid \"Canvas Size\"\nmsgstr \"画布尺寸\"\n\nmsgid \"Frame Size\"\nmsgstr \"帧大小\"\n\nmsgid \"Size:\"\nmsgstr \"尺寸：\"\n\nmsgid \"Width:\"\nmsgstr \"宽度：\"\n\nmsgid \"Height:\"\nmsgstr \"高度：\"\n\nmsgid \"Center\"\nmsgstr \"中心\"\n\nmsgid \"File\"\nmsgstr \"文件\"\n\nmsgid \"Edit\"\nmsgstr \"编辑\"\n\nmsgid \"Select\"\nmsgstr \"选择\"\n\nmsgid \"View\"\nmsgstr \"视图\"\n\nmsgid \"Window\"\nmsgstr \"窗口\"\n\nmsgid \"Image\"\nmsgstr \"图像\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"项目\"\n\nmsgid \"Effects\"\nmsgstr \"效果\"\n\nmsgid \"Help\"\nmsgstr \"帮助\"\n\nmsgid \"New\"\nmsgstr \"新建\"\n\nmsgid \"New...\"\nmsgstr \"新建...\"\n\nmsgid \"Open...\"\nmsgstr \"打开...\"\n\nmsgid \"Save...\"\nmsgstr \"保存...\"\n\nmsgid \"Save as...\"\nmsgstr \"另存为...\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"包含混合图像\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"如果启用，最终的混合图像也会针对每帧存储在 pxo 中。\\n\"\n\"这会使 pxo 文件更大，并且对于通过第三方软件导入\\n\"\n\"或 CLI 导出非常有用。在 Pixelorama 中加载 pxo 文件不需要启用此选项。\"\n\nmsgid \"Import\"\nmsgstr \"导入\"\n\nmsgid \"Export\"\nmsgstr \"导出\"\n\nmsgid \"Overwrite\"\nmsgstr \"覆盖\"\n\nmsgid \"Export...\"\nmsgstr \"导出...\"\n\nmsgid \"Export as...\"\nmsgstr \"导出为...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"导出 PNG...\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"导出 PNG 为...\"\n\nmsgid \"Quit\"\nmsgstr \"退出\"\n\nmsgid \"Undo\"\nmsgstr \"撤消\"\n\nmsgid \"Redo\"\nmsgstr \"重做\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"撤消历史\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"初始状态\"\n\nmsgid \"Copy\"\nmsgstr \"复制\"\n\nmsgid \"Cut\"\nmsgstr \"剪切\"\n\nmsgid \"Paste\"\nmsgstr \"粘贴\"\n\nmsgid \"Paste in Place\"\nmsgstr \"原位粘贴\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"从剪贴板粘贴\"\n\nmsgid \"Delete\"\nmsgstr \"删除\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"永久删除\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"移动到回收站\"\n\nmsgid \"New Brush\"\nmsgstr \"新建画笔\"\n\nmsgid \"Scale Image\"\nmsgstr \"缩放图像\"\n\nmsgid \"Pixels\"\nmsgstr \"像素\"\n\nmsgid \"Percentage\"\nmsgstr \"百分比\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"颜色模式:\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"颜色模式\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"索引颜色\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"裁剪到选区\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"裁剪到内容\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"调整画布尺寸\"\n\nmsgid \"Offset Image\"\nmsgstr \"偏移图像\"\n\nmsgid \"Offset:\"\nmsgstr \"偏移：\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"环绕：\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"置中帧\"\n\nmsgid \"Rotate Image\"\nmsgstr \"旋转图像\"\n\nmsgid \"Pivot x:\"\nmsgstr \"位置 X 轴：\"\n\nmsgid \"Pivot y:\"\nmsgstr \"位置 Y 轴：\"\n\nmsgid \"Smear options:\"\nmsgstr \"涂抹选项：\"\n\nmsgid \"Tolerance:\"\nmsgstr \"容差：\"\n\nmsgid \"Initial angle:\"\nmsgstr \"初始角度：\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"环绕描边\"\n\nmsgid \"Clear\"\nmsgstr \"取消选中\"\n\nmsgid \"Invert\"\nmsgstr \"反向\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"选择单元格区域\"\n\nmsgid \"Modify\"\nmsgstr \"修改\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"展开\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"展开所选\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"收缩\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"收缩选择\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"边框\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"边框选择\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"菱形\"\n\nmsgid \"Circle\"\nmsgstr \"圆形\"\n\nmsgid \"Square\"\nmsgstr \"正方形\"\n\nmsgid \"Grayscale View\"\nmsgstr \"灰度视图\"\n\nmsgid \"Mirror Image\"\nmsgstr \"镜像图像\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"水平翻转\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"垂直翻转\"\n\nmsgid \"Preferences\"\nmsgstr \"首选项\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"程序\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"模糊\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"已加载\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"居中画布\"\n\nmsgid \"Tile Mode\"\nmsgstr \"平铺模式\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"平铺模式偏移\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"X-基准：\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"Y-基准：\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"蒙板：\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"重置\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"重置 %s\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"当前帧\"\n\nmsgid \"Reset Mask\"\nmsgstr \"重置蒙版\"\n\nmsgid \"Window Opacity\"\nmsgstr \"窗口不透明度\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"窗口不透明度在全屏模式下不起作用\"\n\nmsgid \"Panel Layout\"\nmsgstr \"面板布局\"\n\nmsgid \"Panels\"\nmsgstr \"面板\"\n\nmsgid \"Layouts\"\nmsgstr \"布局\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"可移动面板\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"制作浮动\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"管理布局\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"预览\"\n\nmsgid \"Add\"\nmsgstr \"添加\"\n\nmsgid \"Add Layout\"\nmsgstr \"添加布局\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"删除 %s\"\n\nmsgid \"Copy from\"\nmsgstr \"复制从\"\n\nmsgid \"Rename\"\nmsgstr \"重命名\"\n\nmsgid \"Rename Layout\"\nmsgstr \"重命名布局\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"当前布局\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"您确定要删除此布局吗？\"\n\nmsgid \"Widescreen\"\nmsgstr \"宽屏\"\n\nmsgid \"Tallscreen\"\nmsgstr \"高屏\"\n\nmsgid \"Mirror View\"\nmsgstr \"镜像视图\"\n\nmsgid \"Show Grid\"\nmsgstr \"显示网格\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"显示像素网格\"\n\nmsgid \"Show Rulers\"\nmsgstr \"显示标尺\"\n\nmsgid \"Show Guides\"\nmsgstr \"显示参考线\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"显示鼠标向导\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"显示参考图像\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"显示图层效果\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"吸附到\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"吸附到方形网格\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"吸附到方形网格\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"吸附到网格\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"吸附到透视指南\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"显示动画时间轴\"\n\nmsgid \"Zen Mode\"\nmsgstr \"禅定模式\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"全屏模式\"\n\nmsgid \"Fill with color:\"\nmsgstr \"使用颜色填充：\"\n\nmsgid \"Open a File\"\nmsgstr \"打开一个文件\"\n\nmsgid \"Open File(s)\"\nmsgstr \"打开文件\"\n\nmsgid \"Import Options\"\nmsgstr \"导入选项\"\n\nmsgid \"Import as:\"\nmsgstr \"导入为：\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"应用到全部\"\n\nmsgid \"Recent projects\"\nmsgstr \"最近项目\"\n\nmsgid \"New project\"\nmsgstr \"新建项目\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"纸张（新建项目）\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"纸张（新建图层）\"\n\nmsgid \"New frame\"\nmsgstr \"新建帧\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"替换新的cel\"\n\nmsgid \"New layer\"\nmsgstr \"新建图层\"\n\nmsgid \"New reference image\"\nmsgstr \"添加参考图像\"\n\nmsgid \"New palette\"\nmsgstr \"新建调色板\"\n\nmsgid \"New brush\"\nmsgstr \"新建画笔\"\n\nmsgid \"New pattern\"\nmsgstr \"新建图案\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"水平帧：\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"垂直帧：\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"智能切片\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"阈值：\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"任何一侧小于该值的图像将超过阈值\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"合并距离：\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"如果超过阈值的图像在此距离内，则会合并为更大的图像\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"刷新\"\n\nmsgid \"Start frame:\"\nmsgstr \"开始帧：\"\n\nmsgid \"End frame:\"\nmsgstr \"结束帧：\"\n\nmsgid \"At frame:\"\nmsgstr \"在帧：\"\n\nmsgid \"At layer:\"\nmsgstr \"在图层：\"\n\nmsgid \"Brush type:\"\nmsgstr \"画笔类型：\"\n\nmsgid \"File brush\"\nmsgstr \"文件笔画\"\n\nmsgid \"Project brush\"\nmsgstr \"项目笔画\"\n\nmsgid \"Random brush\"\nmsgstr \"随机笔画\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"保存 Sprite 为 .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"导出 Sprite 为 .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"导出 Sprite\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"文件已存在，覆盖吗?\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"下列文件已经存在。你想要覆盖它们吗？\\n\"\n\"%s\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"目录路径无效！\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"文件名称无效。\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"目录路径和文件名无效！\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"正在导出...\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"无法加载 '%s' 文件。\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"无法加载文件 '%s'。\\n\"\n\"错误代码： %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"无法加载 '%s' 文件。\\n\"\n\"这不是一个有效的调色板文件。\"\n\nmsgid \"Frame\"\nmsgstr \"帧\"\n\nmsgid \"Frames:\"\nmsgstr \"帧：\"\n\nmsgid \"All Frames\"\nmsgstr \"所有帧\"\n\nmsgid \"Spritesheet\"\nmsgstr \"精灵表\"\n\nmsgid \"Animation\"\nmsgstr \"动画\"\n\nmsgid \"Preview:\"\nmsgstr \"预览：\"\n\nmsgid \"Frame:\"\nmsgstr \"帧：\"\n\nmsgid \"Orientation:\"\nmsgstr \"方向：\"\n\nmsgid \"Browse\"\nmsgstr \"浏览\"\n\nmsgid \"Resize:\"\nmsgstr \"调整大小：\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"质量：\"\n\nmsgid \"Cancel Export\"\nmsgstr \"取消导出\"\n\nmsgid \"Alert!\"\nmsgstr \"提醒\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"选择当前文件夹\"\n\nmsgid \"Open a Directory\"\nmsgstr \"打开目录\"\n\nmsgid \"Background:\"\nmsgstr \"背景：\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"所选帧\"\n\nmsgid \"Layers:\"\nmsgstr \"图层：\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"可见图层\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"所选图层\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"像素图层：\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"组图层：\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"3D 图层：\"\n\nmsgid \"Direction:\"\nmsgstr \"方向：\"\n\nmsgid \"Forward\"\nmsgstr \"向前\"\n\nmsgid \"Backwards\"\nmsgstr \"向后\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"乒乓\"\n\nmsgid \"Columns\"\nmsgstr \"列\"\n\nmsgid \"Columns:\"\nmsgstr \"列：\"\n\nmsgid \"Rows\"\nmsgstr \"行\"\n\nmsgid \"Rows:\"\nmsgstr \"行:\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"按列标签\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"按行标签\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"导出尺寸：\"\n\nmsgid \"Save a File\"\nmsgstr \"保存文件\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"转到上一个文件夹。\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"转到下一个文件夹。\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"转到上级文件夹\"\n\nmsgid \"Path:\"\nmsgstr \"路径：\"\n\nmsgid \"Refresh files.\"\nmsgstr \"刷新文件。\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"切换隐藏文件的可见性。\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"目录和文件：\"\n\nmsgid \"Create Folder\"\nmsgstr \"创建文件夹\"\n\nmsgid \"File:\"\nmsgstr \"文件：\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"所有文件\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"所有已知的\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"Pixelorama 项目\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"PNG 图像\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"BMP 图像\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"辐射 HDR 图像\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"JPEG 图像\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"SVG 图像\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"TGA 图像\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"WebP 图像\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"打开栅格项目\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"Aseprite 项目\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"Krita 项目\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"Piskel 项目\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"Photoshop 项目\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"Pixelorama 调色板\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"GIMP 调色板\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"高级选项\"\n\nmsgid \"Interpolation:\"\nmsgstr \"插值：\"\n\nmsgid \"Nearest\"\nmsgstr \"最临近\"\n\nmsgid \"Bilinear\"\nmsgstr \"双线性\"\n\nmsgid \"Cubic\"\nmsgstr \"立方体\"\n\nmsgid \"Trilinear\"\nmsgstr \"三线性\"\n\nmsgid \"Constant\"\nmsgstr \"常量\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"色彩空间\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"线性 sRGB\"\n\nmsgid \"General\"\nmsgstr \"常规​​​​​\"\n\nmsgid \"Startup\"\nmsgstr \"启动\"\n\nmsgid \"Language\"\nmsgstr \"语言\"\n\nmsgid \"Interface\"\nmsgstr \"界面\"\n\nmsgid \"Themes\"\nmsgstr \"主题\"\n\nmsgid \"Canvas\"\nmsgstr \"画布\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"时间轴\"\n\nmsgid \"Selection\"\nmsgstr \"选区\"\n\nmsgid \"Shortcuts\"\nmsgstr \"快捷键\"\n\nmsgid \"Backup\"\nmsgstr \"备份\"\n\nmsgid \"Performance\"\nmsgstr \"性能\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"驱动程序\"\n\nmsgid \"Extensions\"\nmsgstr \"扩展\"\n\nmsgid \"Cursors\"\nmsgstr \"光标\"\n\nmsgid \"Indicators\"\nmsgstr \"指示\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"必须重启Pixelorama才能使更改生效。\"\n\nmsgid \"On\"\nmsgstr \"开启\"\n\nmsgid \"Restore default value\"\nmsgstr \"恢复默认值\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"平滑缩放\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"放大或缩小时添加一个更平滑的过渡\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"整数缩放\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"将值限制为 100% 的整数倍\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"绘图板压力灵敏度：\"\n\nmsgid \"None\"\nmsgstr \"无\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"效果笔刷 Alpha\"\n\nmsgid \"Color:\"\nmsgstr \"颜色：\"\n\nmsgid \"Guide color:\"\nmsgstr \"辅助线颜色：\"\n\nmsgid \"System Language\"\nmsgstr \"系统语言\"\n\nmsgid \"Display scale:\"\nmsgstr \"显示比例：\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"字体：\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"字体大小：\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"屏幕方向：\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"对话框弹出时变暗界面\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"显示通知标签\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"使用本机文件对话框\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"启用此设置后，将使用操作系统的本机文件对话框，而不是 Pixelorama 的自定义对话框。\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"单窗口模式\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"启用此设置后，Pixelorama 的子窗口将嵌入主窗口中，否则每个对话框将是其自己的单独窗口。\"\n\nmsgid \"Dark\"\nmsgstr \"深色\"\n\nmsgid \"Gray\"\nmsgstr \"灰色\"\n\nmsgid \"Blue\"\nmsgstr \"蓝色\"\n\nmsgid \"Caramel\"\nmsgstr \"浅褐色\"\n\nmsgid \"Light\"\nmsgstr \"白色\"\n\nmsgid \"Purple\"\nmsgstr \"紫色\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"玫瑰\"\n\nmsgid \"Theme\"\nmsgstr \"主题\"\n\nmsgid \"Buttons\"\nmsgstr \"按钮\"\n\nmsgid \"Icon color from:\"\nmsgstr \"图标颜色从：\"\n\nmsgid \"Icon color:\"\nmsgstr \"图标颜色：\"\n\nmsgid \"Background\"\nmsgstr \"背景\"\n\nmsgid \"Background color from:\"\nmsgstr \"背景颜色从：\"\n\nmsgid \"Background color:\"\nmsgstr \"背景颜色：\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"单工具模式\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"如果启用此功能，则鼠标右键将始终激活与鼠标左键相同的工具。\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"在左侧和右侧工具之间共享选项\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"如果启用此功能，左侧和右侧工具之间的选项将同步。\\n\"\n\"例如，两个工具将共享相同的画笔大小，并且在一个工具上更改它会立即在另一个工具上更改。\"\n\nmsgid \"Left tool color:\"\nmsgstr \"左侧工具颜色：\"\n\nmsgid \"Right tool color:\"\nmsgstr \"左侧工具颜色：\"\n\nmsgid \"Tool button size:\"\nmsgstr \"工具按钮大小：\"\n\nmsgid \"Small\"\nmsgstr \"小\"\n\nmsgid \"Big\"\nmsgstr \"大\"\n\nmsgid \"Only affect selection\"\nmsgstr \"仅影响所选\"\n\nmsgid \"Selected cels\"\nmsgstr \"所选单元格\"\n\nmsgid \"Current cel\"\nmsgstr \"当前单元格\"\n\nmsgid \"Current frame\"\nmsgstr \"当前帧\"\n\nmsgid \"All frames\"\nmsgstr \"所有帧\"\n\nmsgid \"All projects\"\nmsgstr \"所有项目\"\n\nmsgid \"Invert Colors\"\nmsgstr \"反相颜色\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"修改红色通道\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"修改绿色通道\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"修改蓝色通道\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"修改 Alpha 通道\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"去饱和\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"轮廓\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"阴影\"\n\nmsgid \"Offset X:\"\nmsgstr \"偏移 X：\"\n\nmsgid \"Offset Y:\"\nmsgstr \"偏移 Y：\"\n\nmsgid \"Shadow color:\"\nmsgstr \"阴影颜色：\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"高斯模糊\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"模糊类型：\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"模糊数量：\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"模糊半径：\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"模糊方向：\"\n\nmsgid \"Gradient\"\nmsgstr \"渐变\"\n\nmsgid \"Gradient Map\"\nmsgstr \"渐变贴图\"\n\nmsgid \"Interpolation\"\nmsgstr \"插补\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"反向\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"均匀分布点\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"分成等份\"\n\nmsgid \"Parts:\"\nmsgstr \"部件：\"\n\nmsgid \"Add point at the end\"\nmsgstr \"在结尾处添加点\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"如果启用此功能，则最后一个点将添加到渐变的末尾。\\n\"\n\"如果您希望将渐变转换为具有恒定插值，请禁用此选项，以便将最后一种颜色考虑在内。\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"保存为预设\"\n\nmsgid \"Shape:\"\nmsgstr \"形状：\"\n\nmsgid \"Linear\"\nmsgstr \"线性\"\n\nmsgid \"Radial\"\nmsgstr \"径向\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"重复：\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"重复\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"镜像\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"截断\"\n\nmsgid \"Transition size:\"\nmsgstr \"过渡大小：\"\n\nmsgid \"Center:\"\nmsgstr \"中心：\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"抖动模式：\"\n\nmsgid \"Type:\"\nmsgstr \"类型：\"\n\nmsgid \"Angle:\"\nmsgstr \"角度：\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"调整色相/饱和度/值\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"调整 HSV\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"色相：\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"饱和度：\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"值：\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"调整亮度/对比度\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"亮度：\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"对比度：\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"红色值：\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"绿色值：\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"蓝色值：\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"色调颜色：\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"色调影响因素：\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"颜色曲线\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"通道：\"\n\nmsgid \"Red\"\nmsgstr \"红色\"\n\nmsgid \"Green\"\nmsgstr \"绿色\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"值\"\n\nmsgid \"Presets\"\nmsgstr \"预设\"\n\nmsgid \"Apply\"\nmsgstr \"应用\"\n\nmsgid \"Diagonal\"\nmsgstr \"对角线\"\n\nmsgid \"Place inside image\"\nmsgstr \"放置在图片中\"\n\nmsgid \"Thickness:\"\nmsgstr \"厚度：\"\n\nmsgid \"Colors:\"\nmsgstr \"颜色：\"\n\nmsgid \"Steps:\"\nmsgstr \"步骤：\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"调色板\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"像素化\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"色调分离\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"色调分离级别：\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"抖动强度：\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"查看启动画面\"\n\nmsgid \"Online Docs\"\nmsgstr \"在线文档\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"问题追踪器\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"还原备份\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"过往会话\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"双击加载整个对话或特定项目。\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"会话\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"项目\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"（当前会话）\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"打开编辑器数据文件夹\"\n\nmsgid \"Changelog\"\nmsgstr \"更新日志\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"关于 Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"支持 Pixelorama 开发\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - 像素化您的梦想！\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"由 Orama Interactive 开发 - 简体中文翻译 By 大眼仔~旭（Anan）\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"© 版权所有 2019~2025 - Orama Interactive 和贡献者\"\n\nmsgid \"Website\"\nmsgstr \"网站\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"源代码\"\n\nmsgid \"Donate\"\nmsgstr \"捐赠\"\n\nmsgid \"Developers\"\nmsgstr \"开发\"\n\nmsgid \"Contributors\"\nmsgstr \"贡献者\"\n\nmsgid \"Donors\"\nmsgstr \"捐赠者\"\n\nmsgid \"Translators\"\nmsgstr \"翻译\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"许可证\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"许可证\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"Godot 许可证\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"第三方许可证\"\n\nmsgid \"English\"\nmsgstr \"英语\"\n\nmsgid \"Greek\"\nmsgstr \"希腊语\"\n\nmsgid \"French\"\nmsgstr \"法语\"\n\nmsgid \"German\"\nmsgstr \"德语\"\n\nmsgid \"Polish\"\nmsgstr \"波兰语\"\n\nmsgid \"Portuguese\"\nmsgstr \"葡萄牙文\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"巴西葡萄牙语\"\n\nmsgid \"Russian\"\nmsgstr \"俄语\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"简体中文\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"繁体中文\"\n\nmsgid \"Italian\"\nmsgstr \"意大利语\"\n\nmsgid \"Latvian\"\nmsgstr \"拉美语\"\n\nmsgid \"Spanish\"\nmsgstr \"西班牙语\"\n\nmsgid \"Catalan\"\nmsgstr \"加泰罗尼亚语\"\n\nmsgid \"Esperanto\"\nmsgstr \"世界语\"\n\nmsgid \"Indonesian\"\nmsgstr \"印度尼西亚语\"\n\nmsgid \"Czech\"\nmsgstr \"捷克语\"\n\nmsgid \"Arabic\"\nmsgstr \"阿拉伯语\"\n\nmsgid \"Turkish\"\nmsgstr \"土耳其语\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"挪威语\"\n\nmsgid \"Korean\"\nmsgstr \"韩语\"\n\nmsgid \"Hungarian\"\nmsgstr \"匈牙利语\"\n\nmsgid \"Romanian\"\nmsgstr \"罗马尼亚文\"\n\nmsgid \"Japanese\"\nmsgstr \"日文\"\n\nmsgid \"Ukrainian\"\nmsgstr \"乌克兰语\"\n\nmsgid \"Danish\"\nmsgstr \"丹麦语\"\n\nmsgid \"Swedish\"\nmsgstr \"瑞典语\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"塞尔维亚语（西里尔语）\"\n\nmsgid \"Dutch\"\nmsgstr \"荷兰语\"\n\nmsgid \"Belarusian\"\nmsgstr \"白俄罗斯语\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"首席开发者\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"UI 设计师\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"作者\"\n\nmsgid \"Art by: %s\"\nmsgstr \"艺术作者： %s\"\n\nmsgid \"untitled\"\nmsgstr \"未命名\"\n\nmsgid \"imported\"\nmsgstr \"已导入\"\n\nmsgid \"copy\"\nmsgstr \"复制\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"您确定要退出 Pixelorama 吗?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"未保存的图像\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"您有未保存的更改。如果您继续，您的进度将会丢失。\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"退出前保存吗？\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"项目 %s 有未保存的进度。您想如何继续？\"\n\nmsgid \"Save & Exit\"\nmsgstr \"保存并退出\"\n\nmsgid \"Exit without saving\"\nmsgstr \"退出且不保存\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"矩形选区\\n\\n\"\n\"%s 用于鼠标左键\\n\"\n\"%s 用于鼠标右键\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"椭圆选区\\n\\n\"\n\"%s 用于鼠标左键\\n\"\n\"%s 用于鼠标右键\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"多边形选择\\n\\n\"\n\"%s 鼠标左键\\n\"\n\"%s 鼠标右键\\n\\n\"\n\"双击将最后一个点连接到起点\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"按颜色选择\\n\\n\"\n\"%s 用于鼠标左键\\n\"\n\"%s 用于鼠标右键\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"魔棒\\n\\n\"\n\"%s 用于鼠标左键\\n\"\n\"%s 用于鼠标右键\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"套索/自由选择工具\\n\\n\"\n\"%s 用于鼠标左键\\n\"\n\"%s 用于鼠标右键\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"按绘图选择\\n\\n\"\n\"%s 为鼠标左键\\n\"\n\"%s 为鼠标右键\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"移动\\n\\n\"\n\"%s 用于鼠标左键\\n\"\n\"%s 用于鼠标右键\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"放大镜\\n\\n\"\n\"%s 为鼠标左键\\n\"\n\"%s 为鼠标右键\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"平移\\n\\n\"\n\"%s 为鼠标左键\\n\"\n\"%s 为鼠标右键\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"拾色器\\n\\n\"\n\"%s 鼠标左键\\n\"\n\"%s 鼠标右键\\n\\n\"\n\"从画面的像素中选择一种颜色\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"裁剪\\n\\n\"\n\"%s 为鼠标左键\\n\"\n\"%s 为鼠标右键\\n\\n\"\n\"调整画布大小\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"铅笔\\n\\n\"\n\"%s 为鼠标左键\\n\"\n\"%s 为鼠标右键\\n\\n\"\n\"按住 %s 绘制一条直线\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"橡皮擦\\n\\n\"\n\"%s 为鼠标左键\\n\"\n\"%s 为鼠标右键\\n\\n\"\n\"按住 %s 绘制一条直线\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"油漆桶\\n\\n\"\n\"%s 为鼠标左键\\n\"\n\"%s 为鼠标右键\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"阴影工具\\n\\n\"\n\"%s 鼠标左键\\n\"\n\"%s 鼠标右键\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"线条工具\\n\\n\"\n\"%s 用于鼠标左键\\n\"\n\"%s 用于鼠标右键\\n\\n\"\n\"按住 %s 捕捉线的角度\\n\"\n\"按住 %s 使形状在单击原点居中\\n\"\n\"按住 %s 移动形状的原点\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"曲线工具\\n\\n\"\n\"%s 为鼠标左键\\n\"\n\"%s 为鼠标右键\\n\\n\"\n\"绘制贝塞尔曲线\\n\"\n\"按 %s/%s 添加新点\\n\"\n\"双击完成绘制曲线\\n\"\n\"按下并拖动以控制曲率\\n\"\n\"按 %s 删除最后添加的点\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"矩形工具\\n\\n\"\n\"%s 用于鼠标左键\\n\"\n\"%s 用于鼠标右键\\n\\n\"\n\"按住 %s 创建一个 1:1 的形状\\n\"\n\"按住 %s 使形状在单击原点居中\\n\"\n\"按住 %s 移动形状的原点\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"椭圆工具\\n\\n\"\n\"%s 用于鼠标左键\\n\"\n\"%s 用于鼠标右键\\n\\n\"\n\"按住 %s 创建一个 1:1 的形状\\n\"\n\"按住 %s 使形状在单击原点居中\\n\"\n\"按住 %s 移动形状的原点\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"等距框工具\\n\\n\"\n\"%s 为鼠标左键\\n\"\n\"%s 为鼠标右键\\n\\n\"\n\"绘制等距框\\n\"\n\"按 %s/%s 添加基点\\n\"\n\"按住 %s 捕捉基点的角度\\n\"\n\"按住 %s 移动形状原点\\n\"\n\"按 %s 编辑最后添加的基点\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"文本\\n\\n\"\n\"%s 表示鼠标左键\\n\"\n\"%s 表示鼠标右键\"\n\nmsgid \"Rectangle\"\nmsgstr \"矩形工具\"\n\nmsgid \"Ellipse\"\nmsgstr \"椭圆工具\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"选择左键工具颜色\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"选择右键工具颜色\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"切换左右颜色。\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"平均颜色：\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"重置颜色为默认状态（黑色为左，白色为右）\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"从应用程序窗口中选择一种颜色。\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"输入十六进制代码（“#ff0000”）或命名颜色（“红色”）。\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"选择一个选择器形状。\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"颜色选项\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"选择拾取器模式。\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"着色滑块\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"色板\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"最近使用的颜色\"\n\nmsgid \"Left tool\"\nmsgstr \"左键工具\"\n\nmsgid \"Right tool\"\nmsgstr \"右键工具\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"左键工具指示\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"绘制时在画布上显示鼠标左键像素指示器或画笔\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"右键工具指示\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"绘制时在画布上显示鼠标右键像素指示器或画笔\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"显示左侧工具图标\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"在画布上的光标旁边显示所选左侧工具的图标\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"显示右侧工具图标\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"在画布上的光标旁边显示所选右侧工具的图标\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"使用原生鼠标光标\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"画布使用十字光标\"\n\nmsgid \"Guides\"\nmsgstr \"参考线\"\n\nmsgid \"Guides color:\"\nmsgstr \"参考线颜色：\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"显示在画布上标尺参考线的颜色\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"吸附\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"吸附距离：\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"这是以屏幕像素为单位的距离，引导线和网格捕捉被激活。\"\n\nmsgid \"Grid\"\nmsgstr \"网格\"\n\nmsgid \"Grid type:\"\nmsgstr \"网格类型：\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"设置矩形、方形或两者之间的网格类型\"\n\nmsgid \"Rectangular\"\nmsgstr \"矩形\"\n\nmsgid \"Isometric\"\nmsgstr \"几何体\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"六边形\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"六角形（尖顶）\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"六角形（平顶）\"\n\nmsgid \"All\"\nmsgstr \"全部\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"网格可见：\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"编辑网格：\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"网格大小：\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"网格偏移：\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"设置画布来源的网格偏移量(图像左上角)\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"在平铺模式绘制：\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"如果禁用，网格只能在原始图像上绘制\"\n\nmsgid \"Grid color:\"\nmsgstr \"网格颜色：\"\n\nmsgid \"A color of the grid\"\nmsgstr \"网格颜色\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"像素网格\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"在缩放时显示：\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"设置显示像素网格的最小缩放\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"像素网格颜色：\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"像素网格颜色\"\n\nmsgid \"Transparency\"\nmsgstr \"透明度\"\n\nmsgid \"Checker size:\"\nmsgstr \"检查器大小：\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"透明检查器背景大小\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"检查器颜色 1：\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"透明检查器背景的第一个颜色\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"检查器颜色 2：\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"透明检查器背景的第二个颜色\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"跟随画布移动\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"透明检查器跟随画布移动\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"跟随画布缩放级别\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"透明检查器跟随画布缩放级别\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"单击其中一个按钮时选择图层：\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"洋葱皮经过颜色：\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"洋葱皮未来颜色：\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"动画选择边框\"\n\nmsgid \"Border color 1:\"\nmsgstr \"边框颜色 1：\"\n\nmsgid \"Border color 2:\"\nmsgstr \"边框颜色 2：\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"变换预览 alpha：\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"仅修改自定义预设\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"设置应用程序 FPS 限制：\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"设置应用程序帧每秒的限制。 数字越低，CPU 使用率越低，但应用程序变慢，限制且反应不灵。0 表示没有限制。\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"最大撤消步骤：\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"失去焦点时暂停应用程序\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"如果打开此选项，当应用程序的窗口失去焦点时，它会暂停。 这有助于在空闲时降低 CPU 使用率。 当鼠标进入应用程序的窗口时，应用程序被取消暂停。\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"持续更新\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"如果启用此功能，应用程序将不断重绘屏幕，即使不使用屏幕也是如此。关闭此功能有助于降低空闲时的 CPU 和 GPU 使用率。\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"启用窗口透明度\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"如果启用，应用程序窗口可以变得透明。 这会影响性能，因此如果不需要，请将其关闭。\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"使用虚拟音频驱动程序\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"渲染器：\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"指定正在使用的渲染器/视频驱动。GLES2 更适合于旧的和低端的设备，但 GLES3 可能提供更多的功能。\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"平板电脑驱动程序：\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"指定在 Windows 上使用的平板电脑驱动程序。如果你启用了 Windows Ink，选择 winink。\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"添加扩展\"\n\nmsgid \"Enable\"\nmsgstr \"启用\"\n\nmsgid \"Disable\"\nmsgstr \"禁用\"\n\nmsgid \"Uninstall\"\nmsgstr \"卸载\"\n\nmsgid \"Open Folder\"\nmsgstr \"打开文件夹\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"在线浏览\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"扩展资源管理器\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"搜索...\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"标签：\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"报告扩展问题\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"下载\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"存储库链接：\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"正在从远程存储库获取数据。\\n\"\n\"请稍候。\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"无法从远程存储库获取信息。\\n\\n\"\n\"- 确保您已连接到互联网。\\n\"\n\"- 如果您使用的是 Flatpak 版本的 Pixelorama，则需要授予其连接互联网的权限。为此，您可以在终端上运行以下命令：\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"或者，您可以下载 Flatseal 并在那里设置 Flatpak 应用程序的权限。\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"无法从远程存储库获取信息。\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"粘贴仓库所有者提供的仓库链接。如果留空，将被自动删除。\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"您确定要启用此扩展？请确保只启用来自您信任的来源的扩展。\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"您确定要删除此扩展名吗？\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"动态\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"稳定器\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"压力\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"速度\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"透明度\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"大小\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"数值限制\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"阈值\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"开始比赛\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"结束\"\n\nmsgid \"Brush:\"\nmsgstr \"画笔：\"\n\nmsgid \"Select a brush\"\nmsgstr \"选择一个画笔\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"默认笔刷\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"像素画笔\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"圆形画笔\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"填充圆形画笔\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"项目笔刷\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"文件笔刷\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"雪\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"随机文件笔刷\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"草地\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"星星\"\n\nmsgid \"Custom brush\"\nmsgstr \"自定义画笔\"\n\nmsgid \"Brush size:\"\nmsgstr \"画笔大小：\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"旋转选项\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"翻转：\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"旋转：\"\n\nmsgid \"Overwrite color\"\nmsgstr \"覆盖颜色\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"覆盖颜色而不是混合颜色。 此选项仅与不完全不透明的颜色有关\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"平滑像素\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"完美像素\\n\"\n\"通过去除边缘上的额外像素使线条平滑\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"锁定 Alpha\"\n\nmsgid \"Fill inside\"\nmsgstr \"内部填充\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"间距\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"间隙 X：\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"间隙 Y：\"\n\nmsgid \"Fill Shape\"\nmsgstr \"填充形状\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"用颜色填充绘制的形状，而不是绘制空心形状\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"密度：\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"画笔颜色来自：\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0：画笔本身的颜色，100：当前选择的颜色\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"填充区域：\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"相似区域\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"相似颜色\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"全部选区\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"通过合并所有图层来填充区域\"\n\nmsgid \"Fill with:\"\nmsgstr \"填充使用：\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"选择颜色\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"模式\"\n\nmsgid \"Offset\"\nmsgstr \"偏移\"\n\nmsgid \"Simple Shading\"\nmsgstr \"简单阴影\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"色调偏移\"\n\nmsgid \"Lighten\"\nmsgstr \"减淡\"\n\nmsgid \"Darken\"\nmsgstr \"加深\"\n\nmsgid \"Amount:\"\nmsgstr \"数量：\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"减淡/加深数量\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"颜色替换\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"请从调色板中选择一种颜色。\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"右侧颜色：\"\n\nmsgid \"Pick for:\"\nmsgstr \"拾取：\"\n\nmsgid \"Left Color\"\nmsgstr \"左键颜色\"\n\nmsgid \"Right Color\"\nmsgstr \"右键颜色\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"选取模式：\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"顶部颜色\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"当前图层\"\n\nmsgid \"Mode:\"\nmsgstr \"模式：\"\n\nmsgid \"Zoom in\"\nmsgstr \"放大\"\n\nmsgid \"Zoom out\"\nmsgstr \"缩小\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"单个\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"已链接\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"链接：创建多条贝塞尔曲线的链接，类似于 Krita 曲线工具。\\n\"\n\"单条：创建单条贝塞尔曲线，类似于 Aseprite 曲线工具。\"\n\nmsgid \"Options\"\nmsgstr \"选项\"\n\nmsgid \"Options:\"\nmsgstr \"选项：\"\n\nmsgid \"Fit to frame\"\nmsgstr \"适合帧率\"\n\nmsgid \"100% Zoom\"\nmsgstr \"100% 缩放\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"替换选择\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"添加到选区\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"从当前选区减去\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"交叉选区\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"样式：\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"常规\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"粗体\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"斜体\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"粗斜体\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"抗锯齿\"\n\nmsgid \"Grayscale\"\nmsgstr \"灰度\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"边缘颜色\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"工具颜色\"\n\nmsgid \"Adjusted average\"\nmsgstr \"调整平均值\"\n\nmsgid \"Blend at interface\"\nmsgstr \"在接口混合时\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"左面\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"右面\"\n\nmsgid \"Mirroring\"\nmsgstr \"镜像\"\n\nmsgid \"Horizontal\"\nmsgstr \"水平\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"启用水平镜像绘图\"\n\nmsgid \"Vertical\"\nmsgstr \"垂直\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"启用垂直镜像绘图\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"启用对角线 (↗) 镜像绘图\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"启用对角线 (↘) 镜像绘图\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"移动到画布中心\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"移动到视图中心\"\n\nmsgid \"Current frame:\"\nmsgstr \"当前帧：\"\n\nmsgid \"Animation mode:\"\nmsgstr \"动画模式：\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"当前帧为精灵表\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"跳转到第一帧\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"转到上一帧\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"向后播放动画\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"向前播放动画\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"转到下一帧\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"跳转到最后一帧\"\n\nmsgid \"Timeline settings\"\nmsgstr \"时间轴设置\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"启用/禁用洋葱皮\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"动画预览应该每秒几帧?\\n\"\n\"FPS 越高，动画播放越快。\"\n\nmsgid \"No loop\"\nmsgstr \"无循环\"\n\nmsgid \"Cycle loop\"\nmsgstr \"周期循环\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"乒乓循环\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"洋葱皮：\"\n\nmsgid \"Past Frames\"\nmsgstr \"过去帧\"\n\nmsgid \"Future Frames\"\nmsgstr \"未来帧\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"管理帧标签\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"覆盖标签属性\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"添加一个新的帧标签\"\n\nmsgid \"Name:\"\nmsgstr \"名称：\"\n\nmsgid \"From:\"\nmsgstr \"从：\"\n\nmsgid \"To:\"\nmsgstr \"到：\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"动画仅在同一个标签的帧上播放\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"标签 %s (帧 %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"标签 %s (帧 %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"如果选中，动画仅在具有相同标签的帧上播放。\\n\"\n\"如果没有，动画将播放所有帧，忽略标签。\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"像素大小：\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"颜色模式\"\n\nmsgid \"Show past frames:\"\nmsgstr \"显示过去的帧：\"\n\nmsgid \"Show future frames:\"\nmsgstr \"显示未来的帧：\"\n\nmsgid \"Above canvas\"\nmsgstr \"画布上方\"\n\nmsgid \"Below canvas\"\nmsgstr \"画布下方\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"如果您希望图层忽略洋葱皮，只需在其名称中添加“_io”后缀即可。\"\n\nmsgid \"Add a new frame\"\nmsgstr \"添加一个新的帧\"\n\nmsgid \"Remove Frame\"\nmsgstr \"移除帧\"\n\nmsgid \"Clone Frame\"\nmsgstr \"克隆帧\"\n\nmsgid \"Move Left\"\nmsgstr \"向左移动\"\n\nmsgid \"Move Right\"\nmsgstr \"向右移动\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"添加帧标签\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"选择像素\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"链接单元格到\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"取消链接单元格\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"在此处播放音频\"\n\nmsgid \"Properties\"\nmsgstr \"属性\"\n\nmsgid \"Project Properties\"\nmsgstr \"项目属性\"\n\nmsgid \"Frame properties\"\nmsgstr \"帧属性\"\n\nmsgid \"Layer properties\"\nmsgstr \"图层属性\"\n\nmsgid \"Cel properties\"\nmsgstr \"单元格属性\"\n\nmsgid \"Tag properties\"\nmsgstr \"标签属性\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"新建标签\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"导入标签\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"反向帧\"\n\nmsgid \"Layer\"\nmsgstr \"图层\"\n\nmsgid \"Group\"\nmsgstr \"组\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"图块\"\n\nmsgid \"Audio\"\nmsgstr \"音频\"\n\nmsgid \"Layers\"\nmsgstr \"图层\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"剪切蒙版\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"展平\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"展平可见\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"创建一个新的图层\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"添加像素图层\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"添加图层组\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"添加 3D 图层\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"添加图块图层\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"添加音频图层\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"移除当前图层\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"向上移动当前图层\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"向下移动当前图层\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"克隆当前图层\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"当前图层与下面图层合并\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"混合模式：\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"通过\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"Normal\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"擦除\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"正片叠底\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"颜色加深\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"线性加深\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"屏幕\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"颜色减淡\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"对比度\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"叠加\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"柔光\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"硬光\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"反转\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"差值\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"排除\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"减去\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"相除\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"组件\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"色相\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"饱和度\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"颜色\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"明度\"\n\nmsgid \"Opacity:\"\nmsgstr \"不透明度：\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"平铺模式不透明度：\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"切换图层可见性\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"锁定/解锁图层\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"帧： %s, 图层：%s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"在创建新的帧时，启用/禁用自动链接新的帧\\n\\n\"\n\"链接的模型在多个帧中共享内容\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"展开/折叠组\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"音频文件：\"\n\nmsgid \"Load file\"\nmsgstr \"加载文件\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"在帧中播放：\"\n\nmsgid \"Palette\"\nmsgstr \"调色板\"\n\nmsgid \"Palettes\"\nmsgstr \"调色板\"\n\nmsgid \"Add a new palette\"\nmsgstr \"添加一个新的调色板\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"编辑当前所选调色板\"\n\nmsgid \"Choose a palette\"\nmsgstr \"编辑当前所选调色板\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"撤消: 绘图\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"重做: 绘图\"\n\nmsgid \"Undo: Select\"\nmsgstr \"撤销：选择\"\n\nmsgid \"Redo: Select\"\nmsgstr \"重做：选择\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"撤消: 缩放\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"重做: 缩放\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"撤消: 添加图层\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"重做: 添加图层\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"撤消: 移除图层\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"重做: 移除图层\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"撤消: 合并图层\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"重做: 合并图层\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"撤消: 更改图层顺序\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"重做: 更改图层顺序\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"撤消: 添加帧\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"重做: 添加帧\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"撤消: 移除帧\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"重做: 移除帧\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"撤消: 更改帧顺序\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"重做: 更改帧顺序\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"撤消: 删除自定义画笔\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"重做: 删除自定义画笔\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"撤销：修改帧标签\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"重做：修改帧标签\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"撤销：删除帧标签\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"重做：删除帧标签\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"撤消：更改帧持续时间\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"重做：更改帧持续时间\"\n\nmsgid \"Move Guide\"\nmsgstr \"移除辅助线\"\n\nmsgid \"File saved\"\nmsgstr \"文件已保存\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"备份已保存\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"打开文件失败。错误代码 %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"保存文件失败。错误代码 %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"视频导出失败。 确保 FFMPEG 安装正确。\"\n\nmsgid \"File(s) exported\"\nmsgstr \"文件已导出\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"新建空的调色板\"\n\nmsgid \"Import Palette\"\nmsgstr \"导入调色板\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"从当前 Sprite 创建调色板\"\n\nmsgid \"Palette Name:\"\nmsgstr \"调色板名称：\"\n\nmsgid \"Color Name:\"\nmsgstr \"颜色名称：\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"使用当前左侧和右侧颜色\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"创建一个新的空调色板?\"\n\nmsgid \"Error\"\nmsgstr \"错误\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"错误：调色板必须具有有效的名称。\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"无效的调色板文件!\"\n\nmsgid \"Edit Palette\"\nmsgstr \"编辑调色板\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"创建带有 Alpha 组件的颜色\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"仅从所选获取颜色\"\n\nmsgid \"Get colors from\"\nmsgstr \"获取颜色从\"\n\nmsgid \"Patrons:\"\nmsgstr \"赞助：\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"想要在启动屏幕上显示您的名字或公司吗？\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"成为白金赞助商\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"成为赞助商\"\n\nmsgid \"Become a Patron\"\nmsgstr \"成为赞助者\"\n\nmsgid \"Don't show again\"\nmsgstr \"不再显示\"\n\nmsgid \"Image Options\"\nmsgstr \"图像选项\"\n\nmsgid \"Default width:\"\nmsgstr \"默认宽度：\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"新建图像的默认宽度\"\n\nmsgid \"Default height:\"\nmsgstr \"默认高度：\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"新建图像的默认宽度\"\n\nmsgid \"Default fill color:\"\nmsgstr \"默认填充颜色：\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"设置新建图像的背景颜色\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"重置首选项中的所有可用选项\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"重置时间轴选项\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"重置所有工具选项\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"移除所有扩展\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"删除所有备份\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"清除最近打开的文件列表\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"锁定长宽比\"\n\nmsgid \"Portrait\"\nmsgstr \"纵向\"\n\nmsgid \"Landscape\"\nmsgstr \"横向\"\n\nmsgid \"Templates:\"\nmsgstr \"模板：\"\n\nmsgid \"Preset\"\nmsgstr \"预设\"\n\nmsgid \"Preset:\"\nmsgstr \"预设：\"\n\nmsgid \"Default\"\nmsgstr \"默认\"\n\nmsgid \"Custom\"\nmsgstr \"自定义\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"矩形选区\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"椭圆选区\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"多边形选区\"\n\nmsgid \"Select By Color\"\nmsgstr \"按颜色选择\"\n\nmsgid \"Magic Wand\"\nmsgstr \"魔棒\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"套索/自由选择工具\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"按绘图选择\"\n\nmsgid \"Move\"\nmsgstr \"移动\"\n\nmsgid \"Zoom\"\nmsgstr \"缩放\"\n\nmsgid \"Pan\"\nmsgstr \"平移\"\n\nmsgid \"Color Picker\"\nmsgstr \"拾色器\"\n\nmsgid \"Pencil\"\nmsgstr \"铅笔\"\n\nmsgid \"Eraser\"\nmsgstr \"橡皮擦\"\n\nmsgid \"Bucket\"\nmsgstr \"存储桶\"\n\nmsgid \"Shading Tool\"\nmsgstr \"阴影工具\"\n\nmsgid \"Line Tool\"\nmsgstr \"线条工具\"\n\nmsgid \"Curve Tool\"\nmsgstr \"曲线工具\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"矩形工具\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"椭圆工具\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"等距框工具\"\n\nmsgid \"Switch Colors\"\nmsgstr \"切换颜色\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"设置快捷键\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"按一个键或组合键设置快捷方式\"\n\nmsgid \"Already assigned\"\nmsgstr \"已分配\"\n\nmsgid \"Left Tool:\"\nmsgstr \"左键工具：\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"分配给鼠标左键的工具\"\n\nmsgid \"Right Tool:\"\nmsgstr \"右键工具：\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"分配给鼠标右键的工具\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"无法找到最后一个项目文件。\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"无法找到项目文件。\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"您尚未在 Pixelorama 中保存或打开任何项目！\"\n\nmsgid \"Open Last Project\"\nmsgstr \"打开最后项目\"\n\nmsgid \"Open last project...\"\nmsgstr \"打开最后一个项目...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"在启动时打开最后一个项目\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"在启动时打开最后打开的项目\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"退出确认\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"FFMPEG 路径\"\n\nmsgid \"Enable autosave\"\nmsgstr \"启用自动保存\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"自动保存间隔：\"\n\nmsgid \"minute(s)\"\nmsgstr \"分钟\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"导出 JSON 数据\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"分割图层\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"在文件名中包含帧标签\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"为每个帧标签创建新文件夹\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"创建多个文件，但每个文件都存储在与其帧标签相对应的不同文件夹中\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"分隔符:\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"分隔文件名称和帧编号的字符(秒)\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"裁剪图像\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"将导出的图像变为可见部分，考虑到非零透明通道的每个像素。\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"剪辑图像内容到选择\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"仅导出在选定区域界限内的内容。\"\n\nmsgid \"Close\"\nmsgstr \"关闭\"\n\nmsgid \"Discard All\"\nmsgstr \"放弃全部\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"上次 Pixelorama 没有正常关闭。您想恢复之前的会话吗？\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"重新加载备份\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"删除当前所选调色板\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"您确定要删除该调色板吗 (无法撤消)？\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"您无法删除更多调色板！\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"无法删除调色板，因为它不存在！\"\n\nmsgid \"and\"\nmsgstr \"和\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"移动所选帧到左侧。\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"移动所选帧到右侧。\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"帧持续时间:\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"用户数据:\"\n\nmsgid \"Duration\"\nmsgstr \"持续时间\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"在两个轴上平移\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"在 X 轴上平移\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"在 Y 轴上平移\"\n\nmsgid \"Create a new palette\"\nmsgstr \"创建一个新的调色板\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"创建新的项目调色板\"\n\nmsgid \"Comment:\"\nmsgstr \"注释：\"\n\nmsgid \"Empty\"\nmsgstr \"空的\"\n\nmsgid \"From Current Palette\"\nmsgstr \"从当前调色板\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"从当前 Sprite\"\n\nmsgid \"From Current Selection\"\nmsgstr \"从当前选择\"\n\nmsgid \"Add a new color\"\nmsgstr \"添加一个新颜色\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"删除所选颜色\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"排序调色板\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"颜色反转\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"按色相排序\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"按饱和度排序\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"按值排序\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"按亮度排序\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"按红色排序\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"按绿色排序\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"按蓝色排序\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"按 Alpha 排序\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"具有相同名称和路径的调色板已经存在！\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"调色板名称为必填项！\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"减小调色板尺寸将重置颜色的位置。不适合新调色板尺寸的颜色将丢失！\"\n\nmsgid \"Position:\"\nmsgstr \"位置：\"\n\nmsgid \"Tools\"\nmsgstr \"工具\"\n\nmsgid \"Main Canvas\"\nmsgstr \"主画布\"\n\nmsgid \"Second Canvas\"\nmsgstr \"第二个画布\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"动画时间轴\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"画布预览\"\n\nmsgid \"Color Pickers\"\nmsgstr \"拾色器\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"全局工具选项\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"左键工具选项\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"右键工具选项\"\n\nmsgid \"Reference Images\"\nmsgstr \"参考图像\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"透视编辑器\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"录制器\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"平铺\"\n\nmsgid \"Crop\"\nmsgstr \"裁剪\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"调整画布大小\"\n\nmsgid \"Margins\"\nmsgstr \"边距\"\n\nmsgid \"Position + Size\"\nmsgstr \"位置和大小\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"锁定长宽比\"\n\nmsgid \"Margins:\"\nmsgstr \"边距：\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"长宽比：\"\n\nmsgid \"Top:\"\nmsgstr \"顶部：\"\n\nmsgid \"Bottom:\"\nmsgstr \"底部：\"\n\nmsgid \"Left:\"\nmsgstr \"左侧：\"\n\nmsgid \"Right:\"\nmsgstr \"右侧：\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"锁定大小\\n\\n\"\n\"启用时使用画布上的工具将只移动裁剪矩形。\\n\\n\"\n\"当禁用使用画布上的工具时，将绘制矩形。\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"3D 形状编辑\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"正方体\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"球体\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"胶囊\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"圆柱体\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"棱柱\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"圆环体\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"平面\"\n\nmsgid \"Text\"\nmsgstr \"文本\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"平行光\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"聚光灯\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"点光\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"自定义模型\"\n\nmsgid \"Selected object:\"\nmsgstr \"已选对象\"\n\nmsgid \"Add new object\"\nmsgstr \"添加新对象\"\n\nmsgid \"Remove object\"\nmsgstr \"删除对象\"\n\nmsgid \"Camera\"\nmsgstr \"相机\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"投影：\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"透视\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"正交\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"椎体\"\n\nmsgid \"Rotation:\"\nmsgstr \"旋转\"\n\nmsgid \"Scale:\"\nmsgstr \"缩放：\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"环境\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"环境颜色：\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"环境颜色能量：\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"可见：\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"变换\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"网格\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"从左到右\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"半径：\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"字段数量：\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"圆环\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"半球：\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"上半径：\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"下半径：\"\n\nmsgid \"Text:\"\nmsgstr \"文本：\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"深度：\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"像素大小：\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"曲线步骤：\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"水平对齐\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"垂直对齐：\"\n\nmsgid \"Left\"\nmsgstr \"左\"\n\nmsgid \"Right\"\nmsgstr \"右\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"行间距：\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"能量：\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"负片：\"\n\nmsgid \"Shadow:\"\nmsgstr \"阴影：\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"范围：\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"动画属性\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"预览帧：\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"动画\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"初始值：\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"最终值：\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"简易类型：\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"缓慢开始并加速接近结束\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"快速开始并减慢到终点\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"两端最慢，中间很快\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"两端快速，中间缓慢\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"二次曲线(2次)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"立方体(3次)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"二次曲线(4次)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"二次曲线(5次)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"指数(x 次)\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"平方根\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"正弦\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"在边缘徘徊\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"结束时的反弹\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"在线束时倒退\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"跳转到结束\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"单色\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"打开图像时，可以将其导入作为参考。\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"选择下面的图像以更改其属性。\\n\"\n\"请注意，选择参考图像时无法绘图。\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"移除\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"按住 Shift 键并按下即可立即删除。\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"您确定要删除此参考图像吗？它不会从您的文件系统中删除。\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"将选中的参考图像移动到右侧\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"将选中的参考图像移动到左侧\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"在画布上选择一个参考图像\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"移动选中的参考图像\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"移动选中的参考图像\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"缩放选中的参考图像\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"无\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"重置变换\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"位置\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"缩放\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"旋转\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"筛选器\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"不透明度\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"颜色限制\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"已启用\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"图层效果\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"添加效果\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"您想从 %s 下载图像吗？\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"图块集\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"图块集：\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"图块集\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"新建图块集\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"图块集名称：\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"图块大小：\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"图块形状：\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"图块布局：\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"图块偏移轴：\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"对于所有半偏移形状（等距和六边形），确定偏移轴。\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"堆叠\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"堆叠偏移\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"楼梯右侧\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"向下楼梯\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"钻石右侧\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"钻石向下\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"仅放置模式：\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"启用“仅放置”模式是永久性操作。一旦激活，您将只能放置图块，并且无法再修改此图层上的现有图块。\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"选择一个图块并将其放置在画布上。\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"修改画布上的图块。\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"绘制图块\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"向左旋转图块（逆时针）\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"向右旋转图块（顺时针）\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"水平翻转图块\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"垂直翻转图块\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"手动\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"自动\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"堆叠\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"平铺按钮大小：\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"显示空白图块：\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"图块属性\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"可能性：\"\n\n"
  },
  {
    "path": "Translations/zh_TW.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: zh-TW\\n\"\n\"X-Crowdin-File: /master/Translations/Translations.pot\\n\"\n\"X-Crowdin-File-ID: 5\\n\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Language-Team: Chinese Traditional\\n\"\n\"Language: zh_TW\\n\"\n\"PO-Revision-Date: 2025-11-04 16:56\\n\"\n\nmsgid \"OK\"\nmsgstr \"確定\"\n\nmsgid \"Cancel\"\nmsgstr \"取消\"\n\nmsgid \"Open\"\nmsgstr \"開啟\"\n\nmsgid \"Save\"\nmsgstr \"儲存\"\n\nmsgid \"Please Confirm...\"\nmsgstr \"確認...\"\n\nmsgid \"File Name:\"\nmsgstr \"檔案名稱：\"\n\nmsgid \"Project Name:\"\nmsgstr \"專案名稱：\"\n\nmsgid \"Image Size\"\nmsgstr \"圖片大小\"\n\nmsgid \"Canvas Size\"\nmsgstr \"版面大小\"\n\nmsgid \"Frame Size\"\nmsgstr \"影格大小\"\n\nmsgid \"Size:\"\nmsgstr \"大小\"\n\nmsgid \"Width:\"\nmsgstr \"寬度：\"\n\nmsgid \"Height:\"\nmsgstr \"高度：\"\n\nmsgid \"Center\"\nmsgstr \"中心\"\n\nmsgid \"File\"\nmsgstr \"檔案\"\n\nmsgid \"Edit\"\nmsgstr \"編輯\"\n\nmsgid \"Select\"\nmsgstr \"選擇\"\n\nmsgid \"View\"\nmsgstr \"檢視\"\n\nmsgid \"Window\"\nmsgstr \"視窗\"\n\nmsgid \"Image\"\nmsgstr \"圖片\"\n\n#. Noun, refers to a Pixelorama project.\nmsgid \"Project\"\nmsgstr \"專案\"\n\nmsgid \"Effects\"\nmsgstr \"效果\"\n\nmsgid \"Help\"\nmsgstr \"幫助\"\n\nmsgid \"New\"\nmsgstr \"新增\"\n\nmsgid \"New...\"\nmsgstr \"開新檔案\"\n\nmsgid \"Open...\"\nmsgstr \"打開舊檔\"\n\nmsgid \"Save...\"\nmsgstr \"儲存\"\n\nmsgid \"Save as...\"\nmsgstr \"儲存為\"\n\n#. Checkbox found in the Save project dialog. If enabled, the final blended images are being stored also in the pxo, for each frame.\nmsgid \"Include blended images\"\nmsgstr \"\"\n\n#. Hint tooltip of the \"Include blended images\" checkbox found in the Save project dialog.\nmsgid \"If enabled, the final blended images are also being stored in the pxo, for each frame.\\n\"\n\"This makes the pxo file larger and is useful for importing by third-party software\\n\"\n\"or CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmsgstr \"\"\n\nmsgid \"Import\"\nmsgstr \"匯入\"\n\nmsgid \"Export\"\nmsgstr \"輸出\"\n\nmsgid \"Overwrite\"\nmsgstr \"覆寫\"\n\nmsgid \"Export...\"\nmsgstr \"輸出...\"\n\nmsgid \"Export as...\"\nmsgstr \"輸出為...\"\n\nmsgid \"Export PNG...\"\nmsgstr \"輸出PNG檔\"\n\nmsgid \"Export PNG as...\"\nmsgstr \"輸出PNG為...\"\n\nmsgid \"Quit\"\nmsgstr \"離開\"\n\nmsgid \"Undo\"\nmsgstr \"取消\"\n\nmsgid \"Redo\"\nmsgstr \"復原\"\n\n#. An option found under the Edit menu. Brings up a dialog which contains the undo history, allowing users to quickly jump between undo steps.\nmsgid \"Undo History\"\nmsgstr \"\"\n\n#. Refers to the initial state of the undo/redo stack, which is basically an empty canvas on a new project, or the state of a loaded project at the time it was loaded, before any changes applied to it.\nmsgid \"Initial state\"\nmsgstr \"\"\n\nmsgid \"Copy\"\nmsgstr \"複製\"\n\nmsgid \"Cut\"\nmsgstr \"剪下\"\n\nmsgid \"Paste\"\nmsgstr \"貼上\"\n\nmsgid \"Paste in Place\"\nmsgstr \"原位黏貼\"\n\n#. Found under the Edit menu. When selected, the image from the clipboard, if it exists, gets pasted into Pixelorama.\nmsgid \"Paste from Clipboard\"\nmsgstr \"從剪貼簿貼上\"\n\nmsgid \"Delete\"\nmsgstr \"刪除\"\n\nmsgid \"Delete Permanently\"\nmsgstr \"永久刪除\"\n\n#. Found when requesting to delete a palette or an extension. Refers to when you move something to recycle bin.\nmsgid \"Move to Trash\"\nmsgstr \"移到垃圾桶\"\n\nmsgid \"New Brush\"\nmsgstr \"新增筆刷\"\n\nmsgid \"Scale Image\"\nmsgstr \"調整尺寸\"\n\nmsgid \"Pixels\"\nmsgstr \"像素\"\n\nmsgid \"Percentage\"\nmsgstr \"\"\n\n#. Found in the create new image dialog. Allows users to change the color mode of the new project, such as RGBA or indexed mode.\nmsgid \"Color mode:\"\nmsgstr \"\"\n\n#. Found in the image menu. A submenu that allows users to change the color mode of the project, such as RGBA or indexed mode.\nmsgid \"Color Mode\"\nmsgstr \"\"\n\n#. Found in the image menu, under the \"Color Mode\" submenu. Refers to the indexed color mode. See this wikipedia page for more information: https://en.wikipedia.org/wiki/Indexed_color\nmsgid \"Indexed\"\nmsgstr \"\"\n\n#. Found in the image menu. Sets the size of the project to be the same as the size of the active selection.\nmsgid \"Crop to Selection\"\nmsgstr \"\"\n\n#. Found in the image menu. Automatically trims out all the transparent pixels, making the image smaller.\nmsgid \"Crop to Content\"\nmsgstr \"\"\n\nmsgid \"Resize Canvas\"\nmsgstr \"調整版面大小\"\n\nmsgid \"Offset Image\"\nmsgstr \"\"\n\nmsgid \"Offset:\"\nmsgstr \"\"\n\n#. Found in the Offset Image dialog. It's a checkbox that, if enabled, wraps around the image if pixels go out of canvas bounds.\nmsgid \"Wrap around:\"\nmsgstr \"\"\n\n#. Found in the menu that appears when you right click a frame button. Center is a verb, it is used to place the content of the frame to the center of the canvas.\nmsgid \"Center Frames\"\nmsgstr \"\"\n\nmsgid \"Rotate Image\"\nmsgstr \"旋轉圖片\"\n\nmsgid \"Pivot x:\"\nmsgstr \"\"\n\nmsgid \"Pivot y:\"\nmsgstr \"\"\n\nmsgid \"Smear options:\"\nmsgstr \"\"\n\nmsgid \"Tolerance:\"\nmsgstr \"\"\n\nmsgid \"Initial angle:\"\nmsgstr \"\"\n\n#. Found under the Select menu, It's a checkbox that, if enabled, wraps around brush strokes if some part of them goes out of selection bounds.\nmsgid \"Wrap Strokes\"\nmsgstr \"\"\n\nmsgid \"Clear\"\nmsgstr \"\"\n\nmsgid \"Invert\"\nmsgstr \"\"\n\n#. Found under the Select menu. When selected, the area of non-transparent pixels in the cel is being selected.\nmsgid \"Select cel area\"\nmsgstr \"\"\n\nmsgid \"Modify\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users expand the active selection.\nmsgid \"Expand\"\nmsgstr \"\"\n\n#. Title of a window that lets users expand the active selection.\nmsgid \"Expand Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users shrink the active selection.\nmsgid \"Shrink\"\nmsgstr \"\"\n\n#. Title of a window that lets users shrink the active selection.\nmsgid \"Shrink Selection\"\nmsgstr \"\"\n\n#. Found under the Select menu, in the Modify submenu. When selected, it shows a window that lets users create a border of the active selection.\nmsgid \"Border\"\nmsgstr \"\"\n\n#. Title of a window that lets users create a border of the active selection.\nmsgid \"Border Selection\"\nmsgstr \"\"\n\n#. Refers to a diamond-like shape.\nmsgid \"Diamond\"\nmsgstr \"\"\n\nmsgid \"Circle\"\nmsgstr \"\"\n\nmsgid \"Square\"\nmsgstr \"\"\n\nmsgid \"Grayscale View\"\nmsgstr \"\"\n\nmsgid \"Mirror Image\"\nmsgstr \"\"\n\nmsgid \"Flip Horizontal\"\nmsgstr \"水平翻轉\"\n\nmsgid \"Flip Vertical\"\nmsgstr \"垂直翻轉\"\n\nmsgid \"Preferences\"\nmsgstr \"偏好設定\"\n\n#. A submenu of the Effects menu. Contains effects that generate new pixels, such as outline, drop shadow and gradient.\nmsgid \"Procedural\"\nmsgstr \"\"\n\n#. Refers to effects that blur the image.\nmsgid \"Blur\"\nmsgstr \"模糊\"\n\n#. A submenu of the Effects menu. Contains effects that have been loaded by the user.\nmsgid \"Loaded\"\nmsgstr \"\"\n\n#. An option in the View menu. When selected, the canvas is being placed on the center of the screen.\nmsgid \"Center Canvas\"\nmsgstr \"\"\n\nmsgid \"Tile Mode\"\nmsgstr \"拼圖模式\"\n\nmsgid \"Tile Mode Offsets\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"X-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". Basis is a linear algebra term. https://en.wikipedia.org/wiki/Basis_(linear_algebra)\nmsgid \"Y-basis:\"\nmsgstr \"\"\n\n#. Found under \"Tile Mode Offsets\". It's a button that when pressed, enables masking for tile mode. Masking essentially limits drawing to the visible pixels of the image, thus preventing from drawing on transparent pixels.\nmsgid \"Masking:\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset\"\nmsgstr \"\"\n\n#. Verb, resets something.\nmsgid \"Reset %s\"\nmsgstr \"\"\n\nmsgid \"Use Current Frame\"\nmsgstr \"\"\n\nmsgid \"Reset Mask\"\nmsgstr \"\"\n\nmsgid \"Window Opacity\"\nmsgstr \"\"\n\nmsgid \"Window opacity does not work on fullscreen mode.\"\nmsgstr \"\"\n\nmsgid \"Panel Layout\"\nmsgstr \"\"\n\nmsgid \"Panels\"\nmsgstr \"\"\n\nmsgid \"Layouts\"\nmsgstr \"\"\n\nmsgid \"Moveable Panels\"\nmsgstr \"\"\n\n#. Button found in the three vertical dots menu of any panel, when Moveable Panels is enabled in the Window menu. It \"detaches\" the panel, making it a floating window.\nmsgid \"Make Floating\"\nmsgstr \"\"\n\nmsgid \"Manage Layouts\"\nmsgstr \"\"\n\n#. Noun, a preview of something\nmsgid \"Preview\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"新增\"\n\nmsgid \"Add Layout\"\nmsgstr \"\"\n\n#. Verb, deletes something.\nmsgid \"Delete %s\"\nmsgstr \"\"\n\nmsgid \"Copy from\"\nmsgstr \"複製至\"\n\nmsgid \"Rename\"\nmsgstr \"重新命名\"\n\nmsgid \"Rename Layout\"\nmsgstr \"\"\n\n#. Refers to the current layout of the user interface.\nmsgid \"Current layout\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this layout?\"\nmsgstr \"\"\n\nmsgid \"Widescreen\"\nmsgstr \"\"\n\nmsgid \"Tallscreen\"\nmsgstr \"\"\n\nmsgid \"Mirror View\"\nmsgstr \"鏡像檢視\"\n\nmsgid \"Show Grid\"\nmsgstr \"顯示格線\"\n\nmsgid \"Show Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show Rulers\"\nmsgstr \"顯示尺規\"\n\nmsgid \"Show Guides\"\nmsgstr \"顯示輔助線\"\n\n#. Found under the View menu.\nmsgid \"Show Mouse Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Show Reference Images\"\nmsgstr \"\"\n\n#. Found under the View menu. When enabled, non-destructive layer effects will be visible on the canvas.\nmsgid \"Display Layer Effects\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap To\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Boundary\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Rectangular Grid Center\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Guides\"\nmsgstr \"\"\n\n#. Found under the View menu.\nmsgid \"Snap to Perspective Guides\"\nmsgstr \"\"\n\nmsgid \"Show Animation Timeline\"\nmsgstr \"顯示動畫時間線\"\n\nmsgid \"Zen Mode\"\nmsgstr \"Zen 模式\"\n\nmsgid \"Fullscreen Mode\"\nmsgstr \"全螢幕模式\"\n\nmsgid \"Fill with color:\"\nmsgstr \"填滿\"\n\nmsgid \"Open a File\"\nmsgstr \"打開舊檔\"\n\nmsgid \"Open File(s)\"\nmsgstr \"打開舊檔\"\n\nmsgid \"Import Options\"\nmsgstr \"匯入選項\"\n\nmsgid \"Import as:\"\nmsgstr \"匯入為：\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Apply to all\"\nmsgstr \"\"\n\nmsgid \"Recent projects\"\nmsgstr \"最近使用的專案\"\n\nmsgid \"New project\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new project)\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Spritesheet (new layer)\"\nmsgstr \"\"\n\nmsgid \"New frame\"\nmsgstr \"新增影格\"\n\n#. Found in the preview image dialog, which appears when importing an image file.\nmsgid \"Replace cel\"\nmsgstr \"\"\n\nmsgid \"New layer\"\nmsgstr \"新增圖層\"\n\nmsgid \"New reference image\"\nmsgstr \"\"\n\nmsgid \"New palette\"\nmsgstr \"新增色盤\"\n\nmsgid \"New brush\"\nmsgstr \"新增畫筆\"\n\nmsgid \"New pattern\"\nmsgstr \"新增圖樣\"\n\nmsgid \"Horizontal frames:\"\nmsgstr \"水平影格：\"\n\nmsgid \"Vertical frames:\"\nmsgstr \"垂直影格：\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet. If it's enabled, the software will slice it into frames automatically.\nmsgid \"Smart Slice\"\nmsgstr \"\"\n\n#. A value that is a threshold\nmsgid \"Threshold:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Threshold\" value slider.\nmsgid \"Images that have any one side smaller than this value will cross the threshold\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Merge is an adjective, it refers to the distance where images get merged.\nmsgid \"Merge distance:\"\nmsgstr \"\"\n\n#. Found in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled. Hint tooltip of the \"Merge distance\" value slider.\nmsgid \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nmsgstr \"\"\n\n#. A button that, when pressed, refreshes something. Used to apply certain settings again after they changed. Currently it's only used in the preview image dialog, which appears when importing an image file. This option appears when the image is being imported as a spritesheet, if \"smart slice\" is enabled.\nmsgid \"Refresh\"\nmsgstr \"\"\n\nmsgid \"Start frame:\"\nmsgstr \"\"\n\nmsgid \"End frame:\"\nmsgstr \"\"\n\nmsgid \"At frame:\"\nmsgstr \"\"\n\nmsgid \"At layer:\"\nmsgstr \"\"\n\nmsgid \"Brush type:\"\nmsgstr \"畫筆類型：\"\n\nmsgid \"File brush\"\nmsgstr \"檔案畫筆\"\n\nmsgid \"Project brush\"\nmsgstr \"專案畫筆\"\n\nmsgid \"Random brush\"\nmsgstr \"隨機畫筆\"\n\nmsgid \"Save Sprite as .pxo\"\nmsgstr \"儲存圖片為 .pxo\"\n\nmsgid \"Export Sprite as .png\"\nmsgstr \"輸出圖片為 .png\"\n\nmsgid \"Export Sprite\"\nmsgstr \"輸出圖片\"\n\nmsgid \"File Exists, Overwrite?\"\nmsgstr \"檔案已存在，要覆寫嗎？\"\n\nmsgid \"The following files already exist. Do you wish to overwrite them?\\n\"\n\"%s\"\nmsgstr \"\"\n\nmsgid \"Directory path is not valid!\"\nmsgstr \"\"\n\nmsgid \"File name is not valid!\"\nmsgstr \"\"\n\nmsgid \"Directory path and file name are not valid!\"\nmsgstr \"\"\n\nmsgid \"Exporting in progress...\"\nmsgstr \"匯出中…\"\n\nmsgid \"Can't load file '%s'.\"\nmsgstr \"\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"Error code: %s\"\nmsgstr \"無法加載 '%s'. 錯誤代碼: %s\"\n\nmsgid \"Can't load file '%s'.\\n\"\n\"This is not a valid palette file.\"\nmsgstr \"\"\n\nmsgid \"Frame\"\nmsgstr \"影格\"\n\nmsgid \"Frames:\"\nmsgstr \"影格：\"\n\nmsgid \"All Frames\"\nmsgstr \"所有影格\"\n\nmsgid \"Spritesheet\"\nmsgstr \"Spritesheet\"\n\nmsgid \"Animation\"\nmsgstr \"動畫\"\n\nmsgid \"Preview:\"\nmsgstr \"預覽：\"\n\nmsgid \"Frame:\"\nmsgstr \"影格：\"\n\nmsgid \"Orientation:\"\nmsgstr \"方向:\"\n\nmsgid \"Browse\"\nmsgstr \"瀏覽\"\n\nmsgid \"Resize:\"\nmsgstr \"調整大小：\"\n\n#. Found in the export dialog, when exporting a jpeg file. Refers to the quality of the exported file.\nmsgid \"Quality:\"\nmsgstr \"\"\n\nmsgid \"Cancel Export\"\nmsgstr \"取消輸出\"\n\nmsgid \"Alert!\"\nmsgstr \"警告\"\n\nmsgid \"Select Current Folder\"\nmsgstr \"選擇當前資料夾\"\n\nmsgid \"Open a Directory\"\nmsgstr \"開啟資料夾\"\n\nmsgid \"Background:\"\nmsgstr \"背景：\"\n\n#. Found in the export dialog\nmsgid \"Selected frames\"\nmsgstr \"\"\n\nmsgid \"Layers:\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Visible layers\"\nmsgstr \"\"\n\n#. Found in the export dialog\nmsgid \"Selected layers\"\nmsgstr \"\"\n\n#. A type of layer. A pixel layer is the most common type of layer, which stores image data in pixels.\nmsgid \"Pixel layer:\"\nmsgstr \"\"\n\n#. A type of layer. A group layer stores other layers as its children, similar to how a folder holds files.\nmsgid \"Group layer:\"\nmsgstr \"\"\n\n#. A type of layer. A 3D layer contains data of 3D objects that are rasterized automatically by Pixelorama.\nmsgid \"3D layer:\"\nmsgstr \"\"\n\nmsgid \"Direction:\"\nmsgstr \"方向：\"\n\nmsgid \"Forward\"\nmsgstr \"向前\"\n\nmsgid \"Backwards\"\nmsgstr \"往回\"\n\nmsgid \"Ping-Pong\"\nmsgstr \"來回\"\n\nmsgid \"Columns\"\nmsgstr \"行\"\n\nmsgid \"Columns:\"\nmsgstr \"行：\"\n\nmsgid \"Rows\"\nmsgstr \"列\"\n\nmsgid \"Rows:\"\nmsgstr \"列：\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new column.\nmsgid \"Tags by column\"\nmsgstr \"\"\n\n#. Found in the export dialog, in the Spritesheet tab. An orientation option that splits the spritesheet by animation tags. Each tag creates a new row.\nmsgid \"Tags by row\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a label that says the dimensions (widthxheight) of the exported image(s).\nmsgid \"Export dimensions:\"\nmsgstr \"\"\n\nmsgid \"Save a File\"\nmsgstr \"\"\n\nmsgid \"Go to previous folder.\"\nmsgstr \"\"\n\nmsgid \"Go to next folder.\"\nmsgstr \"\"\n\nmsgid \"Go to parent folder.\"\nmsgstr \"\"\n\nmsgid \"Path:\"\nmsgstr \"路徑：\"\n\nmsgid \"Refresh files.\"\nmsgstr \"\"\n\nmsgid \"Toggle the visibility of hidden files.\"\nmsgstr \"\"\n\nmsgid \"Directories & Files:\"\nmsgstr \"資料夾與檔案：\"\n\nmsgid \"Create Folder\"\nmsgstr \"創建資料夾\"\n\nmsgid \"File:\"\nmsgstr \"檔案：\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches all file types.\nmsgid \"All Files\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches all file types supported by Pixelorama.\nmsgid \"All Recognized\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Pixelorama Project files only (.pxo).\nmsgid \"Pixelorama Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches PNG files only. (Note that PNG is a file type and should remain untranslated)\nmsgid \"PNG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches BMP files only. (Note that BMP is a file type and should remain untranslated)\nmsgid \"BMP Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches \"Radiance HDR\" files only. (Note that \"Radiance HDR\" is a file type and is better untranslated)\nmsgid \"Radiance HDR Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches JPEG files only. (Note that JPEG is a file type and should remain untranslated)\nmsgid \"JPEG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches SVG files only. (Note that SVG is a file type and should remain untranslated)\nmsgid \"SVG Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches TGA files only. (Note that TGA is a file type and should remain untranslated)\nmsgid \"TGA Image\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches WebP files only. (Note that WebP is a file type and should remain untranslated)\nmsgid \"WebP Image\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches OpenRaster project files only (.ora). OpenRaster should remain untranslated. https://www.openraster.org/\nmsgid \"OpenRaster Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Aseprite project files only (.ase and .aseprite). Note that Aseprite is a software and should remain untranslated.\nmsgid \"Aseprite Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Krita project files only (.kra). Note that Krita is a software and should remain untranslated.\nmsgid \"Krita Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Piskel project files only (.piskel). Note that Piskel is a software and should remain untranslated.\nmsgid \"Piskel Project\"\nmsgstr \"\"\n\n#. Found in \"Open\" and \"Save\" file dialogs. Searches Photoshop project files only (.psd). Note that Photoshop is a software and should remain untranslated.\nmsgid \"Photoshop Project\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches Pixelorama palette files only (.json).\nmsgid \"Pixelorama palette\"\nmsgstr \"\"\n\n#. Found in the \"Open\" file dialog. Searches GIMP palette files only (.gpl). Note that GIMP is a software and should remain untranslated.\nmsgid \"GIMP palette\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is a button that when pressed, shows more options.\nmsgid \"Advanced options\"\nmsgstr \"\"\n\nmsgid \"Interpolation:\"\nmsgstr \"插值：\"\n\nmsgid \"Nearest\"\nmsgstr \"點採樣\"\n\nmsgid \"Bilinear\"\nmsgstr \"雙線性插值\"\n\nmsgid \"Cubic\"\nmsgstr \"三次樣條插值\"\n\nmsgid \"Trilinear\"\nmsgstr \"三線性插值\"\n\nmsgid \"Constant\"\nmsgstr \"\"\n\n#. Refers to https://en.wikipedia.org/wiki/Color_space\nmsgid \"Color space\"\nmsgstr \"\"\n\n#. A type of color space.\nmsgid \"Linear sRGB\"\nmsgstr \"\"\n\nmsgid \"General\"\nmsgstr \"一般\"\n\nmsgid \"Startup\"\nmsgstr \"啟動\"\n\nmsgid \"Language\"\nmsgstr \"語言\"\n\nmsgid \"Interface\"\nmsgstr \"\"\n\nmsgid \"Themes\"\nmsgstr \"主題\"\n\nmsgid \"Canvas\"\nmsgstr \"畫布\"\n\n#. Refers to the animation timeline.\nmsgid \"Timeline\"\nmsgstr \"\"\n\nmsgid \"Selection\"\nmsgstr \"\"\n\nmsgid \"Shortcuts\"\nmsgstr \"快捷鍵\"\n\nmsgid \"Backup\"\nmsgstr \"備份\"\n\nmsgid \"Performance\"\nmsgstr \"\"\n\n#. Found in the preferences. Refers to device drivers, such as video drivers and tablet drivers.\nmsgid \"Drivers\"\nmsgstr \"\"\n\nmsgid \"Extensions\"\nmsgstr \"\"\n\nmsgid \"Cursors\"\nmsgstr \"\"\n\nmsgid \"Indicators\"\nmsgstr \"指標\"\n\n#. Found in the preferences. Used for options that require restart when they are changed.\nmsgid \"Pixelorama must be restarted for changes to take effect.\"\nmsgstr \"\"\n\nmsgid \"On\"\nmsgstr \"開啟\"\n\nmsgid \"Restore default value\"\nmsgstr \"還原為預設值\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Smooth Zoom\"\nmsgstr \"平滑縮放\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Smooth Zoom\".\nmsgid \"Adds a smoother transition when zooming in or out\"\nmsgstr \"滑順的放大縮小\"\n\n#. Found in the preferences, under Canvas.\nmsgid \"Integer Zoom\"\nmsgstr \"\"\n\n#. Found in the preferences, under Canvas. Hint tooltip of \"Integer Zoom\".\nmsgid \"Restricts the value to be an integer multiple of 100%\"\nmsgstr \"\"\n\nmsgid \"Tablet pressure sensitivity:\"\nmsgstr \"繪圖板壓力:\"\n\nmsgid \"None\"\nmsgstr \"無\"\n\nmsgid \"Affect Brush's Alpha\"\nmsgstr \"影響畫筆透明度\"\n\nmsgid \"Color:\"\nmsgstr \"顏色：\"\n\nmsgid \"Guide color:\"\nmsgstr \"輔助線顏色：\"\n\nmsgid \"System Language\"\nmsgstr \"系統語言\"\n\nmsgid \"Display scale:\"\nmsgstr \"\"\n\n#. Refers to the font of a text.\nmsgid \"Font:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to set the size of the font, ie the text.\nmsgid \"Font size:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. Allows users to change the orientation of the screen in mobile devices.\nmsgid \"Screen orientation:\"\nmsgstr \"\"\n\nmsgid \"Dim interface on dialog popup\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. If enabled, the notification labels appear in the canvas when performing an action, such as when undoing/redoing.\nmsgid \"Show notification labels\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\nmsgid \"Use native file dialogs\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Use native file dialogs\" option.\nmsgid \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the interface section. When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\nmsgid \"Single window mode\"\nmsgstr \"\"\n\n#. Found in the preferences, tooltip of the \"Single window mode\" option.\nmsgid \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmsgstr \"\"\n\nmsgid \"Dark\"\nmsgstr \"暗色\"\n\nmsgid \"Gray\"\nmsgstr \"灰色\"\n\nmsgid \"Blue\"\nmsgstr \"藍色\"\n\nmsgid \"Caramel\"\nmsgstr \"黃褐色\"\n\nmsgid \"Light\"\nmsgstr \"亮色\"\n\nmsgid \"Purple\"\nmsgstr \"紫色\"\n\n#. A theme. Rose refers to the color rose.\nmsgid \"Rose\"\nmsgstr \"\"\n\nmsgid \"Theme\"\nmsgstr \"主題\"\n\nmsgid \"Buttons\"\nmsgstr \"\"\n\nmsgid \"Icon color from:\"\nmsgstr \"\"\n\nmsgid \"Icon color:\"\nmsgstr \"\"\n\nmsgid \"Background\"\nmsgstr \"\"\n\nmsgid \"Background color from:\"\nmsgstr \"\"\n\nmsgid \"Background color:\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. If enabled, the right mouse button is always mapped to the same tool as the left button.\nmsgid \"Single tool mode\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Single tool mode\" preference.\nmsgid \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category.\nmsgid \"Share options between the left and the right tools\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Tools category. Tooltip of the \"Share options between the left and the right tools\" preference.\nmsgid \"If this is enabled, options will be synced between the left and the right tool.\\n\"\n\"For example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmsgstr \"\"\n\nmsgid \"Left tool color:\"\nmsgstr \"\"\n\nmsgid \"Right tool color:\"\nmsgstr \"\"\n\nmsgid \"Tool button size:\"\nmsgstr \"\"\n\nmsgid \"Small\"\nmsgstr \"小\"\n\nmsgid \"Big\"\nmsgstr \"大\"\n\nmsgid \"Only affect selection\"\nmsgstr \"只處理選取區塊\"\n\nmsgid \"Selected cels\"\nmsgstr \"\"\n\nmsgid \"Current cel\"\nmsgstr \"目前 Cel\"\n\nmsgid \"Current frame\"\nmsgstr \"目前影格\"\n\nmsgid \"All frames\"\nmsgstr \"所有影格\"\n\nmsgid \"All projects\"\nmsgstr \"所有專案\"\n\nmsgid \"Invert Colors\"\nmsgstr \"反轉色彩\"\n\nmsgid \"Modify Red Channel\"\nmsgstr \"修改紅色色版\"\n\nmsgid \"Modify Green Channel\"\nmsgstr \"修改綠色色版\"\n\nmsgid \"Modify Blue Channel\"\nmsgstr \"修改藍色色版\"\n\nmsgid \"Modify Alpha Channel\"\nmsgstr \"修改透明色版\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Desaturation\"\nmsgstr \"去飽和\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Outline\"\nmsgstr \"描邊\"\n\n#. An image effect. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Drop Shadow\"\nmsgstr \"\"\n\nmsgid \"Offset X:\"\nmsgstr \"\"\n\nmsgid \"Offset Y:\"\nmsgstr \"\"\n\nmsgid \"Shadow color:\"\nmsgstr \"\"\n\n#. An image effect. https://en.wikipedia.org/wiki/Gaussian_blur\nmsgid \"Gaussian Blur\"\nmsgstr \"\"\n\n#. The type of the Gaussian blur, an image effect.\nmsgid \"Blur type:\"\nmsgstr \"\"\n\n#. The applied amount of Gaussian blur, an image effect.\nmsgid \"Blur amount:\"\nmsgstr \"\"\n\n#. The applied radius of Gaussian blur, an image effect.\nmsgid \"Blur radius:\"\nmsgstr \"\"\n\n#. The applied direction of Gaussian blur, an image effect.\nmsgid \"Blur direction:\"\nmsgstr \"\"\n\nmsgid \"Gradient\"\nmsgstr \"顏色漸變\"\n\nmsgid \"Gradient Map\"\nmsgstr \"\"\n\nmsgid \"Interpolation\"\nmsgstr \"\"\n\n#. Verb, refers to the action of reversing something.\nmsgid \"Reverse\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, all points of a gradient are being evenly distributed across the gradient.\nmsgid \"Evenly distribute points\"\nmsgstr \"\"\n\n#. An option found in gradient edit widgets. When selected, the gradient is being split into equal parts.\nmsgid \"Divide into equal parts\"\nmsgstr \"\"\n\nmsgid \"Parts:\"\nmsgstr \"\"\n\nmsgid \"Add point at the end\"\nmsgstr \"\"\n\nmsgid \"If this is enabled, the last point gets added at the end of the gradient.\\n\"\n\"Disable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmsgstr \"\"\n\n#. A tooltip of a button found in gradient edit widgets. When the button is pressed, the gradient is saved to presets.\nmsgid \"Save to presets\"\nmsgstr \"\"\n\nmsgid \"Shape:\"\nmsgstr \"\"\n\nmsgid \"Linear\"\nmsgstr \"\"\n\nmsgid \"Radial\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat:\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. Specifies if the gradient will repeat or not.\nmsgid \"Repeat\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options.\nmsgid \"Mirror\"\nmsgstr \"\"\n\n#. Found in the Gradient dialog, under the image menu. It is one of the repeat options. If Truncate is selected, the gradient gets cut at the edges.\nmsgid \"Truncate\"\nmsgstr \"\"\n\nmsgid \"Transition size:\"\nmsgstr \"\"\n\nmsgid \"Center:\"\nmsgstr \"\"\n\nmsgid \"Dithering pattern:\"\nmsgstr \"\"\n\nmsgid \"Type:\"\nmsgstr \"類型：\"\n\nmsgid \"Angle:\"\nmsgstr \"角度：\"\n\n#. An image effect. Adjusts the hue, saturation and value of the colors of an image. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Adjust Hue/Saturation/Value\"\nmsgstr \"調整色相、飽和度、亮度\"\n\n#. HSV stands for Hue, Saturation & Value.\nmsgid \"Adjust HSV\"\nmsgstr \"調整HSV\"\n\n#. Refers to the hue of the colors of an image.\nmsgid \"Hue:\"\nmsgstr \"色相：\"\n\n#. Refers to the saturation of the colors of an image.\nmsgid \"Saturation:\"\nmsgstr \"飽和度：\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value:\"\nmsgstr \"亮度：\"\n\n#. An image effect. Adjusts the brightness and contrast of the colors of an image.\nmsgid \"Adjust Brightness/Contrast\"\nmsgstr \"\"\n\n#. Refers to the brightness of the colors of an image.\nmsgid \"Brightness:\"\nmsgstr \"\"\n\n#. Refers to the contrast of the colors of an image.\nmsgid \"Contrast:\"\nmsgstr \"\"\n\n#. Refers to the red value of the colors of an image.\nmsgid \"Red value:\"\nmsgstr \"\"\n\n#. Refers to the green value of the colors of an image.\nmsgid \"Green value:\"\nmsgstr \"\"\n\n#. Refers to the blue value of the colors of an image.\nmsgid \"Blue value:\"\nmsgstr \"\"\n\n#. Refers to a color that tints an image.\nmsgid \"Tint color:\"\nmsgstr \"\"\n\n#. Refers to the factor (how much) a color tints an image.\nmsgid \"Tint effect factor:\"\nmsgstr \"\"\n\n#. An image effect that adjusts the colors of the image by using curves.\nmsgid \"Color Curves\"\nmsgstr \"\"\n\n#. Refers to a color channel, such as the red, green, blue or alpha channels.\nmsgid \"Channel:\"\nmsgstr \"\"\n\nmsgid \"Red\"\nmsgstr \"\"\n\nmsgid \"Green\"\nmsgstr \"\"\n\n#. Refers to the value (as in HSV) of the colors of an image.\nmsgid \"Value\"\nmsgstr \"\"\n\nmsgid \"Presets\"\nmsgstr \"\"\n\nmsgid \"Apply\"\nmsgstr \"套用\"\n\nmsgid \"Diagonal\"\nmsgstr \"對角線\"\n\nmsgid \"Place inside image\"\nmsgstr \"放在圖中\"\n\nmsgid \"Thickness:\"\nmsgstr \"粗細：\"\n\nmsgid \"Colors:\"\nmsgstr \"顏色：\"\n\nmsgid \"Steps:\"\nmsgstr \"色階數：\"\n\n#. An image effect. It maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Palettize\"\nmsgstr \"\"\n\n#. An image effect. It makes the input image pixelated. See Pixelorama's documentation page for more information: https://www.oramainteractive.com/Pixelorama-Docs/user_manual/image_effects\nmsgid \"Pixelize\"\nmsgstr \"\"\n\n#. An image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize\"\nmsgstr \"\"\n\n#. An option for the posterize image effect. For more details about what it does, you can refer to GIMP's documentation https://docs.gimp.org/2.8/en/gimp-tool-posterize.html\nmsgid \"Posterize levels:\"\nmsgstr \"\"\n\n#. An option for the posterize image effect.\nmsgid \"Dither intensity:\"\nmsgstr \"\"\n\nmsgid \"View Splash Screen\"\nmsgstr \"顯示啟動畫面\"\n\nmsgid \"Online Docs\"\nmsgstr \"線上文件\"\n\nmsgid \"Issue Tracker\"\nmsgstr \"回報問題\"\n\n#. Found under the Help menu. When selected, it opens a window with a list of backups of projects opened in previous sessions.\nmsgid \"Restore Backup\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Past sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Double click to load an entire session, or a specific project.\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Sessions\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"Projects\"\nmsgstr \"\"\n\n#. Found in the Restore Backup dialog.\nmsgid \"(Current Session)\"\nmsgstr \"\"\n\n#. Found under the Help menu. When selected, it opens the folder where the application's data are being saved.\nmsgid \"Open Editor Data Folder\"\nmsgstr \"\"\n\nmsgid \"Changelog\"\nmsgstr \"更新紀錄\"\n\nmsgid \"About Pixelorama\"\nmsgstr \"關於 Pixelorama\"\n\n#. Found under the Help menu. When clicked, it opens the URL of Orama Interactive's patreon page.\nmsgid \"Support Pixelorama's Development\"\nmsgstr \"贊助支持 Pixelorama\"\n\nmsgid \"Pixelorama - Pixelate your dreams!\"\nmsgstr \"Pixelorama - 像素化你的夢想！\"\n\nmsgid \"Developed by Orama Interactive\"\nmsgstr \"由Orama Interactive開發\"\n\nmsgid \"©2019-present by Orama Interactive and contributors\"\nmsgstr \"\"\n\nmsgid \"Website\"\nmsgstr \"官網\"\n\n#. Found in the About dialog. A button that, when you click it, it opens the URL of Pixelorama's source code.\nmsgid \"Source Code\"\nmsgstr \"\"\n\nmsgid \"Donate\"\nmsgstr \"捐款\"\n\nmsgid \"Developers\"\nmsgstr \"開發人員\"\n\nmsgid \"Contributors\"\nmsgstr \"貢獻者\"\n\nmsgid \"Donors\"\nmsgstr \"捐款人\"\n\nmsgid \"Translators\"\nmsgstr \"翻譯人員\"\n\n#. Refers to software licenses. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Licenses\"\nmsgstr \"\"\n\n#. Refers to a software license. https://en.wikipedia.org/wiki/Software_license\nmsgid \"License\"\nmsgstr \"\"\n\n#. Refers to the licenses of the software that are used by the Godot Engine. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Godot Licenses\"\nmsgstr \"\"\n\n#. Refers to software licenses that are not a part of Pixelorama or Godot. https://en.wikipedia.org/wiki/Software_license\nmsgid \"Third-party Licenses\"\nmsgstr \"\"\n\nmsgid \"English\"\nmsgstr \"英文\"\n\nmsgid \"Greek\"\nmsgstr \"希臘文\"\n\nmsgid \"French\"\nmsgstr \"法文\"\n\nmsgid \"German\"\nmsgstr \"德文\"\n\nmsgid \"Polish\"\nmsgstr \"波蘭文\"\n\nmsgid \"Portuguese\"\nmsgstr \"\"\n\nmsgid \"Brazilian Portuguese\"\nmsgstr \"巴西葡萄牙文\"\n\nmsgid \"Russian\"\nmsgstr \"俄羅斯文\"\n\nmsgid \"Chinese Simplified\"\nmsgstr \"簡體中文\"\n\nmsgid \"Chinese Traditional\"\nmsgstr \"繁體中文\"\n\nmsgid \"Italian\"\nmsgstr \"義大利文\"\n\nmsgid \"Latvian\"\nmsgstr \"拉脫維亞文\"\n\nmsgid \"Spanish\"\nmsgstr \"西班牙文\"\n\nmsgid \"Catalan\"\nmsgstr \"加泰隆尼亞語\"\n\nmsgid \"Esperanto\"\nmsgstr \"世界語\"\n\nmsgid \"Indonesian\"\nmsgstr \"印尼文\"\n\nmsgid \"Czech\"\nmsgstr \"捷克文\"\n\nmsgid \"Arabic\"\nmsgstr \"阿拉伯文\"\n\nmsgid \"Turkish\"\nmsgstr \"土耳其文\"\n\nmsgid \"Norwegian Bokmål\"\nmsgstr \"\"\n\nmsgid \"Korean\"\nmsgstr \"韓文\"\n\nmsgid \"Hungarian\"\nmsgstr \"匈牙利文\"\n\nmsgid \"Romanian\"\nmsgstr \"羅馬尼亞文\"\n\nmsgid \"Japanese\"\nmsgstr \"\"\n\nmsgid \"Ukrainian\"\nmsgstr \"\"\n\nmsgid \"Danish\"\nmsgstr \"\"\n\nmsgid \"Swedish\"\nmsgstr \"\"\n\nmsgid \"Serbian (Cyrillic)\"\nmsgstr \"\"\n\nmsgid \"Dutch\"\nmsgstr \"\"\n\nmsgid \"Belarusian\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"Lead Developer\"\nmsgstr \"\"\n\n#. Found in the About dialog.\nmsgid \"UI Designer\"\nmsgstr \"UI設計師\"\n\n#. Found in the About dialog. Refers to the people who have contributed code to the project.\nmsgid \"Authors\"\nmsgstr \"\"\n\nmsgid \"Art by: %s\"\nmsgstr \"%s 繪製\"\n\nmsgid \"untitled\"\nmsgstr \"未命名\"\n\nmsgid \"imported\"\nmsgstr \"檔案已輸出\"\n\nmsgid \"copy\"\nmsgstr \"複製\"\n\nmsgid \"Are you sure you want to exit Pixelorama?\"\nmsgstr \"確定要離開Pixelorama嗎?\"\n\nmsgid \"Unsaved Image\"\nmsgstr \"圖片還沒儲存\"\n\nmsgid \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\nmsgstr \"你有未儲存的改變，確定要離開嗎?\"\n\nmsgid \"Save before exiting?\"\nmsgstr \"要先儲存再離開嗎?\"\n\nmsgid \"Project %s has unsaved progress. How do you wish to proceed?\"\nmsgstr \"「%s」有未儲存的進度，要如何處置？\"\n\nmsgid \"Save & Exit\"\nmsgstr \"儲存並離開\"\n\nmsgid \"Exit without saving\"\nmsgstr \"離開但不儲存\"\n\nmsgid \"Rectangular Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Elliptical Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Double-click to connect the last point to the starting point\"\nmsgstr \"\"\n\nmsgid \"Select By Color\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Lasso / Free Select Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Move\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Zoom\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"縮放\\n\\n\"\n\"%s換成左鍵\\n\"\n\"%s換成右鍵\"\n\nmsgid \"Pan\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Color Picker\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Select a color from a pixel of the sprite\"\nmsgstr \"\"\n\nmsgid \"Crop\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Pencil\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"鉛筆\\n\\n\"\n\"%s換成左鍵\\n\"\n\"%s換成右鍵\\n\\n\"\n\"按住%s畫直線\"\n\nmsgid \"Eraser\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to make a line\"\nmsgstr \"橡皮擦\\n\\n\"\n\"%s換成左鍵\\n\"\n\"%s換成右鍵\\n\\n\"\n\"按住%s畫直線\"\n\nmsgid \"Bucket\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"油漆桶\\n\\n\"\n\"%s換成左鍵\\n\"\n\"%s換成右鍵\"\n\nmsgid \"Shading Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Line Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to snap the angle of the line\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Curve Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws bezier curves\\n\"\n\"Press %s/%s to add new points\\n\"\n\"Double-click to finish drawing the curve\\n\"\n\"Press and drag to control the curvature\\n\"\n\"Press %s to remove the last added point\"\nmsgstr \"\"\n\nmsgid \"Rectangle Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Ellipse Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Hold %s to create a 1:1 shape\\n\"\n\"Hold %s to center the shape on the click origin\\n\"\n\"Hold %s to displace the shape's origin\"\nmsgstr \"\"\n\nmsgid \"Isometric Box Tool\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\\n\\n\"\n\"Draws an isometric box\\n\"\n\"Press %s/%s to add a basis point\\n\"\n\"Hold %s to snap the angle of the basis point\\n\"\n\"Hold %s to displace the shape's origin\\n\"\n\"Press %s to edit the last added basis\"\nmsgstr \"\"\n\nmsgid \"Text\\n\\n\"\n\"%s for left mouse button\\n\"\n\"%s for right mouse button\"\nmsgstr \"\"\n\nmsgid \"Rectangle\"\nmsgstr \"\"\n\nmsgid \"Ellipse\"\nmsgstr \"\"\n\nmsgid \"Choose a color for the left tool\"\nmsgstr \"選擇左鍵工具顏色\"\n\nmsgid \"Choose a color for the right tool\"\nmsgstr \"選擇右鍵工具顏色\"\n\n#. Tooltip of the switch colors button found in the color picker panel.\nmsgid \"Switch left and right colors.\"\nmsgstr \"\"\n\n#. Tooltip of the average color button, found in the color picker panel. Shows the average color between the two selected.\nmsgid \"Average Color:\"\nmsgstr \"\"\n\nmsgid \"Reset the colors to their default state (black for left, white for right)\"\nmsgstr \"顏色改回初始值(左黑色, 右白色)\"\n\n#. Tooltip of the screen color picker button found in the color picker panel.\nmsgid \"Pick a color from the application window.\"\nmsgstr \"\"\n\n#. Tooltip of the color text field found in the color picker panel that lets users change the color by hex code or english name (\"red\" cannot be translated).\nmsgid \"Enter a hex code (\\\"#ff0000\\\") or named color (\\\"red\\\").\"\nmsgstr \"\"\n\n#. Tooltip of the button found in the color picker panel that lets users change the shape of the color picker.\nmsgid \"Select a picker shape.\"\nmsgstr \"\"\n\n#. Refers to color-related options such as sliders that set color channel values like R, G, B and A.\nmsgid \"Color options\"\nmsgstr \"顏色選項\"\n\n#. Tooltip of the button with three dots found under color options in the color picker panel that lets users change the mode of the color picker/sliders.\nmsgid \"Select a picker mode.\"\nmsgstr \"\"\n\n#. Checkbox found in the menu of the button with three dots found under color options in the color picker panel.\nmsgid \"Colorized Sliders\"\nmsgstr \"\"\n\n#. Shows saved colors in certain color picker menus.\nmsgid \"Swatches\"\nmsgstr \"\"\n\n#. Found under color options in the color picker panel.\nmsgid \"Recent Colors\"\nmsgstr \"最近使用的顏色\"\n\nmsgid \"Left tool\"\nmsgstr \"左鍵工具\"\n\nmsgid \"Right tool\"\nmsgstr \"右鍵工具\"\n\nmsgid \"Left pixel indicator\"\nmsgstr \"左鍵工具準心\"\n\nmsgid \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"在畫布上顯示左鍵工具\"\n\nmsgid \"Right pixel indicator\"\nmsgstr \"右鍵工具準心\"\n\nmsgid \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmsgstr \"在畫布上顯示右鍵工具\"\n\nmsgid \"Show left tool icon\"\nmsgstr \"顯示左鍵工具圖標\"\n\nmsgid \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmsgstr \"在鼠標旁顯示左鍵工具圖標\"\n\nmsgid \"Show right tool icon\"\nmsgstr \"顯示右鍵工具圖標\"\n\nmsgid \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmsgstr \"在鼠標旁顯示右鍵工具圖標\"\n\nmsgid \"Use native mouse cursors\"\nmsgstr \"\"\n\nmsgid \"Use cross cursor for the canvas\"\nmsgstr \"\"\n\nmsgid \"Guides\"\nmsgstr \"輔助線\"\n\nmsgid \"Guides color:\"\nmsgstr \"輔助線顏色：\"\n\nmsgid \"A color of ruler guides displayed on the canvas\"\nmsgstr \"尺標輔助線的顏色\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping.\nmsgid \"Snapping distance:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to grid and guide snapping. Hint tooltip of the snapping distance slider.\nmsgid \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmsgstr \"\"\n\nmsgid \"Grid\"\nmsgstr \"格線\"\n\nmsgid \"Grid type:\"\nmsgstr \"格線類型：\"\n\nmsgid \"Sets the type of the grid between rectangular, isometric or both\"\nmsgstr \"設定格線類型為矩形, 等角立體或全部\"\n\nmsgid \"Rectangular\"\nmsgstr \"矩形\"\n\nmsgid \"Isometric\"\nmsgstr \"等角立體\"\n\n#. Refers to a hexagonal type of grid.\nmsgid \"Hexagonal\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with pointy-top orientation.\nmsgid \"Hexagonal (pointy-top)\"\nmsgstr \"\"\n\n#. Refers to a hexagonal type of grid, with flat-top orientation.\nmsgid \"Hexagonal (flat-top)\"\nmsgstr \"\"\n\nmsgid \"All\"\nmsgstr \"全部\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the number of visible grids.\nmsgid \"Grids visible:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Refers to the grid that is being edited.\nmsgid \"Editing grid:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid size:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category.\nmsgid \"Grid offset:\"\nmsgstr \"\"\n\n#. Found in the Preferences, in the Canvas category. Hint tooltip of the grid offset value sliders.\nmsgid \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmsgstr \"\"\n\nmsgid \"Draw over Tile Mode:\"\nmsgstr \"\"\n\nmsgid \"If disabled, the grid will be drawn only over the original image\"\nmsgstr \"\"\n\nmsgid \"Grid color:\"\nmsgstr \"格線顏色：\"\n\nmsgid \"A color of the grid\"\nmsgstr \"格線顏色\"\n\nmsgid \"Pixel Grid\"\nmsgstr \"\"\n\nmsgid \"Show at zoom:\"\nmsgstr \"\"\n\nmsgid \"Sets the minimal zoom at which pixel grid will be shown\"\nmsgstr \"\"\n\nmsgid \"Pixel grid color:\"\nmsgstr \"\"\n\nmsgid \"A color of the pixel grid\"\nmsgstr \"\"\n\nmsgid \"Transparency\"\nmsgstr \"透明\"\n\nmsgid \"Checker size:\"\nmsgstr \"空白格大小：\"\n\nmsgid \"Size of the transparent checker background\"\nmsgstr \"空白背景格的大小\"\n\nmsgid \"Checker color 1:\"\nmsgstr \"空白格顏色1：\"\n\nmsgid \"First color of the transparent checker background\"\nmsgstr \"空白背景格的顏色1\"\n\nmsgid \"Checker color 2:\"\nmsgstr \"空白格顏色2：\"\n\nmsgid \"Second color of the transparent checker background\"\nmsgstr \"空白背景格的顏色2\"\n\nmsgid \"Follow Canvas Movement\"\nmsgstr \"跟隨畫布移動\"\n\nmsgid \"The transparent checker follow the movement of canvas\"\nmsgstr \"空白背景格跟隨畫布移動\"\n\nmsgid \"Follow Canvas Zoom Level\"\nmsgstr \"跟隨畫布放大縮小\"\n\nmsgid \"The transparent checker follow the zoom level of canvas\"\nmsgstr \"空白背景格跟隨畫布放大縮小\"\n\n#. Found in the Preferences, under Timeline. If this is enabled, clicking on the layer buttons (such as lock, invisible etc) will automatically select that layer.\nmsgid \"Select layer when clicking on one of its buttons:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning past color:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Timeline. Changes the color of the past (previous) frames in onion skinning, if color mode is enabled.\nmsgid \"Onion skinning future color:\"\nmsgstr \"\"\n\nmsgid \"Animated selection borders\"\nmsgstr \"\"\n\nmsgid \"Border color 1:\"\nmsgstr \"\"\n\nmsgid \"Border color 2:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Selection category. Changes the transparency (alpha value) of the current active transformation preview.\nmsgid \"Transformation preview alpha:\"\nmsgstr \"\"\n\nmsgid \"Only custom preset can be modified\"\nmsgstr \"只能修改自訂配置\"\n\nmsgid \"Set application FPS limit:\"\nmsgstr \"\"\n\nmsgid \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under the Performance section. Changes the value of the maximum undo steps projects can use.\nmsgid \"Max undo steps:\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Pause application when it loses focus\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Pause application when it loses focus\" option.\nmsgid \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. Refers to the screen being updated (redrawn) continuously.\nmsgid \"Update continuously\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Update continuously\" option.\nmsgid \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section.\nmsgid \"Enable window transparency\"\nmsgstr \"\"\n\n#. Found in the preferences, hint of the \"Enable window transparency\" option.\nmsgid \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmsgstr \"\"\n\n#. An option found in the preferences, under the Performance section. A dummy driver is basically a driver that doesn't do anything. When this option is enabled, audio does not play, but it can help save some performance.\nmsgid \"Use dummy audio driver\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the renderer/video driver being used.\nmsgid \"Renderer:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the renderer option.\nmsgid \"Specifies the renderer/video driver being used. GLES2 is better for older and low-end devices, but GLES3 may offer more features.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Specifies the tablet driver being used on Windows.\nmsgid \"Tablet driver:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Drivers. Hint tooltip of the tablet driver option.\nmsgid \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions.\nmsgid \"Add Extension\"\nmsgstr \"\"\n\nmsgid \"Enable\"\nmsgstr \"\"\n\nmsgid \"Disable\"\nmsgstr \"\"\n\nmsgid \"Uninstall\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. It is a button that, when clicked, opens up the extension explorer which allows users to download extensions from the Internet.\n#: src/Preferences/PreferencesDialog.tscn\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Explore Online\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Title of the tab that shows the extension explorer, where you can download extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Extension Explorer\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Text field to search for extensions.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Search...\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Refers to the tags used to filter extensions in the explorer.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Tags:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Report issue with an extension\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Button to download an extension.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Download\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. It's the section where you can add links to more extension repositories.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Repository links:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Fetching data from remote repository.\\n\"\n\"Please wait.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux, so this word should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\\n\\n\"\n\"- Make sure you are connected to the internet.\\n\"\n\"- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup. Flatpak is a utility for software deployment and package management for Linux and Flatseal is an application that manages permissions for Flatpak apps, so these words should not be translated.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup.\n#: src/UI/ExtensionExplorer/ExtensionExplorer.tscn\nmsgid \"Unable to get info from remote repository.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions, in the \"Explore Online\" popup, under Options. Placeholder text for adding a link to an extensions repository. \"Will be automatically removed\" refers to the text field itself, if no link is entered.\nmsgid \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to enable an extension.\nmsgid \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\nmsgstr \"\"\n\n#. Found in the Preferences, under Extensions. This is the text of a confirmation dialog that appears when the user attempts to delete an extension.\nmsgid \"Are you sure you want to delete this extension?\"\nmsgstr \"\"\n\n#. Hint tooltip of a button in the Global Tool Settings. \"Dynamics\" let users affect certain brush parameters, such as their size and alpha, based on the pressure of the tablet pen, the velocity of the mouse or the pen, and more in the future.\nmsgid \"Dynamics\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. A stabilizer is a feature that, when enabled, helps artists create smooth lines as they draw.\nmsgid \"Stabilizer\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Pressure refers to tablet pen pressure.\nmsgid \"Pressure\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Velocity refers to mouse or tablet pen velocity, meaning how fast it moves.\nmsgid \"Velocity\"\nmsgstr \"\"\n\n#. Refers to the alpha channel of the colors, in the RGBA color model. The alpha channel is responsible for the transparency of the color.\nmsgid \"Alpha\"\nmsgstr \"\"\n\n#. Refers to the size of a value, for example the size of a brush.\nmsgid \"Size\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the limits of the brush property values, such as the minimum and maximum values of alpha and size.\nmsgid \"Value limits\"\nmsgstr \"\"\n\n#. Found in the Dynamics options menu. Sets the thresholds of the dynamic properties, such as the minimum and maximum values of pressure and velocity.\nmsgid \"Thresholds\"\nmsgstr \"\"\n\n#. Noun, the start of something.\nmsgid \"Start\"\nmsgstr \"\"\n\n#. Noun, the end of something.\nmsgid \"End\"\nmsgstr \"\"\n\nmsgid \"Brush:\"\nmsgstr \"畫筆：\"\n\nmsgid \"Select a brush\"\nmsgstr \"選擇畫筆\"\n\n#. Found when selecting a brush. It's a section that shows the default Pixelorama brushes.\nmsgid \"Default Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Pixel brush\"\nmsgstr \"像素畫筆\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Circle brush\"\nmsgstr \"圓形畫筆\"\n\n#. Found when selecting a brush. One of the default brushes that come with Pixelorama.\nmsgid \"Filled circle brush\"\nmsgstr \"填滿圓形畫筆\"\n\n#. Found when selecting a brush. It's a section that shows brushes the user has imported for the current project specifically.\nmsgid \"Project Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows a few brushes that come with Pixelorama and brushes the user has imported from files (not project-specific).\nmsgid \"File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the file brushes that come with Pixelorama.\nmsgid \"Snow\"\nmsgstr \"\"\n\n#. Found when selecting a brush. It's a section that shows file brushes that are randomized.\nmsgid \"Random File Brushes\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Grass\"\nmsgstr \"\"\n\n#. Found when selecting a brush. One of the random brushes that come with Pixelorama.\nmsgid \"Star\"\nmsgstr \"\"\n\nmsgid \"Custom brush\"\nmsgstr \"自訂畫筆\"\n\nmsgid \"Brush size:\"\nmsgstr \"畫筆大小：\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. It's a dropdown that shows rotation options for the brush.\nmsgid \"Rotation options\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to flip the brush in the X or Y axis.\nmsgid \"Flip:\"\nmsgstr \"\"\n\n#. Found under \"Rotation options\" in the pencil tool options, when you select a brush that isn't a default brush. Property to rotate the brush.\nmsgid \"Rotate:\"\nmsgstr \"\"\n\nmsgid \"Overwrite color\"\nmsgstr \"覆寫顏色\"\n\nmsgid \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmsgstr \"覆寫顏色而不是混合顏色，此選項只適用於半透明的顏色\"\n\nmsgid \"Pixel Perfect\"\nmsgstr \"完美像素\"\n\nmsgid \"Pixel Perfect\\n\"\n\"Makes lines smooth by removing the extra pixels on the edges\"\nmsgstr \"\"\n\n#. A button found in the global tool options. When enabled, the alpha value of the pixels being drawn is locked, meaning that the user can only draw on non-transparent pixels.\nmsgid \"Lock alpha\"\nmsgstr \"\"\n\nmsgid \"Fill inside\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool, and refers to the spacing between brush strokes.\nmsgid \"Spacing\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the horizontal gap between brush strokes.\nmsgid \"Gap X:\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil tool if \"Spacing\" is enabled, and refers to the vertical gap between brush strokes.\nmsgid \"Gap Y:\"\nmsgstr \"\"\n\nmsgid \"Fill Shape\"\nmsgstr \"\"\n\nmsgid \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmsgstr \"\"\n\n#. Found in the tool options of the Pencil, Eraser and Shading tools. It is a percentage of how dense the brush is. 100% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.\nmsgid \"Density:\"\nmsgstr \"像素隨機填入比例：\"\n\n#. Found in the pencil tool options, when you select a brush that isn't a default brush. Property to change the strength of the selected color in the selected brush (0: Color from the brush itself, 100: the currently selected color).\nmsgid \"Brush color from:\"\nmsgstr \"\"\n\nmsgid \"0: Color from the brush itself, 100: the currently selected color\"\nmsgstr \"0: 畫筆自己的顏色, 100: 目前選定的顏色\"\n\n#. Found in the bucket tool options.\nmsgid \"Fill area:\"\nmsgstr \"填滿區域：\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar area\"\nmsgstr \"相連區域\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Similar colors\"\nmsgstr \"相似顏色\"\n\n#. Found in the bucket tool options, one of the fill area options.\nmsgid \"Whole selection\"\nmsgstr \"全部已選取區域\"\n\n#. A checkbox found in the bucket tool options. When enabled, the bucket tool will treat all visible layers as if they were merged into a single image when determining what area to fill.\nmsgid \"Fill regions from the merging of all layers\"\nmsgstr \"\"\n\nmsgid \"Fill with:\"\nmsgstr \"填滿：\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Selected color\"\nmsgstr \"\"\n\n#. Found in the bucket tool options, one of the fill with options.\nmsgid \"Pattern\"\nmsgstr \"圖樣\"\n\nmsgid \"Offset\"\nmsgstr \"偏移\"\n\nmsgid \"Simple Shading\"\nmsgstr \"亮度\"\n\nmsgid \"Hue Shifting\"\nmsgstr \"\"\n\nmsgid \"Lighten\"\nmsgstr \"變亮\"\n\nmsgid \"Darken\"\nmsgstr \"變暗\"\n\nmsgid \"Amount:\"\nmsgstr \"程度：\"\n\nmsgid \"Lighten/Darken amount\"\nmsgstr \"變亮或變暗的程度\"\n\n#. Found in the shading tool options. Mode to apply shading by replacing drawing's colors with the colors that are next to them in the selected palette.\nmsgid \"Color Replace\"\nmsgstr \"\"\n\nmsgid \"Please select a color from the palette.\"\nmsgstr \"\"\n\n#. Found in the shading tool options, in \"Color Replace\" mode. Parameter that specifies how many colors to the right of the selected color in the palette should be included for the shading.\nmsgid \"Colors right:\"\nmsgstr \"\"\n\nmsgid \"Pick for:\"\nmsgstr \"挑選：\"\n\nmsgid \"Left Color\"\nmsgstr \"左鍵工具顏色\"\n\nmsgid \"Right Color\"\nmsgstr \"右鍵工具顏色\"\n\n#. Found in the color picker tool options. Specifies what mode should be used for picking a color.\nmsgid \"Pick mode:\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the top color from the canvas in the selected pixel.\nmsgid \"Top Color\"\nmsgstr \"\"\n\n#. Found in the color picker tool options, as a pick mode. Picks the color from the currently selected layer in the selected pixel.\nmsgid \"Current Layer\"\nmsgstr \"\"\n\nmsgid \"Mode:\"\nmsgstr \"模式：\"\n\nmsgid \"Zoom in\"\nmsgstr \"放大\"\n\nmsgid \"Zoom out\"\nmsgstr \"縮小\"\n\n#. Refers to a mode of the curve tool. Single mode mimics the Aseprite curve tool behavior.\nmsgid \"Single\"\nmsgstr \"\"\n\n#. Refers to a mode of the curve tool. Chained mode mimics the Krita curve tool behavior.\nmsgid \"Chained\"\nmsgstr \"\"\n\n#. Tooltip of the curve tool's \"mode\" option button.\nmsgid \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\\n\"\n\"Single: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmsgstr \"\"\n\nmsgid \"Options\"\nmsgstr \"\"\n\nmsgid \"Options:\"\nmsgstr \"選項：\"\n\nmsgid \"Fit to frame\"\nmsgstr \"放大到畫面大小\"\n\nmsgid \"100% Zoom\"\nmsgstr \"100% 縮放\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Replace selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Add to selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Subtract from selection\"\nmsgstr \"\"\n\n#. One of the modes of a selection tool. Found in the tool options, when a selection tool is active.\nmsgid \"Intersection of selections\"\nmsgstr \"\"\n\n#. Refers to the style of something, such as the style of a text, meaning whether it's regular, bold, italic, etc.\nmsgid \"Style:\"\nmsgstr \"\"\n\n#. Refers to the text. Regular means that the text is not bold or italic.\nmsgid \"Regular\"\nmsgstr \"\"\n\n#. Refers to text that is bold.\nmsgid \"Bold\"\nmsgstr \"\"\n\n#. Refers to text that is italic.\nmsgid \"Italic\"\nmsgstr \"\"\n\n#. Refers to text that is bold and italic.\nmsgid \"Bold Italic\"\nmsgstr \"\"\n\n#. https://en.wikipedia.org/wiki/Anti-aliasing\nmsgid \"Antialiasing\"\nmsgstr \"\"\n\nmsgid \"Grayscale\"\nmsgstr \"\"\n\n#. Refers to the color of a shape's edge.\nmsgid \"Edge Color\"\nmsgstr \"\"\n\n#. Refers to the color of a tool.\nmsgid \"Tool color\"\nmsgstr \"\"\n\nmsgid \"Adjusted average\"\nmsgstr \"\"\n\nmsgid \"Blend at interface\"\nmsgstr \"\"\n\n#. Refers to the left face of a box shape.\nmsgid \"Left Face\"\nmsgstr \"\"\n\n#. Refers to the right face of a box shape.\nmsgid \"Right Face\"\nmsgstr \"\"\n\nmsgid \"Mirroring\"\nmsgstr \"鏡像\"\n\nmsgid \"Horizontal\"\nmsgstr \"水平\"\n\n#. Found in the global tool options, tooltip of the horizontal mirror button.\nmsgid \"Enable horizontal mirrored drawing\"\nmsgstr \"開啟水平鏡像\"\n\nmsgid \"Vertical\"\nmsgstr \"垂直\"\n\n#. Found in the global tool options, tooltip of the vertical mirror button.\nmsgid \"Enable vertical mirrored drawing\"\nmsgstr \"開啟垂直鏡像\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↗) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, tooltip of one of the diagonal mirror buttons.\nmsgid \"Enable diagonal (↘) mirrored drawing\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to canvas center\"\nmsgstr \"\"\n\n#. Found in the global tool options, in the menu that appears next to each mirror button. It affects the position of a symmetry guide.\nmsgid \"Move to view center\"\nmsgstr \"\"\n\nmsgid \"Current frame:\"\nmsgstr \"目前影格：\"\n\nmsgid \"Animation mode:\"\nmsgstr \"\"\n\nmsgid \"Current frame as spritesheet\"\nmsgstr \"\"\n\nmsgid \"Jump to the first frame\"\nmsgstr \"\"\n\nmsgid \"Go to the previous frame\"\nmsgstr \"\"\n\nmsgid \"Play the animation backwards\"\nmsgstr \"\"\n\nmsgid \"Play the animation forward\"\nmsgstr \"\"\n\nmsgid \"Go to the next frame\"\nmsgstr \"\"\n\nmsgid \"Jump to the last frame\"\nmsgstr \"\"\n\nmsgid \"Timeline settings\"\nmsgstr \"\"\n\nmsgid \"Enable/disable Onion Skinning\"\nmsgstr \"開關 Onion Skinning\"\n\nmsgid \"How many frames per second should the animation preview be?\\n\"\n\"The more FPS, the faster the animation plays.\"\nmsgstr \"動畫預覽每秒要多少張?\\n\"\n\"FPS越高, 動畫播得越快\"\n\nmsgid \"No loop\"\nmsgstr \"不重複\"\n\nmsgid \"Cycle loop\"\nmsgstr \"循環重複\"\n\nmsgid \"Ping-pong loop\"\nmsgstr \"來回重複\"\n\nmsgid \"Onion Skinning:\"\nmsgstr \"Onion Skinning：\"\n\nmsgid \"Past Frames\"\nmsgstr \"過去畫面\"\n\nmsgid \"Future Frames\"\nmsgstr \"未來畫面\"\n\nmsgid \"Manage frame tags\"\nmsgstr \"管理影格標籤\"\n\nmsgid \"Frame Tag Properties\"\nmsgstr \"影格標籤屬性\"\n\nmsgid \"Add a new frame tag\"\nmsgstr \"新增影格標籤\"\n\nmsgid \"Name:\"\nmsgstr \"名稱：\"\n\nmsgid \"From:\"\nmsgstr \"從：\"\n\nmsgid \"To:\"\nmsgstr \"到：\"\n\nmsgid \"Animation plays only on frames of the same tag\"\nmsgstr \"動畫只播放相同標籤的影格\"\n\nmsgid \"Tag %s (Frame %s)\"\nmsgstr \"標籤 %s (影格 %s)\"\n\nmsgid \"Tag %s (Frames %s-%s)\"\nmsgstr \"標籤 %s (影格 %s-%s)\"\n\nmsgid \"If it's selected, the animation plays only on the frames that have the same tag.\\n\"\n\"If it's not, the animation will play for all frames, ignoring tags.\"\nmsgstr \"如選定, 動畫只播放相同標籤的影格, 否則會播放所有影格.\"\n\n#. Found in the timeline, inside the timeline settings. It's a slider that sets the size of the cel buttons in the timeline.\nmsgid \"Cel size:\"\nmsgstr \"\"\n\n#. Found in the timeline, inside the timeline settings. If this is enabled, the past and future frames will have appear tinted.\nmsgid \"Color mode\"\nmsgstr \"\"\n\nmsgid \"Show past frames:\"\nmsgstr \"\"\n\nmsgid \"Show future frames:\"\nmsgstr \"\"\n\nmsgid \"Above canvas\"\nmsgstr \"\"\n\nmsgid \"Below canvas\"\nmsgstr \"\"\n\nmsgid \"If you want a layer to ignore onion skinning simply add the \\\"_io\\\" suffix in its name.\"\nmsgstr \"\"\n\nmsgid \"Add a new frame\"\nmsgstr \"新增影格\"\n\nmsgid \"Remove Frame\"\nmsgstr \"刪除影格\"\n\nmsgid \"Clone Frame\"\nmsgstr \"複製影格\"\n\nmsgid \"Move Left\"\nmsgstr \"左移\"\n\nmsgid \"Move Right\"\nmsgstr \"右移\"\n\nmsgid \"Add Frame Tag\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all non-transparent pixels of that cel get selected.\nmsgid \"Select pixels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get linked together.\nmsgid \"Link cels to\"\nmsgstr \"\"\n\n#. An option found in the right click menu of a cel. If selected, all selected cels get unlinked.\nmsgid \"Unlink cels\"\nmsgstr \"\"\n\n#. An option found in the right click menu of an audio cel. If selected, the audio of the audio layer will start playing from this frame.\nmsgid \"Play audio here\"\nmsgstr \"\"\n\nmsgid \"Properties\"\nmsgstr \"\"\n\nmsgid \"Project Properties\"\nmsgstr \"\"\n\nmsgid \"Frame properties\"\nmsgstr \"影格屬性\"\n\nmsgid \"Layer properties\"\nmsgstr \"\"\n\nmsgid \"Cel properties\"\nmsgstr \"\"\n\nmsgid \"Tag properties\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, a new frame tag is added.\nmsgid \"New Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, it allows users to paste/import tags from other opened projects.\nmsgid \"Import Tag\"\nmsgstr \"\"\n\n#. Found on the popup menu that appears when a user right-clicks on a frame button. When clicked, the order of the selected frames is being reversed.\nmsgid \"Reverse Frames\"\nmsgstr \"\"\n\nmsgid \"Layer\"\nmsgstr \"圖層\"\n\nmsgid \"Group\"\nmsgstr \"\"\n\n#. A tilemap is a type of layer, which is divided by grid cells, the size of which is determined by the tileset it uses. Each grid cell is mapped to a tile in the tileset. Tilemaps can be used to create game levels and layouts.\nmsgid \"Tilemap\"\nmsgstr \"\"\n\nmsgid \"Audio\"\nmsgstr \"\"\n\nmsgid \"Layers\"\nmsgstr \"圖層\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When enabled, the layer becomes a clipping mask.\nmsgid \"Clipping mask\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected layers are being flattened into a single layer.\nmsgid \"Flatten\"\nmsgstr \"\"\n\n#. Found in the layer menu which appears when right clicking on a layer button in the timeline. When clicked, the selected visible layers are being flattened into a single layer.\nmsgid \"Flatten visible\"\nmsgstr \"\"\n\n#. Hint tooltip of the create new layer button, found on the left side of the timeline.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Create a new layer\"\nmsgstr \"新增圖層\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Pixel Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Group Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add 3D Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Tilemap Layer\"\nmsgstr \"\"\n\n#. One of the options of the create new layer button.\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Add Audio Layer\"\nmsgstr \"\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Remove current layer\"\nmsgstr \"刪除此圖層\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move up the current layer\"\nmsgstr \"上移此圖層\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Move down the current layer\"\nmsgstr \"下移此圖層\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Clone current layer\"\nmsgstr \"複製此圖層\"\n\n#: src/UI/Timeline/AnimationTimeline.tscn\nmsgid \"Merge current layer with the one below\"\nmsgstr \"合併此圖層與下面的圖層\"\n\n#. Found in the layer's section of the timeline. Refers to layer blend modes, for more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Blend mode:\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option, only available for group layers. If enabled, group blending is disabled and the group simply acts as a way to organize layers instead of affecting blending.\nmsgid \"Pass through\"\nmsgstr \"\"\n\n#. Adjective, refers to something usual/regular, such as the normal blend mode.\nmsgid \"Normal\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. Uses the opacity of pixels in this layer to erase pixels from the layers under it.\nmsgid \"Erase\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Multiply\"\nmsgstr \"\"\n\n# .Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Linear burn\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Screen\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color dodge\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Contrast\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Overlay\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Soft light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hard light\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Inversion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Difference\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Exclusion\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Subtract\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Divide\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a category of blend modes. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Component\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Hue\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Saturation\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Color\"\nmsgstr \"\"\n\n#. Found in the layer's section of the timeline, as a blend mode option. For more info refer to: https://en.wikipedia.org/wiki/Blend_modes\nmsgid \"Luminosity\"\nmsgstr \"\"\n\nmsgid \"Opacity:\"\nmsgstr \"透明度：\"\n\nmsgid \"Tile mode opacity:\"\nmsgstr \"\"\n\nmsgid \"Toggle layer's visibility\"\nmsgstr \"開關圖層可視\"\n\nmsgid \"Lock/unlock layer\"\nmsgstr \"鎖住/解鎖圖層\"\n\nmsgid \"Frame: %s, Layer: %s\"\nmsgstr \"影格：%s，圖層：%s\"\n\nmsgid \"Enable/disable automatic linking of new cels when creating new frames\\n\\n\"\n\"Linked cels share content across multiple frames\"\nmsgstr \"\"\n\nmsgid \"Expand/collapse group\"\nmsgstr \"\"\n\n#. Refers to the audio file of an audio layer.\nmsgid \"Audio file:\"\nmsgstr \"\"\n\nmsgid \"Load file\"\nmsgstr \"\"\n\n#. An option in the audio layer properties, allows users to play the audio starting from a specific frame.\nmsgid \"Play at frame:\"\nmsgstr \"\"\n\nmsgid \"Palette\"\nmsgstr \"色盤\"\n\nmsgid \"Palettes\"\nmsgstr \"色盤\"\n\nmsgid \"Add a new palette\"\nmsgstr \"新增色盤\"\n\nmsgid \"Edit currently selected palette\"\nmsgstr \"編輯目前色盤\"\n\nmsgid \"Choose a palette\"\nmsgstr \"選擇色盤\"\n\nmsgid \"Undo: Draw\"\nmsgstr \"取消 繪畫\"\n\nmsgid \"Redo: Draw\"\nmsgstr \"復原 繪畫\"\n\nmsgid \"Undo: Select\"\nmsgstr \"\"\n\nmsgid \"Redo: Select\"\nmsgstr \"\"\n\nmsgid \"Undo: Scale\"\nmsgstr \"取消 尺寸調整\"\n\nmsgid \"Redo: Scale\"\nmsgstr \"復原 尺寸調整\"\n\nmsgid \"Undo: Add Layer\"\nmsgstr \"取消 新增圖層\"\n\nmsgid \"Redo: Add Layer\"\nmsgstr \"復原 新增圖層\"\n\nmsgid \"Undo: Remove Layer\"\nmsgstr \"取消 刪除圖層\"\n\nmsgid \"Redo: Remove Layer\"\nmsgstr \"復原 刪除圖層\"\n\nmsgid \"Undo: Merge Layer\"\nmsgstr \"取消 合併圖層\"\n\nmsgid \"Redo: Merge Layer\"\nmsgstr \"復原 合併圖層\"\n\nmsgid \"Undo: Change Layer Order\"\nmsgstr \"取消 改變圖層順序\"\n\nmsgid \"Redo: Change Layer Order\"\nmsgstr \"復原 改變圖層順序\"\n\nmsgid \"Undo: Add Frame\"\nmsgstr \"取消 新增影格\"\n\nmsgid \"Redo: Add Frame\"\nmsgstr \"復原 新增影格\"\n\nmsgid \"Undo: Remove Frame\"\nmsgstr \"取消 刪除影格\"\n\nmsgid \"Redo: Remove Frame\"\nmsgstr \"復原 刪除影格\"\n\nmsgid \"Undo: Change Frame Order\"\nmsgstr \"取消 改變影格順序\"\n\nmsgid \"Redo: Change Frame Order\"\nmsgstr \"復原 改變影格順序\"\n\nmsgid \"Undo: Delete Custom Brush\"\nmsgstr \"取消 刪除自訂畫筆\"\n\nmsgid \"Redo: Delete Custom Brush\"\nmsgstr \"復原 刪除自訂畫筆\"\n\nmsgid \"Undo: Modify Frame Tag\"\nmsgstr \"取消：修改影格標籤\"\n\nmsgid \"Redo: Modify Frame Tag\"\nmsgstr \"復原：修改影格標籤\"\n\nmsgid \"Undo: Delete Frame Tag\"\nmsgstr \"取消：刪除影格標籤\"\n\nmsgid \"Redo: Delete Frame Tag\"\nmsgstr \"復原：刪除影格標籤\"\n\nmsgid \"Undo: Change frame duration\"\nmsgstr \"取消：改變影格持續時間\"\n\nmsgid \"Redo: Change frame duration\"\nmsgstr \"復原：改變影格持續時間\"\n\nmsgid \"Move Guide\"\nmsgstr \"移動輔助線\"\n\nmsgid \"File saved\"\nmsgstr \"檔案已儲存\"\n\n#. A notification label that appears when the backup of the currently opened project gets saved.\nmsgid \"Backup saved\"\nmsgstr \"\"\n\nmsgid \"File failed to open. Error code %s\"\nmsgstr \"檔案開啟失敗. 錯誤代碼: %s\"\n\nmsgid \"File failed to save. Error code %s\"\nmsgstr \"檔案儲存失敗. 錯誤代碼: %s\"\n\n#. Appears when the user attempts to export a project as a video, but the process fails. FFMPEG is the external software used to export videos.\nmsgid \"Video failed to export. Ensure that FFMPEG is installed correctly.\"\nmsgstr \"\"\n\nmsgid \"File(s) exported\"\nmsgstr \"\"\n\nmsgid \"New Empty Palette\"\nmsgstr \"新增空的色盤\"\n\nmsgid \"Import Palette\"\nmsgstr \"匯入色盤\"\n\nmsgid \"Create Palette From Current Sprite\"\nmsgstr \"從圖片中的顏色創建色盤\"\n\nmsgid \"Palette Name:\"\nmsgstr \"色盤名稱：\"\n\nmsgid \"Color Name:\"\nmsgstr \"顏色名稱：\"\n\nmsgid \"Use current left & right colors\"\nmsgstr \"使用目前左右顏色\"\n\nmsgid \"Create a new empty palette?\"\nmsgstr \"創建新的空白色盤?\"\n\nmsgid \"Error\"\nmsgstr \"錯誤\"\n\nmsgid \"Error: Palette must have a valid name.\"\nmsgstr \"錯誤: 色盤名稱無法使用\"\n\nmsgid \"Invalid Palette file!\"\nmsgstr \"色盤檔無法使用\"\n\nmsgid \"Edit Palette\"\nmsgstr \"編輯色盤\"\n\nmsgid \"Create colors with alpha component\"\nmsgstr \"創建帶有 alpha 的顏色\"\n\nmsgid \"Get colors only from selection\"\nmsgstr \"只從選取區塊獲取顏色\"\n\nmsgid \"Get colors from\"\nmsgstr \"顏色來源\"\n\nmsgid \"Patrons:\"\nmsgstr \"贊助者：\"\n\nmsgid \"Want your name or your company to be shown on the splash screen?\"\nmsgstr \"希望你或你公司的名字出現在開啟畫面上嗎?\"\n\nmsgid \"Become a Platinum Sponsor\"\nmsgstr \"成為白金贊助者\"\n\nmsgid \"Become a Gold Sponsor\"\nmsgstr \"成為黃金贊助者\"\n\nmsgid \"Become a Patron\"\nmsgstr \"成為贊助者\"\n\nmsgid \"Don't show again\"\nmsgstr \"不再顯示\"\n\nmsgid \"Image Options\"\nmsgstr \"圖片選項\"\n\nmsgid \"Default width:\"\nmsgstr \"預設寬度：\"\n\nmsgid \"A default width of a new image\"\nmsgstr \"新檔案的預設寬度：\"\n\nmsgid \"Default height:\"\nmsgstr \"預設高度：\"\n\nmsgid \"A default height of a new image\"\nmsgstr \"新檔案的預設高度：\"\n\nmsgid \"Default fill color:\"\nmsgstr \"預設背景顏色：\"\n\nmsgid \"A default background color of a new image\"\nmsgstr \"新檔案的預設背景顏色\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all options available in the Preferences\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset timeline options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Reset all tool options\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all extensions\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Remove all backups\"\nmsgstr \"\"\n\n#. Found in the preferences, under the Reset category.\nmsgid \"Clear the recently opened file list\"\nmsgstr \"\"\n\nmsgid \"Lock aspect ratio\"\nmsgstr \"\"\n\nmsgid \"Portrait\"\nmsgstr \"\"\n\nmsgid \"Landscape\"\nmsgstr \"\"\n\nmsgid \"Templates:\"\nmsgstr \"模板：\"\n\nmsgid \"Preset\"\nmsgstr \"配置\"\n\nmsgid \"Preset:\"\nmsgstr \"配置：\"\n\nmsgid \"Default\"\nmsgstr \"預設\"\n\nmsgid \"Custom\"\nmsgstr \"自訂\"\n\nmsgid \"Rectangular Selection\"\nmsgstr \"長方形選取\"\n\nmsgid \"Elliptical Selection\"\nmsgstr \"\"\n\nmsgid \"Polygonal Selection\"\nmsgstr \"\"\n\nmsgid \"Select By Color\"\nmsgstr \"\"\n\nmsgid \"Magic Wand\"\nmsgstr \"魔術棒\"\n\nmsgid \"Lasso / Free Select Tool\"\nmsgstr \"\"\n\nmsgid \"Select by Drawing\"\nmsgstr \"\"\n\nmsgid \"Move\"\nmsgstr \"\"\n\nmsgid \"Zoom\"\nmsgstr \"縮放\"\n\nmsgid \"Pan\"\nmsgstr \"\"\n\nmsgid \"Color Picker\"\nmsgstr \"撿色器\"\n\nmsgid \"Pencil\"\nmsgstr \"鉛筆\"\n\nmsgid \"Eraser\"\nmsgstr \"橡皮擦\"\n\nmsgid \"Bucket\"\nmsgstr \"油漆桶\"\n\nmsgid \"Shading Tool\"\nmsgstr \"陰影\"\n\nmsgid \"Line Tool\"\nmsgstr \"直線工具\"\n\nmsgid \"Curve Tool\"\nmsgstr \"曲線工具\"\n\nmsgid \"Rectangle Tool\"\nmsgstr \"矩形工具\"\n\nmsgid \"Ellipse Tool\"\nmsgstr \"橢圓工具\"\n\nmsgid \"Isometric Box Tool\"\nmsgstr \"\"\n\nmsgid \"Switch Colors\"\nmsgstr \"切換顏色\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"設定快捷鍵\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"設定快捷鍵\"\n\nmsgid \"Already assigned\"\nmsgstr \"按鍵已使用\"\n\nmsgid \"Left Tool:\"\nmsgstr \"左鍵工具：\"\n\nmsgid \"A tool assigned to the left mouse button\"\nmsgstr \"左鍵指定工具\"\n\nmsgid \"Right Tool:\"\nmsgstr \"右鍵工具：\"\n\nmsgid \"A tool assigned to the right mouse button\"\nmsgstr \"右鍵指定工具\"\n\nmsgid \"Cannot find last project file.\"\nmsgstr \"找不到上一次編輯的檔案\"\n\nmsgid \"Cannot find project file.\"\nmsgstr \"\"\n\nmsgid \"You haven't saved or opened any project in Pixelorama yet!\"\nmsgstr \"你尚未打開或儲存Pixelorama檔案!\"\n\nmsgid \"Open Last Project\"\nmsgstr \"開啟最近的檔案\"\n\nmsgid \"Open last project...\"\nmsgstr \"開啟最近的檔案...\"\n\nmsgid \"Open last project on startup\"\nmsgstr \"啟動時自動開啟上一次編輯的檔案\"\n\nmsgid \"Opens last opened project on startup\"\nmsgstr \"啟動時自動開啟上一次編輯的檔案\"\n\nmsgid \"Quit confirmation\"\nmsgstr \"\"\n\n#. Found in the preferences, under the startup section. Path is a noun and it refers to the location in the device where FFMPEG is located at. FFMPEG is a software name and it should not be translated. See https://en.wikipedia.org/wiki/Path_(computing)\nmsgid \"FFMPEG path\"\nmsgstr \"\"\n\nmsgid \"Enable autosave\"\nmsgstr \"啟動自動儲存\"\n\nmsgid \"Autosave interval:\"\nmsgstr \"自動儲存間隔：\"\n\nmsgid \"minute(s)\"\nmsgstr \"分鐘\"\n\n#. A setting found in the export dialog. When enabled, a JSON file containing the project's data is also being exported. JSON refers to this https://en.wikipedia.org/wiki/JSON\nmsgid \"Export JSON data\"\nmsgstr \"\"\n\n#. A setting found in the export dialog. When enabled, each layer is being exported as a different file, or as different frames if the target format is gif/apng/video.\nmsgid \"Split layers\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Include frame tags in the file name\"\nmsgstr \"\"\n\n#. Found in the export dialog.\nmsgid \"Create new folder for each frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the \"Create new folder for each frame tag\" button\nmsgid \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmsgstr \"\"\n\n#. Found in the export dialog. Refers to text characters that acts as separators between text. For example, the \"_\" in \"name_0001\".\nmsgid \"Separator character(s):\"\nmsgstr \"\"\n\n#. Found in the export dialog, as a hint tooltip of the separator character(s) text field.\nmsgid \"The character(s) that separate the file name and the frame number\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that removes the transparent area around non-transparent pixels of the exported images.\nmsgid \"Trim images\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"trim images\" option.\nmsgid \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmsgstr \"\"\n\n#. Found in the export dialog. It is an option that allows users to only export the portions of the images that are within the selected area.\nmsgid \"Clip image content to selection\"\nmsgstr \"\"\n\n#. Found in the export dialog. Tooltip of the \"clip image content to selection\" option.\nmsgid \"Only export content that is within the bounds of a selected area.\"\nmsgstr \"\"\n\nmsgid \"Close\"\nmsgstr \"關閉\"\n\nmsgid \"Discard All\"\nmsgstr \"\"\n\nmsgid \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\nmsgstr \"\"\n\nmsgid \"Backup reloaded\"\nmsgstr \"開啟備份\"\n\nmsgid \"Remove currently selected palette\"\nmsgstr \"移除目前選取的色盤\"\n\nmsgid \"Are you sure you want to remove this palette? (Cannot be undone)\"\nmsgstr \"確定刪除此色盤嗎？(無法取消)\"\n\nmsgid \"You can't remove more palettes!\"\nmsgstr \"不能刪除色盤\"\n\nmsgid \"Cannot remove the palette, because it doesn't exist!\"\nmsgstr \"無法刪除不存在的色盤\"\n\nmsgid \"and\"\nmsgstr \"和\"\n\nmsgid \"Move the selected frame to the left.\"\nmsgstr \"移動所選影格到左邊。\"\n\nmsgid \"Move the selected frame to the right.\"\nmsgstr \"移動所選影格到右邊。\"\n\n#. Refers to the duration of the frame. Found in the frame properties.\nmsgid \"Frame duration:\"\nmsgstr \"\"\n\n#. Refers to custom user defined data for projects, frames, cels, tags and layers, found in their respective properties.\nmsgid \"User data:\"\nmsgstr \"\"\n\nmsgid \"Duration\"\nmsgstr \"\"\n\nmsgid \"Tiled In Both Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In X Axis\"\nmsgstr \"\"\n\nmsgid \"Tiled In Y Axis\"\nmsgstr \"\"\n\nmsgid \"Create a new palette\"\nmsgstr \"創建新的色盤\"\n\n#. Title of a window where the user can create a new project palette. Project palettes are palettes that are stored inside the project files, and are only being used by that project.\nmsgid \"Create a new project palette\"\nmsgstr \"\"\n\nmsgid \"Comment:\"\nmsgstr \"描述：\"\n\nmsgid \"Empty\"\nmsgstr \"空色盤\"\n\nmsgid \"From Current Palette\"\nmsgstr \"以當前色盤爲顏色來源\"\n\nmsgid \"From Current Sprite\"\nmsgstr \"以這個專案爲顏色來源\"\n\nmsgid \"From Current Selection\"\nmsgstr \"\"\n\nmsgid \"Add a new color\"\nmsgstr \"\"\n\nmsgid \"Remove a selected color\"\nmsgstr \"\"\n\n#. Tooltip of the Sort button found in the palette panel.\nmsgid \"Sort palette\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette get reversed.\nmsgid \"Reverse colors\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their hue.\nmsgid \"Sort by hue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their saturation.\nmsgid \"Sort by saturation\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their value.\nmsgid \"Sort by value\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their OKHSL Lightness.\nmsgid \"Sort by lightness\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their red channel value.\nmsgid \"Sort by red\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their green channel value.\nmsgid \"Sort by green\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their blue channel value.\nmsgid \"Sort by blue\"\nmsgstr \"\"\n\n#. An option of the Sort palette button found in the palette panel. When selected, the colors of the palette are being sorted based on their alpha channel value.\nmsgid \"Sort by alpha\"\nmsgstr \"\"\n\nmsgid \"Palette with the same name and path already exists!\"\nmsgstr \"與另一個同名又同檔案路徑的色盤衝突！\"\n\nmsgid \"Palette name is required!\"\nmsgstr \"色盤必須有名稱！\"\n\nmsgid \"Reducing palette size will reset positions of colors.\\n\"\n\"Colors that don't fit in new palette size will be lost!\"\nmsgstr \"\"\n\nmsgid \"Position:\"\nmsgstr \"\"\n\nmsgid \"Tools\"\nmsgstr \"\"\n\nmsgid \"Main Canvas\"\nmsgstr \"\"\n\nmsgid \"Second Canvas\"\nmsgstr \"\"\n\nmsgid \"Animation Timeline\"\nmsgstr \"動畫時間線\"\n\nmsgid \"Canvas Preview\"\nmsgstr \"\"\n\nmsgid \"Color Pickers\"\nmsgstr \"\"\n\nmsgid \"Global Tool Options\"\nmsgstr \"\"\n\nmsgid \"Left Tool Options\"\nmsgstr \"\"\n\nmsgid \"Right Tool Options\"\nmsgstr \"\"\n\nmsgid \"Reference Images\"\nmsgstr \"參考圖\"\n\nmsgid \"Perspective Editor\"\nmsgstr \"\"\n\n#. A UI panel. It is used to record the software in order to show the progress of art, usually in form of time lapses.\nmsgid \"Recorder\"\nmsgstr \"\"\n\n#. Tiles are images of a specific shape, usually rectangular, that are laid out in a grid. They are used in tile-based video games. https://en.wikipedia.org/wiki/Tile-based_video_game\nmsgid \"Tiles\"\nmsgstr \"\"\n\nmsgid \"Crop\"\nmsgstr \"\"\n\nmsgid \"Resize the canvas\"\nmsgstr \"\"\n\nmsgid \"Margins\"\nmsgstr \"\"\n\nmsgid \"Position + Size\"\nmsgstr \"\"\n\nmsgid \"Locked Aspect Ratio\"\nmsgstr \"\"\n\nmsgid \"Margins:\"\nmsgstr \"\"\n\nmsgid \"Aspect Ratio:\"\nmsgstr \"\"\n\nmsgid \"Top:\"\nmsgstr \"\"\n\nmsgid \"Bottom:\"\nmsgstr \"\"\n\nmsgid \"Left:\"\nmsgstr \"\"\n\nmsgid \"Right:\"\nmsgstr \"\"\n\nmsgid \"Locked size\\n\\n\"\n\"When enabled using the tool on the canvas will only move the cropping rectangle.\\n\\n\"\n\"When disabled using the tool on the canvas will draw the rectangle.\"\nmsgstr \"\"\n\n#. A tool used in 3D layers, that edits 3D objects.\nmsgid \"3D Shape Edit\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Box\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Sphere\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Capsule\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Cylinder\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Prism\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Torus\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Plane\"\nmsgstr \"\"\n\nmsgid \"Text\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Directional light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Spotlight\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of light.\nmsgid \"Point light\"\nmsgstr \"\"\n\n#. Used in 3D layers. A type of 3D object.\nmsgid \"Custom model\"\nmsgstr \"\"\n\nmsgid \"Selected object:\"\nmsgstr \"\"\n\nmsgid \"Add new object\"\nmsgstr \"\"\n\nmsgid \"Remove object\"\nmsgstr \"\"\n\nmsgid \"Camera\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. Refers to camera projection mode.\nmsgid \"Projection:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Perspective\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Orthogonal\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. One of the modes of camera projection.\nmsgid \"Frustum\"\nmsgstr \"\"\n\nmsgid \"Rotation:\"\nmsgstr \"\"\n\nmsgid \"Scale:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool.\nmsgid \"Environment\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Environment category.\nmsgid \"Ambient color energy:\"\nmsgstr \"\"\n\n#. An option that toggles the visibility of something on or off. Found in the format of \"Visible: on/off\"\nmsgid \"Visible:\"\nmsgstr \"\"\n\n#. Refers to the transformation options of an object, such as its position, rotation and scale. For technical details, see https://docs.godotengine.org/en/stable/tutorials/math/matrices_and_transforms.html\nmsgid \"Transform\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool. A category with mesh-related options.\nmsgid \"Mesh\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Prism is selected. Refers to the displacement of the upper edge along the X axis.\nmsgid \"Left to right:\"\nmsgstr \"\"\n\n#. Radius of a circle/spherical object.\nmsgid \"Radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected.\nmsgid \"Radial segments:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a spherical object is selected. Refers to the number of segments along the height of the sphere.\nmsgid \"Rings:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Sphere is selected. If true, a hemisphere is created rather than a full sphere.\nmsgid \"Is hemisphere:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Top radius:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Cylinder is selected.\nmsgid \"Bottom radius:\"\nmsgstr \"\"\n\nmsgid \"Text:\"\nmsgstr \"\"\n\n#. Refers to the depth of something, such as the depth of a 3D object.\nmsgid \"Depth:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Refers to the size of one pixel's width on the text to scale it in 3D.\nmsgid \"Pixel size:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Mesh category if a Text object is selected. Step (in pixels) used to approximate Bézier curves.\nmsgid \"Curve step:\"\nmsgstr \"\"\n\nmsgid \"Horizontal alignment:\"\nmsgstr \"\"\n\nmsgid \"Vertical alignment:\"\nmsgstr \"\"\n\nmsgid \"Left\"\nmsgstr \"\"\n\nmsgid \"Right\"\nmsgstr \"\"\n\n#. Refers to the vertical space between lines in a text.\nmsgid \"Line spacing:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. Refers to the energy of the light. The more energy, the brighter it shines.\nmsgid \"Energy:\"\nmsgstr \"\"\n\n#. Found in the tool options of the 3D Shape Edit tool, under the Light category if a light is selected. If true, the light's effect is reversed, darkening areas and casting bright shadows.\nmsgid \"Negative:\"\nmsgstr \"\"\n\nmsgid \"Shadow:\"\nmsgstr \"\"\n\n#. Refers to the range of something, like the range of a spotlight.\nmsgid \"Range:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated.\nmsgid \"Animatable Properties\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the frame that is currently being previewed.\nmsgid \"Preview frame:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. It is a checkbox that toggles whether a property should be animated or not.\nmsgid \"Animate\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the initial value of the property.\nmsgid \"Initial value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the final value of the property.\nmsgid \"Final value:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. Refers to the easing function that should be used to animate the property. https://easings.net/\nmsgid \"Ease type:\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts slowly and speeds up towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Starts quickly and slows down towards the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Slowest at both ends, fast at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of easing function.\nmsgid \"Fast at both ends, slow at middle\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quadratic (power of 2)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Cubic (power of 3)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quartic (power of 4)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Quintic (power of 5)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Exponential (power of x)\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Square root\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Sine\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Wiggling around the edges\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Bouncing at the end\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Backing out at ends\"\nmsgstr \"\"\n\n#. Found under certain image effects that support properties that can be animated. A type of interpolation.\nmsgid \"Spring towards the end\"\nmsgstr \"\"\n\n#. Used to turn images into a singular color\nmsgid \"Monochrome\"\nmsgstr \"\"\n\n#. Found in the Reference Images panel when no reference image has been imported.\nmsgid \"When opening an image, it may be imported as a reference.\"\nmsgstr \"圖片檔可以匯入成參考圖。\"\n\n#. Found in the Reference Images panel after a reference image has been imported.\nmsgid \"Select an image below to change its properties.\\n\"\n\"Note that you cannot draw while a reference image is selected.\"\nmsgstr \"\"\n\n#. Removes the selected reference image.\nmsgid \"Remove\"\nmsgstr \"\"\n\n#. A tooltip to tell users to hold the Shift key while clicking the remove button\nmsgid \"Hold Shift while pressing to instantly remove.\"\nmsgstr \"\"\n\n#. Shown in the confirmation dialog for removing a reference image.\nmsgid \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\nmsgstr \"\"\n\n#. Moves the reference image up in the list\nmsgid \"Move the selected reference image to the right\"\nmsgstr \"\"\n\n#. Moves the reference image down in the list\nmsgid \"Move the selected reference image to the left\"\nmsgstr \"\"\n\n#. Select a reference on the canvas\nmsgid \"Selects a reference image on the canvas\"\nmsgstr \"\"\n\n#. Moves the reference on the canvas\nmsgid \"Move the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Rotate the selected reference image\"\nmsgstr \"\"\n\n#. Rotates the reference on the canvas\nmsgid \"Scale the selected reference image\"\nmsgstr \"\"\n\n#. Button to select no reference images in the Reference Images panel.\nmsgid \"none\"\nmsgstr \"\"\n\n#. Resets the Transform of the selected reference image on the canvas.\nmsgid \"Reset Transform\"\nmsgstr \"\"\n\n#. Position of the selected reference image on the canvas.\nmsgid \"Position\"\nmsgstr \"\"\n\n#. Scale of the selected reference image on the canvas.\nmsgid \"Scale\"\nmsgstr \"\"\n\n#. Rotation of the selected reference image on the canvas.\nmsgid \"Rotation\"\nmsgstr \"\"\n\n#. Toggle filter of the selected reference image on the canvas.\nmsgid \"Filter\"\nmsgstr \"\"\n\n#. Opacity of the selected reference image on the canvas.\nmsgid \"Opacity\"\nmsgstr \"\"\n\n#. Color clamping of the selected reference image on the canvas.\nmsgid \"Color Clamping\"\nmsgstr \"\"\n\n#. Used in checkbuttons (like on/off switches) that enable/disable something.\nmsgid \"Enabled\"\nmsgstr \"\"\n\n#. Refers to non-destructive effects (such as outline, drop shadow etc) that are applied to layers. Found in the title of the layer effects dialog.\nmsgid \"Layer effects\"\nmsgstr \"\"\n\n#. A button that, when pressed, shows a list of effects to add. Found in the the layer effects dialog.\nmsgid \"Add effect\"\nmsgstr \"\"\n\n#. Text from a confirmation dialog that appears when the user is attempting to drag and drop an image directly from the browser into Pixelorama.\nmsgid \"Do you want to download the image from %s?\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/Classes/TileSetCustom.gd\n#: src/UI/Dialogs/ImportPreviewDialog.gd\nmsgid \"Tileset\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tileset:\"\nmsgstr \"\"\n\n#. A tileset is a collection of tiles.\n#: src/UI/Dialogs/ProjectProperties.tscn\nmsgid \"Tilesets\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"New tileset\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\nmsgid \"Tileset name:\"\nmsgstr \"\"\n\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile size:\"\nmsgstr \"\"\n\n#. The shape of each tile in a tileset (rectangular, isometric, hexagonal).\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile shape:\"\nmsgstr \"\"\n\n#. The layout that the tiles appear in, in a non-rectangular grid.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile layout:\"\nmsgstr \"\"\n\n#. The offset axis (horizontal or vertical) of non-rectangular tiles.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Tile offset axis:\"\nmsgstr \"\"\n\n#. Tooltip of the \"tile offset axis\" option.\n#: src/UI/Timeline/NewTileMapLayerDialog.tscn\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stacked offset\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Stairs down\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond right\"\nmsgstr \"\"\n\n#. A tile layout option.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Diamond down\"\nmsgstr \"\"\n\n#. A button that toggles place-only mode on for a tilemap layer. This mode is used to only place tiles in a tilemap, without the ability to modify them.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Place-only mode:\"\nmsgstr \"\"\n\n#. A confirmation dialog that appears when attempting to enable place-only mode in a tilemap layer.\n#: src/UI/Timeline/LayerProperties.tscn\nmsgid \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Select a tile to place it on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.gd\nmsgid \"Modify tiles on the canvas.\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Draw tiles\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile left (counterclockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Rotate tile right (clockwise)\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile horizontally\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Flip tile vertically\"\nmsgstr \"\"\n\n#. Refers to manual mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Manual\"\nmsgstr \"\"\n\n#. Refers to auto (automatic) mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Auto\"\nmsgstr \"自動\"\n\n#. Refers to stack mode, one of the three modes of tilemap layer pixel drawing.\n#: src/UI/TilesPanel.tscn\nmsgid \"Stack\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile button size:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Show empty tile:\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Tile properties\"\nmsgstr \"\"\n\n#: src/UI/TilesPanel.tscn\nmsgid \"Probability:\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "addons/README.md",
    "content": "# Addons\n\n## aimgio\n\n- Upstream: https://gitlab.com/20kdc/20kdc_godot_addons\n- Version: ba00188e9da1ae229181f106788fcb72ccdd85fa\n- License: [Unlicense](https://gitlab.com/20kdc/20kdc_godot_addons/-/blob/master/godot4/addons/aimg_io/COPYING.txt)\n\n## applinks\n- Upstream: https://github.com/OverloadedOrama/Godot-Applinks-Android-Plugin/tree/for-pixelorama\n- Version: [2112eb427de7434e5973298ec4473bd3f370bea7](https://github.com/OverloadedOrama/Godot-Applinks-Android-Plugin/commit/2112eb427de7434e5973298ec4473bd3f370bea7)\n- License: [MIT](https://github.com/FoolLin/Godot-Applinks-Android-Plugin/blob/main/LICENSE)\n\n## Keychain\n\n- Upstream: https://github.com/Orama-Interactive/Keychain\n- Version: [3110a3dd0257392f7a0bd025e6c46a84ff539635](https://github.com/Orama-Interactive/Keychain/commit/3110a3dd0257392f7a0bd025e6c46a84ff539635)\n- License: [MIT](https://github.com/Orama-Interactive/Keychain/blob/main/LICENSE)\n\n## gdgifexporter\n\n- Upstream: https://github.com/jegor377/godot-gdgifexporter\n- Version: [76bd1f8b3f47ffe977a20673c13a0e16de7c5e61](https://github.com/jegor377/godot-gdgifexporter/commit/76bd1f8b3f47ffe977a20673c13a0e16de7c5e61)\n- License: [MIT](https://github.com/jegor377/godot-gdgifexporter/blob/master/LICENSE)\n\n## godot-dockable-container\n\n- Upstream: https://github.com/gilzoide/godot-dockable-container\n- Version: Based on [3f10b9b6f24311090a6010da82d6eaf110e92836](https://github.com/OverloadedOrama/godot-dockable-container/commit/3f10b9b6f24311090a6010da82d6eaf110e92836), but with changes in layout.gd that add a `save_on_change` and `layout_reset_path` variables, and a `save()`, `copy_from()` and `reset()` methods, an added setter method for `layout_split` and deleted `set_split_cursor()` in split_handle.gd, a fix in dockable_container.gd's line 44 and 315, and another on dockable_panel.gd's lines 86 and 87.\n- License: [CC0-1.0](https://github.com/gilzoide/godot-dockable-container/blob/main/LICENSE)\n\n## SmartSlicer\n\n- Upstream: https://github.com/Variable-Interactive/SmartSlicer\n- Version: Based on git commit fd2b423497a377937dbc988e309cc95afd1436ca with a modification on SmartSlicePreview.gd (lines 31-32). Only the contents of addons folder are used and the script SmartSlicePreview.gd is moved to res://src/UI/Dialogs/HelperScripts/ for better organization\n- License: [MIT](https://github.com/Variable-Interactive/SmartSlicer/blob/main/LICENSE)\n"
  },
  {
    "path": "addons/SmartSlicer/Classes/RegionUnpacker.gd",
    "content": "class_name RegionUnpacker\nextends RefCounted\n# THIS CLASS TAKES INSPIRATION FROM PIXELORAMA'S FLOOD FILL\n# AND HAS BEEN MODIFIED FOR OPTIMIZATION\n\nenum { DETECT_VERTICAL_EMPTY_LINES, DETECT_HORIZONTAL_EMPTY_LINES }\n\nvar slice_thread := Thread.new()\n\nvar _include_boundary_threshold: int  ## Τhe size of rect below which merging accounts for boundary\n## After crossing threshold the smaller image will merge with larger image\n## if it is within the _merge_dist\nvar _merge_dist: int\n\n## Working array used as buffer for segments while flooding\nvar _allegro_flood_segments: Array[Segment]\n## Results array per image while flooding\nvar _allegro_image_segments: Array[Segment]\n\n\nclass RectData:\n\tvar rects: Array[Rect2i]\n\tvar frame_size: Vector2i\n\n\tfunc _init(_rects: Array[Rect2i], _frame_size: Vector2i):\n\t\trects = _rects\n\t\tframe_size = _frame_size\n\n\nclass Segment:\n\tvar flooding := false\n\tvar todo_above := false\n\tvar todo_below := false\n\tvar left_position := -5\n\tvar right_position := -5\n\tvar y := 0\n\tvar next := 0\n\n\tfunc _init(_y: int) -> void:\n\t\ty = _y\n\n\nfunc _init(threshold: int, merge_dist: int) -> void:\n\t_include_boundary_threshold = threshold\n\t_merge_dist = merge_dist\n\n\nfunc get_used_rects(\n\timage: Image, lazy_check := false, scan_dir := DETECT_VERTICAL_EMPTY_LINES\n) -> RectData:\n\tif ProjectSettings.get_setting(\"rendering/driver/threads/thread_model\") != 2:\n\t\t# Single-threaded mode\n\t\treturn get_rects(image, lazy_check, scan_dir)\n\telse:  # Multi-threaded mode\n\t\tif slice_thread.is_started():\n\t\t\tslice_thread.wait_to_finish()\n\t\tvar error := slice_thread.start(get_rects.bind(image))\n\t\tif error == OK:\n\t\t\treturn slice_thread.wait_to_finish()\n\t\telse:\n\t\t\treturn get_rects(image, lazy_check, scan_dir)\n\n\nfunc get_rects(\n\timage: Image, lazy_check := false, scan_dir := DETECT_VERTICAL_EMPTY_LINES\n) -> RectData:\n\tvar skip_amount = 0\n\t# Make a smaller image to make the loop shorter\n\tvar used_rect := image.get_used_rect()\n\tif used_rect.size == Vector2i.ZERO:\n\t\treturn clean_rects([])\n\tvar test_image := image.get_region(used_rect)\n\t# Prepare a bitmap to keep track of previous places\n\tvar scanned_area := Image.create(\n\t\ttest_image.get_size().x, test_image.get_size().y, false, Image.FORMAT_LA8\n\t)\n\t# Scan the image\n\tvar rects: Array[Rect2i] = []\n\tvar frame_size := Vector2i.ZERO\n\n\tvar found_pixels_this_line := false\n\tvar has_jumped_last_line := false\n\tvar scanned_lines := PackedInt32Array()\n\tvar side_a: int\n\tvar side_b: int\n\tmatch scan_dir:\n\t\tDETECT_VERTICAL_EMPTY_LINES:\n\t\t\tside_a = test_image.get_size().x\n\t\t\tside_b = test_image.get_size().y\n\t\tDETECT_HORIZONTAL_EMPTY_LINES:\n\t\t\tside_a = test_image.get_size().y\n\t\t\tside_b = test_image.get_size().x\n\tvar line := 0\n\twhile line < side_a:\n\t\tfor element: int in side_b:\n\t\t\tvar position := Vector2i(line, element)\n\t\t\tif scan_dir == DETECT_HORIZONTAL_EMPTY_LINES:\n\t\t\t\tposition = Vector2i(element, line)\n\t\t\tif test_image.get_pixelv(position).a > 0:  # used portion of image detected\n\t\t\t\tfound_pixels_this_line = true\n\t\t\t\tif scanned_area.get_pixelv(position).a == 0:\n\t\t\t\t\tvar rect := _estimate_rect(test_image, position)\n\t\t\t\t\tscanned_area.fill_rect(rect, Color.WHITE)\n\t\t\t\t\trect.position += used_rect.position\n\t\t\t\t\trects.append(rect)\n\t\tif lazy_check:\n\t\t\tif !line in scanned_lines:\n\t\t\t\tscanned_lines.append(line)\n\n\t\t\tif found_pixels_this_line and not has_jumped_last_line:\n\t\t\t\tfound_pixels_this_line = false\n\t\t\t\tline += 1\n\t\t\t\tif line in scanned_lines:  ## We have scanned all skipped lines, re calculate current index\n\t\t\t\t\tscanned_lines.sort()\n\t\t\t\t\tline = scanned_lines[-1] + 1\n\t\t\telif not found_pixels_this_line:\n\t\t\t\t## we haven't found any pixels in this line and are assuming next line is empty as well\n\t\t\t\tskip_amount += 1\n\t\t\t\thas_jumped_last_line = true\n\t\t\t\tline += 1 + skip_amount\n\t\t\telif found_pixels_this_line and has_jumped_last_line:\n\t\t\t\tfound_pixels_this_line = false\n\t\t\t\thas_jumped_last_line = false\n\t\t\t\t## if we skipped a line then go back and make sure it was really empty or not\n\t\t\t\tline -= skip_amount\n\t\t\t\tskip_amount = 0\n\t\telse:\n\t\t\tline += 1\n\tvar rects_info := clean_rects(rects)\n\trects_info.rects.sort_custom(sort_rects)\n\treturn rects_info\n\n\nfunc clean_rects(rects: Array[Rect2i]) -> RectData:\n\tvar frame_size := Vector2i.ZERO\n\tfor i: int in rects.size():\n\t\tvar target: Rect2i = rects.pop_front()\n\t\tvar test_rect := target\n\t\tif (\n\t\t\ttarget.size.x < _include_boundary_threshold\n\t\t\tor target.size.y < _include_boundary_threshold\n\t\t):\n\t\t\ttest_rect.size += Vector2i(_merge_dist, _merge_dist)\n\t\t\ttest_rect.position -= Vector2i(_merge_dist, _merge_dist) / 2\n\t\tvar merged := false\n\t\tfor rect_i: int in rects.size():\n\t\t\tif test_rect.intersects(rects[rect_i]):\n\t\t\t\trects[rect_i] = target.merge(rects[rect_i])\n\t\t\t\tmerged = true\n\t\t\t\tbreak\n\t\tif !merged:\n\t\t\trects.append(target)\n\n\t\t# calculation for a suitable frame size\n\t\tif target.size.x > frame_size.x:\n\t\t\tframe_size.x = target.size.x\n\t\tif target.size.y > frame_size.y:\n\t\t\tframe_size.y = target.size.y\n\treturn RectData.new(rects, frame_size)\n\n\nfunc sort_rects(rect_a: Rect2i, rect_b: Rect2i) -> bool:\n\t# After many failed attempts, this version works for some reason (it's best not to disturb it)\n\tif rect_a.end.y < rect_b.position.y:\n\t\treturn true\n\tif rect_a.position.x < rect_b.position.x:\n\t\t# if both lie in the same row\n\t\tvar start := rect_a.position\n\t\tvar size := Vector2i(rect_b.end.x, rect_a.end.y)\n\t\tif Rect2i(start, size).intersects(rect_b):\n\t\t\treturn true\n\treturn false\n\n\nfunc _estimate_rect(image: Image, position: Vector2) -> Rect2i:\n\tvar cel_image := Image.new()\n\tcel_image.copy_from(image)\n\tvar small_rect := _flood_fill(position, cel_image)\n\treturn small_rect\n\n\n## Add a new segment to the array\nfunc _add_new_segment(y := 0) -> void:\n\t_allegro_flood_segments.append(Segment.new(y))\n\n\n## Fill an horizontal segment around the specified position, and adds it to the\n## list of segments filled. Returns the first x coordinate after the part of the\n## line that has been filled.\n## this method is called by `_flood_fill` after the required data structures\n## have been initialized\nfunc _flood_line_around_point(position: Vector2i, image: Image) -> int:\n\tif not image.get_pixelv(position).a > 0:\n\t\treturn position.x + 1\n\tvar west := position\n\tvar east := position\n\twhile west.x >= 0 && image.get_pixelv(west).a > 0:\n\t\twest += Vector2i.LEFT\n\twhile east.x < image.get_width() && image.get_pixelv(east).a > 0:\n\t\teast += Vector2i.RIGHT\n\t# Make a note of the stuff we processed\n\tvar c := position.y\n\tvar segment := _allegro_flood_segments[c]\n\t# we may have already processed some segments on this y coordinate\n\tif segment.flooding:\n\t\twhile segment.next > 0:\n\t\t\tc = segment.next  # index of next segment in this line of image\n\t\t\tsegment = _allegro_flood_segments[c]\n\t\t# found last current segment on this line\n\t\tc = _allegro_flood_segments.size()\n\t\tsegment.next = c\n\t\t_add_new_segment(position.y)\n\t\tsegment = _allegro_flood_segments[c]\n\t# set the values for the current segment\n\tsegment.flooding = true\n\tsegment.left_position = west.x + 1\n\tsegment.right_position = east.x - 1\n\tsegment.y = position.y\n\tsegment.next = 0\n\t# Should we process segments above or below this one?\n\t# when there is a selected area, the pixels above and below the one we started creating this\n\t# segment from may be outside it. It's easier to assume we should be checking for segments\n\t# above and below this one than to specifically check every single pixel in it, because that\n\t# test will be performed later anyway.\n\t# On the other hand, this test we described is the same `project.can_pixel_get_drawn` does if\n\t# there is no selection, so we don't need branching here.\n\tsegment.todo_above = position.y > 0\n\tsegment.todo_below = position.y < image.get_height() - 1\n\t# this is an actual segment we should be coloring, so we add it to the results for the\n\t# current image\n\tif segment.right_position >= segment.left_position:\n\t\t_allegro_image_segments.append(segment)\n\t# we know the point just east of the segment is not part of a segment that should be\n\t# processed, else it would be part of this segment\n\treturn east.x + 1\n\n\nfunc _check_flooded_segment(y: int, left: int, right: int, image: Image) -> bool:\n\tvar ret := false\n\tvar c := 0\n\twhile left <= right:\n\t\tc = y\n\t\twhile true:\n\t\t\tvar segment := _allegro_flood_segments[c]\n\t\t\tif left >= segment.left_position and left <= segment.right_position:\n\t\t\t\tleft = segment.right_position + 2\n\t\t\t\tbreak\n\t\t\tc = segment.next\n\t\t\tif c == 0:  # couldn't find a valid segment, so we draw a new one\n\t\t\t\tleft = _flood_line_around_point(Vector2i(left, y), image)\n\t\t\t\tret = true\n\t\t\t\tbreak\n\treturn ret\n\n\nfunc _flood_fill(position: Vector2i, image: Image) -> Rect2i:\n\t# implements the floodfill routine by Shawn Hargreaves\n\t# from https://www1.udel.edu/CIS/software/dist/allegro-4.2.1/src/flood.c\n\t# init flood data structures\n\t_allegro_flood_segments = []\n\t_allegro_image_segments = []\n\t_compute_segments_for_image(position, image)\n\t# now actually color the image: since we have already checked a few things for the points\n\t# we'll process here, we're going to skip a bunch of safety checks to speed things up.\n\treturn _select_segments()\n\n\nfunc _compute_segments_for_image(position: Vector2i, image: Image) -> void:\n\t# initially allocate at least 1 segment per line of image\n\tfor j: int in image.get_height():\n\t\t_add_new_segment(j)\n\t# start flood algorithm\n\t_flood_line_around_point(position, image)\n\t# test all segments while also discovering more\n\tvar done := false\n\twhile not done:\n\t\tdone = true\n\t\tvar max_index := _allegro_flood_segments.size()\n\t\tfor c: int in max_index:\n\t\t\tvar p := _allegro_flood_segments[c]\n\t\t\tif p.todo_below:  # check below the segment?\n\t\t\t\tp.todo_below = false\n\t\t\t\tif _check_flooded_segment(p.y + 1, p.left_position, p.right_position, image):\n\t\t\t\t\tdone = false\n\t\t\tif p.todo_above:  # check above the segment?\n\t\t\t\tp.todo_above = false\n\t\t\t\tif _check_flooded_segment(p.y - 1, p.left_position, p.right_position, image):\n\t\t\t\t\tdone = false\n\n\nfunc _select_segments() -> Rect2i:\n\t# short circuit for flat colors\n\tvar used_rect := Rect2i()\n\tfor c: int in _allegro_image_segments.size():\n\t\tvar p := _allegro_image_segments[c]\n\t\tvar rect := Rect2i()\n\t\trect.position = Vector2i(p.left_position, p.y)\n\t\trect.end = Vector2i(p.right_position + 1, p.y + 1)\n\t\tif used_rect.size == Vector2i.ZERO:\n\t\t\tused_rect = rect\n\t\telse:\n\t\t\tused_rect = used_rect.merge(rect)\n\treturn used_rect\n"
  },
  {
    "path": "addons/SmartSlicer/Classes/RegionUnpacker.gd.uid",
    "content": "uid://b4bomkpkff35q\n"
  },
  {
    "path": "addons/aimg_io/COPYING.txt",
    "content": "This is free and unencumbered software released into the public domain.\n\nAnyone is free to copy, modify, publish, use, compile, sell, or\ndistribute this software, either in source code form or as a compiled\nbinary, for any purpose, commercial or non-commercial, and by any\nmeans.\n\nIn jurisdictions that recognize copyright laws, the author or authors\nof this software dedicate any and all copyright interest in the\nsoftware to the public domain. We make this dedication for the benefit\nof the public at large and to the detriment of our heirs and\nsuccessors. We intend this dedication to be an overt act of\nrelinquishment in perpetuity of all present and future rights to this\nsoftware under copyright law.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\nARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n\nFor more information, please refer to <http://unlicense.org>\n\n"
  },
  {
    "path": "addons/aimg_io/apng_crc32.tres",
    "content": "[gd_resource type=\"Resource\" script_class=\"AImgIOCRC32\" format=3 uid=\"uid://byrkfj6hsea5l\"]\n\n[ext_resource type=\"Script\" uid=\"uid://bdrwi3rt1gvr6\" path=\"res://addons/aimg_io/crc32.gd\" id=\"1\"]\n\n[resource]\nscript = ExtResource(\"1\")\n"
  },
  {
    "path": "addons/aimg_io/apng_exporter.gd",
    "content": "class_name AImgIOAPNGExporter\nextends AImgIOBaseExporter\n# APNG exporter. To be clear, this is effectively magic.\n\n\nfunc _init():\n\tmime_type = \"image/apng\"\n\n\nfunc export_animation(\n\tframes: Array,\n\tfps_hint: float,\n\tprogress_report_obj: Object,\n\tprogress_report_method,\n\tprogress_report_args,\n\t_export_file: FileAccess = null\n) -> PackedByteArray:\n\tvar frame_count := len(frames)\n\tvar result := AImgIOAPNGStream.new()\n\t# Magic number\n\tresult.write_magic()\n\t# From here on out, all data is written in \"chunks\".\n\t# IHDR\n\tvar image: Image = frames[0].content\n\tvar chunk := result.start_chunk()\n\tchunk.put_32(image.get_width())\n\tchunk.put_32(image.get_height())\n\tchunk.put_32(0x08060000)\n\tchunk.put_8(0)\n\tresult.write_chunk(\"IHDR\", chunk.data_array)\n\t# acTL\n\tchunk = result.start_chunk()\n\tchunk.put_32(frame_count)\n\tchunk.put_32(0)\n\tresult.write_chunk(\"acTL\", chunk.data_array)\n\t# For each frame... (note: first frame uses IDAT)\n\tvar sequence := 0\n\tfor i in range(frame_count):\n\t\timage = frames[i].content\n\t\t# fcTL\n\t\tchunk = result.start_chunk()\n\t\tchunk.put_32(sequence)\n\t\tsequence += 1\n\t\t# image w/h\n\t\tchunk.put_32(image.get_width())\n\t\tchunk.put_32(image.get_height())\n\t\t# offset x/y\n\t\tchunk.put_32(0)\n\t\tchunk.put_32(0)\n\t\twrite_delay(chunk, frames[i].duration, fps_hint)\n\t\t# dispose / blend\n\t\tchunk.put_8(0)\n\t\tchunk.put_8(0)\n\t\t# So depending on who you ask, there might be supposed to be a second\n\t\t#  checksum here. The problem is, if there is, it's not well-explained.\n\t\t# Plus, actual readers don't seem to require it.\n\t\t# And the W3C specification just copy/pastes the (bad) Mozilla spec.\n\t\t# Dear Mozilla spec writers: If you wanted a second checksum,\n\t\t#  please indicate it's existence in the fcTL chunk structure.\n\t\tresult.write_chunk(\"fcTL\", chunk.data_array)\n\t\t# IDAT/fdAT\n\t\tchunk = result.start_chunk()\n\t\tif i != 0:\n\t\t\tchunk.put_32(sequence)\n\t\t\tsequence += 1\n\t\t# setup chunk interior...\n\t\tvar ichk := result.start_chunk()\n\t\twrite_padded_lines(ichk, image)\n\t\tchunk.put_data(ichk.data_array.compress(FileAccess.COMPRESSION_DEFLATE))\n\t\t# done with chunk interior\n\t\tif i == 0:\n\t\t\tresult.write_chunk(\"IDAT\", chunk.data_array)\n\t\telse:\n\t\t\tresult.write_chunk(\"fdAT\", chunk.data_array)\n\t\t# Done with this frame!\n\t\tprogress_report_obj.callv(progress_report_method, progress_report_args)\n\t\tawait RenderingServer.frame_post_draw\n\t# Final chunk.\n\tresult.write_chunk(\"IEND\", PackedByteArray())\n\treturn result.finish()\n\n\nfunc write_delay(sp: StreamPeer, duration: float, fps_hint: float):\n\t# Obvious bounds checking\n\tduration = max(duration, 0)\n\tfps_hint = min(32767, max(fps_hint, 1))\n\t# The assumption behind this is that in most cases durations match the FPS hint.\n\t# And in most cases the FPS hint is integer.\n\t# So it follows that num = 1 and den = fps.\n\t# Precision is increased so we catch more complex cases.\n\t# But you should always get perfection for integers.\n\tvar den := min(32767, max(fps_hint, 1))\n\tvar num: float = max(duration, 0) * den\n\t# If the FPS hint brings us out of range before we start, try some obvious integers\n\tvar fallback := 10000\n\twhile num > 32767:\n\t\tnum = max(duration, 0) * den\n\t\tden = fallback\n\t\tif fallback == 1:\n\t\t\tbreak\n\t\tfallback /= 10\n\t# If the fallback plan failed, give up and set the duration to 1 second.\n\tif num > 32767:\n\t\tsp.put_16(1)\n\t\tsp.put_16(1)\n\t\treturn\n\t# Raise to highest safe precision\n\t# This is what handles the more complicated cases (usually).\n\twhile num < 16384 and den < 16384:\n\t\tnum *= 2\n\t\tden *= 2\n\t# Write out\n\tsp.put_16(int(round(num)))\n\tsp.put_16(int(round(den)))\n\n\nfunc write_padded_lines(sp: StreamPeer, img: Image):\n\tif img.get_format() != Image.FORMAT_RGBA8:\n\t\tpush_warning(\"Image format in AImgIOAPNGExporter should only ever be RGBA8.\")\n\t\treturn\n\tvar data := img.get_data()\n\tvar y := 0\n\tvar w := img.get_width()\n\tvar h := img.get_height()\n\tvar base := 0\n\twhile y < h:\n\t\tvar nl := base + (w * 4)\n\t\tvar line := data.slice(base, nl)\n\t\tsp.put_8(0)\n\t\tsp.put_data(line)\n\t\ty += 1\n\t\tbase = nl\n"
  },
  {
    "path": "addons/aimg_io/apng_exporter.gd.uid",
    "content": "uid://go3lteln7x3p\n"
  },
  {
    "path": "addons/aimg_io/apng_import_plugin.gd",
    "content": "@tool\nclass_name AImgIOAPNGImportPlugin\nextends EditorImportPlugin\n\n\nfunc _get_importer_name() -> String:\n\treturn \"aimgio.apng_animatedtexture\"\n\n\nfunc _get_visible_name() -> String:\n\treturn \"APNG as AnimatedTexture\"\n\n\nfunc _get_save_extension() -> String:\n\treturn \"res\"\n\n\nfunc _get_resource_type() -> String:\n\treturn \"AnimatedTexture\"\n\n\nfunc _get_recognized_extensions() -> PackedStringArray:\n\treturn PackedStringArray([\"png\"])\n\n\nfunc _get_preset_count():\n\treturn 1\n\n\nfunc _get_preset_name(_i):\n\treturn \"Default\"\n\n\nfunc _get_import_options(_path: String, _i: int) -> Array[Dictionary]:\n\treturn []\n\n\nfunc _get_import_order():\n\treturn 0\n\n\nfunc _get_option_visibility(_path: String, _option, _options):\n\treturn true\n\n\nfunc _import(load_path: String, save_path: String, _options, _platform_variants, _gen_files):\n\tvar res := AImgIOAPNGImporter.load_from_file(load_path)\n\tif res[0] != null:\n\t\tpush_error(\"AImgIOPNGImporter: \" + res[0])\n\t\treturn ERR_FILE_UNRECOGNIZED\n\tvar frames: Array = res[1]\n\tvar root: AnimatedTexture = AnimatedTexture.new()\n\troot.frames = len(frames)\n\tfor i in range(len(frames)):\n\t\tvar f: AImgIOFrame = frames[i]\n\t\troot.set_frame_duration(i, f.duration)\n\t\tvar tx := ImageTexture.new()\n\t\ttx.create_from_image(f.content)\n\t\troot.set_frame_texture(i, tx)\n\treturn ResourceSaver.save(root, save_path + \".res\")\n"
  },
  {
    "path": "addons/aimg_io/apng_import_plugin.gd.uid",
    "content": "uid://b3yov4wi6hi5a\n"
  },
  {
    "path": "addons/aimg_io/apng_importer.gd",
    "content": "@tool\nclass_name AImgIOAPNGImporter\nextends RefCounted\n# Will NOT import regular, unanimated PNGs - use Image.load_png_from_buffer\n# This is because we don't want to import the default image as a frame\n# Therefore it just uses the rule:\n#  \"fcTL chunk always precedes an APNG frame, even if that includes IDAT\"\n\n\n# Imports an APNG PoolByteArray into an animation as an Array of frames.\n# Returns [error, frames] similar to some read functions.\n# However, error is a string.\nstatic func load_from_buffer(buffer: PackedByteArray) -> Array:\n\tvar stream := AImgIOAPNGStream.new(buffer)\n\tvar magic_str = stream.read_magic()\n\tif magic_str != null:\n\t\t# well, that was a nope\n\t\treturn [magic_str, null]\n\t# Ok, so, before we continue, let's establish what is and is not okay\n\t#  for the target of this importer.\n\n\t# Firstly, thankfully, we don't have to worry about colour profiles or any\n\t#  ancillary chunks that involve them.\n\t# Godot doesn't care and caring would break images meant for non-colour use.\n\t# If for some reason you care and consider this a hot take:\n\t#  + Just perceptual-intent sRGB at display driver / hardware level.\n\t#  + Anyone who really cares about colourimetric intent should NOT use RGB.\n\t# (This said, the gAMA chunk has its uses in realistic usecases.\n\t#  Having a way to specify linear vs. non-linear RGB isn't inherently bad.)\n\t# Secondly, we DO have to worry about tRNS.\n\t# tRNS is an \"optional\" chunk to support.\n\t# ...same as fcTL is \"optional\".\n\t# The file would decode but actual meaningful data is lost.\n\t# Thirdly, the size of an APNG frame is not necessarily the original size.\n\t# So to convert an APNG frame to a PNG for reading, we need to stitch:\n\t# IHDR (modified), PLTE (if present), tRNS (if present), IDAT (from fdAT),\n\t#  and IEND (generated).\n\tvar ihdr := PackedByteArray()\n\tvar plte := PackedByteArray()\n\tvar trns := PackedByteArray()\n\t# stored full width/height for buffer\n\tvar width := 0\n\tvar height := 0\n\t# parse chunks\n\tvar frames: Array[BFrame] = []\n\twhile stream.read_chunk() == OK:\n\t\tif stream.chunk_type == \"IHDR\":\n\t\t\tihdr = stream.chunk_data\n\t\t\t# extract necessary information\n\t\t\tif len(ihdr) < 8:\n\t\t\t\treturn [\"IHDR not even large enough for W/H\", null]\n\t\t\tvar sp := StreamPeerBuffer.new()\n\t\t\tsp.data_array = ihdr\n\t\t\tsp.big_endian = true\n\t\t\twidth = sp.get_32()\n\t\t\theight = sp.get_32()\n\t\telif stream.chunk_type == \"PLTE\":\n\t\t\tplte = stream.chunk_data\n\t\telif stream.chunk_type == \"tRNS\":\n\t\t\ttrns = stream.chunk_data\n\t\telif stream.chunk_type == \"fcTL\":\n\t\t\tvar f := BFrame.new()\n\t\t\tvar err = f.setup(stream.chunk_data)\n\t\t\tif err != null:\n\t\t\t\treturn [err, null]\n\t\t\tframes.push_back(f)\n\t\telif stream.chunk_type == \"IDAT\":\n\t\t\t# add to last frame if any\n\t\t\t# this uses the lack of the fcTL for the default image on purpose,\n\t\t\t# while still handling frame 0 as IDAT properly\n\t\t\tif len(frames) > 0:\n\t\t\t\tvar f: BFrame = frames[len(frames) - 1]\n\t\t\t\tf.add_data(stream.chunk_data)\n\t\telif stream.chunk_type == \"fdAT\":\n\t\t\t# it's just frame data\n\t\t\t# we ignore seq. nums. if they're wrong, file's invalid\n\t\t\t# so if there are issues, we don't have to support them\n\t\t\tif len(frames) > 0:\n\t\t\t\tvar f: BFrame = frames[len(frames) - 1]\n\t\t\t\tif len(stream.chunk_data) >= 4:\n\t\t\t\t\tvar data := stream.chunk_data.slice(4, len(stream.chunk_data))\n\t\t\t\t\tf.add_data(data)\n\t# theoretically we *could* store the default frame somewhere, but *why*?\n\t# just use Image functions if you want that\n\tif len(frames) == 0:\n\t\treturn [\"No frames\", null]\n\t# prepare initial operating buffer\n\tvar operating := Image.create(width, height, false, Image.FORMAT_RGBA8)\n\toperating.fill(Color(0, 0, 0, 0))\n\tvar finished: Array[AImgIOFrame] = []\n\tfor v in frames:\n\t\tvar fv: BFrame = v\n\t\t# Ok, so to avoid having to deal with filters and stuff,\n\t\t#  what we do here is generate intermediary single-frame PNG files.\n\t\t# Whoever specced APNG either managed to make a good format by accident,\n\t\t#  or had a very good understanding of the concerns of people who need\n\t\t#  to retrofit their PNG decoders into APNG decoders, because the fact\n\t\t#  you can even do this is *beautiful*.\n\t\tvar intermediary := fv.intermediary(ihdr, plte, trns)\n\t\tvar intermediary_img := Image.new()\n\t\tif intermediary_img.load_png_from_buffer(intermediary) != OK:\n\t\t\treturn [\"error during intermediary load - corrupt/bug?\", null]\n\t\tintermediary_img.convert(Image.FORMAT_RGBA8)\n\t\t# dispose vars\n\t\tvar blit_target := operating\n\t\tvar copy_blit_target := true\n\t\t# rectangles and such\n\t\tvar blit_src := Rect2i(Vector2i.ZERO, intermediary_img.get_size())\n\t\tvar blit_pos := Vector2i(fv.x, fv.y)\n\t\tvar blit_tgt := Rect2i(blit_pos, intermediary_img.get_size())\n\t\t# early dispose ops\n\t\tif fv.dispose_op == 2:\n\t\t\t# previous\n\t\t\t# we handle this by never actually writing to the operating buffer,\n\t\t\t#  but instead a copy (so we don't have to make another later)\n\t\t\tblit_target = Image.new()\n\t\t\tblit_target.copy_from(operating)\n\t\t\tcopy_blit_target = false\n\t\t# actually blit\n\t\tif blit_src.size != Vector2i.ZERO:\n\t\t\tif fv.blend_op == 0:\n\t\t\t\tblit_target.blit_rect(intermediary_img, blit_src, blit_pos)\n\t\t\telse:\n\t\t\t\tblit_target.blend_rect(intermediary_img, blit_src, blit_pos)\n\t\t# insert as frame\n\t\tvar ffin := AImgIOFrame.new()\n\t\tffin.duration = fv.duration\n\t\tif copy_blit_target:\n\t\t\tvar img := Image.new()\n\t\t\timg.copy_from(operating)\n\t\t\tffin.content = img\n\t\telse:\n\t\t\tffin.content = blit_target\n\t\tfinished.push_back(ffin)\n\t\t# late dispose ops\n\t\tif fv.dispose_op == 1:\n\t\t\t# background\n\t\t\t# this works as you expect\n\t\t\toperating.fill_rect(blit_tgt, Color(0, 0, 0, 0))\n\treturn [null, finished]\n\n\n# Imports an APNG file into an animation as an array of frames.\n# Returns null on error.\nstatic func load_from_file(path: String) -> Array:\n\tvar o := FileAccess.open(path, FileAccess.READ)\n\tif o == null:\n\t\treturn [null, \"Unable to open file: \" + path]\n\tvar l = o.get_length()\n\tvar data = o.get_buffer(l)\n\to.close()\n\treturn load_from_buffer(data)\n\n\n# Intermediate frame structure\nclass BFrame:\n\textends RefCounted\n\tvar dispose_op: int\n\tvar blend_op: int\n\tvar x: int\n\tvar y: int\n\tvar w: int\n\tvar h: int\n\tvar duration: float\n\tvar data: PackedByteArray\n\n\tfunc setup(fctl: PackedByteArray):\n\t\tif len(fctl) < 26:\n\t\t\treturn \"\"\n\t\tvar sp := StreamPeerBuffer.new()\n\t\tsp.data_array = fctl\n\t\tsp.big_endian = true\n\t\tsp.get_32()\n\t\tw = sp.get_32() & 0xFFFFFFFF\n\t\th = sp.get_32() & 0xFFFFFFFF\n\t\t# theoretically these are supposed to be unsigned, but like...\n\t\t# that just contributes to the assertion of it being inbounds, really.\n\t\t# so since blitting will do the crop anyway, let's just be generous\n\t\tx = sp.get_32()\n\t\ty = sp.get_32()\n\t\tvar num := float(sp.get_16() & 0xFFFF)\n\t\tvar den := float(sp.get_16() & 0xFFFF)\n\t\tif den == 0.0:\n\t\t\tden = 100\n\t\tduration = num / den\n\t\tdispose_op = sp.get_8()\n\t\tblend_op = sp.get_8()\n\t\treturn null\n\n\t# Creates an intermediary PNG.\n\t# This can be loaded by Godot directly.\n\t# This basically skips most of the APNG decoding process.\n\tfunc intermediary(\n\t\tihdr: PackedByteArray, plte: PackedByteArray, trns: PackedByteArray\n\t) -> PackedByteArray:\n\t\t# Might be important to note this operates on a copy of ihdr (by-value).\n\t\tvar sp := StreamPeerBuffer.new()\n\t\tsp.data_array = ihdr\n\t\tsp.big_endian = true\n\t\tsp.put_32(w)\n\t\tsp.put_32(h)\n\t\tvar intermed := AImgIOAPNGStream.new()\n\t\tintermed.write_magic()\n\t\tintermed.write_chunk(\"IHDR\", sp.data_array)\n\t\tif len(plte) > 0:\n\t\t\tintermed.write_chunk(\"PLTE\", plte)\n\t\tif len(trns) > 0:\n\t\t\tintermed.write_chunk(\"tRNS\", trns)\n\t\tintermed.write_chunk(\"IDAT\", data)\n\t\tintermed.write_chunk(\"IEND\", PackedByteArray())\n\t\treturn intermed.finish()\n\n\tfunc add_data(d: PackedByteArray):\n\t\tdata.append_array(d)\n"
  },
  {
    "path": "addons/aimg_io/apng_importer.gd.uid",
    "content": "uid://bon05d4xjsyqj\n"
  },
  {
    "path": "addons/aimg_io/apng_stream.gd",
    "content": "@tool\nclass_name AImgIOAPNGStream\nextends RefCounted\n# APNG IO context. To be clear, this is still effectively magic.\n\n# Quite critical we preload this. Preloading creates static variables.\n# (Which GDScript doesn't really have, but we need since we have no tree access)\nvar crc32: AImgIOCRC32 = preload(\"apng_crc32.tres\")\n\nvar chunk_type: String\nvar chunk_data: PackedByteArray\n\n# The reason this must be a StreamPeerBuffer is simple:\n# 1. We need to support in-memory IO for HTML5 to really work\n# 2. We need get_available_bytes to be completely accurate in all* cases\n#    * A >2GB file doesn't count. Godot limitations.\n#     because get_32 can return arbitrary nonsense on error.\n# It might have been worth trying something else if StreamPeerFile was a thing.\n# Though even then that's betting the weirdness of corrupt files against the\n#  benefits of using less memory.\nvar _target: StreamPeerBuffer\n\n\nfunc _init(t: PackedByteArray = PackedByteArray()):\n\tcrc32.ensure_ready()\n\t_target = StreamPeerBuffer.new()\n\t_target.big_endian = true\n\t_target.data_array = t\n\n\n# Reading\n\n\n# Reads the magic number. Returns the method of failure or null for success.\nfunc read_magic():\n\tif _target.get_available_bytes() < 8:\n\t\treturn \"Not enough bytes in magic number\"\n\tvar a := _target.get_32() & 0xFFFFFFFF\n\tif a != 0x89504E47:\n\t\treturn \"Magic number start not 0x89504E47, but \" + str(a)\n\ta = _target.get_32() & 0xFFFFFFFF\n\tif a != 0x0D0A1A0A:\n\t\treturn \"Magic number end not 0x0D0A1A0A, but \" + str(a)\n\treturn null\n\n\n# Reads a chunk into chunk_type and chunk_data. Returns an error code.\nfunc read_chunk() -> int:\n\tif _target.get_available_bytes() < 8:\n\t\treturn ERR_FILE_EOF\n\tvar dlen := _target.get_32()\n\tvar a := char(_target.get_8())\n\tvar b := char(_target.get_8())\n\tvar c := char(_target.get_8())\n\tvar d := char(_target.get_8())\n\tchunk_type = a + b + c + d\n\tif _target.get_available_bytes() >= dlen:\n\t\tchunk_data = _target.get_data(dlen)[1]\n\telse:\n\t\treturn ERR_FILE_EOF\n\t# we don't care what this reads anyway, so don't bother checking it\n\t_target.get_32()\n\treturn OK\n\n\n# Writing\n\n\n# Writes the PNG magic number.\nfunc write_magic():\n\t_target.put_32(0x89504E47)\n\t_target.put_32(0x0D0A1A0A)\n\n\n# Creates a big-endian StreamPeerBuffer for writing PNG data into.\nfunc start_chunk() -> StreamPeerBuffer:\n\tvar result := StreamPeerBuffer.new()\n\tresult.big_endian = true\n\treturn result\n\n\n# Writes a PNG chunk.\nfunc write_chunk(type: String, data: PackedByteArray):\n\t_target.put_32(len(data))\n\tvar at := type.to_ascii_buffer()\n\t_target.put_data(at)\n\t_target.put_data(data)\n\tvar crc := crc32.update(crc32.mask, at)\n\tcrc = crc32.end(crc32.update(crc, data))\n\t_target.put_32(crc)\n\n\n# Returns the data_array of the stream (to be used when you're done writing the file)\nfunc finish() -> PackedByteArray:\n\treturn _target.data_array\n"
  },
  {
    "path": "addons/aimg_io/apng_stream.gd.uid",
    "content": "uid://dtwi848n6h7ff\n"
  },
  {
    "path": "addons/aimg_io/base_exporter.gd",
    "content": "class_name AImgIOBaseExporter\nextends RefCounted\n# Represents a method for exporting animations.\n\nvar mime_type: String\n\n\n# Exports an animation to a byte array of file data.\n# The frames must be AImgIOFrame.\n# fps_hint is only a hint, animations may have higher FPSes than this.\n# The frame duration field (in seconds) is the true reference.\n# progress_report_obj.callv(progress_report_method, progress_report_args) is\n#  called after each frame is handled.\nfunc export_animation(\n\t_frames: Array,\n\t_fps_hint: float,\n\t_progress_report_obj: Object,\n\t_progress_report_method,\n\t_progress_report_args,\n\t_export_file: FileAccess = null\n) -> PackedByteArray:\n\tawait RenderingServer.frame_post_draw\n\treturn PackedByteArray()\n"
  },
  {
    "path": "addons/aimg_io/base_exporter.gd.uid",
    "content": "uid://bdwn6srcjn2rk\n"
  },
  {
    "path": "addons/aimg_io/crc32.gd",
    "content": "@tool\nclass_name AImgIOCRC32\nextends Resource\n# CRC32 implementation that uses a Resource for better caching\n\nconst INIT = 0xFFFFFFFF\n\n# The reversed polynomial.\n@export var reversed_polynomial: int = 0xEDB88320\n\n# The mask (and initialization value).\n@export var mask: int = 0xFFFFFFFF\n\nvar crc32_table = []\nvar _table_init_mutex: Mutex = Mutex.new()\nvar _table_initialized: bool = false\n\n\n# Ensures the CRC32's cached part is ready.\n# Should be called very infrequently, definitely not in an inner loop.\nfunc ensure_ready():\n\t_table_init_mutex.lock()\n\tif not _table_initialized:\n\t\t# Calculate CRC32 table.\n\t\tvar range8 := range(8)\n\t\tfor i in range(256):\n\t\t\tvar crc := i\n\t\t\tfor j in range8:\n\t\t\t\tif (crc & 1) != 0:\n\t\t\t\t\tcrc = (crc >> 1) ^ reversed_polynomial\n\t\t\t\telse:\n\t\t\t\t\tcrc >>= 1\n\t\t\tcrc32_table.push_back(crc & mask)\n\t\t_table_initialized = true\n\t_table_init_mutex.unlock()\n\n\n# Performs the update step of CRC32 over some bytes.\n# Note that this is not the whole story.\n# The CRC must be initialized to 0xFFFFFFFF, then updated, then bitwise-inverted.\nfunc update(crc: int, data: PackedByteArray) -> int:\n\tvar i := 0\n\tvar l := len(data)\n\twhile i < l:\n\t\tvar lb := data[i] ^ (crc & 0xFF)\n\t\tcrc = crc32_table[lb] ^ (crc >> 8)\n\t\ti += 1\n\treturn crc\n\n\n# Finishes the CRC by XORing it with the mask.\nfunc end(crc: int) -> int:\n\treturn crc ^ mask\n"
  },
  {
    "path": "addons/aimg_io/crc32.gd.uid",
    "content": "uid://bdrwi3rt1gvr6\n"
  },
  {
    "path": "addons/aimg_io/editor_plugin.gd",
    "content": "@tool\nextends EditorPlugin\n\nvar apng_importer\n\n\nfunc _enter_tree():\n\tapng_importer = AImgIOAPNGImportPlugin.new()\n\tadd_import_plugin(apng_importer)\n\n\nfunc _exit_tree():\n\tremove_import_plugin(apng_importer)\n\tapng_importer = null\n"
  },
  {
    "path": "addons/aimg_io/editor_plugin.gd.uid",
    "content": "uid://boneu1kl2wxj0\n"
  },
  {
    "path": "addons/aimg_io/frame.gd",
    "content": "@tool\nclass_name AImgIOFrame\nextends RefCounted\n# Represents a variable-timed frame of an animation.\n# Typically stuffed into an array.\n\n# Content of the frame.\n# WARNING: Exporters expect this to be FORMAT_RGBA8.\n# This is because otherwise they'd have to copy it or convert it in place.\n# Both of those are bad ideas, so thus this.\nvar content: Image\n\n# Time in seconds this frame lasts for.\nvar duration: float = 0.1\n"
  },
  {
    "path": "addons/aimg_io/frame.gd.uid",
    "content": "uid://cdkek8njpjk20\n"
  },
  {
    "path": "addons/aimg_io/plugin.cfg",
    "content": "[plugin]\nname=\"AImgIO\"\ndescription=\"Animated image I/O (as part of ISLE.APNG-LOAD)\"\nauthor=\"20kdc\"\nversion=\"0.1\"\nscript=\"editor_plugin.gd\"\n"
  },
  {
    "path": "addons/applinks/applinks.gd",
    "content": "extends Node\n\nsignal data_received(data: String)\n\nconst CUSTOM_MANIFEST_ACTIVITY_ELEMENT := \"\"\"\n\t<!-- Lospec‑palette deep link handler -->\n\t<intent-filter android:autoVerify=\"true\">\n\t\t<action android:name=\"android.intent.action.VIEW\"/>\n\t\t<category android:name=\"android.intent.category.DEFAULT\"/>\n\t\t<category android:name=\"android.intent.category.BROWSABLE\"/>\n\t\t<data android:scheme=\"lospec-palette\"/>\n\t</intent-filter>\n\n\t<!-- Image & PXO files handler -->\n\t<intent-filter android:autoVerify=\"true\">\n\t\t<action android:name=\"android.intent.action.VIEW\"/>\n\t\t<category android:name=\"android.intent.category.DEFAULT\"/>\n\t\t<category android:name=\"android.intent.category.BROWSABLE\"/>\n\t\t<data android:scheme=\"file\"/>\n\t\t<data android:scheme=\"content\"/>\n\t\t<data android:mimeType=\"image/png\"/>\n\t\t<data android:mimeType=\"image/jpeg\"/>\n\t\t<data android:mimeType=\"image/webp\"/>\n\t\t<data android:mimeType=\"image/gif\"/>\n\t\t<data android:mimeType=\"application/x-pixelorama\"/>\n\t\t<data android:pathPattern=\".*\\\\.pxo\"/>\n\t</intent-filter>\n\"\"\"\nconst SINGLETON_NAME := \"Applinks\"\nconst PLUGIN_NAME := \"applinks\"\n\nvar applinks\n\n\nfunc _ready() -> void:\n\tif Engine.has_singleton(PLUGIN_NAME):\n\t\tapplinks = Engine.get_singleton(PLUGIN_NAME)\n\telif OS.has_feature(\"android\"):\n\t\tprinterr(\"Couldn't find plugin \" + PLUGIN_NAME)\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_APPLICATION_RESUMED and OS.has_feature(\"android\"):\n\t\tvar url := get_data()\n\t\tif not url.is_empty():\n\t\t\tdata_received.emit(url)\n\n\nfunc get_data() -> String:\n\tif applinks == null:\n\t\tprinterr(\"Couldn't find plugin \" + PLUGIN_NAME)\n\t\treturn \"\"\n\n\tvar data = applinks.getData()\n\tif data == null:\n\t\treturn \"\"\n\treturn data\n\n\nfunc get_file_from_content_uri(uri: String) -> String:\n\tif applinks == null:\n\t\tprinterr(\"Couldn't find plugin \" + PLUGIN_NAME)\n\t\treturn \"\"\n\tvar data = applinks.getFileFromContentUri(uri)\n\tif data == null:\n\t\treturn \"\"\n\treturn data\n"
  },
  {
    "path": "addons/applinks/applinks.gd.uid",
    "content": "uid://bwxc40knpboql\n"
  },
  {
    "path": "addons/applinks/export_plugin.gd",
    "content": "@tool\nextends EditorPlugin\n\nconst APPLINKS_SCRIPT_PATH := \"res://addons/applinks/applinks.gd\"\nconst APPLINKS_SCRIPT := preload(APPLINKS_SCRIPT_PATH)\n\n# A class member to hold the editor export plugin during its lifecycle.\nvar export_plugin: AndroidExportPlugin\n\n\nclass AndroidExportPlugin:\n\textends EditorExportPlugin\n\tvar _plugin_name := \"applinks\"\n\n\tfunc _supports_platform(platform: EditorExportPlatform) -> bool:\n\t\tif platform is EditorExportPlatformAndroid:\n\t\t\treturn true\n\t\treturn false\n\n\tfunc _get_android_libraries(_platform: EditorExportPlatform, debug: bool) -> PackedStringArray:\n\t\tif debug:\n\t\t\treturn PackedStringArray([_plugin_name + \"/bin/debug/\" + _plugin_name + \"-debug.aar\"])\n\t\telse:\n\t\t\treturn PackedStringArray(\n\t\t\t\t[_plugin_name + \"/bin/release/\" + _plugin_name + \"-release.aar\"]\n\t\t\t)\n\n\tfunc _get_android_manifest_activity_element_contents(\n\t\t_platform: EditorExportPlatform, _debug: bool\n\t) -> String:\n\t\treturn APPLINKS_SCRIPT.CUSTOM_MANIFEST_ACTIVITY_ELEMENT\n\n\tfunc _get_name() -> String:\n\t\treturn APPLINKS_SCRIPT.PLUGIN_NAME\n\n\nfunc _enter_tree() -> void:\n\t# Initialization of the plugin goes here.\n\texport_plugin = AndroidExportPlugin.new()\n\tadd_export_plugin(export_plugin)\n\tadd_autoload_singleton(APPLINKS_SCRIPT.SINGLETON_NAME, APPLINKS_SCRIPT_PATH)\n\n\nfunc _exit_tree() -> void:\n\t# Clean-up of the plugin goes here.\n\tremove_autoload_singleton(APPLINKS_SCRIPT.SINGLETON_NAME)\n\tremove_export_plugin(export_plugin)\n\texport_plugin = null\n"
  },
  {
    "path": "addons/applinks/export_plugin.gd.uid",
    "content": "uid://cpinlu8bjvfq4\n"
  },
  {
    "path": "addons/applinks/plugin.cfg",
    "content": "[plugin]\n\nname=\"Applinks\"\ndescription=\"Godot Android Plugin (4.2+) for getting intent data for App Links\"\nauthor=\"FoolLin\"\nversion=\"1.0\"\nscript=\"export_plugin.gd\"\n"
  },
  {
    "path": "addons/dockable_container/LICENSE",
    "content": "Creative Commons Legal Code\n\nCC0 1.0 Universal\n\n    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE\n    LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN\n    ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS\n    INFORMATION ON AN \"AS-IS\" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES\n    REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS\n    PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM\n    THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED\n    HEREUNDER.\n\nStatement of Purpose\n\nThe laws of most jurisdictions throughout the world automatically confer\nexclusive Copyright and Related Rights (defined below) upon the creator\nand subsequent owner(s) (each and all, an \"owner\") of an original work of\nauthorship and/or a database (each, a \"Work\").\n\nCertain owners wish to permanently relinquish those rights to a Work for\nthe purpose of contributing to a commons of creative, cultural and\nscientific works (\"Commons\") that the public can reliably and without fear\nof later claims of infringement build upon, modify, incorporate in other\nworks, reuse and redistribute as freely as possible in any form whatsoever\nand for any purposes, including without limitation commercial purposes.\nThese owners may contribute to the Commons to promote the ideal of a free\nculture and the further production of creative, cultural and scientific\nworks, or to gain reputation or greater distribution for their Work in\npart through the use and efforts of others.\n\nFor these and/or other purposes and motivations, and without any\nexpectation of additional consideration or compensation, the person\nassociating CC0 with a Work (the \"Affirmer\"), to the extent that he or she\nis an owner of Copyright and Related Rights in the Work, voluntarily\nelects to apply CC0 to the Work and publicly distribute the Work under its\nterms, with knowledge of his or her Copyright and Related Rights in the\nWork and the meaning and intended legal effect of CC0 on those rights.\n\n1. Copyright and Related Rights. A Work made available under CC0 may be\nprotected by copyright and related or neighboring rights (\"Copyright and\nRelated Rights\"). Copyright and Related Rights include, but are not\nlimited to, the following:\n\n  i. the right to reproduce, adapt, distribute, perform, display,\n     communicate, and translate a Work;\n ii. moral rights retained by the original author(s) and/or performer(s);\niii. publicity and privacy rights pertaining to a person's image or\n     likeness depicted in a Work;\n iv. rights protecting against unfair competition in regards to a Work,\n     subject to the limitations in paragraph 4(a), below;\n  v. rights protecting the extraction, dissemination, use and reuse of data\n     in a Work;\n vi. database rights (such as those arising under Directive 96/9/EC of the\n     European Parliament and of the Council of 11 March 1996 on the legal\n     protection of databases, and under any national implementation\n     thereof, including any amended or successor version of such\n     directive); and\nvii. other similar, equivalent or corresponding rights throughout the\n     world based on applicable law or treaty, and any national\n     implementations thereof.\n\n2. Waiver. To the greatest extent permitted by, but not in contravention\nof, applicable law, Affirmer hereby overtly, fully, permanently,\nirrevocably and unconditionally waives, abandons, and surrenders all of\nAffirmer's Copyright and Related Rights and associated claims and causes\nof action, whether now known or unknown (including existing as well as\nfuture claims and causes of action), in the Work (i) in all territories\nworldwide, (ii) for the maximum duration provided by applicable law or\ntreaty (including future time extensions), (iii) in any current or future\nmedium and for any number of copies, and (iv) for any purpose whatsoever,\nincluding without limitation commercial, advertising or promotional\npurposes (the \"Waiver\"). Affirmer makes the Waiver for the benefit of each\nmember of the public at large and to the detriment of Affirmer's heirs and\nsuccessors, fully intending that such Waiver shall not be subject to\nrevocation, rescission, cancellation, termination, or any other legal or\nequitable action to disrupt the quiet enjoyment of the Work by the public\nas contemplated by Affirmer's express Statement of Purpose.\n\n3. Public License Fallback. Should any part of the Waiver for any reason\nbe judged legally invalid or ineffective under applicable law, then the\nWaiver shall be preserved to the maximum extent permitted taking into\naccount Affirmer's express Statement of Purpose. In addition, to the\nextent the Waiver is so judged Affirmer hereby grants to each affected\nperson a royalty-free, non transferable, non sublicensable, non exclusive,\nirrevocable and unconditional license to exercise Affirmer's Copyright and\nRelated Rights in the Work (i) in all territories worldwide, (ii) for the\nmaximum duration provided by applicable law or treaty (including future\ntime extensions), (iii) in any current or future medium and for any number\nof copies, and (iv) for any purpose whatsoever, including without\nlimitation commercial, advertising or promotional purposes (the\n\"License\"). The License shall be deemed effective as of the date CC0 was\napplied by Affirmer to the Work. Should any part of the License for any\nreason be judged legally invalid or ineffective under applicable law, such\npartial invalidity or ineffectiveness shall not invalidate the remainder\nof the License, and in such case Affirmer hereby affirms that he or she\nwill not (i) exercise any of his or her remaining Copyright and Related\nRights in the Work or (ii) assert any associated claims and causes of\naction with respect to the Work, in either case contrary to Affirmer's\nexpress Statement of Purpose.\n\n4. Limitations and Disclaimers.\n\n a. No trademark or patent rights held by Affirmer are waived, abandoned,\n    surrendered, licensed or otherwise affected by this document.\n b. Affirmer offers the Work as-is and makes no representations or\n    warranties of any kind concerning the Work, express, implied,\n    statutory or otherwise, including without limitation warranties of\n    title, merchantability, fitness for a particular purpose, non\n    infringement, or the absence of latent or other defects, accuracy, or\n    the present or absence of errors, whether or not discoverable, all to\n    the greatest extent permissible under applicable law.\n c. Affirmer disclaims responsibility for clearing rights of other persons\n    that may apply to the Work or any use thereof, including without\n    limitation any person's Copyright and Related Rights in the Work.\n    Further, Affirmer disclaims responsibility for obtaining any necessary\n    consents, permissions or other rights required for any use of the\n    Work.\n d. Affirmer understands and acknowledges that Creative Commons is not a\n    party to this document and has no duty or obligation with respect to\n    this CC0 or use of the Work.\n"
  },
  {
    "path": "addons/dockable_container/dockable_container.gd",
    "content": "@tool\nclass_name DockableContainer\nextends Container\n\nconst SplitHandle := preload(\"split_handle.gd\")\nconst DockablePanel := preload(\"dockable_panel.gd\")\nconst DragNDropPanel := preload(\"drag_n_drop_panel.gd\")\n\n@export var tab_alignment := TabBar.ALIGNMENT_CENTER:\n\tget:\n\t\treturn _tab_align\n\tset(value):\n\t\t_tab_align = value\n\t\tfor i in range(1, _panel_container.get_child_count()):\n\t\t\tvar panel := _panel_container.get_child(i) as DockablePanel\n\t\t\tpanel.tab_alignment = value\n@export var use_hidden_tabs_for_min_size := false:\n\tget:\n\t\treturn _use_hidden_tabs_for_min_size\n\tset(value):\n\t\t_use_hidden_tabs_for_min_size = value\n\t\tfor i in range(1, _panel_container.get_child_count()):\n\t\t\tvar panel := _panel_container.get_child(i) as DockablePanel\n\t\t\tpanel.use_hidden_tabs_for_min_size = value\n@export var tabs_visible := true:\n\tget:\n\t\treturn _tabs_visible\n\tset(value):\n\t\t_tabs_visible = value\n\t\tfor i in range(1, _panel_container.get_child_count()):\n\t\t\tvar panel := _panel_container.get_child(i) as DockablePanel\n\t\t\tpanel.show_tabs = _tabs_visible\n## If [code]true[/code] and a panel only has one tab, it keeps that tab hidden even if\n## [member tabs_visible] is [code]true[/code].\n## Only takes effect is [member tabs_visible] is [code]true[/code].\n@export var hide_single_tab := false:\n\tget:\n\t\treturn _hide_single_tab\n\tset(value):\n\t\t_hide_single_tab = value\n\t\tfor i in range(1, _panel_container.get_child_count()):\n\t\t\tvar panel := _panel_container.get_child(i) as DockablePanel\n\t\t\tpanel.hide_single_tab = _hide_single_tab\n\t\tqueue_sort()\n@export var rearrange_group := 0\n@export var layout := DockableLayout.new():\n\tget:\n\t\treturn _layout\n\tset(value):\n\t\tset_layout(value)\n## If `clone_layout_on_ready` is true, `layout` will be cloned checked `_ready`.\n## This is useful for leaving layout Resources untouched in case you want to\n## restore layout to its default later.\n@export var clone_layout_on_ready := true\n\nvar _layout := DockableLayout.new()\nvar _panel_container := Container.new()\nvar _windows_container := Container.new()\nvar _split_container := Container.new()\nvar _drag_n_drop_panel := DragNDropPanel.new()\nvar _drag_panel: DockablePanel\nvar _tab_align := TabBar.ALIGNMENT_CENTER\nvar _tabs_visible := true\nvar _use_hidden_tabs_for_min_size := false\nvar _hide_single_tab := false\nvar _current_panel_index := 0\nvar _current_split_index := 0\nvar _children_names := {}\nvar _layout_dirty := false\n\n\nfunc _init() -> void:\n\tchild_entered_tree.connect(_child_entered_tree)\n\tchild_exiting_tree.connect(_child_exiting_tree)\n\n\nfunc _ready() -> void:\n\tset_process_input(false)\n\t_panel_container.name = \"_panel_container\"\n\tadd_child(_panel_container)\n\tmove_child(_panel_container, 0)\n\t_split_container.name = \"_split_container\"\n\t_split_container.mouse_filter = MOUSE_FILTER_PASS\n\t_panel_container.add_child(_split_container)\n\t_windows_container.name = \"_windows_container\"\n\tget_parent().call_deferred(\"add_child\", _windows_container)\n\n\t_drag_n_drop_panel.name = \"_drag_n_drop_panel\"\n\t_drag_n_drop_panel.mouse_filter = MOUSE_FILTER_PASS\n\t_drag_n_drop_panel.visible = false\n\tadd_child(_drag_n_drop_panel)\n\n\tif not _layout:\n\t\tset_layout(null)\n\telif clone_layout_on_ready and not Engine.is_editor_hint():\n\t\tset_layout(_layout.clone())\n\n\nfunc _notification(what: int) -> void:\n\tmatch what:\n\t\tNOTIFICATION_SORT_CHILDREN:\n\t\t\t_resort()\n\t\tNOTIFICATION_DRAG_BEGIN:\n\t\t\tif not _can_handle_drag_data(get_viewport().gui_get_drag_data()):\n\t\t\t\treturn\n\t\t\tif hide_single_tab:  # Moveable Panels is disabled\n\t\t\t\treturn\n\t\t\t_drag_n_drop_panel.set_enabled(true, not _layout.root.is_empty())\n\t\t\tset_process_input(true)\n\t\tNOTIFICATION_DRAG_END:\n\t\t\t_drag_n_drop_panel.set_enabled(false)\n\t\t\tset_process_input(false)\n\t\tNOTIFICATION_TRANSLATION_CHANGED:\n\t\t\t# This is needed when switching to a language with a different layout,\n\t\t\t# such as from a LTR to a RTL language and vice versa.\n\t\t\t_resort.call_deferred()\n\n\nfunc _input(event: InputEvent) -> void:\n\tassert(get_viewport().gui_is_dragging(), \"FIXME: should only be called when dragging\")\n\tif event is InputEventMouseMotion:\n\t\tvar local_position := get_local_mouse_position()\n\t\tvar panel: DockablePanel\n\t\tfor i in range(1, _panel_container.get_child_count()):\n\t\t\tvar p := _panel_container.get_child(i) as DockablePanel\n\t\t\tif p.get_rect().has_point(local_position):\n\t\t\t\tpanel = p\n\t\t\t\tbreak\n\t\t_drag_panel = panel\n\t\tif not panel:\n\t\t\treturn\n\t\tfit_child_in_rect(_drag_n_drop_panel, panel.get_child_rect())\n\n\nfunc _child_entered_tree(node: Node) -> void:\n\tif node == _panel_container or node == _drag_n_drop_panel:\n\t\treturn\n\t_drag_n_drop_panel.move_to_front()\n\t_track_and_add_node(node)\n\n\nfunc _child_exiting_tree(node: Node) -> void:\n\tif node == _panel_container or node == _drag_n_drop_panel:\n\t\treturn\n\t_untrack_node(node)\n\n\nfunc _can_drop_data(_position: Vector2, data) -> bool:\n\treturn _can_handle_drag_data(data)\n\n\nfunc _drop_data(_position: Vector2, data) -> void:\n\tvar from_node := get_node(data.from_path)\n\tif from_node is TabBar:\n\t\tfrom_node = from_node.get_parent()\n\tif from_node == _drag_panel and _drag_panel.get_child_count() == 1:\n\t\treturn\n\tvar tab_index = data.tabc_element if data.has(\"tabc_element\") else data.tab_index\n\tvar moved_tab = from_node.get_tab_control(tab_index)\n\tif moved_tab is DockableReferenceControl:\n\t\tmoved_tab = moved_tab.reference_to\n\tif not _is_managed_node(moved_tab):\n\t\tmoved_tab.get_parent().remove_child(moved_tab)\n\t\tadd_child(moved_tab)\n\n\tif _drag_panel != null:\n\t\tvar margin := _drag_n_drop_panel.get_hover_margin()\n\t\t_layout.split_leaf_with_node(_drag_panel.leaf, moved_tab, margin)\n\n\t_layout_dirty = true\n\tqueue_sort()\n\n\nfunc _add_floating_options(tab_container: DockablePanel) -> void:\n\tvar options := PopupMenu.new()\n\toptions.add_item(\"Make Floating\")\n\toptions.id_pressed.connect(_toggle_floating.bind(tab_container))\n\toptions.size.y = 0\n\t_windows_container.add_child(options)\n\ttab_container.set_popup(options)\n\n\n## Required when converting a window back to panel.\nfunc _refresh_tabs_visible() -> void:\n\tif tabs_visible:\n\t\ttabs_visible = false\n\t\tawait get_tree().process_frame\n\t\tawait get_tree().process_frame\n\t\ttabs_visible = true\n\n\nfunc _toggle_floating(_id: int, tab_container: DockablePanel) -> void:\n\tvar node_name := tab_container.get_tab_title(tab_container.current_tab)\n\tvar node := get_node(node_name)\n\tif is_instance_valid(node):\n\t\tvar tab_position := maxi(tab_container.leaf.find_child(node), 0)\n\t\t_convert_to_window(node, {\"tab_position\": tab_position, \"tab_container\": tab_container})\n\telse:\n\t\tprint(\"Node \", node_name, \" not found!\")\n\n\n## Converts a panel to floating window.\nfunc _convert_to_window(content: Control, previous_data := {}) -> void:\n\tvar old_owner := content.owner\n\tvar data := {}\n\tif content.name in layout.windows:\n\t\tdata = layout.windows[content.name]\n\tvar window := FloatingWindow.new(content, data)\n\t_windows_container.add_child(window)\n\twindow.show()\n\t_refresh_tabs_visible()\n\twindow.close_requested.connect(_convert_to_panel.bind(window, old_owner, previous_data))\n\twindow.data_changed.connect(layout.save_window_properties)\n\n\n## Converts a floating window into a panel.\nfunc _convert_to_panel(window: FloatingWindow, old_owner: Node, previous_data := {}) -> void:\n\tvar content := window.window_content\n\twindow.remove_child(content)\n\twindow.destroy()\n\tadd_child(content)\n\tcontent.owner = old_owner\n\tif previous_data.has(\"tab_container\") and is_instance_valid(previous_data[\"tab_container\"]):\n\t\tvar tab_position := previous_data.get(\"tab_position\", 0) as int\n\t\tprevious_data[\"tab_container\"].leaf.insert_node(tab_position, content)\n\t_refresh_tabs_visible()\n\n\nfunc set_control_as_current_tab(control: Control) -> void:\n\tassert(\n\t\tcontrol.get_parent_control() == self,\n\t\t\"Trying to focus a control not managed by this container\"\n\t)\n\tif is_control_hidden(control):\n\t\tpush_warning(\"Trying to focus a hidden control\")\n\t\treturn\n\tvar leaf := _layout.get_leaf_for_node(control)\n\tif not leaf:\n\t\treturn\n\tvar position_in_leaf := leaf.find_child(control)\n\tif position_in_leaf < 0:\n\t\treturn\n\tvar panel: DockablePanel\n\tfor i in range(1, _panel_container.get_child_count()):\n\t\tvar p := _panel_container.get_child(i) as DockablePanel\n\t\tif p.leaf == leaf:\n\t\t\tpanel = p\n\t\t\tbreak\n\tif not panel:\n\t\treturn\n\tpanel.current_tab = clampi(position_in_leaf, 0, panel.get_tab_count() - 1)\n\n\nfunc set_layout(value: DockableLayout) -> void:\n\tif value == null:\n\t\tvalue = DockableLayout.new()\n\tif value == _layout:\n\t\treturn\n\tif _layout and _layout.changed.is_connected(queue_sort):\n\t\t_layout.changed.disconnect(queue_sort)\n\t_layout = value\n\t_layout.changed.connect(queue_sort)\n\tfor window in _windows_container.get_children():\n\t\tif not window.name in _layout.windows and window is FloatingWindow:\n\t\t\twindow.prevent_data_erasure = true  # We don't want to delete data.\n\t\t\twindow.close_requested.emit()  # Removes the window.\n\t\t\tcontinue\n\tfor window: String in _layout.windows.keys():\n\t\tvar panel := find_child(window, false)\n\t\t# Only those windows get created which were not previously created.\n\t\tif panel:\n\t\t\t_convert_to_window(panel)\n\t_layout_dirty = true\n\tqueue_sort()\n\n\nfunc set_use_hidden_tabs_for_min_size(value: bool) -> void:\n\t_use_hidden_tabs_for_min_size = value\n\tfor i in range(1, _panel_container.get_child_count()):\n\t\tvar panel := _panel_container.get_child(i) as DockablePanel\n\t\tpanel.use_hidden_tabs_for_min_size = value\n\n\nfunc get_use_hidden_tabs_for_min_size() -> bool:\n\treturn _use_hidden_tabs_for_min_size\n\n\nfunc set_control_hidden(child: Control, is_hidden: bool) -> void:\n\t_layout.set_node_hidden(child, is_hidden)\n\n\nfunc is_control_hidden(child: Control) -> bool:\n\treturn _layout.is_node_hidden(child)\n\n\nfunc get_tabs() -> Array[Control]:\n\tvar tabs: Array[Control] = []\n\tfor i in get_child_count():\n\t\tvar child := get_child(i)\n\t\tif _is_managed_node(child):\n\t\t\ttabs.append(child)\n\treturn tabs\n\n\nfunc get_tab_count() -> int:\n\tvar count := 0\n\tfor i in get_child_count():\n\t\tvar child := get_child(i)\n\t\tif _is_managed_node(child):\n\t\t\tcount += 1\n\treturn count\n\n\nfunc _can_handle_drag_data(data) -> bool:\n\tif data is Dictionary and data.get(\"type\") in [\"tab_container_tab\", \"tabc_element\", \"tab\"]:\n\t\tvar tabc := get_node_or_null(data.get(\"from_path\"))\n\t\treturn (\n\t\t\ttabc\n\t\t\tand tabc.has_method(\"get_tabs_rearrange_group\")\n\t\t\tand tabc.get_tabs_rearrange_group() == rearrange_group\n\t\t)\n\treturn false\n\n\nfunc _is_managed_node(node: Node) -> bool:\n\treturn (\n\t\tnode.get_parent() == self\n\t\tand node != _panel_container\n\t\tand node != _drag_n_drop_panel\n\t\tand node is Control\n\t\tand not node.top_level\n\t)\n\n\nfunc _update_layout_with_children() -> void:\n\tvar names := PackedStringArray()\n\t_children_names.clear()\n\tfor i in range(1, get_child_count() - 1):\n\t\tvar c := get_child(i)\n\t\tif _track_node(c):\n\t\t\tnames.append(c.name)\n\t_layout.update_nodes(names)\n\t_layout_dirty = false\n\n\nfunc _track_node(node: Node) -> bool:\n\tif not _is_managed_node(node):\n\t\treturn false\n\t_children_names[node] = node.name\n\t_children_names[node.name] = node\n\tif not node.renamed.is_connected(_on_child_renamed):\n\t\tnode.renamed.connect(_on_child_renamed.bind(node))\n\tif not node.tree_exiting.is_connected(_untrack_node):\n\t\tnode.tree_exiting.connect(_untrack_node.bind(node))\n\treturn true\n\n\nfunc _track_and_add_node(node: Node) -> void:\n\tvar tracked_name = _children_names.get(node)\n\tif not _track_node(node):\n\t\treturn\n\tif tracked_name and tracked_name != node.name:\n\t\t_layout.rename_node(tracked_name, node.name)\n\t_layout_dirty = true\n\n\nfunc _untrack_node(node: Node) -> void:\n\t_children_names.erase(node)\n\t_children_names.erase(node.name)\n\tif node.renamed.is_connected(_on_child_renamed):\n\t\tnode.renamed.disconnect(_on_child_renamed)\n\tif node.tree_exiting.is_connected(_untrack_node):\n\t\tnode.tree_exiting.disconnect(_untrack_node)\n\t_layout_dirty = true\n\n\nfunc _resort() -> void:\n\tassert(_panel_container, \"FIXME: resorting without _panel_container\")\n\tif _panel_container.get_index() != 0:\n\t\tmove_child(_panel_container, 0)\n\tif _drag_n_drop_panel.get_index() < get_child_count() - 1:\n\t\t_drag_n_drop_panel.move_to_front()\n\n\tif _layout_dirty:\n\t\t_update_layout_with_children()\n\n\tvar rect := Rect2(Vector2.ZERO, size)\n\tfit_child_in_rect(_panel_container, rect)\n\t_panel_container.fit_child_in_rect(_split_container, rect)\n\n\t_current_panel_index = 1\n\t_current_split_index = 0\n\n\tvar children_list := []\n\t_calculate_panel_and_split_list(children_list, _layout.root)\n\t_fit_panel_and_split_list_to_rect(children_list, rect)\n\n\t_untrack_children_after(_panel_container, _current_panel_index)\n\t_untrack_children_after(_split_container, _current_split_index)\n\n\n## Calculate DockablePanel and SplitHandle minimum sizes, skipping empty\n## branches.\n##\n## Returns a DockablePanel checked non-empty leaves, a SplitHandle checked non-empty\n## splits, `null` if the whole branch is empty and no space should be used.\n##\n## `result` will be filled with the non-empty nodes in this post-order tree\n## traversal.\nfunc _calculate_panel_and_split_list(result: Array, layout_node: DockableLayoutNode):\n\tif layout_node is DockableLayoutPanel:\n\t\tvar nodes: Array[Control] = []\n\t\tfor n in layout_node.names:\n\t\t\tvar node: Control = _children_names.get(n)\n\t\t\tif node:\n\t\t\t\tassert(node is Control, \"FIXME: node is not a control %s\" % node)\n\t\t\t\tassert(\n\t\t\t\t\tnode.get_parent_control() == self,\n\t\t\t\t\t\"FIXME: node is not child of container %s\" % node\n\t\t\t\t)\n\t\t\t\tif is_control_hidden(node):\n\t\t\t\t\tnode.visible = false\n\t\t\t\telse:\n\t\t\t\t\tnodes.append(node)\n\t\tif nodes.is_empty():\n\t\t\treturn null\n\t\telse:\n\t\t\tvar panel := _get_panel(_current_panel_index)\n\t\t\t_current_panel_index += 1\n\t\t\tpanel.track_nodes(nodes, layout_node)\n\t\t\tresult.append(panel)\n\t\t\treturn panel\n\telif layout_node is DockableLayoutSplit:\n\t\t# by processing `second` before `first`, traversing `result` from back\n\t\t# to front yields a nice pre-order tree traversal\n\t\tvar second_result = _calculate_panel_and_split_list(result, layout_node.second)\n\t\tvar first_result = _calculate_panel_and_split_list(result, layout_node.first)\n\t\tif first_result and second_result:\n\t\t\tvar split := _get_split(_current_split_index)\n\t\t\t_current_split_index += 1\n\t\t\tsplit.layout_split = layout_node\n\t\t\tsplit.first_minimum_size = first_result.get_layout_minimum_size()\n\t\t\tsplit.second_minimum_size = second_result.get_layout_minimum_size()\n\t\t\tresult.append(split)\n\t\t\treturn split\n\t\telif first_result:\n\t\t\treturn first_result\n\t\telse:  # NOTE: this returns null if `second_result` is null\n\t\t\treturn second_result\n\telse:\n\t\tpush_warning(\"FIXME: invalid Resource, should be branch or leaf, found %s\" % layout_node)\n\n\n## Traverse list from back to front fitting controls where they belong.\n##\n## Be sure to call this with the result from `_calculate_split_minimum_sizes`.\nfunc _fit_panel_and_split_list_to_rect(panel_and_split_list: Array, rect: Rect2) -> void:\n\tvar control = panel_and_split_list.pop_back()\n\tif control is DockablePanel:\n\t\t_panel_container.fit_child_in_rect(control, rect)\n\telif control is SplitHandle:\n\t\tvar split_rects = control.get_split_rects(rect)\n\t\t_split_container.fit_child_in_rect(control, split_rects[\"self\"])\n\t\t_fit_panel_and_split_list_to_rect(panel_and_split_list, split_rects[\"first\"])\n\t\t_fit_panel_and_split_list_to_rect(panel_and_split_list, split_rects[\"second\"])\n\n\n## Get the idx'th DockablePanel, reusing an instanced one if possible\nfunc _get_panel(idx: int) -> DockablePanel:\n\tassert(_panel_container, \"FIXME: creating panel without _panel_container\")\n\tif idx < _panel_container.get_child_count():\n\t\treturn _panel_container.get_child(idx)\n\tvar panel := DockablePanel.new()\n\tpanel.tab_alignment = _tab_align\n\tpanel.show_tabs = _tabs_visible\n\tpanel.hide_single_tab = _hide_single_tab\n\tpanel.use_hidden_tabs_for_min_size = _use_hidden_tabs_for_min_size\n\tpanel.set_tabs_rearrange_group(maxi(0, rearrange_group))\n\t_add_floating_options(panel)\n\t_panel_container.add_child(panel)\n\tpanel.tab_layout_changed.connect(_on_panel_tab_layout_changed.bind(panel))\n\treturn panel\n\n\n## Get the idx'th SplitHandle, reusing an instanced one if possible\nfunc _get_split(idx: int) -> SplitHandle:\n\tassert(_split_container, \"FIXME: creating split without _split_container\")\n\tif idx < _split_container.get_child_count():\n\t\treturn _split_container.get_child(idx)\n\tvar split := SplitHandle.new()\n\t_split_container.add_child(split)\n\treturn split\n\n\n## Helper for removing and freeing all remaining children from node\nfunc _untrack_children_after(node: Control, idx: int) -> void:\n\tfor i in range(idx, node.get_child_count()):\n\t\tvar child := node.get_child(idx)\n\t\tnode.remove_child(child)\n\t\tchild.queue_free()\n\n\n## Handler for `DockablePanel.tab_layout_changed`, update its DockableLayoutPanel\nfunc _on_panel_tab_layout_changed(tab: int, panel: DockablePanel) -> void:\n\t_layout_dirty = true\n\tvar control := panel.get_tab_control(tab)\n\tif control is DockableReferenceControl:\n\t\tcontrol = control.reference_to\n\tif not _is_managed_node(control):\n\t\tcontrol.get_parent().remove_child(control)\n\t\tadd_child(control)\n\t_layout.move_node_to_leaf(control, panel.leaf, tab)\n\tqueue_sort()\n\n\n## Handler for `Node.renamed` signal, updates tracked name for node\nfunc _on_child_renamed(child: Node) -> void:\n\tvar old_name: String = _children_names.get(child)\n\tif old_name == str(child.name):\n\t\treturn\n\t_children_names.erase(old_name)\n\t_children_names[child] = child.name\n\t_children_names[child.name] = child\n\t_layout.rename_node(old_name, child.name)\n"
  },
  {
    "path": "addons/dockable_container/dockable_container.gd.uid",
    "content": "uid://bfi1mm158ge5l\n"
  },
  {
    "path": "addons/dockable_container/dockable_panel.gd",
    "content": "@tool\nextends TabContainer\n\nsignal tab_layout_changed(tab)\n\nvar leaf: DockableLayoutPanel:\n\tget:\n\t\treturn get_leaf()\n\tset(value):\n\t\tset_leaf(value)\nvar show_tabs := true:\n\tget:\n\t\treturn _show_tabs\n\tset(value):\n\t\t_show_tabs = value\n\t\t_handle_tab_visibility()\nvar hide_single_tab := false:\n\tget:\n\t\treturn _hide_single_tab\n\tset(value):\n\t\t_hide_single_tab = value\n\t\t_handle_tab_visibility()\n\nvar _leaf: DockableLayoutPanel\nvar _show_tabs := true\nvar _hide_single_tab := false\n\n\nfunc _ready() -> void:\n\tdrag_to_rearrange_enabled = true\n\n\nfunc _enter_tree() -> void:\n\tactive_tab_rearranged.connect(_on_tab_changed)\n\ttab_selected.connect(_on_tab_selected)\n\ttab_changed.connect(_on_tab_changed)\n\n\nfunc _exit_tree() -> void:\n\tactive_tab_rearranged.disconnect(_on_tab_changed)\n\ttab_selected.disconnect(_on_tab_selected)\n\ttab_changed.disconnect(_on_tab_changed)\n\tif is_instance_valid(get_popup()):\n\t\tget_popup().queue_free()\n\n\nfunc track_nodes(nodes: Array[Control], new_leaf: DockableLayoutPanel) -> void:\n\t_leaf = null  # avoid using previous leaf in tab_changed signals\n\tvar min_size := mini(nodes.size(), get_child_count())\n\t# remove spare children\n\tfor i in range(min_size, get_child_count()):\n\t\tvar child := get_child(min_size) as DockableReferenceControl\n\t\tchild.reference_to = null\n\t\tremove_child(child)\n\t\tchild.queue_free()\n\t# add missing children\n\tfor i in range(min_size, nodes.size()):\n\t\tvar ref_control := DockableReferenceControl.new()\n\t\tadd_child(ref_control)\n\tassert(nodes.size() == get_child_count(), \"FIXME\")\n\t# setup children\n\tfor i in nodes.size():\n\t\tvar ref_control := get_child(i) as DockableReferenceControl\n\t\tref_control.reference_to = nodes[i]\n\t\tset_tab_title(i, nodes[i].name)\n\tset_leaf(new_leaf)\n\t_handle_tab_visibility()\n\n\nfunc get_child_rect() -> Rect2:\n\tvar control := get_current_tab_control()\n\treturn Rect2(position + control.position, control.size)\n\n\nfunc set_leaf(value: DockableLayoutPanel) -> void:\n\tif get_tab_count() > 0 and value:\n\t\tcurrent_tab = clampi(value.current_tab, 0, get_tab_count() - 1)\n\t_leaf = value\n\n\nfunc get_leaf() -> DockableLayoutPanel:\n\treturn _leaf\n\n\nfunc get_layout_minimum_size() -> Vector2:\n\thide()\n\tshow()\n\treturn get_combined_minimum_size()\n\n\nfunc _on_tab_selected(tab: int) -> void:\n\tif _leaf:\n\t\t_leaf.current_tab = tab\n\n\nfunc _on_tab_changed(tab: int) -> void:\n\tif not _leaf:\n\t\treturn\n\tvar control := get_tab_control(tab)\n\tif not control:\n\t\treturn\n\tvar tab_name := control.name\n\tvar name_index_in_leaf := _leaf.find_name(tab_name)\n\tif name_index_in_leaf != tab:  # NOTE: this handles added tabs (index == -1)\n\t\ttab_layout_changed.emit(tab)\n\n\nfunc _handle_tab_visibility() -> void:\n\tif _hide_single_tab and get_tab_count() == 1:\n\t\ttabs_visible = false\n\telse:\n\t\ttabs_visible = _show_tabs\n"
  },
  {
    "path": "addons/dockable_container/dockable_panel.gd.uid",
    "content": "uid://xhj756ypkcs6\n"
  },
  {
    "path": "addons/dockable_container/dockable_panel_reference_control.gd",
    "content": "@tool\nclass_name DockableReferenceControl\nextends Container\n## Control that mimics its own visibility and rect into another Control.\n\nvar reference_to: Control:\n\tget:\n\t\treturn _reference_to\n\tset(control):\n\t\tif _reference_to != control:\n\t\t\tif is_instance_valid(_reference_to):\n\t\t\t\t_reference_to.renamed.disconnect(_on_reference_to_renamed)\n\t\t\t\t_reference_to.minimum_size_changed.disconnect(update_minimum_size)\n\t\t\t_reference_to = control\n\n\t\t\tminimum_size_changed.emit()\n\t\t\tif not is_instance_valid(_reference_to):\n\t\t\t\treturn\n\t\t\t_reference_to.renamed.connect(_on_reference_to_renamed)\n\t\t\t_reference_to.minimum_size_changed.connect(update_minimum_size)\n\t\t\t_reference_to.visible = visible\n\t\t\t_reposition_reference()\n\nvar _reference_to: Control = null\n\n\nfunc _ready() -> void:\n\tmouse_filter = MOUSE_FILTER_IGNORE\n\tset_notify_transform(true)\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_VISIBILITY_CHANGED and _reference_to:\n\t\t_reference_to.visible = visible\n\telif what == NOTIFICATION_TRANSFORM_CHANGED and _reference_to:\n\t\t_reposition_reference()\n\n\nfunc _get_minimum_size() -> Vector2:\n\treturn _reference_to.get_combined_minimum_size() if _reference_to else Vector2.ZERO\n\n\nfunc _reposition_reference() -> void:\n\t_reference_to.global_position = global_position\n\t_reference_to.set_deferred(\"size\", size)\n\n\nfunc _on_reference_to_renamed() -> void:\n\tname = _reference_to.name\n"
  },
  {
    "path": "addons/dockable_container/dockable_panel_reference_control.gd.uid",
    "content": "uid://dyuyvpm04q46k\n"
  },
  {
    "path": "addons/dockable_container/drag_n_drop_panel.gd",
    "content": "@tool\nextends Control\n\nenum { MARGIN_LEFT, MARGIN_RIGHT, MARGIN_TOP, MARGIN_BOTTOM, MARGIN_CENTER }\n\nconst DRAW_NOTHING := -1\nconst DRAW_CENTERED := -2\nconst MARGIN_NONE := -1\n\nvar _draw_margin := DRAW_NOTHING\nvar _should_split := false\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_MOUSE_EXIT:\n\t\t_draw_margin = DRAW_NOTHING\n\t\tqueue_redraw()\n\telif what == NOTIFICATION_MOUSE_ENTER and not _should_split:\n\t\t_draw_margin = DRAW_CENTERED\n\t\tqueue_redraw()\n\n\nfunc _gui_input(event: InputEvent) -> void:\n\tif _should_split and event is InputEventMouseMotion:\n\t\t_draw_margin = _find_hover_margin(event.position)\n\t\tqueue_redraw()\n\n\nfunc _draw() -> void:\n\tvar rect: Rect2\n\tif _draw_margin == DRAW_NOTHING:\n\t\treturn\n\telif _draw_margin == DRAW_CENTERED:\n\t\trect = Rect2(Vector2.ZERO, size)\n\telif _draw_margin == MARGIN_LEFT:\n\t\trect = Rect2(0, 0, size.x * 0.5, size.y)\n\telif _draw_margin == MARGIN_TOP:\n\t\trect = Rect2(0, 0, size.x, size.y * 0.5)\n\telif _draw_margin == MARGIN_RIGHT:\n\t\tvar half_width = size.x * 0.5\n\t\trect = Rect2(half_width, 0, half_width, size.y)\n\telif _draw_margin == MARGIN_BOTTOM:\n\t\tvar half_height = size.y * 0.5\n\t\trect = Rect2(0, half_height, size.x, half_height)\n\tvar stylebox := get_theme_stylebox(\"panel\", \"TooltipPanel\")\n\tdraw_style_box(stylebox, rect)\n\n\nfunc set_enabled(enabled: bool, should_split: bool = true) -> void:\n\tvisible = enabled\n\t_should_split = should_split\n\tif enabled:\n\t\t_draw_margin = DRAW_NOTHING\n\t\tqueue_redraw()\n\n\nfunc get_hover_margin() -> int:\n\treturn _draw_margin\n\n\nfunc _find_hover_margin(point: Vector2) -> int:\n\tvar half_size := size * 0.5\n\n\tvar left := point.distance_squared_to(Vector2(0, half_size.y))\n\tvar lesser := left\n\tvar lesser_margin := MARGIN_LEFT\n\n\tvar top := point.distance_squared_to(Vector2(half_size.x, 0))\n\tif lesser > top:\n\t\tlesser = top\n\t\tlesser_margin = MARGIN_TOP\n\n\tvar right := point.distance_squared_to(Vector2(size.x, half_size.y))\n\tif lesser > right:\n\t\tlesser = right\n\t\tlesser_margin = MARGIN_RIGHT\n\n\tvar bottom := point.distance_squared_to(Vector2(half_size.x, size.y))\n\tif lesser > bottom:\n\t\t#lesser = bottom  # unused result\n\t\tlesser_margin = MARGIN_BOTTOM\n\treturn lesser_margin\n"
  },
  {
    "path": "addons/dockable_container/drag_n_drop_panel.gd.uid",
    "content": "uid://bgys5wmhq4olg\n"
  },
  {
    "path": "addons/dockable_container/floating_window.gd",
    "content": "class_name FloatingWindow\nextends Window\n\n## Emitted when the window's position or size changes, or when it's closed.\nsignal data_changed\n\nvar window_content: Control\nvar prevent_data_erasure := false\nvar _is_initialized := false\n\n\nfunc _init(content: Control, data := {}) -> void:\n\twindow_content = content\n\ttitle = window_content.name\n\tname = window_content.name\n\tmin_size = window_content.get_minimum_size()\n\tunresizable = false\n\twrap_controls = true\n\talways_on_top = true\n\tready.connect(_deserialize.bind(data))\n\n\nfunc _ready() -> void:\n\tset_deferred(&\"size\", Vector2(300, 300))\n\tawait get_tree().process_frame\n\tawait get_tree().process_frame\n\tif get_tree().current_scene.get_window().gui_embed_subwindows:\n\t\tposition = DisplayServer.window_get_size() / 2 - size / 2\n\telse:\n\t\tposition = DisplayServer.screen_get_usable_rect().size / 2 - size / 2\n\t# Enable always_on_top for all child windows,\n\t# to fix a bug where the child windows of floating windows appear behind them.\n\t# TODO: Remove the loop when this bug gets fixed in Godot's side.\n\t# Probably when https://github.com/godotengine/godot/issues/92848 is closed.\n\tfor dialog_child in find_children(\"\", \"Window\", true, false):\n\t\tif dialog_child is Window:\n\t\t\tdialog_child.always_on_top = always_on_top\n\n\nfunc _input(event: InputEvent) -> void:\n\tif event is InputEventMouse:\n\t\t# Emit `data_changed` when the window is being moved.\n\t\tif not window_content.get_rect().has_point(event.position) and _is_initialized:\n\t\t\tdata_changed.emit(name, serialize())\n\n\nfunc serialize() -> Dictionary:\n\treturn {\"size\": size, \"position\": position}\n\n\nfunc _deserialize(data: Dictionary) -> void:\n\twindow_content.get_parent().remove_child(window_content)\n\twindow_content.visible = true\n\twindow_content.global_position = Vector2.ZERO\n\tadd_child(window_content)\n\tsize_changed.connect(window_size_changed)\n\tif \"position\" in data:\n\t\tawait get_tree().process_frame\n\t\tawait get_tree().process_frame\n\t\tposition = data[\"position\"]\n\tif \"size\" in data:\n\t\tset_deferred(&\"size\", data[\"size\"])\n\t_is_initialized = true\n\n\nfunc window_size_changed() -> void:\n\twindow_content.size = size\n\twindow_content.position = Vector2.ZERO\n\tif _is_initialized:\n\t\tdata_changed.emit(name, serialize())\n\n\nfunc destroy() -> void:\n\tsize_changed.disconnect(window_size_changed)\n\tqueue_free()\n\n\nfunc _exit_tree() -> void:\n\tif _is_initialized and !prevent_data_erasure:\n\t\tdata_changed.emit(name, {})\n"
  },
  {
    "path": "addons/dockable_container/floating_window.gd.uid",
    "content": "uid://c6w6577okhdyc\n"
  },
  {
    "path": "addons/dockable_container/icon.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dy25danh2am23\"\npath=\"res://.godot/imported/icon.svg-35635e7bbda4487d4b2942da1d987df8.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/dockable_container/icon.svg\"\ndest_files=[\"res://.godot/imported/icon.svg-35635e7bbda4487d4b2942da1d987df8.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "addons/dockable_container/inspector_plugin/editor_inspector_plugin.gd",
    "content": "extends EditorInspectorPlugin\n\nconst LayoutEditorProperty := preload(\"layout_editor_property.gd\")\n\n\nfunc _can_handle(object: Object) -> bool:\n\treturn object is DockableContainer\n\n\nfunc _parse_property(\n\t_object: Object,\n\t_type: Variant.Type,\n\tname: String,\n\t_hint: PropertyHint,\n\t_hint_text: String,\n\t_usage: int,\n\t_wide: bool\n) -> bool:\n\tif name == \"layout\":\n\t\tvar editor_property := LayoutEditorProperty.new()\n\t\tadd_property_editor(\"layout\", editor_property)\n\treturn false\n"
  },
  {
    "path": "addons/dockable_container/inspector_plugin/editor_inspector_plugin.gd.uid",
    "content": "uid://cobqhyqmpx0gj\n"
  },
  {
    "path": "addons/dockable_container/inspector_plugin/layout_editor_property.gd",
    "content": "extends EditorProperty\n\nvar _container := DockableContainer.new()\nvar _hidden_menu_button := MenuButton.new()\nvar _hidden_menu_popup: PopupMenu\nvar _hidden_menu_list: PackedStringArray\n\n\nfunc _ready() -> void:\n\tcustom_minimum_size = Vector2(128, 256)\n\n\t_hidden_menu_button.text = \"Visible nodes\"\n\tadd_child(_hidden_menu_button)\n\t_hidden_menu_popup = _hidden_menu_button.get_popup()\n\t_hidden_menu_popup.hide_on_checkable_item_selection = false\n\t_hidden_menu_popup.about_to_popup.connect(_on_hidden_menu_popup_about_to_show)\n\t_hidden_menu_popup.id_pressed.connect(_on_hidden_menu_popup_id_pressed)\n\n\t_container.clone_layout_on_ready = false\n\t_container.custom_minimum_size = custom_minimum_size\n\n\tvar value := _get_layout().clone()  # The layout gets reset when selecting it without clone\n\tfor n in value.get_names():\n\t\tvar child := _create_child_control(n)\n\t\t_container.add_child(child)\n\t_container.set(get_edited_property(), value)\n\tadd_child(_container)\n\tset_bottom_editor(_container)\n\n\nfunc _exit_tree() -> void:  # Not sure if this is needed, but just to be sure\n\tqueue_free()\n\n\nfunc _update_property() -> void:\n\tvar value := _get_layout()\n\t_container.set(get_edited_property(), value)\n\n\nfunc _get_layout() -> DockableLayout:\n\tvar original_container := get_edited_object() as DockableContainer\n\treturn original_container.get(get_edited_property())\n\n\nfunc _create_child_control(named: String) -> Label:\n\tvar new_control := Label.new()\n\tnew_control.name = named\n\tnew_control.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER\n\tnew_control.vertical_alignment = VERTICAL_ALIGNMENT_CENTER\n\tnew_control.clip_text = true\n\tnew_control.text = named\n\treturn new_control\n\n\nfunc _on_hidden_menu_popup_about_to_show() -> void:\n\tvar layout := _get_layout().clone()\n\t_hidden_menu_popup.clear()\n\t_hidden_menu_list = layout.get_names()\n\tfor i in _hidden_menu_list.size():\n\t\tvar tab_name := _hidden_menu_list[i]\n\t\t_hidden_menu_popup.add_check_item(tab_name, i)\n\t\t_hidden_menu_popup.set_item_checked(i, not layout.is_tab_hidden(tab_name))\n\n\nfunc _on_hidden_menu_popup_id_pressed(id: int) -> void:\n\tvar layout := _get_layout().clone()\n\tvar tab_name := _hidden_menu_list[id]\n\tvar new_hidden := not layout.is_tab_hidden(tab_name)\n\t_get_layout().set_tab_hidden(tab_name, new_hidden)\n\t_hidden_menu_popup.set_item_checked(id, not new_hidden)\n\temit_changed(get_edited_property(), _get_layout())  # This line may not be needed\n"
  },
  {
    "path": "addons/dockable_container/inspector_plugin/layout_editor_property.gd.uid",
    "content": "uid://b5ryee5l6apq6\n"
  },
  {
    "path": "addons/dockable_container/layout.gd",
    "content": "@tool\nclass_name DockableLayout\nextends Resource\n## DockableLayout Resource definition, holding the root DockableLayoutNode and hidden tabs.\n##\n## DockableLayoutSplit are binary trees with nested DockableLayoutSplit subtrees\n## and DockableLayoutPanel leaves. Both of them inherit from DockableLayoutNode to help with\n## type annotation and define common functionality.\n##\n## Hidden tabs are marked in the `hidden_tabs` Dictionary by name.\n\nenum { MARGIN_LEFT, MARGIN_RIGHT, MARGIN_TOP, MARGIN_BOTTOM, MARGIN_CENTER }\n\n@export var root: DockableLayoutNode = DockableLayoutPanel.new():\n\tget:\n\t\treturn _root\n\tset(value):\n\t\tset_root(value)\n@export var hidden_tabs := {}:\n\tget:\n\t\treturn _hidden_tabs\n\tset(value):\n\t\tif value != _hidden_tabs:\n\t\t\t_hidden_tabs = value\n\t\t\tchanged.emit()\n## A [Dictionary] of [StringName] and [Dictionary], containing data such as position and size.\n@export var windows := {}:\n\tget:\n\t\treturn _windows\n\tset(value):\n\t\tif value != _windows:\n\t\t\t_windows = value\n\t\t\tchanged.emit()\n@export var save_on_change := false:\n\tset(value):\n\t\tsave_on_change = value\n\t\tif value:\n\t\t\tif not changed.is_connected(save):\n\t\t\t\tchanged.connect(save)\n\t\telse:\n\t\t\tif changed.is_connected(save):\n\t\t\t\tchanged.disconnect(save)\n\n## A path to a layout that this layout can be reset to.\n@export var layout_reset_path := \"\"\nvar _changed_signal_queued := false\nvar _first_leaf: DockableLayoutPanel\nvar _hidden_tabs: Dictionary\nvar _windows: Dictionary\nvar _leaf_by_node_name: Dictionary\nvar _root: DockableLayoutNode = DockableLayoutPanel.new()\n\n\nfunc _init() -> void:\n\tif resource_name.is_empty():\n\t\tresource_name = \"Layout\"\n\n\nfunc set_root(value: DockableLayoutNode, should_emit_changed := true) -> void:\n\tif not value:\n\t\tvalue = DockableLayoutPanel.new()\n\tif _root == value:\n\t\treturn\n\tif _root and _root.changed.is_connected(_on_root_changed):\n\t\t_root.changed.disconnect(_on_root_changed)\n\t_root = value\n\t_root.parent = null\n\t_root.changed.connect(_on_root_changed)\n\tif should_emit_changed:\n\t\t_on_root_changed()\n\n\nfunc get_root() -> DockableLayoutNode:\n\treturn _root\n\n\nfunc clone() -> DockableLayout:\n\treturn duplicate(true)\n\n\nfunc copy_from(other_layout: DockableLayout) -> void:\n\troot = other_layout.root\n\thidden_tabs = other_layout.hidden_tabs\n\twindows = other_layout.windows\n\tchanged.emit()\n\n\nfunc reset() -> void:\n\tif not layout_reset_path.is_empty():\n\t\tvar layout_to_reset := load(layout_reset_path)\n\t\tif is_instance_valid(layout_to_reset) and layout_to_reset is DockableLayout:\n\t\t\tcopy_from(layout_to_reset.clone())\n\n\nfunc get_names() -> PackedStringArray:\n\treturn _root.get_names()\n\n\nfunc save(path := resource_path) -> void:\n\tif path.is_empty():\n\t\treturn\n\tResourceSaver.save(self, path)\n\n\n## Add missing nodes on first leaf and remove nodes outside indices from leaves.\n##\n## _leaf_by_node_name = {\n##     (string keys) = respective Leaf that holds the node name,\n## }\nfunc update_nodes(names: PackedStringArray) -> void:\n\t_leaf_by_node_name.clear()\n\t_first_leaf = null\n\tvar empty_leaves: Array[DockableLayoutPanel] = []\n\t_ensure_names_in_node(_root, names, empty_leaves)  # Changes _leaf_by_node_name and empty_leaves\n\tfor l in empty_leaves:\n\t\t_remove_leaf(l)\n\tif not _first_leaf:\n\t\t_first_leaf = DockableLayoutPanel.new()\n\t\tset_root(_first_leaf)\n\tfor n in names:\n\t\tif not _leaf_by_node_name.has(n):\n\t\t\t_first_leaf.push_name(n)\n\t\t\t_leaf_by_node_name[n] = _first_leaf\n\t_on_root_changed()\n\n\nfunc move_node_to_leaf(node: Node, leaf: DockableLayoutPanel, relative_position: int) -> void:\n\tvar node_name := node.name\n\tvar previous_leaf: DockableLayoutPanel = _leaf_by_node_name.get(node_name)\n\tif previous_leaf:\n\t\tprevious_leaf.remove_node(node)\n\t\tif previous_leaf.is_empty():\n\t\t\t_remove_leaf(previous_leaf)\n\n\tleaf.insert_node(relative_position, node)\n\t_leaf_by_node_name[node_name] = leaf\n\t_on_root_changed()\n\n\nfunc get_leaf_for_node(node: Node) -> DockableLayoutPanel:\n\treturn _leaf_by_node_name.get(node.name)\n\n\nfunc split_leaf_with_node(leaf: DockableLayoutPanel, node: Node, margin: int) -> void:\n\tvar root_branch := leaf.parent\n\tvar new_leaf := DockableLayoutPanel.new()\n\tvar new_branch := DockableLayoutSplit.new()\n\tif margin == MARGIN_LEFT or margin == MARGIN_RIGHT:\n\t\tnew_branch.direction = DockableLayoutSplit.Direction.HORIZONTAL\n\telse:\n\t\tnew_branch.direction = DockableLayoutSplit.Direction.VERTICAL\n\tif margin == MARGIN_LEFT or margin == MARGIN_TOP:\n\t\tnew_branch.first = new_leaf\n\t\tnew_branch.second = leaf\n\telse:\n\t\tnew_branch.first = leaf\n\t\tnew_branch.second = new_leaf\n\tif _root == leaf:\n\t\tset_root(new_branch, false)\n\telif root_branch:\n\t\tif leaf == root_branch.first:\n\t\t\troot_branch.first = new_branch\n\t\telse:\n\t\t\troot_branch.second = new_branch\n\n\tmove_node_to_leaf(node, new_leaf, 0)\n\n\nfunc add_node(node: Node) -> void:\n\tvar node_name := node.name\n\tif _leaf_by_node_name.has(node_name):\n\t\treturn\n\t_first_leaf.push_name(node_name)\n\t_leaf_by_node_name[node_name] = _first_leaf\n\t_on_root_changed()\n\n\nfunc remove_node(node: Node) -> void:\n\tvar node_name := node.name\n\tvar leaf: DockableLayoutPanel = _leaf_by_node_name.get(node_name)\n\tif not leaf:\n\t\treturn\n\tleaf.remove_node(node)\n\t_leaf_by_node_name.erase(node_name)\n\tif leaf.is_empty():\n\t\t_remove_leaf(leaf)\n\t_on_root_changed()\n\n\nfunc rename_node(previous_name: String, new_name: String) -> void:\n\tvar leaf: DockableLayoutPanel = _leaf_by_node_name.get(previous_name)\n\tif not leaf:\n\t\treturn\n\tleaf.rename_node(previous_name, new_name)\n\t_leaf_by_node_name.erase(previous_name)\n\t_leaf_by_node_name[new_name] = leaf\n\t_on_root_changed()\n\n\nfunc set_tab_hidden(name: String, hidden: bool) -> void:\n\tif not _leaf_by_node_name.has(name):\n\t\treturn\n\tif hidden:\n\t\t_hidden_tabs[name] = true\n\telse:\n\t\t_hidden_tabs.erase(name)\n\t_on_root_changed()\n\n\nfunc save_window_properties(window_name: StringName, data: Dictionary) -> void:\n\tvar new_windows = windows.duplicate(true)\n\tif data.is_empty():\n\t\tnew_windows.erase(window_name)\n\telse:\n\t\tnew_windows[window_name] = data\n\twindows = new_windows\n\n\nfunc is_tab_hidden(name: String) -> bool:\n\treturn _hidden_tabs.get(name, false)\n\n\nfunc set_node_hidden(node: Node, hidden: bool) -> void:\n\tset_tab_hidden(node.name, hidden)\n\n\nfunc is_node_hidden(node: Node) -> bool:\n\treturn is_tab_hidden(node.name)\n\n\nfunc _on_root_changed() -> void:\n\tif _changed_signal_queued:\n\t\treturn\n\t_changed_signal_queued = true\n\tset_deferred(\"_changed_signal_queued\", false)\n\temit_changed.call_deferred()\n\n\nfunc _ensure_names_in_node(\n\tnode: DockableLayoutNode, names: PackedStringArray, empty_leaves: Array[DockableLayoutPanel]\n) -> void:\n\tif node is DockableLayoutPanel:\n\t\tnode.update_nodes(names, _leaf_by_node_name)  # This changes _leaf_by_node_name\n\t\tif node.is_empty():\n\t\t\tempty_leaves.append(node)\n\t\tif not _first_leaf:\n\t\t\t_first_leaf = node\n\telif node is DockableLayoutSplit:\n\t\t_ensure_names_in_node(node.first, names, empty_leaves)\n\t\t_ensure_names_in_node(node.second, names, empty_leaves)\n\telse:\n\t\tassert(false, \"Invalid Resource, should be branch or leaf, found %s\" % node)\n\n\nfunc _remove_leaf(leaf: DockableLayoutPanel) -> void:\n\tassert(leaf.is_empty(), \"FIXME: trying to remove_at a leaf with nodes\")\n\tif _root == leaf:\n\t\treturn\n\tvar collapsed_branch := leaf.parent\n\tassert(collapsed_branch is DockableLayoutSplit, \"FIXME: leaf is not a child of branch\")\n\tvar kept_branch: DockableLayoutNode = (\n\t\tcollapsed_branch.first if leaf == collapsed_branch.second else collapsed_branch.second\n\t)\n\tvar root_branch := collapsed_branch.parent  #HERE\n\tif collapsed_branch == _root:\n\t\tset_root(kept_branch, true)\n\telif root_branch:\n\t\tif collapsed_branch == root_branch.first:\n\t\t\troot_branch.first = kept_branch\n\t\telse:\n\t\t\troot_branch.second = kept_branch\n\n\nfunc _print_tree() -> void:\n\tprint(\"TREE\")\n\t_print_tree_step(_root, 0, 0)\n\tprint(\"\")\n\n\nfunc _print_tree_step(tree_or_leaf: DockableLayoutNode, level: int, idx: int) -> void:\n\tif tree_or_leaf is DockableLayoutPanel:\n\t\tprint(\" |\".repeat(level), \"- (%d) = \" % idx, tree_or_leaf.names)\n\telif tree_or_leaf is DockableLayoutSplit:\n\t\tprint(\n\t\t\t\" |\".repeat(level),\n\t\t\t\"-+ (%d) = \" % idx,\n\t\t\ttree_or_leaf.direction,\n\t\t\t\" \",\n\t\t\ttree_or_leaf.percent\n\t\t)\n\t\t_print_tree_step(tree_or_leaf.first, level + 1, 1)\n\t\t_print_tree_step(tree_or_leaf.second, level + 1, 2)\n"
  },
  {
    "path": "addons/dockable_container/layout.gd.uid",
    "content": "uid://icucbtatip66\n"
  },
  {
    "path": "addons/dockable_container/layout_node.gd",
    "content": "@tool\nclass_name DockableLayoutNode\nextends Resource\n## Base class for DockableLayout tree nodes\n\nvar parent: DockableLayoutSplit:\n\tget:\n\t\treturn _parent_ref.get_ref()\n\tset(value):\n\t\t_parent_ref = weakref(value)\n\nvar _parent_ref := WeakRef.new()\n\n\nfunc emit_tree_changed() -> void:\n\tvar node := self\n\twhile node:\n\t\tnode.emit_changed()\n\t\tnode = node.parent\n\n\n## Returns whether there are any nodes\nfunc is_empty() -> bool:\n\treturn true\n\n\n## Returns all tab names in this node\nfunc get_names() -> PackedStringArray:\n\treturn PackedStringArray()\n"
  },
  {
    "path": "addons/dockable_container/layout_node.gd.uid",
    "content": "uid://cjcli6rgqaqjo\n"
  },
  {
    "path": "addons/dockable_container/layout_panel.gd",
    "content": "@tool\nclass_name DockableLayoutPanel\nextends DockableLayoutNode\n## DockableLayout leaf nodes, defining tabs\n\n@export var names: PackedStringArray:\n\tget:\n\t\treturn get_names()\n\tset(value):\n\t\t_names = value\n\t\temit_tree_changed()\n@export var current_tab: int:\n\tget:\n\t\treturn clampi(_current_tab, 0, _names.size() - 1)\n\tset(value):\n\t\tif value != _current_tab:\n\t\t\t_current_tab = value\n\t\t\temit_tree_changed()\n\nvar _names := PackedStringArray()\nvar _current_tab := 0\n\n\nfunc _init() -> void:\n\tresource_name = \"Tabs\"\n\n\n## Returns all tab names in this node\nfunc get_names() -> PackedStringArray:\n\treturn _names\n\n\nfunc push_name(name: String) -> void:\n\t_names.append(name)\n\temit_tree_changed()\n\n\nfunc insert_node(position: int, node: Node) -> void:\n\t_names.insert(position, node.name)\n\temit_tree_changed()\n\n\nfunc find_name(node_name: String) -> int:\n\tfor i in _names.size():\n\t\tif _names[i] == node_name:\n\t\t\treturn i\n\treturn -1\n\n\nfunc find_child(node: Node) -> int:\n\treturn find_name(node.name)\n\n\nfunc remove_node(node: Node) -> void:\n\tvar i := find_child(node)\n\tif i >= 0:\n\t\t_names.remove_at(i)\n\t\temit_tree_changed()\n\telse:\n\t\tpush_warning(\"Remove failed, node '%s' was not found\" % node)\n\n\nfunc rename_node(previous_name: String, new_name: String) -> void:\n\tvar i := find_name(previous_name)\n\tif i >= 0:\n\t\t_names.set(i, new_name)\n\t\temit_tree_changed()\n\telse:\n\t\tpush_warning(\"Rename failed, name '%s' was not found\" % previous_name)\n\n\n## Returns whether there are any nodes\nfunc is_empty() -> bool:\n\treturn _names.is_empty()\n\n\nfunc update_nodes(node_names: PackedStringArray, data: Dictionary) -> void:\n\tvar i := 0\n\tvar removed_any := false\n\twhile i < _names.size():\n\t\tvar current := _names[i]\n\t\tif not current in node_names or data.has(current):\n\t\t\t_names.remove_at(i)\n\t\t\tremoved_any = true\n\t\telse:\n\t\t\tdata[current] = self\n\t\t\ti += 1\n\tif removed_any:\n\t\temit_tree_changed()\n"
  },
  {
    "path": "addons/dockable_container/layout_panel.gd.uid",
    "content": "uid://da67x3ua6ietw\n"
  },
  {
    "path": "addons/dockable_container/layout_split.gd",
    "content": "@tool\nclass_name DockableLayoutSplit\nextends DockableLayoutNode\n## DockableLayout binary tree nodes, defining subtrees and leaf panels\n\nenum Direction { HORIZONTAL, VERTICAL }\n\n@export var direction := Direction.HORIZONTAL:\n\tget:\n\t\treturn get_direction()\n\tset(value):\n\t\tset_direction(value)\n@export_range(0, 1) var percent := 0.5:\n\tget = get_percent,\n\tset = set_percent\n@export var first: DockableLayoutNode = DockableLayoutPanel.new():\n\tget:\n\t\treturn get_first()\n\tset(value):\n\t\tset_first(value)\n@export var second: DockableLayoutNode = DockableLayoutPanel.new():\n\tget:\n\t\treturn get_second()\n\tset(value):\n\t\tset_second(value)\n\nvar _direction := Direction.HORIZONTAL\nvar _percent := 0.5\nvar _first: DockableLayoutNode\nvar _second: DockableLayoutNode\n\n\nfunc _init() -> void:\n\tresource_name = \"Split\"\n\n\nfunc set_first(value: DockableLayoutNode) -> void:\n\tif value == null:\n\t\t_first = DockableLayoutPanel.new()\n\telse:\n\t\t_first = value\n\t_first.parent = self\n\temit_tree_changed()\n\n\nfunc get_first() -> DockableLayoutNode:\n\treturn _first\n\n\nfunc set_second(value: DockableLayoutNode) -> void:\n\tif value == null:\n\t\t_second = DockableLayoutPanel.new()\n\telse:\n\t\t_second = value\n\t_second.parent = self\n\temit_tree_changed()\n\n\nfunc get_second() -> DockableLayoutNode:\n\treturn _second\n\n\nfunc set_direction(value: Direction) -> void:\n\tif value != _direction:\n\t\t_direction = value\n\t\temit_tree_changed()\n\n\nfunc get_direction() -> Direction:\n\treturn _direction\n\n\nfunc set_percent(value: float) -> void:\n\tvar clamped_value := clampf(value, 0, 1)\n\tif not is_equal_approx(_percent, clamped_value):\n\t\t_percent = clamped_value\n\t\temit_tree_changed()\n\n\nfunc get_percent() -> float:\n\treturn _percent\n\n\nfunc get_names() -> PackedStringArray:\n\tvar names := _first.get_names()\n\tnames.append_array(_second.get_names())\n\treturn names\n\n\n## Returns whether there are any nodes\nfunc is_empty() -> bool:\n\treturn _first.is_empty() and _second.is_empty()\n\n\nfunc is_horizontal() -> bool:\n\treturn _direction == Direction.HORIZONTAL\n\n\nfunc is_vertical() -> bool:\n\treturn _direction == Direction.VERTICAL\n"
  },
  {
    "path": "addons/dockable_container/layout_split.gd.uid",
    "content": "uid://bvvbi3x82xnut\n"
  },
  {
    "path": "addons/dockable_container/plugin.cfg",
    "content": "[plugin]\n\nname=\"Dockable Container\"\ndescription=\"Container script that manages docking/tiling UI panels.\n\nPanels are composed of tabs that can be dragged around and dropped to split another panel or compose its tabs.\n\nLayout information is stored in Resource objects, so they can be saved/loaded from disk easily.\n\nThis plugin also offers a replica of the Container layout to be edited directly in the inspector.\"\nauthor=\"gilzoide\"\nversion=\"1.1.2\"\nscript=\"plugin.gd\"\n"
  },
  {
    "path": "addons/dockable_container/plugin.gd",
    "content": "@tool\nextends EditorPlugin\n\nconst LayoutInspectorPlugin := preload(\"inspector_plugin/editor_inspector_plugin.gd\")\nconst Icon := preload(\"icon.svg\")\n\nvar _layout_inspector_plugin: LayoutInspectorPlugin\n\n\nfunc _enter_tree() -> void:\n\t_layout_inspector_plugin = LayoutInspectorPlugin.new()\n\tadd_custom_type(\"DockableContainer\", \"Container\", DockableContainer, Icon)\n\tadd_inspector_plugin(_layout_inspector_plugin)\n\n\nfunc _exit_tree() -> void:\n\tremove_inspector_plugin(_layout_inspector_plugin)\n\tremove_custom_type(\"DockableContainer\")\n\t_layout_inspector_plugin = null\n"
  },
  {
    "path": "addons/dockable_container/plugin.gd.uid",
    "content": "uid://dcbkpdpuf7lnj\n"
  },
  {
    "path": "addons/dockable_container/samples/TestScene.gd",
    "content": "extends VBoxContainer\n\nconst SAVED_LAYOUT_PATH := \"user://layout.tres\"\n\n@onready var _container := $DockableContainers/DockableContainer as DockableContainer\n@onready var _clone_control := $HBoxContainer/ControlPrefab as ColorRect\n@onready var _checkbox_container := $HBoxContainer as HBoxContainer\n\n\nfunc _ready() -> void:\n\tif not OS.is_userfs_persistent():\n\t\t$HBoxContainer/SaveLayoutButton.visible = false\n\t\t$HBoxContainer/LoadLayoutButton.visible = false\n\n\tvar tabs := _container.get_tabs()\n\tfor i in tabs.size():\n\t\tvar checkbox := CheckBox.new()\n\t\tcheckbox.text = str(i)\n\t\tcheckbox.button_pressed = not _container.is_control_hidden(tabs[i])\n\t\tcheckbox.toggled.connect(_on_CheckButton_toggled.bind(tabs[i]))\n\t\t_checkbox_container.add_child(checkbox)\n\n\nfunc _on_add_pressed() -> void:\n\tvar control := _clone_control.duplicate()\n\tcontrol.get_node(\"Buttons/Rename\").pressed.connect(\n\t\t_on_control_rename_button_pressed.bind(control)\n\t)\n\tcontrol.get_node(\"Buttons/Remove\").pressed.connect(\n\t\t_on_control_remove_button_pressed.bind(control)\n\t)\n\tcontrol.color = Color(randf(), randf(), randf())\n\tcontrol.name = \"Control0\"\n\n\t_container.add_child(control, true)\n\tawait _container.sort_children\n\t_container.set_control_as_current_tab(control)\n\n\nfunc _on_save_pressed() -> void:\n\tif ResourceSaver.save(_container.layout, SAVED_LAYOUT_PATH) != OK:\n\t\tprint(\"ERROR\")\n\n\nfunc _on_load_pressed() -> void:\n\tvar res = load(SAVED_LAYOUT_PATH)\n\tif res:\n\t\t_container.set_layout(res.clone())\n\telse:\n\t\tprint(\"Error\")\n\n\nfunc _on_control_rename_button_pressed(control: Control) -> void:\n\tcontrol.name = StringName(str(control.name) + \" =D\")\n\n\nfunc _on_control_remove_button_pressed(control: Control) -> void:\n\tcontrol.get_parent().remove_child(control)\n\tcontrol.queue_free()\n\n\nfunc _on_CheckButton_toggled(button_pressed: bool, tab: Control) -> void:\n\t_container.set_control_hidden(tab, not button_pressed)\n"
  },
  {
    "path": "addons/dockable_container/samples/TestScene.gd.uid",
    "content": "uid://bfkod42iqrybd\n"
  },
  {
    "path": "addons/dockable_container/samples/TestScene.tscn",
    "content": "[gd_scene format=3 uid=\"uid://drlvhuchtk6if\"]\n\n[ext_resource type=\"Script\" uid=\"uid://bfi1mm158ge5l\" path=\"res://addons/dockable_container/dockable_container.gd\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://icucbtatip66\" path=\"res://addons/dockable_container/layout.gd\" id=\"2\"]\n[ext_resource type=\"Script\" uid=\"uid://bfkod42iqrybd\" path=\"res://addons/dockable_container/samples/TestScene.gd\" id=\"4\"]\n[ext_resource type=\"Script\" uid=\"uid://bvvbi3x82xnut\" path=\"res://addons/dockable_container/layout_split.gd\" id=\"4_yhgfb\"]\n[ext_resource type=\"Script\" uid=\"uid://da67x3ua6ietw\" path=\"res://addons/dockable_container/layout_panel.gd\" id=\"5\"]\n\n[sub_resource type=\"Resource\" id=\"Resource_8aoc2\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"5\")\nnames = PackedStringArray(\"Control0\")\n\n[sub_resource type=\"Resource\" id=\"Resource_6kjom\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"5\")\nnames = PackedStringArray(\"Control1\", \"Control2\")\n\n[sub_resource type=\"Resource\" id=\"Resource_hl8y1\"]\nresource_name = \"Split\"\nscript = ExtResource(\"4_yhgfb\")\ndirection = 1\nfirst = SubResource(\"Resource_8aoc2\")\nsecond = SubResource(\"Resource_6kjom\")\n\n[sub_resource type=\"Resource\" id=\"Resource_ybwqe\"]\nresource_name = \"Layout\"\nscript = ExtResource(\"2\")\nroot = SubResource(\"Resource_hl8y1\")\n\n[sub_resource type=\"Resource\" id=\"Resource_ntwfj\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"5\")\nnames = PackedStringArray(\"Control3\")\n\n[sub_resource type=\"Resource\" id=\"Resource_dmyvf\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"5\")\nnames = PackedStringArray(\"Control4\")\n\n[sub_resource type=\"Resource\" id=\"Resource_vag66\"]\nresource_name = \"Split\"\nscript = ExtResource(\"4_yhgfb\")\ndirection = 1\npercent = 0.281\nfirst = SubResource(\"Resource_ntwfj\")\nsecond = SubResource(\"Resource_dmyvf\")\n\n[sub_resource type=\"Resource\" id=\"Resource_4q660\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"5\")\nnames = PackedStringArray(\"Control5\")\n\n[sub_resource type=\"Resource\" id=\"Resource_jhibs\"]\nresource_name = \"Split\"\nscript = ExtResource(\"4_yhgfb\")\nfirst = SubResource(\"Resource_vag66\")\nsecond = SubResource(\"Resource_4q660\")\n\n[sub_resource type=\"Resource\" id=\"Resource_xhxpg\"]\nresource_name = \"Layout\"\nscript = ExtResource(\"2\")\nroot = SubResource(\"Resource_jhibs\")\n\n[node name=\"SampleScene\" type=\"VBoxContainer\" unique_id=664756368]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\nscript = ExtResource(\"4\")\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\".\" unique_id=760861508]\nlayout_mode = 2\nalignment = 1\n\n[node name=\"AddControlButton\" type=\"Button\" parent=\"HBoxContainer\" unique_id=549074675]\nlayout_mode = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 4\ntext = \"(+) ADD CONTROL\"\n\n[node name=\"SaveLayoutButton\" type=\"Button\" parent=\"HBoxContainer\" unique_id=476634542]\nlayout_mode = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 4\ntext = \"Save Layout\"\n\n[node name=\"LoadLayoutButton\" type=\"Button\" parent=\"HBoxContainer\" unique_id=1569290377]\nlayout_mode = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 4\ntext = \"Load Layout\"\n\n[node name=\"ControlPrefab\" type=\"ColorRect\" parent=\"HBoxContainer\" unique_id=118774004]\nvisible = false\nlayout_mode = 2\ncolor = Color(0.129412, 0.121569, 0.121569, 1)\n\n[node name=\"Buttons\" type=\"VBoxContainer\" parent=\"HBoxContainer/ControlPrefab\" unique_id=1994605646]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -65.5\noffset_top = -22.0\noffset_right = 65.5\noffset_bottom = 22.0\n\n[node name=\"Rename\" type=\"Button\" parent=\"HBoxContainer/ControlPrefab/Buttons\" unique_id=1338227920]\nlayout_mode = 2\ntext = \"Rename\"\n\n[node name=\"Remove\" type=\"Button\" parent=\"HBoxContainer/ControlPrefab/Buttons\" unique_id=858869123]\nlayout_mode = 2\ntext = \"REMOVE\"\n\n[node name=\"DockableContainers\" type=\"HBoxContainer\" parent=\".\" unique_id=1854472108]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"DockableContainer\" type=\"Container\" parent=\"DockableContainers\" unique_id=1489471058]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\nscript = ExtResource(\"1\")\nlayout = SubResource(\"Resource_ybwqe\")\n\n[node name=\"Control0\" type=\"ColorRect\" parent=\"DockableContainers/DockableContainer\" unique_id=592373735]\nlayout_mode = 2\n\n[node name=\"Control1\" type=\"ColorRect\" parent=\"DockableContainers/DockableContainer\" unique_id=1180900160]\nlayout_mode = 2\ncolor = Color(0.141176, 0.0745098, 0.603922, 1)\n\n[node name=\"Control2\" type=\"ColorRect\" parent=\"DockableContainers/DockableContainer\" unique_id=533942492]\nvisible = false\nlayout_mode = 2\ncolor = Color(0.533333, 0.380392, 0.380392, 1)\n\n[node name=\"Separator\" type=\"ColorRect\" parent=\"DockableContainers\" unique_id=1568781614]\ncustom_minimum_size = Vector2(50, 0)\nlayout_mode = 2\ncolor = Color(0, 0, 0, 1)\n\n[node name=\"DockableContainer2\" type=\"Container\" parent=\"DockableContainers\" unique_id=1498740418]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\nscript = ExtResource(\"1\")\nlayout = SubResource(\"Resource_xhxpg\")\n\n[node name=\"Control3\" type=\"ColorRect\" parent=\"DockableContainers/DockableContainer2\" unique_id=610777468]\nlayout_mode = 2\ncolor = Color(0, 1, 0.905882, 1)\n\n[node name=\"Control4\" type=\"ColorRect\" parent=\"DockableContainers/DockableContainer2\" unique_id=13351961]\nlayout_mode = 2\ncolor = Color(0, 0.698039, 0.0588235, 1)\n\n[node name=\"Control5\" type=\"ColorRect\" parent=\"DockableContainers/DockableContainer2\" unique_id=1403571147]\nlayout_mode = 2\ncolor = Color(1, 0.937255, 0, 1)\n\n[connection signal=\"pressed\" from=\"HBoxContainer/AddControlButton\" to=\".\" method=\"_on_add_pressed\"]\n[connection signal=\"pressed\" from=\"HBoxContainer/SaveLayoutButton\" to=\".\" method=\"_on_save_pressed\"]\n[connection signal=\"pressed\" from=\"HBoxContainer/LoadLayoutButton\" to=\".\" method=\"_on_load_pressed\"]\n"
  },
  {
    "path": "addons/dockable_container/split_handle.gd",
    "content": "@tool\nextends Control\n\nconst SPLIT_THEME_CLASS: PackedStringArray = [\n\t\"HSplitContainer\",  # SPLIT_THEME_CLASS[DockableLayoutSplit.Direction.HORIZONTAL]\n\t\"VSplitContainer\",  # SPLIT_THEME_CLASS[DockableLayoutSplit.Direction.VERTICAL]\n]\n\nconst SPLIT_MOUSE_CURSOR_SHAPE: Array[Control.CursorShape] = [\n\tControl.CURSOR_HSPLIT,  # SPLIT_MOUSE_CURSOR_SHAPE[DockableLayoutSplit.Direction.HORIZONTAL]\n\tControl.CURSOR_VSPLIT,  # SPLIT_MOUSE_CURSOR_SHAPE[DockableLayoutSplit.Direction.VERTICAL]\n]\n\nvar layout_split: DockableLayoutSplit:\n\tset(value):\n\t\tlayout_split = value\n\t\tif is_instance_valid(layout_split):\n\t\t\tmouse_default_cursor_shape = SPLIT_MOUSE_CURSOR_SHAPE[layout_split.direction]\nvar first_minimum_size: Vector2\nvar second_minimum_size: Vector2\n\nvar _parent_rect: Rect2\nvar _mouse_hovering := false\nvar _dragging := false\n\n\nfunc _draw() -> void:\n\tvar theme_class := SPLIT_THEME_CLASS[layout_split.direction]\n\tvar icon := get_theme_icon(\"grabber\", theme_class)\n\tvar autohide := bool(get_theme_constant(\"autohide\", theme_class))\n\tif not icon or (autohide and not _mouse_hovering):\n\t\treturn\n\n\tdraw_texture(icon, (size - icon.get_size()) * 0.5)\n\n\nfunc _gui_input(event: InputEvent) -> void:\n\tif event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT:\n\t\t_dragging = event.is_pressed()\n\t\tif event.double_click:\n\t\t\tlayout_split.percent = 0.5\n\telif _dragging and event is InputEventMouseMotion:\n\t\tvar mouse_in_parent := get_parent_control().get_local_mouse_position()\n\t\tif layout_split.is_horizontal():\n\t\t\tlayout_split.percent = (\n\t\t\t\t(mouse_in_parent.x - _parent_rect.position.x) / _parent_rect.size.x\n\t\t\t)\n\t\telse:\n\t\t\tlayout_split.percent = (\n\t\t\t\t(mouse_in_parent.y - _parent_rect.position.y) / _parent_rect.size.y\n\t\t\t)\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_MOUSE_ENTER:\n\t\t_mouse_hovering = true\n\t\tif bool(get_theme_constant(\"autohide\", SPLIT_THEME_CLASS[layout_split.direction])):\n\t\t\tqueue_redraw()\n\telif what == NOTIFICATION_MOUSE_EXIT:\n\t\t_mouse_hovering = false\n\t\tif bool(get_theme_constant(\"autohide\", SPLIT_THEME_CLASS[layout_split.direction])):\n\t\t\tqueue_redraw()\n\telif what == NOTIFICATION_FOCUS_EXIT:\n\t\t_dragging = false\n\n\nfunc get_layout_minimum_size() -> Vector2:\n\tif not layout_split:\n\t\treturn Vector2.ZERO\n\tvar separation := get_theme_constant(\"separation\", SPLIT_THEME_CLASS[layout_split.direction])\n\tif layout_split.is_horizontal():\n\t\treturn Vector2(\n\t\t\tfirst_minimum_size.x + separation + second_minimum_size.x,\n\t\t\tmaxf(first_minimum_size.y, second_minimum_size.y)\n\t\t)\n\telse:\n\t\treturn Vector2(\n\t\t\tmaxf(first_minimum_size.x, second_minimum_size.x),\n\t\t\tfirst_minimum_size.y + separation + second_minimum_size.y\n\t\t)\n\n\nfunc get_split_rects(rect: Rect2) -> Dictionary:\n\t_parent_rect = rect\n\tvar separation := get_theme_constant(\"separation\", SPLIT_THEME_CLASS[layout_split.direction])\n\tvar origin := rect.position\n\tvar percent := layout_split.percent\n\tif layout_split.is_horizontal():\n\t\tvar split_offset := clampf(\n\t\t\trect.size.x * percent - separation * 0.5,\n\t\t\tfirst_minimum_size.x,\n\t\t\trect.size.x - second_minimum_size.x - separation\n\t\t)\n\t\tvar second_width := rect.size.x - split_offset - separation\n\n\t\treturn {\n\t\t\t\"first\": Rect2(origin.x, origin.y, split_offset, rect.size.y),\n\t\t\t\"self\": Rect2(origin.x + split_offset, origin.y, separation, rect.size.y),\n\t\t\t\"second\":\n\t\t\tRect2(origin.x + split_offset + separation, origin.y, second_width, rect.size.y),\n\t\t}\n\telse:\n\t\tvar split_offset := clampf(\n\t\t\trect.size.y * percent - separation * 0.5,\n\t\t\tfirst_minimum_size.y,\n\t\t\trect.size.y - second_minimum_size.y - separation\n\t\t)\n\t\tvar second_height := rect.size.y - split_offset - separation\n\n\t\treturn {\n\t\t\t\"first\": Rect2(origin.x, origin.y, rect.size.x, split_offset),\n\t\t\t\"self\": Rect2(origin.x, origin.y + split_offset, rect.size.x, separation),\n\t\t\t\"second\":\n\t\t\tRect2(origin.x, origin.y + split_offset + separation, rect.size.x, second_height),\n\t\t}\n"
  },
  {
    "path": "addons/dockable_container/split_handle.gd.uid",
    "content": "uid://cldhbvad7t45o\n"
  },
  {
    "path": "addons/gdgifexporter/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2020 Igor Santarek\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "addons/gdgifexporter/converter.gd",
    "content": "extends RefCounted\n\nvar _shader: Shader\n\n\nfunc get_indexed_datas(image: Image, colors: Array) -> PackedByteArray:\n\t_shader = preload(\"./lookup_color.gdshader\")\n\treturn _convert(image, colors)\n\n\nfunc get_similar_indexed_datas(image: Image, colors: Array) -> PackedByteArray:\n\t_shader = preload(\"./lookup_similar.gdshader\")\n\treturn _convert(image, colors)\n\n\nfunc _convert(image: Image, colors: Array) -> PackedByteArray:\n\tvar vp := RenderingServer.viewport_create()\n\tvar canvas := RenderingServer.canvas_create()\n\tRenderingServer.viewport_attach_canvas(vp, canvas)\n\tRenderingServer.viewport_set_size(vp, image.get_width(), image.get_height())\n\tRenderingServer.viewport_set_disable_3d(vp, true)\n\tRenderingServer.viewport_set_active(vp, true)\n\n\tvar ci_rid := RenderingServer.canvas_item_create()\n\tRenderingServer.viewport_set_canvas_transform(vp, canvas, Transform3D())\n\tRenderingServer.canvas_item_set_parent(ci_rid, canvas)\n\tvar texture := ImageTexture.create_from_image(image)\n\tRenderingServer.canvas_item_add_texture_rect(\n\t\tci_rid, Rect2(Vector2.ZERO, image.get_size()), texture\n\t)\n\n\tvar mat_rid := RenderingServer.material_create()\n\tRenderingServer.material_set_shader(mat_rid, _shader.get_rid())\n\tvar lut := Image.create(256, 1, false, Image.FORMAT_RGB8)\n\tlut.fill(Color8(colors[0][0], colors[0][1], colors[0][2]))\n\tfor i in colors.size():\n\t\tlut.set_pixel(i, 0, Color8(colors[i][0], colors[i][1], colors[i][2]))\n\tvar lut_tex := ImageTexture.create_from_image(lut)\n\t# Not sure why putting lut_tex is an array is needed, but without it, it doesn't work\n\tRenderingServer.material_set_param(mat_rid, \"lut\", [lut_tex])\n\tRenderingServer.canvas_item_set_material(ci_rid, mat_rid)\n\n\tRenderingServer.viewport_set_update_mode(vp, RenderingServer.VIEWPORT_UPDATE_ONCE)\n\tRenderingServer.force_draw(false)\n\timage = RenderingServer.texture_2d_get(RenderingServer.viewport_get_texture(vp))\n\n\tRenderingServer.free_rid(vp)\n\tRenderingServer.free_rid(canvas)\n\tRenderingServer.free_rid(ci_rid)\n\tRenderingServer.free_rid(mat_rid)\n\n\timage.convert(Image.FORMAT_R8)\n\treturn image.get_data()\n"
  },
  {
    "path": "addons/gdgifexporter/converter.gd.uid",
    "content": "uid://cmmnea3dr0006\n"
  },
  {
    "path": "addons/gdgifexporter/exporter.gd",
    "content": "extends RefCounted\n\nenum Error { OK = 0, EMPTY_IMAGE = 1, BAD_IMAGE_FORMAT = 2 }\n\nvar little_endian := preload(\"./little_endian.gd\").new()\nvar lzw := preload(\"./gif-lzw/lzw.gd\").new()\nvar converter := preload(\"./converter.gd\")\n\nvar last_color_table := []\nvar last_transparency_index := -1\n\n# File data and Header\nvar data := PackedByteArray([])\n\n\nfunc _init(_width: int, _height: int):\n\tadd_header()\n\tadd_logical_screen_descriptor(_width, _height)\n\tadd_application_ext(\"NETSCAPE\", \"2.0\", [1, 0, 0])\n\n\nfunc export_file_data() -> PackedByteArray:\n\treturn data + PackedByteArray([0x3b])\n\n\nfunc add_header() -> void:\n\tdata += \"GIF\".to_ascii_buffer() + \"89a\".to_ascii_buffer()\n\n\nfunc add_logical_screen_descriptor(width: int, height: int) -> void:\n\t# not Global Color Table Flag\n\t# Color Resolution = 8 bits\n\t# Sort Flag = 0, not sorted.\n\t# Size of Global Color Table set to 0\n\t# because we'll use only Local Tables\n\tvar packed_fields: int = 0b01110000\n\tvar background_color_index: int = 0\n\tvar pixel_aspect_ratio: int = 0\n\n\tdata += little_endian.int_to_word(width)\n\tdata += little_endian.int_to_word(height)\n\tdata.append(packed_fields)\n\tdata.append(background_color_index)\n\tdata.append(pixel_aspect_ratio)\n\n\nfunc add_application_ext(app_iden: String, app_auth_code: String, _data: Array) -> void:\n\tvar extension_introducer := 0x21\n\tvar extension_label := 0xff\n\n\tvar block_size := 11\n\n\tdata.append(extension_introducer)\n\tdata.append(extension_label)\n\tdata.append(block_size)\n\tdata += app_iden.to_ascii_buffer()\n\tdata += app_auth_code.to_ascii_buffer()\n\tdata.append(_data.size())\n\tdata += PackedByteArray(_data)\n\tdata.append(0)\n\n\n# finds the image color table. Stops if the size gets larger than 256.\nfunc find_color_table(image: Image) -> Dictionary:\n\tvar result: Dictionary = {}\n\tvar image_data: PackedByteArray = image.get_data()\n\n\tfor i in range(0, image_data.size(), 4):\n\t\tvar color: Array = [\n\t\t\tint(image_data[i]),\n\t\t\tint(image_data[i + 1]),\n\t\t\tint(image_data[i + 2]),\n\t\t\tint(image_data[i + 3])\n\t\t]\n\t\tif not color in result:\n\t\t\tresult[color] = result.size()\n\t\tif result.size() > 256:\n\t\t\tbreak\n\treturn result\n\n\nfunc find_transparency_color_index(color_table: Dictionary) -> int:\n\tfor color in color_table:\n\t\tif color[3] == 0:\n\t\t\treturn color_table[color]\n\treturn -1\n\n\nfunc colors_to_codes(\n\timg: Image, col_palette: Dictionary, transp_color_index: int\n) -> PackedByteArray:\n\tvar image_data: PackedByteArray = img.get_data()\n\tvar result: PackedByteArray = PackedByteArray([])\n\n\tfor i in range(0, image_data.size(), 4):\n\t\tvar color: Array = [image_data[i], image_data[i + 1], image_data[i + 2], image_data[i + 3]]\n\n\t\tif color in col_palette:\n\t\t\tif color[3] == 0 and transp_color_index != -1:\n\t\t\t\tresult.append(transp_color_index)\n\t\t\telse:\n\t\t\t\tresult.append(col_palette[color])\n\t\telse:\n\t\t\tresult.append(0)\n\t\t\tpush_warning(\"colors_to_codes: color not found! [%d, %d, %d, %d]\" % color)\n\n\treturn result\n\n\n# makes sure that the color table is at least size 4.\nfunc make_proper_size(color_table: Array) -> Array:\n\tvar result := [] + color_table\n\tif color_table.size() < 4:\n\t\tfor i in range(4 - color_table.size()):\n\t\t\tresult.append([0, 0, 0, 0])\n\treturn result\n\n\nfunc calc_delay_time(frame_delay: float) -> int:\n\treturn ceili(frame_delay / 0.01)\n\n\nfunc color_table_to_indexes(colors: Array) -> PackedByteArray:\n\tvar result: PackedByteArray = PackedByteArray([])\n\tfor i in range(colors.size()):\n\t\tresult.append(i)\n\treturn result\n\n\nfunc add_frame(image: Image, frame_delay: float, quantizator: Script) -> int:\n\t# check if image is of good format\n\tif image.get_format() != Image.FORMAT_RGBA8:\n\t\treturn Error.BAD_IMAGE_FORMAT\n\n\t# check if image isn't empty\n\tif image.is_empty():\n\t\treturn Error.EMPTY_IMAGE\n\n\tvar found_color_table: Dictionary = find_color_table(image)\n\n\tvar image_converted_to_codes: PackedByteArray\n\tvar transparency_color_index: int = -1\n\tvar color_table: Array\n\tif found_color_table.size() <= 256:  # we don't need to quantize the image.\n\t\t# try to find transparency color index.\n\t\ttransparency_color_index = find_transparency_color_index(found_color_table)\n\t\t# if didn't find transparency color index but there is at least one\n\t\t# place for this color then add it artificially.\n\t\tif transparency_color_index == -1 and found_color_table.size() <= 255:\n\t\t\tfound_color_table[[0, 0, 0, 0]] = found_color_table.size()\n\t\t\ttransparency_color_index = found_color_table.size() - 1\n\t\timage_converted_to_codes = colors_to_codes(\n\t\t\timage, found_color_table, transparency_color_index\n\t\t)\n\t\tcolor_table = make_proper_size(found_color_table.keys())\n\telse:  # we have to quantize the image.\n\t\tvar quantization_result: Array = quantizator.new().quantize(image)\n\t\timage_converted_to_codes = quantization_result[0]\n\t\tcolor_table = quantization_result[1]\n\t\t# transparency index should always be as the first element of color table.\n\t\ttransparency_color_index = 0 if quantization_result[2] else -1\n\n\tlast_color_table = color_table\n\tlast_transparency_index = transparency_color_index\n\n\tvar delay_time := calc_delay_time(frame_delay)\n\n\tvar color_table_indexes := color_table_to_indexes(color_table)\n\tvar compressed_image_result: Array = lzw.compress_lzw(\n\t\timage_converted_to_codes, color_table_indexes\n\t)\n\tvar compressed_image_data: PackedByteArray = compressed_image_result[0]\n\tvar lzw_min_code_size: int = compressed_image_result[1]\n\n\tadd_graphic_constrol_ext(delay_time, transparency_color_index)\n\tadd_image_descriptor(Vector2.ZERO, image.get_size(), color_table_bit_size(color_table))\n\tadd_local_color_table(color_table)\n\tadd_image_data_block(lzw_min_code_size, compressed_image_data)\n\n\treturn Error.OK\n\n\n## Adds frame with last color information\nfunc add_frame_with_lci(image: Image, frame_delay: float) -> int:\n\t# check if image is of good format\n\tif image.get_format() != Image.FORMAT_RGBA8:\n\t\treturn Error.BAD_IMAGE_FORMAT\n\n\t# check if image isn't empty\n\tif image.is_empty():\n\t\treturn Error.EMPTY_IMAGE\n\n\tvar image_converted_to_codes: PackedByteArray = converter.new().get_similar_indexed_datas(\n\t\timage, last_color_table\n\t)\n\n\tvar color_table_indexes := color_table_to_indexes(last_color_table)\n\tvar compressed_image_result: Array = lzw.compress_lzw(\n\t\timage_converted_to_codes, color_table_indexes\n\t)\n\tvar compressed_image_data: PackedByteArray = compressed_image_result[0]\n\tvar lzw_min_code_size: int = compressed_image_result[1]\n\n\tvar delay_time := calc_delay_time(frame_delay)\n\n\tadd_graphic_constrol_ext(delay_time, last_transparency_index)\n\tadd_image_descriptor(Vector2.ZERO, image.get_size(), color_table_bit_size(last_color_table))\n\tadd_local_color_table(last_color_table)\n\tadd_image_data_block(lzw_min_code_size, compressed_image_data)\n\n\treturn Error.OK\n\n\nfunc add_graphic_constrol_ext(_delay_time: float, tci: int = -1) -> void:\n\tvar extension_introducer: int = 0x21\n\tvar graphic_control_label: int = 0xf9\n\n\tvar block_size: int = 4\n\tvar packed_fields: int = 0b00001000\n\tif tci != -1:\n\t\tpacked_fields = 0b00001001\n\n\tvar delay_time: int = _delay_time\n\tvar transparent_color_index: int = tci if tci != -1 else 0\n\n\tdata.append(extension_introducer)\n\tdata.append(graphic_control_label)\n\n\tdata.append(block_size)\n\tdata.append(packed_fields)\n\tdata += little_endian.int_to_word(delay_time)\n\tdata.append(transparent_color_index)\n\n\tdata.append(0)\n\n\nfunc add_image_descriptor(pos: Vector2, size: Vector2, l_color_table_size: int) -> void:\n\tvar image_separator: int = 0x2c\n\tvar packed_fields: int = 0b10000000 | (0b111 & l_color_table_size)\n\n\tdata.append(image_separator)\n\tdata += little_endian.int_to_word(int(pos.x))  # left pos\n\tdata += little_endian.int_to_word(int(pos.y))  # top pos\n\tdata += little_endian.int_to_word(int(size.x))  # width\n\tdata += little_endian.int_to_word(int(size.y))  # height\n\tdata.append(packed_fields)\n\n\nfunc color_table_bit_size(color_table: Array) -> int:\n\tif color_table.size() <= 1:\n\t\treturn 0\n\tvar bit_size := ceili(log(color_table.size()) / log(2.0))\n\treturn bit_size - 1\n\n\nfunc add_local_color_table(color_table: Array) -> void:\n\tfor color in color_table:\n\t\tdata.append_array([color[0], color[1], color[2]])\n\n\tvar size := color_table_bit_size(color_table)\n\tvar proper_size := int(pow(2, size + 1))\n\n\tif color_table.size() != proper_size:\n\t\tfor i in range(proper_size - color_table.size()):\n\t\t\tdata.append_array([0, 0, 0])\n\n\nfunc add_image_data_block(lzw_min_code_size: int, _data: PackedByteArray) -> void:\n\tdata.append(lzw_min_code_size)\n\n\tvar block_size_index: int = 0\n\tvar i: int = 0\n\tvar data_index: int = 0\n\twhile data_index < _data.size():\n\t\tif i == 0:\n\t\t\tdata.append(0)\n\t\t\tblock_size_index = data.size() - 1\n\t\tdata.append(_data[data_index])\n\t\tdata[block_size_index] += 1\n\t\tdata_index += 1\n\t\ti += 1\n\t\tif i == 254:\n\t\t\ti = 0\n\n\tif not _data.is_empty():\n\t\tdata.append(0)\n"
  },
  {
    "path": "addons/gdgifexporter/exporter.gd.uid",
    "content": "uid://cuek4wkxkkpxm\n"
  },
  {
    "path": "addons/gdgifexporter/gif-lzw/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2020 Igor Santarek\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "addons/gdgifexporter/gif-lzw/lsbbitpacker.gd",
    "content": "extends RefCounted\n\n\nclass LSBLZWBitPacker:\n\tvar bit_index: int = 0\n\tvar stream: int = 0\n\n\tvar chunks: PackedByteArray = PackedByteArray([])\n\n\tfunc put_byte():\n\t\tchunks.append(stream & 0xff)\n\t\tbit_index -= 8\n\t\tstream >>= 8\n\n\tfunc write_bits(value: int, bits_count: int) -> void:\n\t\tvalue &= (1 << bits_count) - 1\n\t\tvalue <<= bit_index\n\t\tstream |= value\n\t\tbit_index += bits_count\n\t\twhile bit_index >= 8:\n\t\t\tself.put_byte()\n\n\tfunc pack() -> PackedByteArray:\n\t\tif bit_index != 0:\n\t\t\tself.put_byte()\n\t\treturn chunks\n\n\tfunc reset() -> void:\n\t\tbit_index = 0\n\t\tstream = 0\n\t\tchunks = PackedByteArray([])\n"
  },
  {
    "path": "addons/gdgifexporter/gif-lzw/lsbbitpacker.gd.uid",
    "content": "uid://4af6hcgfcnjm\n"
  },
  {
    "path": "addons/gdgifexporter/gif-lzw/lzw.gd",
    "content": "extends RefCounted\n\nvar lsbbitpacker := preload(\"./lsbbitpacker.gd\")\n\nvar code_table: Dictionary[PackedByteArray, int] = {}\nvar entries_counter := 0\n\n\nclass BitReader:\n\tvar bytes: PackedByteArray\n\tvar bit_pos := 0\n\n\tfunc _init(data: PackedByteArray) -> void:\n\t\tbytes = data\n\n\tfunc read_bits(num_bits: int) -> int:\n\t\tvar result := 0\n\t\tvar bits_read := 0\n\t\twhile bits_read < num_bits:\n\t\t\tvar byte_index := bit_pos >> 3\n\t\t\tvar bit_index := bit_pos & 7\n\t\t\tvar b := bytes[byte_index]\n\t\t\tvar bit := (b >> bit_index) & 1\n\t\t\tresult |= bit << bits_read\n\t\t\tbit_pos += 1\n\t\t\tbits_read += 1\n\t\treturn result\n\n\nfunc get_bit_length(value: int) -> int:\n\t# bitwise or on value does ensure that the function works with value 0\n\t# long number at the end is log(2.0)\n\treturn ceili(log(value | 0x1 + 1) / 0.6931471805599453)\n\n\nfunc _get_clear_code_index(colors: PackedByteArray) -> int:\n\tvar last_color_index: int = colors.size() - 1\n\treturn pow(2, get_bit_length(last_color_index))\n\n\nfunc initialize_color_code_table(colors: PackedByteArray) -> void:\n\tcode_table.clear()\n\tentries_counter = 0\n\tfor color_id in colors:\n\t\tvar entry := PackedByteArray([color_id])\n\t\tcode_table[entry] = entries_counter\n\t\tentries_counter += 1\n\t# move counter to the first available compression code index\n\tvar last_color_index: int = colors.size() - 1\n\tvar clear_code_index: int = pow(2, get_bit_length(last_color_index))\n\tentries_counter = clear_code_index + 2\n\n\n# compression and decompression done with source:\n# http://www.matthewflickinger.com/lab/whatsinagif/lzw_image_data.asp\n\n\nfunc compress_lzw(index_stream: PackedByteArray, colors: PackedByteArray) -> Array:\n\t# Initialize code table\n\tinitialize_color_code_table(colors)\n\t# Clear Code index is 2**<code size>\n\t# <code size> is the amount of bits needed to write down all colors\n\t# from color table. We use last color index because we can write\n\t# all colors (for example 16 colors) with indexes from 0 to 15.\n\t# Number 15 is in binary 0b1111, so we'll need 4 bits to write all\n\t# colors down.\n\tvar clear_code_index: int = _get_clear_code_index(colors)\n\tvar current_code_size: int = get_bit_length(clear_code_index)\n\tvar binary_code_stream = lsbbitpacker.LSBLZWBitPacker.new()\n\n\t# initialize with Clear Code\n\tbinary_code_stream.write_bits(clear_code_index, current_code_size)\n\n\t# Read first index from index stream.\n\tvar index_buffer := PackedByteArray([index_stream[0]])\n\tvar data_index: int = 1\n\t# <LOOP POINT>\n\twhile data_index < index_stream.size():\n\t\t# Get the next index from the index stream.\n\t\tvar k := index_stream[data_index]\n\t\tdata_index += 1\n\t\t# Is index buffer + k in our code table?\n\t\tvar new_index_buffer := PackedByteArray(index_buffer)\n\t\tnew_index_buffer.push_back(k)\n\t\tif code_table.has(new_index_buffer):  # if YES\n\t\t\t# Add k to the end of the index buffer\n\t\t\tindex_buffer = new_index_buffer\n\t\telse:  # if NO\n\t\t\t# Add a row for index buffer + k into our code table\n\t\t\tbinary_code_stream.write_bits(code_table.get(index_buffer, -1), current_code_size)\n\n\t\t\t# We don't want to add new code to code table if we've exceeded 4095\n\t\t\t# index.\n\t\t\tif entries_counter - 1 != 4095:\n\t\t\t\t# Output the code for just the index buffer to our code stream\n\t\t\t\t# warning-ignore:return_value_discarded\n\t\t\t\tcode_table[new_index_buffer] = entries_counter\n\t\t\t\tentries_counter += 1\n\t\t\telse:\n\t\t\t\t# if we exceeded 4095 index (code table is full), we should\n\t\t\t\t# output Clear Code and reset everything.\n\t\t\t\tbinary_code_stream.write_bits(clear_code_index, current_code_size)\n\t\t\t\tinitialize_color_code_table(colors)\n\t\t\t\t# get_bits_number_for(clear_code_index) is the same as\n\t\t\t\t# LZW code size + 1\n\t\t\t\tcurrent_code_size = get_bit_length(clear_code_index)\n\n\t\t\t# Detect when you have to save new codes in bigger bits boxes\n\t\t\t# change current code size when it happens because we want to save\n\t\t\t# flexible code sized codes\n\t\t\tvar new_code_size_candidate: int = get_bit_length(entries_counter - 1)\n\t\t\tif new_code_size_candidate > current_code_size:\n\t\t\t\tcurrent_code_size = new_code_size_candidate\n\n\t\t\t# Index buffer is set to k\n\t\t\tindex_buffer = PackedByteArray([k])\n\t# Output code for contents of index buffer\n\tbinary_code_stream.write_bits(code_table.get(index_buffer, -1), current_code_size)\n\n\t# output end with End Of Information Code\n\tbinary_code_stream.write_bits(clear_code_index + 1, current_code_size)\n\n\tvar min_code_size: int = get_bit_length(clear_code_index) - 1\n\n\treturn [binary_code_stream.pack(), min_code_size]\n\n\nfunc decompress_lzw(min_code_size: int, data: PackedByteArray) -> PackedByteArray:\n\tvar clear_code := 1 << min_code_size\n\tvar end_code := clear_code + 1\n\tvar next_code := end_code + 1\n\tvar code_size := min_code_size + 1\n\tvar max_code := (1 << code_size) - 1\n\n\t# Initialize dictionary\n\tvar dict: Dictionary[int, PackedByteArray] = {}\n\tfor i in range(clear_code):\n\t\tdict[i] = PackedByteArray([i])\n\n\tvar result: PackedByteArray = []\n\tvar reader := BitReader.new(data)\n\tvar prev := -1\n\twhile true:\n\t\tvar code := reader.read_bits(code_size)\n\n\t\tif code == clear_code:\n\t\t\t# Reset dictionary\n\t\t\tdict.clear()\n\t\t\tfor i in range(clear_code):\n\t\t\t\tdict[i] = PackedByteArray([i])\n\t\t\tcode_size = min_code_size + 1\n\t\t\tnext_code = end_code + 1\n\t\t\tmax_code = (1 << code_size) - 1\n\t\t\tprev = -1\n\t\t\tcontinue\n\n\t\telif code == end_code:\n\t\t\tbreak\n\n\t\tvar entry: PackedByteArray = []\n\t\tif dict.has(code):\n\t\t\tentry = dict[code]\n\t\telif code == next_code and prev != -1:\n\t\t\tentry = dict[prev] + PackedByteArray([dict[prev][0]])\n\t\telse:\n\t\t\t# invalid (corrupted GIF)\n\t\t\tbreak\n\n\t\t# Output\n\t\tfor c in entry:\n\t\t\tresult.append(c)\n\n\t\tif prev != -1:\n\t\t\tvar new_entry := dict[prev] + PackedByteArray([entry[0]])\n\t\t\tdict[next_code] = new_entry\n\t\t\tnext_code += 1\n\n\t\t\t# Increase code size if needed\n\t\t\tif next_code > max_code and code_size < 12:\n\t\t\t\tcode_size += 1\n\t\t\t\tmax_code = (1 << code_size) - 1\n\n\t\tprev = code\n\n\treturn result\n"
  },
  {
    "path": "addons/gdgifexporter/gif-lzw/lzw.gd.uid",
    "content": "uid://bhy8x0s476puw\n"
  },
  {
    "path": "addons/gdgifexporter/gifdatatypes.gd",
    "content": "class_name GIFDataTypes\nextends RefCounted\n\nenum DisposalMethod {\n\tNO_SPECIFIED = 0, DO_NOT_DISPOSE = 1, RESTORE_TO_BACKGROUND = 2, RESTORE_TO_PREVIOUS = 3\n}\n\nconst LittleEndian := preload(\"./little_endian.gd\")\n\nconst EXTENSION_INTRODUCER: int = 0x21\nconst GRAPHIC_CONTROL_LABEL: int = 0xf9\n\n\nclass GraphicControlExtension:\n\tvar delay_time: float = 0.0\n\tvar disposal_method: int = DisposalMethod.DO_NOT_DISPOSE\n\tvar uses_transparency: bool = false\n\tvar transparent_color_index: int = 0\n\n\tfunc set_delay_time_from_export(_delay_time: int) -> void:\n\t\tdelay_time = float(_delay_time) / 100.0\n\n\tfunc set_packed_fields(packed_fields: int) -> void:\n\t\tdisposal_method = (packed_fields & 0b0001_1100) >> 2\n\t\tuses_transparency = true if packed_fields & 1 == 1 else false\n\n\tfunc get_delay_time_for_export() -> int:\n\t\treturn ceili(delay_time / 0.01)\n\n\tfunc get_packed_fields() -> int:\n\t\tvar result: int = 1 if uses_transparency else 0\n\t\tresult = result | (disposal_method << 2)\n\t\treturn result\n\n\tfunc to_bytes() -> PackedByteArray:\n\t\tvar little_endian := LittleEndian.new()\n\t\tvar result: PackedByteArray = PackedByteArray([])\n\t\tvar block_size: int = 4\n\n\t\tresult.append(EXTENSION_INTRODUCER)\n\t\tresult.append(GRAPHIC_CONTROL_LABEL)\n\n\t\tresult.append(block_size)\n\t\tresult.append(get_packed_fields())\n\t\tresult += little_endian.int_to_word(get_delay_time_for_export())\n\t\tresult.append(transparent_color_index)\n\n\t\tresult.append(0)\n\n\t\treturn result\n\n\nclass ImageDescriptor:\n\tvar image_separator: int = 0x2c\n\tvar image_left_position: int = 0\n\tvar image_top_position: int = 0\n\tvar image_width: int\n\tvar image_height: int\n\tvar packed_fields: int = 0b10000000\n\n\tfunc _init(\n\t\t_image_left_position: int,\n\t\t_image_top_position: int,\n\t\t_image_width: int,\n\t\t_image_height: int,\n\t\tsize_of_local_color_table: int\n\t):\n\t\timage_left_position = _image_left_position\n\t\timage_top_position = _image_top_position\n\t\timage_width = _image_width\n\t\timage_height = _image_height\n\t\tpacked_fields = packed_fields | (0b111 & size_of_local_color_table)\n\n\tfunc to_bytes() -> PackedByteArray:\n\t\tvar little_endian = LittleEndian.new()\n\t\tvar result: PackedByteArray = PackedByteArray([])\n\n\t\tresult.append(image_separator)\n\t\tresult += little_endian.int_to_word(image_left_position)\n\t\tresult += little_endian.int_to_word(image_top_position)\n\t\tresult += little_endian.int_to_word(image_width)\n\t\tresult += little_endian.int_to_word(image_height)\n\t\tresult.append(packed_fields)\n\n\t\treturn result\n\n\nclass LocalColorTable:\n\tvar colors: Array = []\n\n\tfunc log2(value: float) -> float:\n\t\treturn log(value) / log(2.0)\n\n\tfunc get_size() -> int:\n\t\tif colors.size() <= 1:\n\t\t\treturn 0\n\t\treturn ceili(log2(colors.size()) - 1)\n\n\tfunc to_bytes() -> PackedByteArray:\n\t\tvar result: PackedByteArray = PackedByteArray([])\n\n\t\tfor v in colors:\n\t\t\tresult.append(v[0])\n\t\t\tresult.append(v[1])\n\t\t\tresult.append(v[2])\n\n\t\tif colors.size() != int(pow(2, get_size() + 1)):\n\t\t\tfor i in range(int(pow(2, get_size() + 1)) - colors.size()):\n\t\t\t\tresult += PackedByteArray([0, 0, 0])\n\n\t\treturn result\n\n\nclass ApplicationExtension:\n\tvar extension_introducer: int = 0x21\n\tvar extension_label: int = 0xff\n\n\tvar block_size: int = 11\n\tvar application_identifier: PackedByteArray\n\tvar appl_authentication_code: PackedByteArray\n\n\tvar application_data: PackedByteArray\n\n\tfunc _init(_application_identifier: String, _appl_authentication_code: String):\n\t\tapplication_identifier = _application_identifier.to_ascii_buffer()\n\t\tappl_authentication_code = _appl_authentication_code.to_ascii_buffer()\n\n\tfunc to_bytes() -> PackedByteArray:\n\t\tvar result: PackedByteArray = PackedByteArray([])\n\n\t\tresult.append(extension_introducer)\n\t\tresult.append(extension_label)\n\t\tresult.append(block_size)\n\t\tresult += application_identifier\n\t\tresult += appl_authentication_code\n\n\t\tresult.append(application_data.size())\n\t\tresult += application_data\n\n\t\tresult.append(0)\n\n\t\treturn result\n\n\nclass ImageData:\n\tvar lzw_minimum_code_size: int\n\tvar image_data: PackedByteArray\n\n\tfunc to_bytes() -> PackedByteArray:\n\t\tvar result: PackedByteArray = PackedByteArray([])\n\t\tresult.append(lzw_minimum_code_size)\n\n\t\tvar block_size_index: int = 0\n\t\tvar i: int = 0\n\t\tvar data_index: int = 0\n\t\twhile data_index < image_data.size():\n\t\t\tif i == 0:\n\t\t\t\tresult.append(0)\n\t\t\t\tblock_size_index = result.size() - 1\n\t\t\tresult.append(image_data[data_index])\n\t\t\tresult[block_size_index] += 1\n\t\t\tdata_index += 1\n\t\t\ti += 1\n\t\t\tif i == 254:\n\t\t\t\ti = 0\n\n\t\tif not image_data.is_empty():\n\t\t\tresult.append(0)\n\n\t\treturn result\n"
  },
  {
    "path": "addons/gdgifexporter/gifdatatypes.gd.uid",
    "content": "uid://dihqnh6lea6rs\n"
  },
  {
    "path": "addons/gdgifexporter/importer.gd",
    "content": "class_name GIFImporter\nextends GIFDataTypes\n\n\nclass GifFrame:\n\tvar image: Image\n\tvar delay: float\n\tvar disposal_method: int\n\tvar transparent_color_index := -1\n\tvar x: int\n\tvar y: int\n\tvar w: int\n\tvar h: int\n\n\nenum Error { OK, FILE_IS_EMPTY, FILE_SMALLER_MINIMUM, NOT_A_SUPPORTED_FILE }\n\nconst R: int = 0\nconst G: int = 1\nconst B: int = 2\n\nvar lzw := preload(\"./gif-lzw/lzw.gd\").new()\n## If true, dispose method 2 disposes to transparent color instead of a background color,\n## if the gif uses any transparency at all.\nvar dispose_to_transparent := false\n\nvar header: PackedByteArray\nvar logical_screen_descriptor: PackedByteArray\n\nvar import_file: FileAccess\nvar frames: Array[GifFrame]\n\nvar background_color_index: int\nvar pixel_aspect_ratio: int\nvar global_color_table: Array[PackedByteArray]\nvar is_animated: bool = false\n\nvar last_graphic_control_extension: GraphicControlExtension = null\nvar transparency_found := false\nvar curr_canvas: Image\nvar previous_canvas: Image\n\n\nfunc _init(file: FileAccess):\n\timport_file = file\n\n\nfunc skip_bytes(amount: int) -> void:\n\timport_file.seek(import_file.get_position() + amount)\n\n\nfunc load_header() -> void:\n\theader = import_file.get_buffer(6)\n\n\nfunc get_gif_ver() -> String:\n\treturn header.get_string_from_ascii()\n\n\nfunc load_logical_screen_descriptor() -> void:\n\tlogical_screen_descriptor = import_file.get_buffer(7)\n\tbackground_color_index = get_background_color_index()\n\n\nfunc get_logical_screen_width() -> int:\n\treturn logical_screen_descriptor.decode_s16(0)\n\n\nfunc get_logical_screen_height() -> int:\n\treturn logical_screen_descriptor.decode_s16(2)\n\n\nfunc get_packed_fields() -> int:\n\treturn logical_screen_descriptor[4]\n\n\nfunc has_global_color_table() -> bool:\n\treturn (get_packed_fields() >> 7) == 1\n\n\nfunc get_color_resolution() -> int:\n\treturn ((get_packed_fields() >> 4) & 0b0111) + 1\n\n\nfunc get_size_of_global_color_table() -> int:\n\treturn int(pow(2, (get_packed_fields() & 0b111) + 1))\n\n\nfunc get_background_color_index() -> int:\n\treturn logical_screen_descriptor[5]\n\n\nfunc get_pixel_aspect_ratio() -> int:\n\treturn logical_screen_descriptor[6]\n\n\nfunc load_global_color_table() -> void:\n\tglobal_color_table = []\n\tglobal_color_table.resize(get_size_of_global_color_table())\n\tfor i in global_color_table.size():\n\t\tvar color_bytes := PackedByteArray(\n\t\t\t[import_file.get_8(), import_file.get_8(), import_file.get_8()]\n\t\t)\n\t\tglobal_color_table[i] = color_bytes\n\n\nfunc load_local_color_table(size: int) -> Array[PackedByteArray]:\n\tvar result: Array[PackedByteArray] = []\n\tresult.resize(size)\n\tfor i in range(size):\n\t\tvar color_bytes := PackedByteArray(\n\t\t\t[import_file.get_8(), import_file.get_8(), import_file.get_8()]\n\t\t)\n\t\tresult[i] = color_bytes\n\treturn result\n\n\nfunc load_data_subblocks() -> PackedByteArray:\n\tvar result: PackedByteArray = PackedByteArray([])\n\n\twhile true:\n\t\tvar block_size: int = import_file.get_8()\n\t\tif block_size == 0:\n\t\t\tbreak\n\t\tresult.append_array(import_file.get_buffer(block_size))\n\n\treturn result\n\n\nfunc skip_data_subblocks() -> void:\n\twhile true:\n\t\tvar block_size: int = import_file.get_8()\n\t\tif block_size == 0:\n\t\t\tbreak\n\t\timport_file.seek(import_file.get_position() + block_size)\n\n\nfunc load_compressed_image_data() -> PackedByteArray:\n\tvar lzw_min_code_size: int = import_file.get_8()\n\tvar image_data: PackedByteArray = PackedByteArray([])\n\n\t# loading data sub-blocks\n\timage_data = load_data_subblocks()\n\n\tvar decompressed_image_data: PackedByteArray = lzw.decompress_lzw(lzw_min_code_size, image_data)\n\treturn decompressed_image_data\n\n\nfunc indexes_to_rgba(\n\tencrypted_img_data: PackedByteArray,\n\tcolor_table: Array[PackedByteArray],\n\ttransparency_index: int\n) -> PackedByteArray:\n\tvar result: PackedByteArray = PackedByteArray([])\n\tresult.resize(encrypted_img_data.size() * 4)  # because RGBA format\n\n\tfor i in range(encrypted_img_data.size()):\n\t\tvar j: int = 4 * i\n\t\tvar color_index: int = encrypted_img_data[i]\n\t\tresult[j] = color_table[color_index][R]\n\t\tresult[j + 1] = color_table[color_index][G]\n\t\tresult[j + 2] = color_table[color_index][B]\n\t\t# alpha channel\n\t\tif color_index == transparency_index:\n\t\t\tresult[j + 3] = 0\n\t\telse:\n\t\t\tresult[j + 3] = 255\n\n\treturn result\n\n\nfunc load_interlaced_image_data(\n\tcolor_table: Array, w: int, h: int, transparency_index: int = -1\n) -> Image:\n\tvar image_data: PackedByteArray = load_compressed_image_data()\n\tvar deinterlaced_data := deinterlace(image_data, w, h)\n\tvar decrypted_image_data: PackedByteArray = indexes_to_rgba(\n\t\tdeinterlaced_data, color_table, transparency_index\n\t)\n\tvar result_image := Image.create_from_data(\n\t\tw, h, false, Image.FORMAT_RGBA8, decrypted_image_data\n\t)\n\treturn result_image\n\n\nfunc deinterlace(indexes: PackedByteArray, width: int, height: int) -> PackedByteArray:\n\tvar output := PackedByteArray()\n\toutput.resize(width * height)\n\n\tvar passes: Array[Dictionary] = [\n\t\t{\"start\": 0, \"step\": 8},\n\t\t{\"start\": 4, \"step\": 8},\n\t\t{\"start\": 2, \"step\": 4},\n\t\t{\"start\": 1, \"step\": 2},\n\t]\n\n\tvar pos := 0\n\tfor p in passes:\n\t\tvar row: int = p.start\n\t\twhile row < height:\n\t\t\tvar row_start := row * width\n\t\t\tfor x in range(width):\n\t\t\t\tif pos >= indexes.size():\n\t\t\t\t\treturn output\n\t\t\t\toutput[row_start + x] = indexes[pos]\n\t\t\t\tpos += 1\n\t\t\trow += p.step\n\treturn output\n\n\nfunc load_progressive_image_data(\n\tcolor_table: Array, w: int, h: int, transparency_index: int = -1\n) -> Image:\n\tvar encrypted_image_data: PackedByteArray = load_compressed_image_data()\n\n\tvar decrypted_image_data: PackedByteArray = indexes_to_rgba(\n\t\tencrypted_image_data, color_table, transparency_index\n\t)\n\n\tvar result_image := Image.create_from_data(\n\t\tw, h, false, Image.FORMAT_RGBA8, decrypted_image_data\n\t)\n\n\treturn result_image\n\n\nfunc handle_image_descriptor() -> int:\n\tvar x: int = import_file.get_buffer(2).decode_s16(0)\n\tvar y: int = import_file.get_buffer(2).decode_s16(0)\n\tvar w: int = import_file.get_buffer(2).decode_s16(0)\n\tvar h: int = import_file.get_buffer(2).decode_s16(0)\n\tvar packed_field: int = import_file.get_8()\n\n\tvar has_local_color_table: bool = (packed_field >> 7) == 1\n\tvar is_interlace_flag_on: bool = ((packed_field >> 6) & 0b01) == 1\n\t# Skipping sort flag\n\t# Skipping reserved bits\n\tvar size_of_local_color_table: int = pow(2, (packed_field & 0b111) + 1)\n\tvar local_color_table: Array[PackedByteArray] = []\n\tvar color_table: Array[PackedByteArray]\n\tif has_local_color_table:\n\t\tlocal_color_table = load_local_color_table(size_of_local_color_table)\n\t\tcolor_table = local_color_table\n\telse:\n\t\tcolor_table = global_color_table\n\n\tvar transparent_color_index: int = -1\n\tvar new_frame := GifFrame.new()\n\tif last_graphic_control_extension != null:\n\t\tif last_graphic_control_extension.uses_transparency:\n\t\t\ttransparent_color_index = last_graphic_control_extension.transparent_color_index\n\t\t\ttransparency_found = true\n\t\tnew_frame.delay = last_graphic_control_extension.delay_time\n\t\tnew_frame.disposal_method = last_graphic_control_extension.disposal_method\n\t\tlast_graphic_control_extension = null\n\telse:\n\t\t# -1 because Image Descriptor didn't have Graphics Control Extension\n\t\t# before it with frame delay value, so we want to set it as -1 because we\n\t\t# want to tell end user that this frame has no delay.\n\t\tnew_frame.delay = -1\n\t\tnew_frame.disposal_method = DisposalMethod.RESTORE_TO_BACKGROUND\n\n\tvar image: Image\n\tif is_interlace_flag_on:\n\t\timage = load_interlaced_image_data(color_table, w, h, transparent_color_index)\n\telse:\n\t\timage = load_progressive_image_data(color_table, w, h, transparent_color_index)\n\tif frames.size() > 0:\n\t\tvar prev_frame := frames[frames.size() - 1]\n\t\tif prev_frame.disposal_method == DisposalMethod.RESTORE_TO_BACKGROUND:\n\t\t\tvar should_use_transparency := transparency_found and dispose_to_transparent\n\t\t\tif global_color_table.is_empty():\n\t\t\t\tshould_use_transparency = true\n\t\t\tif not should_use_transparency:\n\t\t\t\tvar bg_image := Image.create_empty(w, h, false, image.get_format())\n\t\t\t\tvar r := global_color_table[background_color_index][R]\n\t\t\t\tvar g := global_color_table[background_color_index][G]\n\t\t\t\tvar b := global_color_table[background_color_index][B]\n\t\t\t\tvar a := 255\n\t\t\t\tif background_color_index == transparent_color_index:\n\t\t\t\t\ta = 0\n\t\t\t\tvar background_color := Color.from_rgba8(r, g, b, a)\n\t\t\t\tbg_image.fill(background_color)\n\t\t\t\tcurr_canvas.fill(Color(0, 0, 0, 0))\n\t\t\t\tcurr_canvas.blit_rect(bg_image, Rect2i(x, y, w, h), Vector2i(x, y))\n\t\t\telse:\n\t\t\t\tcurr_canvas.fill(Color(0, 0, 0, 0))\n\t\telif prev_frame.disposal_method == DisposalMethod.RESTORE_TO_PREVIOUS:\n\t\t\tif is_instance_valid(previous_canvas):\n\t\t\t\tcurr_canvas.copy_from(previous_canvas)\n\t\tif new_frame.disposal_method == DisposalMethod.RESTORE_TO_PREVIOUS:\n\t\t\tprevious_canvas = Image.new()\n\t\t\tprevious_canvas.copy_from(curr_canvas)\n\t\telse:\n\t\t\tprevious_canvas = null\n\t\tcurr_canvas.blit_rect_mask(\n\t\t\timage, image, Rect2i(Vector2i.ZERO, curr_canvas.get_size()), Vector2i(x, y)\n\t\t)\n\telse:\n\t\tcurr_canvas = image\n\tnew_frame.image = Image.new()\n\tnew_frame.image.copy_from(curr_canvas)\n\tnew_frame.transparent_color_index = transparent_color_index\n\tnew_frame.x = x\n\tnew_frame.y = y\n\tnew_frame.w = w\n\tnew_frame.h = h\n\n\tframes.append(new_frame)\n\n\treturn Error.OK\n\n\nfunc handle_graphics_control_extension() -> int:\n\tvar block_size: int = import_file.get_8()\n\tif block_size != 4:\n\t\tprinterr(\"Graphics extension block size isn't equal to 4!\")\n\tvar packed_fields: int = import_file.get_8()\n\tvar delay_time: int = import_file.get_buffer(2).decode_s16(0)\n\tvar transparent_color_index: int = import_file.get_8()\n\tvar block_terminator: int = import_file.get_8()\n\tif block_terminator != 0:\n\t\tprinterr(\"Block terminator in graphics control extensions should be 0.\")\n\n\tvar graphic_control_extension: GraphicControlExtension = GraphicControlExtension.new()\n\tgraphic_control_extension.set_delay_time_from_export(delay_time)\n\tgraphic_control_extension.set_packed_fields(packed_fields)\n\tgraphic_control_extension.transparent_color_index = transparent_color_index\n\n\tlast_graphic_control_extension = graphic_control_extension\n\n\treturn Error.OK\n\n\nfunc check_if_is_animation(\n\tapplication_identifier: String, appl_authentication_code: String, appl_data: PackedByteArray\n) -> void:\n\tvar proper_appl_data: PackedByteArray = PackedByteArray([1, 0, 0])\n\tif (\n\t\tapplication_identifier == \"NETSCAPE\"\n\t\tand appl_authentication_code == \"2.0\"\n\t\tand appl_data == proper_appl_data\n\t):\n\t\tis_animated = true\n\n\nfunc handle_application_extension() -> int:\n\tvar block_size: int = import_file.get_8()\n\tif block_size != 11:\n\t\tprinterr(\"Application extension's block size isn't equal to 11!\")\n\tvar application_identifier: String = import_file.get_buffer(8).get_string_from_ascii()\n\tvar appl_authentication_code: String = import_file.get_buffer(3).get_string_from_ascii()\n\tvar appl_data: PackedByteArray = load_data_subblocks()\n\tcheck_if_is_animation(application_identifier, appl_authentication_code, appl_data)\n\treturn Error.OK\n\n\nfunc handle_comment_extension() -> int:\n\tskip_data_subblocks()\n\treturn Error.OK\n\n\nfunc handle_plain_text_extension() -> int:\n\tvar block_size := import_file.get_8()\n\tskip_bytes(block_size)\n\tskip_data_subblocks()\n\treturn Error.OK\n\n\nfunc handle_extension_introducer() -> int:\n\tvar label: int = import_file.get_8()\n\tmatch label:\n\t\t0xF9:  # Graphics Control Extension\n\t\t\treturn handle_graphics_control_extension()\n\t\t0xFF:  # Application Extension\n\t\t\treturn handle_application_extension()\n\t\t0xFE:  # Comment Extension\n\t\t\treturn handle_comment_extension()\n\t\t0x01:  # Plain Text Extension\n\t\t\treturn handle_plain_text_extension()\n\treturn Error.OK\n\n\nfunc import() -> int:\n\t# Reset state\n\tframes = []\n\tis_animated = false\n\tglobal_color_table = []\n\tlast_graphic_control_extension = null\n\n\t# File checks\n\tif import_file.get_length() == 0:\n\t\treturn Error.FILE_IS_EMPTY\n\tif import_file.get_length() < 13:\n\t\treturn Error.FILE_SMALLER_MINIMUM\n\n\t# HEADER\n\tload_header()\n\tvar gif_ver: String = get_gif_ver()\n\tif gif_ver != \"GIF87a\" and gif_ver != \"GIF89a\":\n\t\tprinterr(\"Not a supported gif file.\")\n\t\treturn Error.NOT_A_SUPPORTED_FILE\n\n\t# LOGICAL SCREEN DESCRIPTOR\n\tload_logical_screen_descriptor()\n\tif has_global_color_table():\n\t\tload_global_color_table()\n\n\tcurr_canvas = Image.create_empty(\n\t\tget_logical_screen_width(), get_logical_screen_height(), false, Image.FORMAT_RGBA8\n\t)\n\t# GifFrame loading loop\n\twhile import_file.get_position() < import_file.get_length():\n\t\tif import_file.eof_reached():\n\t\t\tbreak\n\n\t\tvar label: int = import_file.get_8()\n\t\tvar error: int = Error.OK\n\n\t\tmatch label:\n\t\t\t0x2C:  # Image Descriptor\n\t\t\t\terror = handle_image_descriptor()\n\t\t\t0x21:  # Extension Introducer\n\t\t\t\terror = handle_extension_introducer()\n\t\t\t0x3B:  # Trailer\n\t\t\t\tbreak\n\t\t\t_:\n\t\t\t\tprinterr(\"Unknown block label: \", label)\n\t\t\t\terror = Error.OK\n\n\t\tif error != Error.OK:\n\t\t\treturn error\n\n\treturn Error.OK\n"
  },
  {
    "path": "addons/gdgifexporter/importer.gd.uid",
    "content": "uid://bml2q6e8rr82h\n"
  },
  {
    "path": "addons/gdgifexporter/little_endian.gd",
    "content": "extends RefCounted\n\n\nfunc int_to_word(value: int) -> PackedByteArray:\n\treturn PackedByteArray([value & 255, (value >> 8) & 255])\n"
  },
  {
    "path": "addons/gdgifexporter/little_endian.gd.uid",
    "content": "uid://bb75835rfe4f0\n"
  },
  {
    "path": "addons/gdgifexporter/lookup_color.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nuniform sampler2D lut;\n\nvoid fragment() {\n\tvec4 color = texture(TEXTURE, UV);\n\tfloat index = 0.0;\n\tif (color.a > 0.0) {\n\t\tfor (int i = 0; i < 256; i++) {\n\t\t\tvec4 c = texture(lut, vec2((float(i) + 0.5) / 256.0, 0.5));\n\t\t\tif (c.rgb == color.rgb) {\n\t\t\t\tindex = float(i) / 255.0;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tCOLOR = vec4(vec3(index), 1.0);\n}"
  },
  {
    "path": "addons/gdgifexporter/lookup_color.gdshader.uid",
    "content": "uid://crcikof2gkto8\n"
  },
  {
    "path": "addons/gdgifexporter/lookup_similar.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nuniform sampler2D lut;\n\nvoid fragment() {\n\tvec4 color = texture(TEXTURE, UV);\n\tvec4 similar = texture(lut, vec2(0.5 / 256.0, 0.5));\n\tfloat index = 0.0;\n\tif (color.a > 0.0) {\n\t\tfloat dist = distance(color.xyz, similar.xyz);\n\t\tfor (int i = 1; i < 256; i++) {\n\t\t\tvec4 c = texture(lut, vec2((float(i) + 0.5) / 256.0, 0.5));\n\t\t\tfloat d = distance(color.xyz, c.xyz);\n\t\t\tif (d < dist) {\n\t\t\t\tdist = d;\n\t\t\t\tindex = float(i) / 255.0;\n\t\t\t}\n\t\t}\n\t}\n\tCOLOR = vec4(vec3(index), 1.0);\n}"
  },
  {
    "path": "addons/gdgifexporter/lookup_similar.gdshader.uid",
    "content": "uid://cnqjlm577flus\n"
  },
  {
    "path": "addons/gdgifexporter/quantization/median_cut.gd",
    "content": "extends RefCounted\n\nvar converter := preload(\"../converter.gd\").new()\nvar transparency := false\n\n\nfunc longest_axis(colors: Array) -> int:\n\tvar start: PackedInt32Array = [255, 255, 255]\n\tvar end: PackedInt32Array = [0, 0, 0]\n\tfor color in colors:\n\t\tfor i in 3:\n\t\t\tstart[i] = mini(color[i], start[i])\n\t\t\tend[i] = maxi(color[i], end[i])\n\n\tvar max_r := end[0] - start[0]\n\tvar max_g := end[1] - start[1]\n\tvar max_b := end[2] - start[2]\n\n\tif max_r > max_g:\n\t\tif max_r > max_b:\n\t\t\treturn 0\n\telse:\n\t\tif max_g > max_b:\n\t\t\treturn 1\n\treturn 2\n\n\nfunc get_median(colors: Array) -> Vector3:\n\treturn colors[colors.size() >> 1]\n\n\nfunc median_cut(colors: Array) -> Array:\n\tvar axis := longest_axis(colors)\n\n\tvar axis_sort := []\n\tfor color in colors:\n\t\taxis_sort.append(color[axis])\n\taxis_sort.sort()\n\n\tvar cut := axis_sort.size() >> 1\n\tvar median: int = axis_sort[cut]\n\taxis_sort = []\n\n\tvar left_colors := []\n\tvar right_colors := []\n\n\tfor color in colors:\n\t\tif color[axis] < median:\n\t\t\tleft_colors.append(color)\n\t\telse:\n\t\t\tright_colors.append(color)\n\n\treturn [left_colors, right_colors]\n\n\nfunc average_color(bucket: Array) -> Array:\n\tvar r := 0\n\tvar g := 0\n\tvar b := 0\n\tfor color in bucket:\n\t\tr += color[0]\n\t\tg += color[1]\n\t\tb += color[2]\n\treturn [r / bucket.size(), g / bucket.size(), b / bucket.size()]\n\n\nfunc average_colors(buckets: Array) -> Dictionary:\n\tvar avg_colors := {}\n\tfor bucket in buckets:\n\t\tif bucket.size() > 0:\n\t\t\tavg_colors[average_color(bucket)] = avg_colors.size()\n\treturn avg_colors\n\n\nfunc pixels_to_colors(image: Image) -> Array:\n\tvar result := []\n\tvar data: PackedByteArray = image.get_data()\n\n\tfor i in range(0, data.size(), 4):\n\t\tif data[i + 3] == 0:\n\t\t\ttransparency = true\n\t\t\tcontinue\n\t\tresult.append([data[i], data[i + 1], data[i + 2]])\n\treturn result\n\n\nfunc remove_smallest_bucket(buckets: Array) -> Array:\n\tif buckets.size() == 0:\n\t\treturn buckets\n\tvar i_of_smallest_bucket := 0\n\tfor i in range(buckets.size()):\n\t\tif buckets[i].size() < buckets[i_of_smallest_bucket].size():\n\t\t\ti_of_smallest_bucket = i\n\tbuckets.remove_at(i_of_smallest_bucket)\n\treturn buckets\n\n\nfunc remove_empty_buckets(buckets: Array) -> Array:\n\tif buckets.size() == 0:\n\t\treturn buckets\n\n\tvar i := buckets.find([])\n\twhile i != -1:\n\t\tbuckets.remove_at(i)\n\t\ti = buckets.find([])\n\n\treturn buckets\n\n\n## Quantizes to gif ready codes\nfunc quantize(image: Image) -> Array:\n\tvar pixels := pixels_to_colors(image)\n\tif pixels.size() == 0:\n\t\treturn pixels\n\n\tvar buckets := [pixels]\n\tvar done_buckets := []\n\n\t# it tells how many times buckets should be divided into two\n\tvar dimensions := 8\n\n\tfor i in range(0, dimensions):\n\t\tvar new_buckets := []\n\t\tfor bucket in buckets:\n\t\t\t# don't median cut if bucket is smaller than 2, because\n\t\t\t# it won't produce two new buckets.\n\t\t\tif bucket.size() > 1:\n\t\t\t\tvar res := median_cut(bucket)\n\t\t\t\t# sometimes when you try to median cut a bucket, the result\n\t\t\t\t# is one with size equal to 0 and other with full size as the\n\t\t\t\t# source bucket. Because of that it's useless to try to divide\n\t\t\t\t# it further so it's better to put it into separate list and\n\t\t\t\t# process only those buckets witch divide further.\n\t\t\t\tif res[0].size() == 0 or res[1].size() == 0:\n\t\t\t\t\tdone_buckets += res\n\t\t\t\telse:\n\t\t\t\t\tnew_buckets += res\n\t\tbuckets = []\n\t\tbuckets = new_buckets\n\n\tvar all_buckets := remove_empty_buckets(done_buckets + buckets)\n\n\tbuckets = []\n\tdone_buckets = []\n\n\tif transparency:\n\t\tif all_buckets.size() == pow(2, dimensions):\n\t\t\tall_buckets = remove_smallest_bucket(all_buckets)\n\n\t# dictionaries are only for speed.\n\tvar color_array := average_colors(all_buckets).keys()\n\n\t# if pixel_to_colors detected that the image has transparent pixels\n\t# then add transparency color at the beginning so it will be properly\n\t# exported.\n\tif transparency:\n\t\tcolor_array = [[0, 0, 0]] + color_array\n\n\tvar data: PackedByteArray = converter.get_similar_indexed_datas(image, color_array)\n\n\treturn [data, color_array, transparency]\n"
  },
  {
    "path": "addons/gdgifexporter/quantization/median_cut.gd.uid",
    "content": "uid://qlo30wdsmvn0\n"
  },
  {
    "path": "addons/gdgifexporter/quantization/uniform.gd",
    "content": "extends RefCounted\n\nvar converter := preload(\"../converter.gd\").new()\nvar transparency := false\n\n\nfunc how_many_divisions(colors_count: int) -> int:\n\treturn ceili(pow(colors_count, 1.0 / 4.0))\n\n\nfunc generate_colors(colors_count: int) -> Array:\n\tvar divisions_count: int = how_many_divisions(colors_count)\n\tvar colors: Array = []\n\n\tfor a in range(divisions_count):\n\t\tfor b in range(divisions_count):\n\t\t\tfor g in range(divisions_count):\n\t\t\t\tfor r in range(divisions_count):\n\t\t\t\t\tcolors.append(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tVector3(\n\t\t\t\t\t\t\t\t(255.0 / divisions_count) * r,\n\t\t\t\t\t\t\t\t(255.0 / divisions_count) * g,\n\t\t\t\t\t\t\t\t(255.0 / divisions_count) * b\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t(255.0 / divisions_count) * a\n\t\t\t\t\t\t]\n\t\t\t\t\t)\n\n\treturn colors\n\n\nfunc find_nearest_color(palette_color: Vector3, image_data: PackedByteArray) -> Array:\n\tvar nearest_color = null\n\tvar nearest_alpha = null\n\tfor i in range(0, image_data.size(), 4):\n\t\tvar color := Vector3(image_data[i], image_data[i + 1], image_data[i + 2])\n\t\t# detect transparency\n\t\tif image_data[3] == 0:\n\t\t\ttransparency = true\n\t\tif (\n\t\t\t(nearest_color == null)\n\t\t\tor (\n\t\t\t\tpalette_color.distance_squared_to(color)\n\t\t\t\t< palette_color.distance_squared_to(nearest_color)\n\t\t\t)\n\t\t):\n\t\t\tnearest_color = color\n\t\t\tnearest_alpha = image_data[i + 3]\n\treturn [nearest_color, nearest_alpha]\n\n\n## Moves every color from palette colors to the nearest found color in image\nfunc enhance_colors(image: Image, palette_colors: Array) -> Array:\n\tvar data := image.get_data()\n\n\tfor i in range(palette_colors.size()):\n\t\tvar nearest_color := find_nearest_color(palette_colors[i][0], data)\n\t\tpalette_colors[i] = nearest_color\n\n\treturn palette_colors\n\n\nfunc to_color_array(colors: Array) -> Array:\n\tvar result := []\n\tfor v in colors:\n\t\tresult.append([v[0].x, v[0].y, v[0].z])\n\treturn result\n\n\n## Quantizes to gif ready codes\nfunc quantize(image: Image) -> Array:\n\tvar colors: Array = generate_colors(256)\n\tvar tmp_image := Image.new()\n\ttmp_image.copy_from(image)\n\ttmp_image.resize(32, 32)\n\tcolors = enhance_colors(tmp_image, colors)\n\tcolors = to_color_array(colors)\n\n\tvar data: PackedByteArray = converter.get_similar_indexed_datas(image, colors)\n\n\treturn [data, colors, transparency]\n"
  },
  {
    "path": "addons/gdgifexporter/quantization/uniform.gd.uid",
    "content": "uid://dlk43s1n3ts6m\n"
  },
  {
    "path": "addons/keychain/Keychain.gd",
    "content": "extends Node\n\nsignal profile_switched(profile: ShortcutProfile)\nsignal action_changed(action_name: String)\n\nconst PROFILES_PATH := \"user://shortcut_profiles\"\nconst DEFAULT_PROFILE := preload(\"profiles/default.tres\")\n\n## [Array] of [ShortcutProfile]s.\nvar profiles: Array[ShortcutProfile] = []\nvar selected_profile: ShortcutProfile  ## The currently selected [ShortcutProfile].\nvar profile_index := 0  ## The index of the currently selected [ShortcutProfile].\n## Syntax: \"action_name\": InputAction.new(\"Action Display Name\", \"Group\", true)\n## Note that \"action_name\" must already exist in the Project's Input Map.\nvar actions: Dictionary[StringName, InputAction] = {}\n## Syntax: \"Group Name\": InputGroup.new(\"Parent Group Name\")\nvar groups: Dictionary[StringName, InputGroup] = {}\nvar ignore_actions: Array[StringName] = []  ## [Array] of [StringName] input map actions to ignore.\n## If [code]true[/code], ignore Godot's default \"ui_\" input map actions.\nvar ignore_ui_actions := true\n## A [PackedByteArray] of [bool]s with a fixed length of 4. Used for developers to allow or\n## forbid setting certain types of InputEvents. The first element is for [InputEventKey]s,\n## the second for [InputEventMouseButton]s, the third for [InputEventJoypadButton]s\n## and the fourth for [InputEventJoypadMotion]s.\nvar changeable_types: PackedByteArray = [true, true, true, true]\n## The file path of the [code]config_file[/code].\nvar config_path := \"user://config.ini\"\n## Used to store the settings to the filesystem.\nvar config_file: ConfigFile\n\n\nclass InputAction:\n\tvar display_name := \"\"\n\tvar group := \"\"\n\tvar global := true\n\n\tfunc _init(_display_name := \"\", _group := \"\", _global := true) -> void:\n\t\tdisplay_name = _display_name\n\t\tgroup = _group\n\t\tglobal = _global\n\n\nclass MouseMovementInputAction:\n\textends InputAction\n\n\tvar action_name := &\"\"\n\t## The default direction of the mouse, towards where the value increments.\n\t## This should be set only once during an instance's initialization.\n\tvar default_mouse_dir := Vector2.RIGHT\n\t## The default sensitivity of the mouse for the value to change.\n\t## This should be set only once during an instance's initialization.\n\tvar default_sensitivity := 0.1\n\n\tvar mouse_dir := default_mouse_dir\n\tvar sensitivity := default_sensitivity:\n\t\tset(value):\n\t\t\tif is_zero_approx(value):\n\t\t\t\tsensitivity = 0.001\n\t\t\telse:\n\t\t\t\tsensitivity = value\n\n\tvar motion_accum := 0.0\n\n\tfunc _init(\n\t\t_display_name := \"\",\n\t\t_group := \"\",\n\t\t_global := true,\n\t\t_action_name := &\"\",\n\t\t_default_mouse_dir := Vector2.RIGHT,\n\t\t_default_sensitivity := 0.1\n\t) -> void:\n\t\tsuper(_display_name, _group, _global)\n\t\taction_name = _action_name\n\t\tdefault_mouse_dir = _default_mouse_dir\n\t\tdefault_sensitivity = _default_sensitivity\n\n\tfunc get_action_distance(event: InputEvent, exact_match := false) -> float:\n\t\tif event is InputEventMouseMotion and Input.is_action_pressed(action_name, exact_match):\n\t\t\tvar relative := (event as InputEventMouseMotion).relative\n\t\t\tvar delta := relative.dot(mouse_dir.normalized()) * sensitivity\n\t\t\treturn delta\n\t\treturn 0.0\n\n\tfunc get_action_distance_int(event: InputEvent, exact_match := false) -> int:\n\t\tif event is InputEventMouseMotion and Input.is_action_pressed(action_name, exact_match):\n\t\t\tvar relative := (event as InputEventMouseMotion).relative\n\t\t\tvar delta := relative.dot(mouse_dir.normalized()) * sensitivity\n\t\t\tmotion_accum += delta\n\n\t\t\tvar step := int(motion_accum)\n\t\t\tmotion_accum -= step\n\n\t\t\treturn step\n\t\treturn 0\n\n\tfunc restore_to_default() -> void:\n\t\tmouse_dir = default_mouse_dir\n\t\tsensitivity = default_sensitivity\n\n\tfunc serialize() -> Dictionary:\n\t\treturn {\"mouse_dir\": mouse_dir, \"sensitivity\": sensitivity}\n\n\tfunc deserialize(dict: Dictionary) -> void:\n\t\tmouse_dir = dict.get(\"mouse_dir\", mouse_dir)\n\t\tsensitivity = dict.get(\"sensitivity\", sensitivity)\n\n\nclass InputGroup:\n\tvar parent_group := \"\"\n\tvar folded := true\n\tvar tree_item: TreeItem\n\n\tfunc _init(_parent_group := \"\", _folded := true) -> void:\n\t\tparent_group = _parent_group\n\t\tfolded = _folded\n\n\nfunc _init() -> void:\n\tfor locale in TranslationServer.get_loaded_locales():\n\t\tload_translation(locale)\n\n\nfunc _ready() -> void:\n\tif !config_file:\n\t\tconfig_file = ConfigFile.new()\n\t\tif !config_path.is_empty():\n\t\t\tconfig_file.load(config_path)\n\n\t# Load shortcut profiles\n\tDirAccess.make_dir_recursive_absolute(PROFILES_PATH)\n\tvar profile_dir := DirAccess.open(PROFILES_PATH)\n\tprofile_dir.list_dir_begin()\n\tvar file_name := profile_dir.get_next()\n\twhile file_name != \"\":\n\t\tif !profile_dir.current_is_dir():\n\t\t\tif file_name.get_extension() == \"tres\":\n\t\t\t\tvar file := load(PROFILES_PATH.path_join(file_name))\n\t\t\t\tif file is ShortcutProfile:\n\t\t\t\t\tfile.fill_bindings()\n\t\t\t\t\tprofiles.append(file)\n\t\tfile_name = profile_dir.get_next()\n\n\t# If there are no profiles besides the default, create one custom\n\tif profiles.size() == 0:\n\t\tvar profile := ShortcutProfile.new()\n\t\tprofile.name = \"Custom\"\n\t\tprofile.resource_path = PROFILES_PATH.path_join(\"custom.tres\")\n\t\tvar saved := profile.save()\n\t\tif saved:\n\t\t\tprofiles.append(profile)\n\n\tprofile_index = config_file.get_value(\"shortcuts\", \"shortcuts_profile\", 0)\n\tchange_profile(profile_index)\n\n\nfunc change_profile(index: int) -> void:\n\tif index >= profiles.size():\n\t\tindex = profiles.size() - 1\n\tprofile_index = index\n\tselected_profile = profiles[index]\n\tfor action_name in selected_profile.bindings:\n\t\taction_erase_events(action_name)\n\t\tfor event in selected_profile.bindings[action_name]:\n\t\t\taction_add_event(action_name, event)\n\t\tif actions.has(action_name):\n\t\t\tvar input_action := actions[action_name]\n\t\t\tif input_action is MouseMovementInputAction:\n\t\t\t\tif selected_profile.mouse_movement_options.has(action_name):\n\t\t\t\t\tvar mm_options := selected_profile.mouse_movement_options[action_name]\n\t\t\t\t\tinput_action.deserialize(mm_options)\n\t\t\t\telse:\n\t\t\t\t\tinput_action.restore_to_default()\n\tprofile_switched.emit(selected_profile)\n\n\nfunc change_action(action_name: String) -> void:\n\tselected_profile.change_action(action_name)\n\taction_changed.emit(action_name)\n\n\nfunc change_mouse_movement_action_settings(action: MouseMovementInputAction) -> void:\n\tvar action_name := action.action_name\n\tselected_profile.mouse_movement_options[action_name] = action.serialize()\n\tselected_profile.save()\n\taction_changed.emit(action_name)\n\n\nfunc action_add_event(action: StringName, event: InputEvent) -> void:\n\tInputMap.action_add_event(action, event)\n\n\nfunc action_erase_event(action: StringName, event: InputEvent) -> void:\n\tInputMap.action_erase_event(action, event)\n\n\nfunc action_erase_events(action: StringName) -> void:\n\tInputMap.action_erase_events(action)\n\n\nfunc load_translation(locale: String) -> void:\n\tvar translation_file_path := \"res://addons/keychain/translations\".path_join(locale + \".po\")\n\tif not ResourceLoader.exists(translation_file_path, \"Translation\"):\n\t\treturn\n\tvar translation := load(translation_file_path)\n\tif is_instance_valid(translation) and translation is Translation:\n\t\tTranslationServer.add_translation(translation)\n\n\n## Converts a [param text] with snake case to a more readable format, by replacing\n## underscores with spaces. If [param capitalize_first_letter] is [code]true[/code],\n## the first letter of the text is capitalized.\n## E.g, \"snake_case\" would be converted to \"Snake case\" if\n## [param capitalize_first_letter] is [code]true[/code], else it would be converted to\n## \"snake case\".\nfunc humanize_snake_case(text: String, capitalize_first_letter := true) -> String:\n\ttext = text.replace(\"_\", \" \")\n\tif capitalize_first_letter:\n\t\tvar first_letter := text.left(1)\n\t\tfirst_letter = first_letter.capitalize()\n\t\ttext = text.right(-1)\n\t\ttext = text.insert(0, first_letter)\n\treturn text\n"
  },
  {
    "path": "addons/keychain/Keychain.gd.uid",
    "content": "uid://dgiia2xg7fsud\n"
  },
  {
    "path": "addons/keychain/ShortcutEdit.gd",
    "content": "extends Control\n\nenum { KEYBOARD, MOUSE, JOY_BUTTON, JOY_AXIS }\n\nconst MOUSE_BUTTON_NAMES: PackedStringArray = [\n\t\"Left Button\",\n\t\"Right Button\",\n\t\"Middle Button\",\n\t\"Wheel Up Button\",\n\t\"Wheel Down Button\",\n\t\"Wheel Left Button\",\n\t\"Wheel Right Button\",\n\t\"Mouse Thumb Button 1\",\n\t\"Mouse Thumb Button 2\",\n]\n\nconst JOY_BUTTON_NAMES: PackedStringArray = [\n\t\"DualShock Cross, Xbox A, Nintendo B\",\n\t\"DualShock Circle, Xbox B, Nintendo A\",\n\t\"DualShock Square, Xbox X, Nintendo Y\",\n\t\"DualShock Triangle, Xbox Y, Nintendo X\",\n\t\"L, L1\",\n\t\"R, R1\",\n\t\"L2\",\n\t\"R2\",\n\t\"L3\",\n\t\"R3\",\n\t\"Select, DualShock Share, Nintendo -\",\n\t\"Start, DualShock Options, Nintendo +\",\n\t\"D-Pad Up\",\n\t\"D-Pad Down\",\n\t\"D-Pad Left\",\n\t\"D-Pad Right\",\n\t\"Home, DualShock PS, Guide\",\n\t\"Xbox Share, PS5 Microphone, Nintendo Capture\",\n\t\"Xbox Paddle 1\",\n\t\"Xbox Paddle 2\",\n\t\"Xbox Paddle 3\",\n\t\"Xbox Paddle 4\",\n\t\"PS4/5 Touchpad\",\n]\n\nconst JOY_AXIS_NAMES: PackedStringArray = [\n\t\"(Left Stick Left)\",\n\t\"(Left Stick Right)\",\n\t\"(Left Stick Up)\",\n\t\"(Left Stick Down)\",\n\t\"(Right Stick Left)\",\n\t\"(Right Stick Right)\",\n\t\"(Right Stick Up)\",\n\t\"(Right Stick Down)\",\n\t\"\",\n\t\"\",\n\t\"\",\n\t\"\",\n\t\"\",\n\t\"(L2)\",\n\t\"\",\n\t\"(R2)\",\n\t\"\",\n\t\"\",\n\t\"\",\n\t\"\",\n]\n\nvar currently_editing_tree_item: TreeItem\nvar currently_editing_mouse_movement_action: Keychain.MouseMovementInputAction\nvar is_editing := false\nvar current_name_filter := \"\"\nvar current_event_filter: InputEvent\nvar filter_by_shortcut_line_edit_has_focus := false\n# Textures taken from Godot https://github.com/godotengine/godot/tree/master/editor/icons\nvar add_tex: Texture2D = preload(\"assets/add.svg\")\nvar edit_tex: Texture2D = preload(\"assets/edit.svg\")\nvar delete_tex: Texture2D = preload(\"assets/close.svg\")\nvar joy_axis_tex: Texture2D = preload(\"assets/joy_axis.svg\")\nvar joy_button_tex: Texture2D = preload(\"assets/joy_button.svg\")\nvar key_tex: Texture2D = preload(\"assets/keyboard.svg\")\nvar key_phys_tex: Texture2D = preload(\"assets/keyboard_physical.svg\")\nvar mouse_tex: Texture2D = preload(\"assets/mouse.svg\")\nvar shortcut_tex: Texture2D = preload(\"assets/shortcut.svg\")\nvar folder_tex: Texture2D = preload(\"assets/folder.svg\")\n\n@onready var filter_by_name_line_edit: LineEdit = %FilterByNameLineEdit\n@onready var filter_by_shortcut_line_edit: LineEdit = %FilterByShortcutLineEdit\n@onready var tree: Tree = $VBoxContainer/ShortcutTree\n@onready var profile_option_button: OptionButton = find_child(\"ProfileOptionButton\")\n@onready var rename_profile_button: Button = find_child(\"RenameProfile\")\n@onready var delete_profile_button: Button = find_child(\"DeleteProfile\")\n\n@onready var mouse_movement_options: HBoxContainer = $VBoxContainer/MouseMovementOptions\n@onready var mm_top_left: Button = %MMTopLeft\n@onready var mm_top: Button = %MMTop\n@onready var mm_top_right: Button = %MMTopRight\n@onready var mm_left: Button = %MMLeft\n@onready var mm_center: Button = %MMCenter\n@onready var mm_right: Button = %MMRight\n@onready var mm_bottom_left: Button = %MMBottomLeft\n@onready var mm_bottom: Button = %MMBottom\n@onready var mm_bottom_right: Button = %MMBottomRight\n@onready var sensitivity_range: SpinBox = $VBoxContainer/MouseMovementOptions/SensitivityRange\n\n@onready var shortcut_type_menu: PopupMenu = $ShortcutTypeMenu\n@onready var keyboard_shortcut_selector: ConfirmationDialog = $KeyboardShortcutSelectorDialog\n@onready var mouse_shortcut_selector: ConfirmationDialog = $MouseShortcutSelectorDialog\n@onready var joy_key_shortcut_selector: ConfirmationDialog = $JoyKeyShortcutSelectorDialog\n@onready var joy_axis_shortcut_selector: ConfirmationDialog = $JoyAxisShortcutSelectorDialog\n@onready var profile_settings: ConfirmationDialog = $ProfileSettings\n@onready var profile_name: LineEdit = $ProfileSettings/ProfileName\n@onready var delete_confirmation: ConfirmationDialog = $DeleteConfirmation\n@onready var reset_confirmation: ConfirmationDialog = $ResetConfirmation\n\n\nfunc _ready() -> void:\n\tfor profile in Keychain.profiles:\n\t\tprofile_option_button.add_item(profile.name)\n\n\t_fill_selector_options()\n\n\t# Remove input types that are not changeable\n\tvar i := 0\n\tfor type in Keychain.changeable_types:\n\t\tif !type:\n\t\t\tshortcut_type_menu.remove_item(i)\n\t\telse:\n\t\t\ti += 1\n\n\tprofile_option_button.select(Keychain.profile_index)\n\t_on_ProfileOptionButton_item_selected(Keychain.profile_index)\n\tmm_top_left.button_group.pressed.connect(_on_mouse_movement_angle_changed)\n\tif OS.get_name() == \"Web\":\n\t\t$VBoxContainer/HBoxContainer/OpenProfileFolder.queue_free()\n\n\nfunc _construct_tree() -> void:\n\tvar tree_root: TreeItem = tree.create_item()\n\tfor group in Keychain.groups:  # Create groups\n\t\tvar input_group: Keychain.InputGroup = Keychain.groups[group]\n\t\t_create_group_tree_item(input_group, group)\n\n\tfor action in InputMap.get_actions():  # Fill the tree with actions and their events\n\t\tif action in Keychain.ignore_actions:\n\t\t\tcontinue\n\t\tif Keychain.ignore_ui_actions and (action as String).begins_with(\"ui_\"):\n\t\t\tcontinue\n\n\t\tvar display_name := get_action_name(action)\n\t\tvar group_name := \"\"\n\t\tif action in Keychain.actions:\n\t\t\tvar input_action: Keychain.InputAction = Keychain.actions[action]\n\t\t\tgroup_name = input_action.group\n\n\t\tvar tree_item: TreeItem\n\t\tif not group_name.is_empty() and group_name in Keychain.groups:\n\t\t\tvar input_group: Keychain.InputGroup = Keychain.groups[group_name]\n\t\t\tvar group_root: TreeItem = input_group.tree_item\n\t\t\ttree_item = tree.create_item(group_root)\n\n\t\telse:\n\t\t\ttree_item = tree.create_item(tree_root)\n\n\t\ttree_item.set_text(0, display_name)\n\t\ttree_item.set_metadata(0, action)\n\t\ttree_item.set_icon(0, shortcut_tex)\n\t\tfor event in InputMap.action_get_events(action):\n\t\t\tadd_event_tree_item(event, tree_item)\n\n\t\tvar buttons_disabled := false if Keychain.selected_profile.customizable else true\n\t\ttree_item.add_button(0, add_tex, 0, buttons_disabled, \"Add\")\n\t\ttree_item.add_button(0, delete_tex, 1, buttons_disabled, \"Delete\")\n\t\ttree_item.collapsed = true\n\tmouse_movement_options.hide()\n\n\nfunc _fill_selector_options() -> void:\n\tmouse_shortcut_selector.input_type_l.text = \"Mouse Button Index:\"\n\tjoy_key_shortcut_selector.input_type_l.text = \"Joypad Button Index:\"\n\tjoy_axis_shortcut_selector.input_type_l.text = \"Joypad Axis Index:\"\n\n\tvar mouse_option_button: OptionButton = mouse_shortcut_selector.option_button\n\tfor option in MOUSE_BUTTON_NAMES:\n\t\tmouse_option_button.add_item(option)\n\n\tvar joy_key_option_button: OptionButton = joy_key_shortcut_selector.option_button\n\tfor i in JOY_BUTTON_MAX:\n\t\tvar text: String = tr(\"Button\") + \" %s\" % i\n\t\tif i < JOY_BUTTON_NAMES.size():\n\t\t\ttext += \" (%s)\" % tr(JOY_BUTTON_NAMES[i])\n\t\tjoy_key_option_button.add_item(text)\n\n\tvar joy_axis_option_button: OptionButton = joy_axis_shortcut_selector.option_button\n\tvar i := 0.0\n\tfor option in JOY_AXIS_NAMES:\n\t\tvar sign_symbol := \"+\" if floori(i) != i else \"-\"\n\t\tvar text: String = tr(\"Axis\") + \" %s %s %s\" % [floori(i), sign_symbol, tr(option)]\n\t\tjoy_axis_option_button.add_item(text)\n\t\ti += 0.5\n\n\nfunc _create_group_tree_item(group: Keychain.InputGroup, group_name: String) -> void:\n\tif group.tree_item:\n\t\treturn\n\n\tvar group_root: TreeItem\n\tif group.parent_group:\n\t\tvar parent_group: Keychain.InputGroup = Keychain.groups[group.parent_group]\n\t\t_create_group_tree_item(parent_group, group.parent_group)\n\t\tgroup_root = tree.create_item(parent_group.tree_item)\n\telse:\n\t\tgroup_root = tree.create_item(tree.get_root())\n\tgroup_root.set_text(0, group_name)\n\tgroup_root.set_icon(0, folder_tex)\n\tgroup.tree_item = group_root\n\tif group.folded:\n\t\tgroup_root.collapsed = true\n\n\nfunc get_action_name(action: String) -> String:\n\tvar display_name := \"\"\n\tif action in Keychain.actions:\n\t\tdisplay_name = Keychain.actions[action].display_name\n\n\tif display_name.is_empty():\n\t\tdisplay_name = Keychain.humanize_snake_case(action)\n\treturn display_name\n\n\nfunc add_event_tree_item(event: InputEvent, action_tree_item: TreeItem) -> void:\n\tvar event_class := event.get_class()\n\tmatch event_class:\n\t\t\"InputEventKey\":\n\t\t\tif !Keychain.changeable_types[0]:\n\t\t\t\treturn\n\t\t\"InputEventMouseButton\":\n\t\t\tif !Keychain.changeable_types[1]:\n\t\t\t\treturn\n\t\t\"InputEventJoypadButton\":\n\t\t\tif !Keychain.changeable_types[2]:\n\t\t\t\treturn\n\t\t\"InputEventJoypadMotion\":\n\t\t\tif !Keychain.changeable_types[3]:\n\t\t\t\treturn\n\n\tvar buttons_disabled := false if Keychain.selected_profile.customizable else true\n\tvar event_tree_item: TreeItem = tree.create_item(action_tree_item)\n\tevent_tree_item.set_text(0, event_to_str(event))\n\tevent_tree_item.set_metadata(0, event)\n\tmatch event_class:\n\t\t\"InputEventKey\":\n\t\t\tvar scancode: int = event.get_keycode_with_modifiers()\n\t\t\tif scancode > 0:\n\t\t\t\tevent_tree_item.set_icon(0, key_tex)\n\t\t\telse:\n\t\t\t\tevent_tree_item.set_icon(0, key_phys_tex)\n\t\t\"InputEventMouseButton\":\n\t\t\tevent_tree_item.set_icon(0, mouse_tex)\n\t\t\"InputEventJoypadButton\":\n\t\t\tevent_tree_item.set_icon(0, joy_button_tex)\n\t\t\"InputEventJoypadMotion\":\n\t\t\tevent_tree_item.set_icon(0, joy_axis_tex)\n\tevent_tree_item.add_button(0, edit_tex, 0, buttons_disabled, \"Edit\")\n\tevent_tree_item.add_button(0, delete_tex, 1, buttons_disabled, \"Delete\")\n\n\nfunc event_to_str(event: InputEvent) -> String:\n\tvar output := event.as_text()\n\t# event.as_text() could be used for these event types as well, but this gives more control\n\t# to the developer as to what strings will be printed\n\tif event is InputEventJoypadButton:\n\t\tvar button_index: int = event.button_index\n\t\toutput = tr(\"Button\")\n\t\tif button_index >= JOY_BUTTON_NAMES.size():\n\t\t\toutput += \" %s\" % button_index\n\t\telse:\n\t\t\toutput += \" %s (%s)\" % [button_index, tr(JOY_BUTTON_NAMES[button_index])]\n\n\telif event is InputEventJoypadMotion:\n\t\tvar positive_axis: bool = event.axis_value > 0\n\t\tvar axis_value: int = event.axis * 2 + int(positive_axis)\n\t\tvar sign_symbol = \"+\" if positive_axis else \"-\"\n\t\toutput = tr(\"Axis\")\n\t\toutput += \" %s %s %s\" % [event.axis, sign_symbol, tr(JOY_AXIS_NAMES[axis_value])]\n\treturn output\n\n\nfunc _on_filter_by_name_line_edit_text_changed(new_text: String) -> void:\n\tcurrent_name_filter = new_text.strip_edges()\n\tapply_search_filters()\n\n\nfunc _on_filter_by_shortcut_line_edit_gui_input(event: InputEvent) -> void:\n\tif (\n\t\tnot event is InputEventKey\n\t\tand not event is InputEventMouseButton\n\t\tand not event is InputEventJoypadButton\n\t):\n\t\treturn\n\tif event.pressed:\n\t\tif event is InputEventMouseButton:\n\t\t\tif not filter_by_shortcut_line_edit_has_focus:\n\t\t\t\treturn\n\t\t\tif event.position.x >= filter_by_shortcut_line_edit.get_rect().size.x - 30:\n\t\t\t\treturn\n\t\tcurrent_event_filter = event\n\t\tfilter_by_shortcut_line_edit.set_deferred(&\"text\", event.as_text())\n\t\tapply_search_filters()\n\n\nfunc _on_filter_by_shortcut_line_edit_text_changed(new_text: String) -> void:\n\tif not new_text.is_empty():\n\t\treturn\n\tcurrent_event_filter = null\n\tapply_search_filters()\n\n\nfunc _on_clear_all_filters_pressed() -> void:\n\tfilter_by_name_line_edit.text = \"\"\n\tfilter_by_shortcut_line_edit.text = \"\"\n\tcurrent_name_filter = \"\"\n\tcurrent_event_filter = null\n\tapply_search_filters()\n\n\nfunc apply_search_filters() -> void:\n\tvar tree_item: TreeItem = tree.get_root().get_first_child()\n\tvar results: Array[TreeItem] = []\n\tvar should_reset := (\n\t\tnot is_instance_valid(current_event_filter) and current_name_filter.is_empty()\n\t)\n\twhile tree_item != null:  # Loop through Tree's TreeItems.\n\t\tif is_instance_valid(current_event_filter):\n\t\t\tvar metadata = tree_item.get_metadata(0)\n\t\t\tif metadata is InputEvent:\n\t\t\t\tif current_event_filter.is_match(metadata):\n\t\t\t\t\tif current_name_filter.is_empty():\n\t\t\t\t\t\tresults.append(tree_item)\n\t\t\t\t\telse:\n\t\t\t\t\t\tvar parent := tree_item.get_parent()\n\t\t\t\t\t\tif current_name_filter.is_subsequence_ofn(parent.get_text(0)):\n\t\t\t\t\t\t\tresults.append(tree_item)\n\t\telif not current_name_filter.is_empty():\n\t\t\tvar metadata = tree_item.get_metadata(0)\n\t\t\tif metadata is StringName:\n\t\t\t\tif current_name_filter.is_subsequence_ofn(tree_item.get_text(0)):\n\t\t\t\t\tresults.append(tree_item)\n\t\t\telif metadata is InputEvent:\n\t\t\t\ttree_item = tree_item.get_next_in_tree()\n\t\t\t\tcontinue\n\n\t\tif should_reset:\n\t\t\ttree_item.visible = true\n\t\telse:\n\t\t\ttree_item.collapsed = true\n\t\t\ttree_item.visible = false\n\t\ttree_item = tree_item.get_next_in_tree()\n\tvar expanded: Array[TreeItem] = []\n\tfor result in results:\n\t\tvar item: TreeItem = result\n\t\twhile item.get_parent():\n\t\t\tif expanded.has(item):\n\t\t\t\tbreak\n\t\t\titem.collapsed = false\n\t\t\titem.visible = true\n\t\t\texpanded.append(item)\n\t\t\titem = item.get_parent()\n\tif not results.is_empty():\n\t\ttree.scroll_to_item(results[0])\n\n\nfunc _on_shortcut_tree_button_clicked(item: TreeItem, _column: int, id: int, _mbi: int) -> void:\n\tvar action = item.get_metadata(0)\n\tcurrently_editing_tree_item = item\n\tif action is StringName:\n\t\tif id == 0:  # Add\n\t\t\tvar rect: Rect2 = tree.get_item_area_rect(item, 0)\n\t\t\trect.position.x = rect.end.x - 42\n\t\t\trect.position.y += 42 - tree.get_scroll().y\n\t\t\trect.position += global_position\n\t\t\trect.size = Vector2(110, 23 * shortcut_type_menu.get_item_count())\n\t\t\tshortcut_type_menu.popup_on_parent(rect)\n\t\telif id == 1:  # Delete\n\t\t\tKeychain.action_erase_events(action)\n\t\t\tKeychain.change_action(action)\n\t\t\tfor child in item.get_children():\n\t\t\t\tchild.free()\n\n\telif action is InputEvent:\n\t\tvar parent_action = item.get_parent().get_metadata(0)\n\t\tif id == 0:  # Edit\n\t\t\tif action is InputEventKey:\n\t\t\t\tkeyboard_shortcut_selector.popup_centered_clamped()\n\t\t\telif action is InputEventMouseButton:\n\t\t\t\tmouse_shortcut_selector.popup_centered_clamped()\n\t\t\telif action is InputEventJoypadButton:\n\t\t\t\tjoy_key_shortcut_selector.popup_centered_clamped()\n\t\t\telif action is InputEventJoypadMotion:\n\t\t\t\tjoy_axis_shortcut_selector.popup_centered_clamped()\n\t\telif id == 1:  # Delete\n\t\t\tif not parent_action is StringName:\n\t\t\t\treturn\n\t\t\tKeychain.action_erase_event(parent_action, action)\n\t\t\tKeychain.change_action(parent_action)\n\t\t\titem.free()\n\n\nfunc _on_shortcut_tree_item_selected() -> void:\n\tvar selected_item: TreeItem = tree.get_selected()\n\tvar action = selected_item.get_metadata(0)\n\tif action is StringName:\n\t\tif not Keychain.actions.has(action):\n\t\t\tmouse_movement_options.visible = false\n\t\t\treturn\n\t\tvar keychain_action := Keychain.actions[action]\n\t\tif keychain_action is Keychain.MouseMovementInputAction:\n\t\t\tmouse_movement_options.visible = true\n\t\t\tcurrently_editing_mouse_movement_action = keychain_action\n\t\t\t_press_mouse_movement_angle_button()\n\t\t\tsensitivity_range.set_value_no_signal(\n\t\t\t\tcurrently_editing_mouse_movement_action.sensitivity\n\t\t\t)\n\t\telse:\n\t\t\tmouse_movement_options.visible = false\n\n\nfunc _on_ShortcutTree_item_activated() -> void:\n\tvar selected_item: TreeItem = tree.get_selected()\n\tif selected_item.get_button_count(0) > 0 and !selected_item.is_button_disabled(0, 0):\n\t\t_on_shortcut_tree_button_clicked(tree.get_selected(), 0, 0, 0)\n\telif selected_item.get_button_count(0) == 0:  # Group item\n\t\tselected_item.collapsed = not selected_item.collapsed\n\n\nfunc _on_ShortcutTypeMenu_id_pressed(id: int) -> void:\n\tif id == KEYBOARD:\n\t\tkeyboard_shortcut_selector.popup_centered_clamped()\n\telif id == MOUSE:\n\t\tmouse_shortcut_selector.popup_centered_clamped()\n\telif id == JOY_BUTTON:\n\t\tjoy_key_shortcut_selector.popup_centered_clamped()\n\telif id == JOY_AXIS:\n\t\tjoy_axis_shortcut_selector.popup_centered_clamped()\n\n\nfunc _on_mouse_movement_angle_changed(button: BaseButton) -> void:\n\tmatch button:\n\t\tmm_top_left:\n\t\t\tcurrently_editing_mouse_movement_action.mouse_dir = Vector2(-1, -1)\n\t\tmm_top:\n\t\t\tcurrently_editing_mouse_movement_action.mouse_dir = Vector2.UP\n\t\tmm_top_right:\n\t\t\tcurrently_editing_mouse_movement_action.mouse_dir = Vector2(1, -1)\n\t\tmm_left:\n\t\t\tcurrently_editing_mouse_movement_action.mouse_dir = Vector2.LEFT\n\t\tmm_right:\n\t\t\tcurrently_editing_mouse_movement_action.mouse_dir = Vector2.RIGHT\n\t\tmm_bottom_left:\n\t\t\tcurrently_editing_mouse_movement_action.mouse_dir = Vector2(-1, 1)\n\t\tmm_bottom:\n\t\t\tcurrently_editing_mouse_movement_action.mouse_dir = Vector2.DOWN\n\t\tmm_bottom_right:\n\t\t\tcurrently_editing_mouse_movement_action.mouse_dir = Vector2(1, 1)\n\tKeychain.change_mouse_movement_action_settings(currently_editing_mouse_movement_action)\n\n\nfunc _press_mouse_movement_angle_button() -> void:\n\tvar dir := currently_editing_mouse_movement_action.mouse_dir\n\tmatch dir:\n\t\tVector2(-1, -1):\n\t\t\tmm_top_left.button_pressed = true\n\t\tVector2.UP:\n\t\t\tmm_top.button_pressed = true\n\t\tVector2(1, -1):\n\t\t\tmm_top_right.button_pressed = true\n\t\tVector2.LEFT:\n\t\t\tmm_left.button_pressed = true\n\t\tVector2.RIGHT:\n\t\t\tmm_right.button_pressed = true\n\t\tVector2(-1, 1):\n\t\t\tmm_bottom_left.button_pressed = true\n\t\tVector2.DOWN:\n\t\t\tmm_bottom.button_pressed = true\n\t\tVector2(1, 1):\n\t\t\tmm_bottom_right.button_pressed = true\n\n\nfunc _on_sensitivity_range_value_changed(value: float) -> void:\n\tcurrently_editing_mouse_movement_action.sensitivity = value\n\tKeychain.change_mouse_movement_action_settings(currently_editing_mouse_movement_action)\n\n\nfunc _on_ProfileOptionButton_item_selected(index: int) -> void:\n\tKeychain.change_profile(index)\n\trename_profile_button.disabled = false if Keychain.selected_profile.customizable else true\n\tdelete_profile_button.disabled = false if Keychain.selected_profile.customizable else true\n\tif Keychain.profiles.size() == 1:\n\t\tdelete_profile_button.disabled = true\n\n\t_reconstruct_tree()\n\tKeychain.config_file.set_value(\"shortcuts\", \"shortcuts_profile\", index)\n\tKeychain.config_file.save(Keychain.config_path)\n\n\nfunc _on_NewProfile_pressed() -> void:\n\tis_editing = false\n\tprofile_name.text = \"New Shortcut Profile\"\n\tprofile_settings.title = \"New Shortcut Profile\"\n\tprofile_settings.popup_centered_clamped()\n\n\nfunc _on_reset_profile_pressed() -> void:\n\treset_confirmation.popup_centered_clamped()\n\n\nfunc _on_RenameProfile_pressed() -> void:\n\tis_editing = true\n\tprofile_name.text = Keychain.selected_profile.name\n\tprofile_settings.title = \"Rename Shortcut Profile\"\n\tprofile_settings.popup_centered_clamped()\n\n\nfunc _on_DeleteProfile_pressed() -> void:\n\tdelete_confirmation.popup_centered_clamped()\n\n\nfunc _on_OpenProfileFolder_pressed() -> void:\n\tOS.shell_open(ProjectSettings.globalize_path(Keychain.PROFILES_PATH))\n\n\nfunc _on_ProfileSettings_confirmed() -> void:\n\tvar file_name := profile_name.text + \".tres\"\n\tvar profile := ShortcutProfile.new()\n\tprofile.name = profile_name.text\n\tprofile.resource_path = Keychain.PROFILES_PATH.path_join(file_name)\n\tvar saved := profile.save()\n\tif not saved:\n\t\treturn\n\n\tif is_editing:\n\t\tvar old_file_name: String = Keychain.selected_profile.resource_path\n\t\tif old_file_name != file_name:\n\t\t\t_delete_profile_file(old_file_name)\n\t\tKeychain.profiles[Keychain.profile_index] = profile\n\t\tprofile_option_button.set_item_text(Keychain.profile_index, profile.name)\n\telse:  # Add new shortcut profile\n\t\tKeychain.profiles.append(profile)\n\t\tprofile_option_button.add_item(profile.name)\n\t\tKeychain.profile_index = Keychain.profiles.size() - 1\n\t\tprofile_option_button.select(Keychain.profile_index)\n\t\t_on_ProfileOptionButton_item_selected(Keychain.profile_index)\n\n\nfunc _delete_profile_file(file_name: String) -> void:\n\tvar dir := DirAccess.open(file_name.get_base_dir())\n\tvar err := DirAccess.get_open_error()\n\tif err != OK:\n\t\tprint(\"Error deleting shortcut profile %s. Error code: %s\" % [file_name, err])\n\t\treturn\n\tdir.remove(file_name)\n\n\nfunc _on_DeleteConfirmation_confirmed() -> void:\n\t_delete_profile_file(Keychain.selected_profile.resource_path)\n\tprofile_option_button.remove_item(Keychain.profile_index)\n\tKeychain.profiles.remove_at(Keychain.profile_index)\n\tKeychain.profile_index -= 1\n\tif Keychain.profile_index < 0:\n\t\tKeychain.profile_index = 0\n\tprofile_option_button.select(Keychain.profile_index)\n\t_on_ProfileOptionButton_item_selected(Keychain.profile_index)\n\n\nfunc _on_reset_confirmation_confirmed() -> void:\n\tKeychain.selected_profile.copy_bindings_from(Keychain.DEFAULT_PROFILE)\n\tKeychain.change_profile(Keychain.profile_index)\n\t_reconstruct_tree()\n\n\nfunc _reconstruct_tree() -> void:\n\tfor group in Keychain.groups:\n\t\tKeychain.groups[group].tree_item = null\n\ttree.clear()\n\t_construct_tree()\n\n\nfunc _on_filter_by_shortcut_line_edit_focus_entered() -> void:\n\tset_deferred(&\"filter_by_shortcut_line_edit_has_focus\", true)\n\n\nfunc _on_filter_by_shortcut_line_edit_focus_exited() -> void:\n\tfilter_by_shortcut_line_edit_has_focus = false\n"
  },
  {
    "path": "addons/keychain/ShortcutEdit.gd.uid",
    "content": "uid://dpciapd2x2va6\n"
  },
  {
    "path": "addons/keychain/ShortcutEdit.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bq7ibhm0txl5p\"]\n\n[ext_resource type=\"Script\" uid=\"uid://dpciapd2x2va6\" path=\"res://addons/keychain/ShortcutEdit.gd\" id=\"1\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ca58ufal2ufd8\" path=\"res://addons/keychain/assets/joy_button.svg\" id=\"2\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://0ij8aasy3k3b\" path=\"res://addons/keychain/assets/search.svg\" id=\"2_4odqy\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://cgsvoct3wwbjb\" path=\"res://addons/keychain/assets/arrows/down.png\" id=\"2_b4f3q\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://esi4oenejswj\" path=\"res://addons/keychain/assets/arrows/top_left.png\" id=\"2_gs4p1\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://cmh8eaibhn5y8\" path=\"res://addons/keychain/assets/keyboard_physical.svg\" id=\"2_wps2m\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://c2s5rm4nec5yh\" path=\"res://addons/keychain/assets/keyboard.svg\" id=\"3\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://b337qel4762m4\" path=\"res://addons/keychain/assets/arrows/up.png\" id=\"3_gw1s5\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bb6q6om3d08cm\" path=\"res://addons/keychain/assets/joy_axis.svg\" id=\"4\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://yhwkkevw7lur\" path=\"res://addons/keychain/assets/arrows/left.png\" id=\"4_dmnk0\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://cr4lfb2lrtl7a\" path=\"res://addons/keychain/assets/arrows/top_right.png\" id=\"4_wps2m\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bma7xj2rqqcr8\" path=\"res://addons/keychain/assets/mouse.svg\" id=\"5\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bj5ctot6clu13\" path=\"res://addons/keychain/assets/arrows/right.png\" id=\"5_nwpwn\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bfjcafe2kvx7n\" path=\"res://addons/keychain/ShortcutSelectorDialog.tscn\" id=\"6\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://b3io8jf2b3w1y\" path=\"res://addons/keychain/assets/arrows/bottom_left.png\" id=\"7_4odqy\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://b7gkuibgeavkl\" path=\"res://addons/keychain/assets/arrows/bottom_right.png\" id=\"9_v7k3h\"]\n\n[sub_resource type=\"ButtonGroup\" id=\"ButtonGroup_b4f3q\"]\n\n[node name=\"ShortcutEdit\" type=\"Control\" unique_id=899545836]\nlayout_mode = 3\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_vertical = 3\nscript = ExtResource(\"1\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=852144418]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_vertical = 3\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer\" unique_id=570511677]\nlayout_mode = 2\n\n[node name=\"ProfileLabel\" type=\"Label\" parent=\"VBoxContainer/HBoxContainer\" unique_id=1404173835]\nlayout_mode = 2\ntext = \"Shortcut profile:\"\n\n[node name=\"ProfileOptionButton\" type=\"OptionButton\" parent=\"VBoxContainer/HBoxContainer\" unique_id=824603650]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\n\n[node name=\"NewProfile\" type=\"Button\" parent=\"VBoxContainer/HBoxContainer\" unique_id=1220509889]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"New\"\n\n[node name=\"ResetProfile\" type=\"Button\" parent=\"VBoxContainer/HBoxContainer\" unique_id=1987606653]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"Reset\"\n\n[node name=\"RenameProfile\" type=\"Button\" parent=\"VBoxContainer/HBoxContainer\" unique_id=492086360]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"Rename\"\n\n[node name=\"DeleteProfile\" type=\"Button\" parent=\"VBoxContainer/HBoxContainer\" unique_id=997640289]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"Delete\"\n\n[node name=\"OpenProfileFolder\" type=\"Button\" parent=\"VBoxContainer/HBoxContainer\" unique_id=1836797572]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"Open Folder\"\n\n[node name=\"Filters\" type=\"HBoxContainer\" parent=\"VBoxContainer\" unique_id=1424923599]\nlayout_mode = 2\n\n[node name=\"FilterByNameLineEdit\" type=\"LineEdit\" parent=\"VBoxContainer/Filters\" unique_id=1161594546]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nplaceholder_text = \"Filter by name\"\nclear_button_enabled = true\nright_icon = ExtResource(\"2_4odqy\")\n\n[node name=\"FilterByShortcutLineEdit\" type=\"LineEdit\" parent=\"VBoxContainer/Filters\" unique_id=2047884812]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nplaceholder_text = \"Filter by shortcut\"\ncontext_menu_enabled = false\nclear_button_enabled = true\nshortcut_keys_enabled = false\nmiddle_mouse_paste_enabled = false\nselecting_enabled = false\nright_icon = ExtResource(\"2_wps2m\")\n\n[node name=\"ClearAllFilters\" type=\"Button\" parent=\"VBoxContainer/Filters\" unique_id=1074359240]\nlayout_mode = 2\ntext = \"Clear all\"\n\n[node name=\"ShortcutTree\" type=\"Tree\" parent=\"VBoxContainer\" unique_id=1588014504]\nlayout_mode = 2\nsize_flags_vertical = 3\nhide_root = true\n\n[node name=\"MouseMovementOptions\" type=\"HBoxContainer\" parent=\"VBoxContainer\" unique_id=1842708637]\nvisible = false\nlayout_mode = 2\n\n[node name=\"AngleLabel\" type=\"Label\" parent=\"VBoxContainer/MouseMovementOptions\" unique_id=2037442645]\nlayout_mode = 2\ntext = \"Angle:\"\n\n[node name=\"AngleOptions\" type=\"GridContainer\" parent=\"VBoxContainer/MouseMovementOptions\" unique_id=140406963]\nlayout_mode = 2\ncolumns = 3\n\n[node name=\"MMTopLeft\" type=\"Button\" parent=\"VBoxContainer/MouseMovementOptions/AngleOptions\" unique_id=495320334]\nunique_name_in_owner = true\nlayout_mode = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_b4f3q\")\nicon = ExtResource(\"2_gs4p1\")\nicon_alignment = 1\n\n[node name=\"MMTop\" type=\"Button\" parent=\"VBoxContainer/MouseMovementOptions/AngleOptions\" unique_id=1899365055]\nunique_name_in_owner = true\nlayout_mode = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_b4f3q\")\nicon = ExtResource(\"3_gw1s5\")\nicon_alignment = 1\n\n[node name=\"MMTopRight\" type=\"Button\" parent=\"VBoxContainer/MouseMovementOptions/AngleOptions\" unique_id=399587526]\nunique_name_in_owner = true\nlayout_mode = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_b4f3q\")\nicon = ExtResource(\"4_wps2m\")\nicon_alignment = 1\n\n[node name=\"MMLeft\" type=\"Button\" parent=\"VBoxContainer/MouseMovementOptions/AngleOptions\" unique_id=326030122]\nunique_name_in_owner = true\nlayout_mode = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_b4f3q\")\nicon = ExtResource(\"4_dmnk0\")\nicon_alignment = 1\n\n[node name=\"MMCenter\" type=\"Button\" parent=\"VBoxContainer/MouseMovementOptions/AngleOptions\" unique_id=848294576]\nunique_name_in_owner = true\nlayout_mode = 2\ndisabled = true\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_b4f3q\")\nicon_alignment = 1\n\n[node name=\"MMRight\" type=\"Button\" parent=\"VBoxContainer/MouseMovementOptions/AngleOptions\" unique_id=501098037]\nunique_name_in_owner = true\nlayout_mode = 2\ntoggle_mode = true\nbutton_pressed = true\nbutton_group = SubResource(\"ButtonGroup_b4f3q\")\nicon = ExtResource(\"5_nwpwn\")\nicon_alignment = 1\n\n[node name=\"MMBottomLeft\" type=\"Button\" parent=\"VBoxContainer/MouseMovementOptions/AngleOptions\" unique_id=551827364]\nunique_name_in_owner = true\nlayout_mode = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_b4f3q\")\nicon = ExtResource(\"7_4odqy\")\nicon_alignment = 1\n\n[node name=\"MMBottom\" type=\"Button\" parent=\"VBoxContainer/MouseMovementOptions/AngleOptions\" unique_id=2052999564]\nunique_name_in_owner = true\nlayout_mode = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_b4f3q\")\nicon = ExtResource(\"2_b4f3q\")\nicon_alignment = 1\n\n[node name=\"MMBottomRight\" type=\"Button\" parent=\"VBoxContainer/MouseMovementOptions/AngleOptions\" unique_id=1424600999]\nunique_name_in_owner = true\nlayout_mode = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_b4f3q\")\nicon = ExtResource(\"9_v7k3h\")\nicon_alignment = 1\n\n[node name=\"SensitivityLabel\" type=\"Label\" parent=\"VBoxContainer/MouseMovementOptions\" unique_id=1653349142]\nlayout_mode = 2\ntext = \"Sensitivity:\"\n\n[node name=\"SensitivityRange\" type=\"SpinBox\" parent=\"VBoxContainer/MouseMovementOptions\" unique_id=1505352637]\nlayout_mode = 2\nmin_value = 0.001\nstep = 0.001\nvalue = 0.1\nallow_greater = true\ncustom_arrow_step = 0.1\n\n[node name=\"ShortcutTypeMenu\" type=\"PopupMenu\" parent=\".\" unique_id=93739634]\nsize = Vector2i(154, 116)\nitem_count = 4\nitem_0/text = \"Key\"\nitem_0/icon = ExtResource(\"3\")\nitem_0/id = 0\nitem_1/text = \"Mouse Button\"\nitem_1/icon = ExtResource(\"5\")\nitem_1/id = 1\nitem_2/text = \"Joy Button\"\nitem_2/icon = ExtResource(\"2\")\nitem_2/id = 2\nitem_3/text = \"Joy Axis\"\nitem_3/icon = ExtResource(\"4\")\nitem_3/id = 3\n\n[node name=\"KeyboardShortcutSelectorDialog\" parent=\".\" unique_id=1310371238 instance=ExtResource(\"6\")]\nsize = Vector2i(417, 134)\n\n[node name=\"MouseShortcutSelectorDialog\" parent=\".\" unique_id=1741998363 instance=ExtResource(\"6\")]\nsize = Vector2i(417, 134)\ninput_type = 1\n\n[node name=\"JoyKeyShortcutSelectorDialog\" parent=\".\" unique_id=1680135020 instance=ExtResource(\"6\")]\nsize = Vector2i(417, 134)\ninput_type = 2\n\n[node name=\"JoyAxisShortcutSelectorDialog\" parent=\".\" unique_id=857949123 instance=ExtResource(\"6\")]\nsize = Vector2i(417, 134)\ninput_type = 3\n\n[node name=\"ProfileSettings\" type=\"ConfirmationDialog\" parent=\".\" unique_id=562089573]\n\n[node name=\"ProfileName\" type=\"LineEdit\" parent=\"ProfileSettings\" unique_id=865119281]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 192.0\noffset_bottom = 51.0\n\n[node name=\"DeleteConfirmation\" type=\"ConfirmationDialog\" parent=\".\" unique_id=631111364]\nsize = Vector2i(427, 100)\ndialog_text = \"Are you sure you want to delete this shortcut profile?\"\n\n[node name=\"ResetConfirmation\" type=\"ConfirmationDialog\" parent=\".\" unique_id=77929510]\nsize = Vector2i(427, 100)\ndialog_text = \"Are you sure you want to restore all shortcuts to their default settings?\"\n\n[connection signal=\"item_selected\" from=\"VBoxContainer/HBoxContainer/ProfileOptionButton\" to=\".\" method=\"_on_ProfileOptionButton_item_selected\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/HBoxContainer/NewProfile\" to=\".\" method=\"_on_NewProfile_pressed\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/HBoxContainer/ResetProfile\" to=\".\" method=\"_on_reset_profile_pressed\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/HBoxContainer/RenameProfile\" to=\".\" method=\"_on_RenameProfile_pressed\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/HBoxContainer/DeleteProfile\" to=\".\" method=\"_on_DeleteProfile_pressed\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/HBoxContainer/OpenProfileFolder\" to=\".\" method=\"_on_OpenProfileFolder_pressed\"]\n[connection signal=\"text_changed\" from=\"VBoxContainer/Filters/FilterByNameLineEdit\" to=\".\" method=\"_on_filter_by_name_line_edit_text_changed\"]\n[connection signal=\"focus_entered\" from=\"VBoxContainer/Filters/FilterByShortcutLineEdit\" to=\".\" method=\"_on_filter_by_shortcut_line_edit_focus_entered\"]\n[connection signal=\"focus_exited\" from=\"VBoxContainer/Filters/FilterByShortcutLineEdit\" to=\".\" method=\"_on_filter_by_shortcut_line_edit_focus_exited\"]\n[connection signal=\"gui_input\" from=\"VBoxContainer/Filters/FilterByShortcutLineEdit\" to=\".\" method=\"_on_filter_by_shortcut_line_edit_gui_input\"]\n[connection signal=\"text_changed\" from=\"VBoxContainer/Filters/FilterByShortcutLineEdit\" to=\".\" method=\"_on_filter_by_shortcut_line_edit_text_changed\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/Filters/ClearAllFilters\" to=\".\" method=\"_on_clear_all_filters_pressed\"]\n[connection signal=\"button_clicked\" from=\"VBoxContainer/ShortcutTree\" to=\".\" method=\"_on_shortcut_tree_button_clicked\"]\n[connection signal=\"item_activated\" from=\"VBoxContainer/ShortcutTree\" to=\".\" method=\"_on_ShortcutTree_item_activated\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/ShortcutTree\" to=\".\" method=\"_on_shortcut_tree_item_selected\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/MouseMovementOptions/SensitivityRange\" to=\".\" method=\"_on_sensitivity_range_value_changed\"]\n[connection signal=\"id_pressed\" from=\"ShortcutTypeMenu\" to=\".\" method=\"_on_ShortcutTypeMenu_id_pressed\"]\n[connection signal=\"confirmed\" from=\"ProfileSettings\" to=\".\" method=\"_on_ProfileSettings_confirmed\"]\n[connection signal=\"confirmed\" from=\"DeleteConfirmation\" to=\".\" method=\"_on_DeleteConfirmation_confirmed\"]\n[connection signal=\"confirmed\" from=\"ResetConfirmation\" to=\".\" method=\"_on_reset_confirmation_confirmed\"]\n"
  },
  {
    "path": "addons/keychain/ShortcutProfile.gd",
    "content": "class_name ShortcutProfile\nextends Resource\n\n@export var name := \"\"\n@export var customizable := true\n@export var bindings: Dictionary[StringName, Array] = {}\n@export var mouse_movement_options: Dictionary[StringName, Dictionary] = {}\n\n\nfunc _init() -> void:\n\tbindings = bindings.duplicate(true)\n\tfill_bindings(false)\n\n\nfunc fill_bindings(should_save := true) -> void:\n\tvar unnecessary_actions = bindings.duplicate()  # Checks if the profile has any unused actions\n\tfor action in InputMap.get_actions():\n\t\tif not action in bindings:\n\t\t\tbindings[action] = InputMap.action_get_events(action)\n\t\tunnecessary_actions.erase(action)\n\tfor action in unnecessary_actions:\n\t\tbindings.erase(action)\n\tif should_save:\n\t\tsave()\n\n\nfunc copy_bindings_from(other_profile: ShortcutProfile) -> void:\n\tbindings = other_profile.bindings.duplicate(true)\n\tmouse_movement_options = other_profile.mouse_movement_options.duplicate(true)\n\tsave()\n\n\nfunc change_action(action_name: String) -> void:\n\tif not customizable:\n\t\treturn\n\tbindings[action_name] = InputMap.action_get_events(action_name)\n\tsave()\n\n\nfunc save() -> bool:\n\tif !customizable:\n\t\treturn false\n\tvar err := ResourceSaver.save(self, resource_path)\n\tif err != OK:\n\t\tprint(\"Error saving shortcut profile %s. Error code: %s\" % [resource_path, err])\n\t\treturn false\n\treturn true\n"
  },
  {
    "path": "addons/keychain/ShortcutProfile.gd.uid",
    "content": "uid://bmtkqh6xvat7\n"
  },
  {
    "path": "addons/keychain/ShortcutSelectorDialog.gd",
    "content": "extends ConfirmationDialog\n\nenum InputTypes { KEYBOARD, MOUSE, JOY_BUTTON, JOY_AXIS }\n\n@export var input_type := InputTypes.KEYBOARD\nvar listened_input: InputEvent\n\n@onready var root := get_parent()\n@onready var input_type_l := $VBoxContainer/InputTypeLabel as Label\n@onready var entered_shortcut := $VBoxContainer/EnteredShortcut as LineEdit\n@onready var option_button := $VBoxContainer/OptionButton as OptionButton\n@onready var modifier_buttons := $VBoxContainer/ModifierButtons as HBoxContainer\n@onready var alt_button := $VBoxContainer/ModifierButtons/Alt as CheckBox\n@onready var shift_button := $VBoxContainer/ModifierButtons/Shift as CheckBox\n@onready var control_button := $VBoxContainer/ModifierButtons/Control as CheckBox\n@onready var meta_button := $VBoxContainer/ModifierButtons/Meta as CheckBox\n@onready var command_control_button := $VBoxContainer/ModifierButtons/CommandOrControl as CheckBox\n@onready var already_exists := $VBoxContainer/AlreadyExistsLabel as Label\n\n\nfunc _ready() -> void:\n\tset_process_input(false)\n\tif input_type == InputTypes.KEYBOARD:\n\t\tentered_shortcut.visible = true\n\t\toption_button.visible = false\n\t\tget_ok_button().focus_neighbor_top = entered_shortcut.get_path()\n\t\tget_cancel_button().focus_neighbor_top = entered_shortcut.get_path()\n\t\tentered_shortcut.focus_neighbor_bottom = get_ok_button().get_path()\n\telse:\n\t\tif input_type != InputTypes.MOUSE:\n\t\t\tmodifier_buttons.visible = false\n\t\tget_ok_button().focus_neighbor_top = option_button.get_path()\n\t\tget_cancel_button().focus_neighbor_top = option_button.get_path()\n\t\toption_button.focus_neighbor_bottom = get_ok_button().get_path()\n\n\n#\tget_close_button().focus_mode = Control.FOCUS_NONE\n\n\nfunc _input(event: InputEvent) -> void:\n\tif not event is InputEventKey:\n\t\treturn\n\tif event.pressed:\n\t\tlistened_input = event\n\t\t_set_modifier_buttons_state(listened_input)\n\t\tentered_shortcut.text = event.as_text()\n\t\t_show_assigned_state(event)\n\n\nfunc _show_assigned_state(event: InputEvent) -> void:\n\tvar metadata = root.currently_editing_tree_item.get_metadata(0)\n\tvar action := \"\"\n\tif metadata is InputEvent:  # Editing an input event\n\t\taction = root.currently_editing_tree_item.get_parent().get_metadata(0)\n\telif metadata is StringName:  # Adding a new input event to an action\n\t\taction = metadata\n\n\tvar matching_pair: Array = _find_matching_event_in_map(action, event)\n\tif matching_pair:\n\t\talready_exists.text = tr(\"Already assigned to: %s\") % root.get_action_name(matching_pair[0])\n\telse:\n\t\talready_exists.text = \"\"\n\n\nfunc _on_ShortcutSelectorDialog_confirmed() -> void:\n\tif listened_input == null:\n\t\treturn\n\t_apply_shortcut_change(listened_input)\n\n\nfunc _apply_shortcut_change(input_event: InputEvent) -> void:\n\tvar metadata = root.currently_editing_tree_item.get_metadata(0)\n\tif metadata is InputEvent:  # Editing an input event\n\t\tvar parent_metadata = root.currently_editing_tree_item.get_parent().get_metadata(0)\n\t\tvar changed: bool = _set_shortcut(parent_metadata, metadata, input_event)\n\t\tif !changed:\n\t\t\treturn\n\t\troot.currently_editing_tree_item.set_metadata(0, input_event)\n\t\troot.currently_editing_tree_item.set_text(0, root.event_to_str(input_event))\n\telif metadata is StringName:  # Adding a new input event to an action\n\t\tvar changed: bool = _set_shortcut(metadata, null, input_event)\n\t\tif !changed:\n\t\t\treturn\n\t\troot.add_event_tree_item(input_event, root.currently_editing_tree_item)\n\n\nfunc _set_shortcut(action: StringName, old_event: InputEvent, new_event: InputEvent) -> bool:\n\tif InputMap.action_has_event(action, new_event):  # If the current action already has that event\n\t\treturn false\n\tif old_event:\n\t\tKeychain.action_erase_event(action, old_event)\n\n\t# Loop through other actions to see if the event exists there, to re-assign it\n\tvar matching_pair := _find_matching_event_in_map(action, new_event)\n\n\tif matching_pair:\n\t\tvar group := \"\"\n\t\tif action in Keychain.actions:\n\t\t\tgroup = Keychain.actions[action].group\n\n\t\tvar action_to_replace: StringName = matching_pair[0]\n\t\tvar input_to_replace: InputEvent = matching_pair[1]\n\t\tKeychain.action_erase_event(action_to_replace, input_to_replace)\n\t\tKeychain.change_action(action_to_replace)\n\t\tvar tree_item: TreeItem = root.tree.get_root()\n\t\twhile tree_item != null:  # Loop through Tree's TreeItems...\n\t\t\tvar metadata = tree_item.get_metadata(0)\n\t\t\tif metadata is InputEvent:\n\t\t\t\tif input_to_replace.is_match(metadata):\n\t\t\t\t\tvar map_action: StringName = tree_item.get_parent().get_metadata(0)\n\t\t\t\t\tif map_action == action_to_replace:\n\t\t\t\t\t\ttree_item.free()\n\t\t\t\t\t\tbreak\n\n\t\t\ttree_item = tree_item.get_next_in_tree()\n\n\tKeychain.action_add_event(action, new_event)\n\tKeychain.change_action(action)\n\treturn true\n\n\nfunc _find_matching_event_in_map(action: StringName, event: InputEvent) -> Array:\n\tvar group := \"\"\n\tif action in Keychain.actions:\n\t\tgroup = Keychain.actions[action].group\n\n\tfor map_action in InputMap.get_actions():\n\t\tif map_action in Keychain.ignore_actions:\n\t\t\tcontinue\n\t\tif Keychain.ignore_ui_actions and (map_action as String).begins_with(\"ui_\"):\n\t\t\tcontinue\n\t\tfor map_event in InputMap.action_get_events(map_action):\n\t\t\tif !event.is_match(map_event):\n\t\t\t\tcontinue\n\n\t\t\tif map_action in Keychain.actions:\n\t\t\t\t# If it's local, check if it's the same group, otherwise ignore\n\t\t\t\tif !Keychain.actions[action].global or !Keychain.actions[map_action].global:\n\t\t\t\t\tif Keychain.actions[map_action].group != group:\n\t\t\t\t\t\tcontinue\n\n\t\t\treturn [map_action, map_event]\n\n\treturn []\n\n\nfunc _on_ShortcutSelectorDialog_about_to_show() -> void:\n\tvar metadata = root.currently_editing_tree_item.get_metadata(0)\n\tif input_type == InputTypes.KEYBOARD:\n\t\tlistened_input = null\n\t\talready_exists.text = \"\"\n\t\tentered_shortcut.text = \"\"\n\t\tif metadata is InputEvent:\n\t\t\t_set_modifier_buttons_state(metadata)\n\t\tawait get_tree().process_frame\n\t\tentered_shortcut.grab_focus()\n\telse:\n\t\tif metadata is InputEvent:  # Editing an input event\n\t\t\tvar index := 0\n\t\t\tif metadata is InputEventMouseButton:\n\t\t\t\tindex = metadata.button_index - 1\n\t\t\t\t_set_modifier_buttons_state(metadata)\n\t\t\telif metadata is InputEventJoypadButton:\n\t\t\t\tindex = metadata.button_index\n\t\t\telif metadata is InputEventJoypadMotion:\n\t\t\t\tindex = metadata.axis * 2\n\t\t\t\tindex += signi(metadata.axis_value) / 2.0 + 0.5\n\t\t\toption_button.select(index)\n\t\t\t_on_OptionButton_item_selected(index)\n\n\t\telif metadata is StringName:  # Adding a new input event to an action\n\t\t\toption_button.select(0)\n\t\t\t_on_OptionButton_item_selected(0)\n\n\nfunc _on_ShortcutSelectorDialog_popup_hide() -> void:\n\tset_process_input(false)\n\n\nfunc _on_OptionButton_item_selected(index: int) -> void:\n\tif input_type == InputTypes.MOUSE:\n\t\tlistened_input = InputEventMouseButton.new()\n\t\tlistened_input.button_index = index + 1\n\t\tlistened_input.alt_pressed = alt_button.button_pressed\n\t\tlistened_input.shift_pressed = shift_button.button_pressed\n\t\tlistened_input.ctrl_pressed = control_button.button_pressed\n\t\tlistened_input.meta_pressed = meta_button.button_pressed\n\t\tlistened_input.command_or_control_autoremap = command_control_button.button_pressed\n\telif input_type == InputTypes.JOY_BUTTON:\n\t\tlistened_input = InputEventJoypadButton.new()\n\t\tlistened_input.button_index = index\n\telif input_type == InputTypes.JOY_AXIS:\n\t\tlistened_input = InputEventJoypadMotion.new()\n\t\tlistened_input.axis = index / 2\n\t\tlistened_input.axis_value = -1.0 if index % 2 == 0 else 1.0\n\t_show_assigned_state(listened_input)\n\n\nfunc _on_EnteredShortcut_focus_entered() -> void:\n\tset_process_input(true)\n\n\nfunc _on_EnteredShortcut_focus_exited() -> void:\n\tset_process_input(false)\n\n\nfunc _on_alt_toggled(button_pressed: bool) -> void:\n\tif not is_instance_valid(listened_input):\n\t\treturn\n\tlistened_input.alt_pressed = button_pressed\n\tentered_shortcut.text = listened_input.as_text()\n\n\nfunc _set_modifier_buttons_state(event: InputEventWithModifiers) -> void:\n\talt_button.button_pressed = event.alt_pressed\n\tshift_button.button_pressed = event.shift_pressed\n\tcontrol_button.button_pressed = event.ctrl_pressed\n\tmeta_button.button_pressed = event.meta_pressed\n\tcommand_control_button.button_pressed = event.command_or_control_autoremap\n\n\nfunc _on_shift_toggled(button_pressed: bool) -> void:\n\tif not is_instance_valid(listened_input):\n\t\treturn\n\tlistened_input.shift_pressed = button_pressed\n\tentered_shortcut.text = listened_input.as_text()\n\n\nfunc _on_control_toggled(button_pressed: bool) -> void:\n\tif not is_instance_valid(listened_input):\n\t\treturn\n\tlistened_input.ctrl_pressed = button_pressed\n\tentered_shortcut.text = listened_input.as_text()\n\n\nfunc _on_meta_toggled(button_pressed: bool) -> void:\n\tif not is_instance_valid(listened_input):\n\t\treturn\n\tlistened_input.meta_pressed = button_pressed\n\tentered_shortcut.text = listened_input.as_text()\n\n\nfunc _on_command_or_control_toggled(button_pressed: bool) -> void:\n\tcontrol_button.button_pressed = false\n\tmeta_button.button_pressed = false\n\tcontrol_button.visible = not button_pressed\n\tmeta_button.visible = not button_pressed\n\tif not is_instance_valid(listened_input):\n\t\treturn\n\tlistened_input.command_or_control_autoremap = button_pressed\n\tentered_shortcut.text = listened_input.as_text()\n"
  },
  {
    "path": "addons/keychain/ShortcutSelectorDialog.gd.uid",
    "content": "uid://ji2g5biygmmd\n"
  },
  {
    "path": "addons/keychain/ShortcutSelectorDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bfjcafe2kvx7n\"]\n\n[ext_resource type=\"Script\" uid=\"uid://ji2g5biygmmd\" path=\"res://addons/keychain/ShortcutSelectorDialog.gd\" id=\"1\"]\n\n[node name=\"ShortcutSelectorDialog\" type=\"ConfirmationDialog\" unique_id=1562265832]\nsize = Vector2i(417, 169)\nscript = ExtResource(\"1\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=984712817]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 409.0\noffset_bottom = 120.0\n\n[node name=\"InputTypeLabel\" type=\"Label\" parent=\"VBoxContainer\" unique_id=1559710489]\nlayout_mode = 2\ntext = \"Press a key or a key combination to set the shortcut\"\n\n[node name=\"EnteredShortcut\" type=\"LineEdit\" parent=\"VBoxContainer\" unique_id=23531479]\nvisible = false\nlayout_mode = 2\neditable = false\nvirtual_keyboard_enabled = false\n\n[node name=\"OptionButton\" type=\"OptionButton\" parent=\"VBoxContainer\" unique_id=1736018868]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\n\n[node name=\"ModifierButtons\" type=\"HBoxContainer\" parent=\"VBoxContainer\" unique_id=2068258784]\nlayout_mode = 2\n\n[node name=\"Alt\" type=\"CheckBox\" parent=\"VBoxContainer/ModifierButtons\" unique_id=1715014017]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Alt\"\n\n[node name=\"Shift\" type=\"CheckBox\" parent=\"VBoxContainer/ModifierButtons\" unique_id=2079179716]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Shift\"\n\n[node name=\"Control\" type=\"CheckBox\" parent=\"VBoxContainer/ModifierButtons\" unique_id=221875328]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Control\"\n\n[node name=\"Meta\" type=\"CheckBox\" parent=\"VBoxContainer/ModifierButtons\" unique_id=1137752822]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Meta\"\n\n[node name=\"CommandOrControl\" type=\"CheckBox\" parent=\"VBoxContainer/ModifierButtons\" unique_id=267483861]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Command / Control (auto)\"\n\n[node name=\"AlreadyExistsLabel\" type=\"Label\" parent=\"VBoxContainer\" unique_id=1880965833]\nlayout_mode = 2\n\n[connection signal=\"about_to_popup\" from=\".\" to=\".\" method=\"_on_ShortcutSelectorDialog_about_to_show\"]\n[connection signal=\"confirmed\" from=\".\" to=\".\" method=\"_on_ShortcutSelectorDialog_confirmed\"]\n[connection signal=\"focus_entered\" from=\"VBoxContainer/EnteredShortcut\" to=\".\" method=\"_on_EnteredShortcut_focus_entered\"]\n[connection signal=\"focus_exited\" from=\"VBoxContainer/EnteredShortcut\" to=\".\" method=\"_on_EnteredShortcut_focus_exited\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/OptionButton\" to=\".\" method=\"_on_OptionButton_item_selected\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/ModifierButtons/Alt\" to=\".\" method=\"_on_alt_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/ModifierButtons/Shift\" to=\".\" method=\"_on_shift_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/ModifierButtons/Control\" to=\".\" method=\"_on_control_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/ModifierButtons/Meta\" to=\".\" method=\"_on_meta_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/ModifierButtons/CommandOrControl\" to=\".\" method=\"_on_command_or_control_toggled\"]\n"
  },
  {
    "path": "addons/keychain/assets/add.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://c4433pa25cxp2\"\npath=\"res://.godot/imported/add.svg-4084e314648c872072757f9b0f544cf9.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/add.svg\"\ndest_files=[\"res://.godot/imported/add.svg-4084e314648c872072757f9b0f544cf9.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "addons/keychain/assets/arrows/bottom_left.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b3io8jf2b3w1y\"\npath=\"res://.godot/imported/bottom_left.png-70322cf92ed47ef9fb9e9bc20955dfd9.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/arrows/bottom_left.png\"\ndest_files=[\"res://.godot/imported/bottom_left.png-70322cf92ed47ef9fb9e9bc20955dfd9.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "addons/keychain/assets/arrows/bottom_right.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b7gkuibgeavkl\"\npath=\"res://.godot/imported/bottom_right.png-9d2b3283853c122c6405a136e996abe0.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/arrows/bottom_right.png\"\ndest_files=[\"res://.godot/imported/bottom_right.png-9d2b3283853c122c6405a136e996abe0.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "addons/keychain/assets/arrows/down.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cgsvoct3wwbjb\"\npath=\"res://.godot/imported/down.png-8649aa2bcc09abeceb6a1be3098abe52.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/arrows/down.png\"\ndest_files=[\"res://.godot/imported/down.png-8649aa2bcc09abeceb6a1be3098abe52.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "addons/keychain/assets/arrows/left.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://yhwkkevw7lur\"\npath=\"res://.godot/imported/left.png-28bcee1e175f55e11f3dd755b22f301a.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/arrows/left.png\"\ndest_files=[\"res://.godot/imported/left.png-28bcee1e175f55e11f3dd755b22f301a.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "addons/keychain/assets/arrows/right.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bj5ctot6clu13\"\npath=\"res://.godot/imported/right.png-9afb447ac90f3038b6c5c972fb70dd1b.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/arrows/right.png\"\ndest_files=[\"res://.godot/imported/right.png-9afb447ac90f3038b6c5c972fb70dd1b.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "addons/keychain/assets/arrows/top_left.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://esi4oenejswj\"\npath=\"res://.godot/imported/top_left.png-dcc3d109cf7558350f725395ee8a16c5.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/arrows/top_left.png\"\ndest_files=[\"res://.godot/imported/top_left.png-dcc3d109cf7558350f725395ee8a16c5.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "addons/keychain/assets/arrows/top_right.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cr4lfb2lrtl7a\"\npath=\"res://.godot/imported/top_right.png-e666f3cd901985122bff1c790593444e.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/arrows/top_right.png\"\ndest_files=[\"res://.godot/imported/top_right.png-e666f3cd901985122bff1c790593444e.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "addons/keychain/assets/arrows/up.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b337qel4762m4\"\npath=\"res://.godot/imported/up.png-02f7906dca0886b3b744d8d6606dd52e.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/arrows/up.png\"\ndest_files=[\"res://.godot/imported/up.png-02f7906dca0886b3b744d8d6606dd52e.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "addons/keychain/assets/close.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://f1gcylay6c6f\"\npath=\"res://.godot/imported/close.svg-12d57fa7e5a34826f312eed6ba1feb1a.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/close.svg\"\ndest_files=[\"res://.godot/imported/close.svg-12d57fa7e5a34826f312eed6ba1feb1a.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "addons/keychain/assets/edit.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://df8gl3u2nqpl3\"\npath=\"res://.godot/imported/edit.svg-cd9834545a8696f1e8611efa12a48f33.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/edit.svg\"\ndest_files=[\"res://.godot/imported/edit.svg-cd9834545a8696f1e8611efa12a48f33.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "addons/keychain/assets/folder.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b0gbmkb8xwksb\"\npath=\"res://.godot/imported/folder.svg-490bb7e2d2aa4425de998b1d382cf534.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/folder.svg\"\ndest_files=[\"res://.godot/imported/folder.svg-490bb7e2d2aa4425de998b1d382cf534.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "addons/keychain/assets/joy_axis.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bb6q6om3d08cm\"\npath=\"res://.godot/imported/joy_axis.svg-9e1156700cfe46afb1ca622536a9a2e1.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/joy_axis.svg\"\ndest_files=[\"res://.godot/imported/joy_axis.svg-9e1156700cfe46afb1ca622536a9a2e1.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "addons/keychain/assets/joy_button.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://ca58ufal2ufd8\"\npath=\"res://.godot/imported/joy_button.svg-df5663c6f296cab556e81b9c770699d0.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/joy_button.svg\"\ndest_files=[\"res://.godot/imported/joy_button.svg-df5663c6f296cab556e81b9c770699d0.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "addons/keychain/assets/keyboard.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://c2s5rm4nec5yh\"\npath=\"res://.godot/imported/keyboard.svg-fac365b6f70899f1dfa71ce4b4761ac6.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/keyboard.svg\"\ndest_files=[\"res://.godot/imported/keyboard.svg-fac365b6f70899f1dfa71ce4b4761ac6.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "addons/keychain/assets/keyboard_physical.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cmh8eaibhn5y8\"\npath=\"res://.godot/imported/keyboard_physical.svg-f50c796569ade32b57ece1ba0bd7dfbb.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/keyboard_physical.svg\"\ndest_files=[\"res://.godot/imported/keyboard_physical.svg-f50c796569ade32b57ece1ba0bd7dfbb.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "addons/keychain/assets/mouse.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bma7xj2rqqcr8\"\npath=\"res://.godot/imported/mouse.svg-559695787f3bb55c16dc66bd6a9b9032.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/mouse.svg\"\ndest_files=[\"res://.godot/imported/mouse.svg-559695787f3bb55c16dc66bd6a9b9032.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "addons/keychain/assets/search.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://0ij8aasy3k3b\"\npath=\"res://.godot/imported/search.svg-ce699cea82128153c676105375a8d6d3.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/search.svg\"\ndest_files=[\"res://.godot/imported/search.svg-ce699cea82128153c676105375a8d6d3.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "addons/keychain/assets/shortcut.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bmi24jp4fqi7k\"\npath=\"res://.godot/imported/shortcut.svg-401daac18a817142e2b29e5801e00053.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://addons/keychain/assets/shortcut.svg\"\ndest_files=[\"res://.godot/imported/shortcut.svg-401daac18a817142e2b29e5801e00053.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "addons/keychain/plugin.cfg",
    "content": "[plugin]\n\nname=\"Keychain\"\ndescription=\"A plugin for the Godot Engine that aims to give the player full control over the input actions of the game.\"\nauthor=\"Orama Interactive\"\nversion=\"2.1\"\nscript=\"plugin.gd\"\n"
  },
  {
    "path": "addons/keychain/plugin.gd",
    "content": "@tool\nextends EditorPlugin\n\n\nfunc _enter_tree() -> void:\n\tadd_autoload_singleton(\"Keychain\", \"res://addons/keychain/Keychain.gd\")\n\n\nfunc _exit_tree() -> void:\n\tremove_autoload_singleton(\"Keychain\")\n"
  },
  {
    "path": "addons/keychain/plugin.gd.uid",
    "content": "uid://b5i56iyq6ia2e\n"
  },
  {
    "path": "addons/keychain/profiles/default.tres",
    "content": "[gd_resource type=\"Resource\" script_class=\"ShortcutProfile\" format=3 uid=\"uid://df04uev1epmmo\"]\n\n[ext_resource type=\"Script\" uid=\"uid://bmtkqh6xvat7\" path=\"res://addons/keychain/ShortcutProfile.gd\" id=\"1\"]\n\n[resource]\nscript = ExtResource(\"1\")\nname = \"Default\"\ncustomizable = false\n"
  },
  {
    "path": "addons/keychain/translations/README.md",
    "content": "# Localization files for Keychain\nKeychain uses .po files to handle localization. More information in the Godot documentation: [Localization using gettext](https://docs.godotengine.org/en/stable/tutorials/i18n/localization_using_gettext.html)\n\nSimply add a .po file of the language you want to provide localization for, and Keychain will automatically add it to the TranslationServer when the project runs.\n"
  },
  {
    "path": "addons/keychain/translations/Translations.pot",
    "content": "msgid \"\"\nmsgstr \"\"\n\nmsgid \"OK\"\nmsgstr \"\"\n\nmsgid \"Cancel\"\nmsgstr \"\"\n\nmsgid \"Add\"\nmsgstr \"\"\n\nmsgid \"Edit\"\nmsgstr \"\"\n\nmsgid \"Delete\"\nmsgstr \"\"\n\nmsgid \"Shortcut profile:\"\nmsgstr \"\"\n\nmsgid \"Default\"\nmsgstr \"\"\n\nmsgid \"Custom\"\nmsgstr \"\"\n\nmsgid \"New\"\nmsgstr \"\"\n\nmsgid \"Rename\"\nmsgstr \"\"\n\nmsgid \"Open Folder\"\nmsgstr \"\"\n\nmsgid \"New Shortcut Profile\"\nmsgstr \"\"\n\nmsgid \"Rename Shortcut Profile\"\nmsgstr \"\"\n\nmsgid \"Are you sure you want to delete this shortcut profile?\"\nmsgstr \"\"\n\nmsgid \"Key\"\nmsgstr \"\"\n\nmsgid \"Mouse Button\"\nmsgstr \"\"\n\nmsgid \"Joy Button\"\nmsgstr \"\"\n\nmsgid \"Joy Axis\"\nmsgstr \"\"\n\nmsgid \"Button\"\nmsgstr \"\"\n\nmsgid \"Axis\"\nmsgstr \"\"\n\nmsgid \"(Physical)\"\nmsgstr \"\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"\"\n\nmsgid \"Mouse Button Index:\"\nmsgstr \"\"\n\nmsgid \"Joypad Button Index:\"\nmsgstr \"\"\n\nmsgid \"Joypad Axis Index:\"\nmsgstr \"\"\n\nmsgid \"Already assigned to: %s\"\nmsgstr \"\"\n\nmsgid \"Left Button\"\nmsgstr \"\"\n\nmsgid \"Right Button\"\nmsgstr \"\"\n\nmsgid \"Middle Button\"\nmsgstr \"\"\n\nmsgid \"Wheel Up Button\"\nmsgstr \"\"\n\nmsgid \"Wheel Down Button\"\nmsgstr \"\"\n\nmsgid \"Wheel Left Button\"\nmsgstr \"\"\n\nmsgid \"Wheel Right Button\"\nmsgstr \"\"\n\nmsgid \"Mouse Thumb Button 1\"\nmsgstr \"\"\n\nmsgid \"Mouse Thumb Button 2\"\nmsgstr \"\"\n\nmsgid \"DualShock Cross, Xbox A, Nintendo B\"\nmsgstr \"\"\n\nmsgid \"DualShock Circle, Xbox B, Nintendo A\"\nmsgstr \"\"\n\nmsgid \"DualShock Square, Xbox X, Nintendo Y\"\nmsgstr \"\"\n\nmsgid \"DualShock Triangle, Xbox Y, Nintendo X\"\nmsgstr \"\"\n\nmsgid \"L, L1\"\nmsgstr \"\"\n\nmsgid \"R, R1\"\nmsgstr \"\"\n\nmsgid \"L2\"\nmsgstr \"\"\n\nmsgid \"R2\"\nmsgstr \"\"\n\nmsgid \"L3\"\nmsgstr \"\"\n\nmsgid \"R3\"\nmsgstr \"\"\n\nmsgid \"Select, DualShock Share, Nintendo -\"\nmsgstr \"\"\n\nmsgid \"Start, DualShock Options, Nintendo +\"\nmsgstr \"\"\n\nmsgid \"D-Pad Up\"\nmsgstr \"\"\n\nmsgid \"D-Pad Down\"\nmsgstr \"\"\n\nmsgid \"D-Pad Left\"\nmsgstr \"\"\n\nmsgid \"D-Pad Right\"\nmsgstr \"\"\n\nmsgid \"Home, DualShock PS, Guide\"\nmsgstr \"\"\n\nmsgid \"Xbox Share, PS5 Microphone, Nintendo Capture\"\nmsgstr \"\"\n\nmsgid \"Xbox Paddle 1\"\nmsgstr \"\"\n\nmsgid \"Xbox Paddle 2\"\nmsgstr \"\"\n\nmsgid \"Xbox Paddle 3\"\nmsgstr \"\"\n\nmsgid \"Xbox Paddle 4\"\nmsgstr \"\"\n\nmsgid \"PS4/5 Touchpad\"\nmsgstr \"\"\n\nmsgid \"(Left Stick Left)\"\nmsgstr \"\"\n\nmsgid \"(Left Stick Right)\"\nmsgstr \"\"\n\nmsgid \"(Left Stick Up)\"\nmsgstr \"\"\n\nmsgid \"(Left Stick Down)\"\nmsgstr \"\"\n\nmsgid \"(Right Stick Left)\"\nmsgstr \"\"\n\nmsgid \"(Right Stick Right)\"\nmsgstr \"\"\n\nmsgid \"(Right Stick Up)\"\nmsgstr \"\"\n\nmsgid \"(Right Stick Down)\"\nmsgstr \"\"\n\nmsgid \"(L2)\"\nmsgstr \"\"\n\nmsgid \"(R2)\"\nmsgstr \"\"\n"
  },
  {
    "path": "addons/keychain/translations/el_GR.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: Keychain\\n\"\n\"Last-Translator: Overloaded\\n\"\n\"Language-Team: none\\n\"\n\"Language: el_GR\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\nmsgid \"OK\"\nmsgstr \"Εντάξει\"\n\nmsgid \"Cancel\"\nmsgstr \"Άκυρο\"\n\nmsgid \"Add\"\nmsgstr \"Προσθήκη\"\n\nmsgid \"Edit\"\nmsgstr \"Επεξεργασία\"\n\nmsgid \"Delete\"\nmsgstr \"Διαγραφή\"\n\nmsgid \"Shortcut profile:\"\nmsgstr \"Προφίλ συντομέυσεων:\"\n\nmsgid \"Default\"\nmsgstr \"Προεπιλογή\"\n\nmsgid \"Custom\"\nmsgstr \"Προσαρμοσμένο\"\n\nmsgid \"New\"\nmsgstr \"Νέο\"\n\nmsgid \"Rename\"\nmsgstr \"Μετονομασία\"\n\nmsgid \"Open Folder\"\nmsgstr \"Άνοιγμα φακέλου\"\n\nmsgid \"New Shortcut Profile\"\nmsgstr \"Νέο προφίλ συντομέυσεων\"\n\nmsgid \"Rename Shortcut Profile\"\nmsgstr \"Μετονομασία προφίλ συντομεύσεων\"\n\nmsgid \"Are you sure you want to delete this shortcut profile?\"\nmsgstr \"Είστε σίγουροι πως θέλετε να διαγραφτεί αυτό το προφίλ συντομέυσεων;\"\n\nmsgid \"Key\"\nmsgstr \"Πλήκτρο\"\n\nmsgid \"Mouse Button\"\nmsgstr \"Κουμπί ποντικιού\"\n\nmsgid \"Joy Button\"\nmsgstr \"Κουμπί χειριστηρίου\"\n\nmsgid \"Joy Axis\"\nmsgstr \"Άξονας χειριστηρίου\"\n\nmsgid \"Button\"\nmsgstr \"Κουμπί\"\n\nmsgid \"Axis\"\nmsgstr \"Άξονας\"\n\nmsgid \"(Physical)\"\nmsgstr \"(Φυσικό)\"\n\nmsgid \"Set the shortcut\"\nmsgstr \"Επιλέξτε μια συντόμευση\"\n\nmsgid \"Press a key or a key combination to set the shortcut\"\nmsgstr \"Πατήστε ένα πλήκτρο ή συνδυασμό πλήκτρων για να ορίσετε τη συντόμευση\"\n\nmsgid \"Mouse Button Index:\"\nmsgstr \"Δείκτης κουμπιού ποντικού\"\n\nmsgid \"Joypad Button Index:\"\nmsgstr \"Δείκτης κουμπιού χειριστηρίου\"\n\nmsgid \"Joypad Axis Index:\"\nmsgstr \"Δείκτης άξονα χειριστηρίου\"\n\nmsgid \"Already assigned to: %s\"\nmsgstr \"Έχει ήδη εκχωρηθεί σε: %s\"\n\nmsgid \"Left Button\"\nmsgstr \"Αριστερό κουμπί\"\n\nmsgid \"Right Button\"\nmsgstr \"Δεξί κουμπί\"\n\nmsgid \"Middle Button\"\nmsgstr \"Μεσαίο κουμπί\"\n\nmsgid \"Wheel Up Button\"\nmsgstr \"Τρόχος πάνω\"\n\nmsgid \"Wheel Down Button\"\nmsgstr \"Τρόχος κάτω\"\n\nmsgid \"Wheel Left Button\"\nmsgstr \"Τρόχος αριστερά\"\n\nmsgid \"Wheel Right Button\"\nmsgstr \"Τρόχος δεξιά\"\n\nmsgid \"Mouse Thumb Button 1\"\nmsgstr \"Κουμπί αντίχειρα ποντικού 1\"\n\nmsgid \"Mouse Thumb Button 2\"\nmsgstr \"Κουμπί αντίχειρα ποντικιού 2\"\n\nmsgid \"DualShock Cross, Xbox A, Nintendo B\"\nmsgstr \"DualShock Σταυρός, Xbox A, Nintendo B\"\n\nmsgid \"DualShock Circle, Xbox B, Nintendo A\"\nmsgstr \"DualShock Κύκλος, Xbox B, Nintendo A\"\n\nmsgid \"DualShock Square, Xbox X, Nintendo Y\"\nmsgstr \"DualShock Τετράγωνο, Xbox X, Nintendo Y\"\n\nmsgid \"DualShock Triangle, Xbox Y, Nintendo X\"\nmsgstr \"DualShock Τρίγωνο, Xbox Y, Nintendo X\"\n\nmsgid \"L, L1\"\nmsgstr \"L, L1\"\n\nmsgid \"R, R1\"\nmsgstr \"R, R1\"\n\nmsgid \"L2\"\nmsgstr \"L2\"\n\nmsgid \"R2\"\nmsgstr \"R2\"\n\nmsgid \"L3\"\nmsgstr \"L3\"\n\nmsgid \"R3\"\nmsgstr \"R3\"\n\nmsgid \"Select, DualShock Share, Nintendo -\"\nmsgstr \"\"\n\nmsgid \"Start, DualShock Options, Nintendo +\"\nmsgstr \"\"\n\nmsgid \"D-Pad Up\"\nmsgstr \"D-Pad Πάνω\"\n\nmsgid \"D-Pad Down\"\nmsgstr \"D-Pad Κάτω\"\n\nmsgid \"D-Pad Left\"\nmsgstr \"D-Pad Αριστερά\"\n\nmsgid \"D-Pad Right\"\nmsgstr \"D-Pad Δεξιά\"\n\nmsgid \"Home, DualShock PS, Guide\"\nmsgstr \"\"\n\nmsgid \"Xbox Share, PS5 Microphone, Nintendo Capture\"\nmsgstr \"Xbox Share, PS5 Μικρόφωνο, Nintendo Capture\"\n\nmsgid \"Xbox Paddle 1\"\nmsgstr \"\"\n\nmsgid \"Xbox Paddle 2\"\nmsgstr \"\"\n\nmsgid \"Xbox Paddle 3\"\nmsgstr \"\"\n\nmsgid \"Xbox Paddle 4\"\nmsgstr \"\"\n\nmsgid \"PS4/5 Touchpad\"\nmsgstr \"PS4/5 επιφάνεια αφής\"\n\nmsgid \"(Left Stick Left)\"\nmsgstr \"(Αριστερό Stick Αριστερά)\"\n\nmsgid \"(Left Stick Right)\"\nmsgstr \"(Αριστερό Stick Δεξιά)\"\n\nmsgid \"(Left Stick Up)\"\nmsgstr \"(Αριστερό Stick Πάνω)\"\n\nmsgid \"(Left Stick Down)\"\nmsgstr \"(Αριστερό Stick Κάτω)\"\n\nmsgid \"(Right Stick Left)\"\nmsgstr \"(Δεξί Stick Αριστερά)\"\n\nmsgid \"(Right Stick Right)\"\nmsgstr \"(Δεξί Stick Δεξιά)\"\n\nmsgid \"(Right Stick Up)\"\nmsgstr \"(Δεξί Stick Πάνω)\"\n\nmsgid \"(Right Stick Down)\"\nmsgstr \"(Δεξί Stick Κάτω)\"\n\nmsgid \"(L2)\"\nmsgstr \"(L2)\"\n\nmsgid \"(R2)\"\nmsgstr \"(R2)\"\n"
  },
  {
    "path": "assets/dither-matrices/bayer16.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cdtpmo4pjjjdd\"\npath=\"res://.godot/imported/bayer16.png-48f80e5e8f0bdac9e83b3acfa8588cf2.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/dither-matrices/bayer16.png\"\ndest_files=[\"res://.godot/imported/bayer16.png-48f80e5e8f0bdac9e83b3acfa8588cf2.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/dither-matrices/bayer2.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cdoxrolk7qdju\"\npath=\"res://.godot/imported/bayer2.png-c060ec2442edc204b9ec0ab2d99e19bf.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/dither-matrices/bayer2.png\"\ndest_files=[\"res://.godot/imported/bayer2.png-c060ec2442edc204b9ec0ab2d99e19bf.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/dither-matrices/bayer4.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://oald6mp1l1h7\"\npath=\"res://.godot/imported/bayer4.png-2008f73a4dd6b2f9f4ba6aac825a7b9b.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/dither-matrices/bayer4.png\"\ndest_files=[\"res://.godot/imported/bayer4.png-2008f73a4dd6b2f9f4ba6aac825a7b9b.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/dither-matrices/bayer8.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bq45j7jxav8nw\"\npath=\"res://.godot/imported/bayer8.png-2c0f9ff189b3d219f822ce84a94f5abd.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/dither-matrices/bayer8.png\"\ndest_files=[\"res://.godot/imported/bayer8.png-2c0f9ff189b3d219f822ce84a94f5abd.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/fonts/Roboto-License.txt",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "assets/fonts/Roboto-Regular.ttf.import",
    "content": "[remap]\n\nimporter=\"font_data_dynamic\"\ntype=\"FontFile\"\nuid=\"uid://cvc4lelf6hl7x\"\npath=\"res://.godot/imported/Roboto-Regular.ttf-e67097a08cc051e6b179dbaab401b2bc.fontdata\"\n\n[deps]\n\nsource_file=\"res://assets/fonts/Roboto-Regular.ttf\"\ndest_files=[\"res://.godot/imported/Roboto-Regular.ttf-e67097a08cc051e6b179dbaab401b2bc.fontdata\"]\n\n[params]\n\nRendering=null\nantialiasing=1\ngenerate_mipmaps=false\ndisable_embedded_bitmaps=true\nmultichannel_signed_distance_field=false\nmsdf_pixel_range=8\nmsdf_size=48\nallow_system_fallback=true\nforce_autohinter=false\nmodulate_color_glyphs=false\nhinting=1\nsubpixel_positioning=1\nkeep_rounding_remainders=true\noversampling=0.0\nFallbacks=null\nfallbacks=[]\nCompress=null\ncompress=true\npreload=[]\nlanguage_support={}\nscript_support={}\nopentype_features={}\n"
  },
  {
    "path": "assets/graphics/circle_9x9.png.import",
    "content": "[remap]\n\nimporter=\"image\"\ntype=\"Image\"\nuid=\"uid://bccayivs7v851\"\npath=\"res://.godot/imported/circle_9x9.png-775114b180b1f2b8d06dc42243fc410b.image\"\n\n[deps]\n\nsource_file=\"res://assets/graphics/circle_9x9.png\"\ndest_files=[\"res://.godot/imported/circle_9x9.png-775114b180b1f2b8d06dc42243fc410b.image\"]\n\n[params]\n\n"
  },
  {
    "path": "assets/graphics/circle_filled_9x9.png.import",
    "content": "[remap]\n\nimporter=\"image\"\ntype=\"Image\"\nuid=\"uid://0rkdth7xh8ah\"\npath=\"res://.godot/imported/circle_filled_9x9.png-babef9d7f189abd07273845268222c6c.image\"\n\n[deps]\n\nsource_file=\"res://assets/graphics/circle_filled_9x9.png\"\ndest_files=[\"res://.godot/imported/circle_filled_9x9.png-babef9d7f189abd07273845268222c6c.image\"]\n\n[params]\n\n"
  },
  {
    "path": "assets/graphics/cursor.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://busi7lojhqxgq\"\npath=\"res://.godot/imported/cursor.png-45ecd5a1e583fe3ca68fe559623aadce.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/cursor.png\"\ndest_files=[\"res://.godot/imported/cursor.png-45ecd5a1e583fe3ca68fe559623aadce.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/dotted_line.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://xnqvppcpt7jb\"\npath=\"res://.godot/imported/dotted_line.png-9a94e4e6ebf9c11e53076f53e529d37a.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/dotted_line.png\"\ndest_files=[\"res://.godot/imported/dotted_line.png-9a94e4e6ebf9c11e53076f53e529d37a.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/gizmos/directional_light.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bd25ysikhyhqn\"\npath=\"res://.godot/imported/directional_light.svg-093cdb9a72dee590271da014181a4680.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/gizmos/directional_light.svg\"\ndest_files=[\"res://.godot/imported/directional_light.svg-093cdb9a72dee590271da014181a4680.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/gizmos/omni_light.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cu38hb880ltae\"\npath=\"res://.godot/imported/omni_light.svg-b0faa945d45257c6c9fecd256ed51eee.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/gizmos/omni_light.svg\"\ndest_files=[\"res://.godot/imported/omni_light.svg-b0faa945d45257c6c9fecd256ed51eee.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/gizmos/spot_light.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://ded88bscdjle8\"\npath=\"res://.godot/imported/spot_light.svg-d309a6f5345413a6c8b9afd3cfe72f29.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/gizmos/spot_light.svg\"\ndest_files=[\"res://.godot/imported/spot_light.svg-d309a6f5345413a6c8b9afd3cfe72f29.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/icons/android_icons/android_adaptive_background.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://jfi3t3dx86mw\"\npath=\"res://.godot/imported/android_adaptive_background.png-0023a5f56a5acfcbdc595928f644c7c1.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/icons/android_icons/android_adaptive_background.png\"\ndest_files=[\"res://.godot/imported/android_adaptive_background.png-0023a5f56a5acfcbdc595928f644c7c1.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/icons/android_icons/android_adaptive_foreground.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dr6ino6jy4rs0\"\npath=\"res://.godot/imported/android_adaptive_foreground.png-fe293136e368a0c5e57fe049eb6bddbd.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/icons/android_icons/android_adaptive_foreground.png\"\ndest_files=[\"res://.godot/imported/android_adaptive_foreground.png-fe293136e368a0c5e57fe049eb6bddbd.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/icons/android_icons/android_adaptive_monochrome.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dwkfby6kuusmv\"\npath=\"res://.godot/imported/android_adaptive_monochrome.png-fa546a033a57eed920d55b6234c9b85c.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/icons/android_icons/android_adaptive_monochrome.png\"\ndest_files=[\"res://.godot/imported/android_adaptive_monochrome.png-fa546a033a57eed920d55b6234c9b85c.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/icons/android_icons/android_main_icon.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cghkna21os4bf\"\npath=\"res://.godot/imported/android_main_icon.png-d84e4299ce1e885936880bed91f90b86.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/icons/android_icons/android_main_icon.png\"\ndest_files=[\"res://.godot/imported/android_main_icon.png-d84e4299ce1e885936880bed91f90b86.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/icons/icon.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b47r0c6auaqk6\"\npath=\"res://.godot/imported/icon.png-aa34c86f977c2e615fbfe8e823c3b00c.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/icons/icon.png\"\ndest_files=[\"res://.godot/imported/icon.png-aa34c86f977c2e615fbfe8e823c3b00c.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/icons/icon_16x16.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://c7yvcxpiq8spa\"\npath=\"res://.godot/imported/icon_16x16.png-256ac70bddc974584d574bbbf4b41c7c.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/icons/icon_16x16.png\"\ndest_files=[\"res://.godot/imported/icon_16x16.png-256ac70bddc974584d574bbbf4b41c7c.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/clipping_mask.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://ieo8fsapcgsy\"\npath=\"res://.godot/imported/clipping_mask.png-735677b4fff2e062e79993566d07bdd3.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/clipping_mask.png\"\ndest_files=[\"res://.godot/imported/clipping_mask.png-735677b4fff2e062e79993566d07bdd3.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/clone.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://d3gx4phcox58s\"\npath=\"res://.godot/imported/clone.png-04ad708db9ea2b00606e50fe99f4ca29.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/clone.png\"\ndest_files=[\"res://.godot/imported/clone.png-04ad708db9ea2b00606e50fe99f4ca29.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/delete.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://x2k652y15v04\"\npath=\"res://.godot/imported/delete.png-78cc7779425d13dd019b2b6b51aca5b2.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/delete.png\"\ndest_files=[\"res://.godot/imported/delete.png-78cc7779425d13dd019b2b6b51aca5b2.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/fx.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dt6cysvv1w77u\"\npath=\"res://.godot/imported/fx.png-1b545437fec5adf83ee72751efbbe37b.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/fx.png\"\ndest_files=[\"res://.godot/imported/fx.png-1b545437fec5adf83ee72751efbbe37b.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/group_collapsed.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://d11kh3e3nq1l5\"\npath=\"res://.godot/imported/group_collapsed.png-9d08fac1c2f635c754860111d024aa0f.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/group_collapsed.png\"\ndest_files=[\"res://.godot/imported/group_collapsed.png-9d08fac1c2f635c754860111d024aa0f.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/group_expanded.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dndlglvqc7v6a\"\npath=\"res://.godot/imported/group_expanded.png-f3cd620185a4989737d6d9a36f4b57f3.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/group_expanded.png\"\ndest_files=[\"res://.godot/imported/group_expanded.png-f3cd620185a4989737d6d9a36f4b57f3.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/group_new.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cmgnc2emsbxni\"\npath=\"res://.godot/imported/group_new.png-4ebdc7dd84d8c8a7b7979f50f4471543.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/group_new.png\"\ndest_files=[\"res://.godot/imported/group_new.png-4ebdc7dd84d8c8a7b7979f50f4471543.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/layer_active_effect.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dv5y24sb8lxg2\"\npath=\"res://.godot/imported/layer_active_effect.png-ad3844f290bf1cd6605ac13bbf59d4b3.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/layer_active_effect.png\"\ndest_files=[\"res://.godot/imported/layer_active_effect.png-ad3844f290bf1cd6605ac13bbf59d4b3.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/layer_invisible.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dwqdm6pllnipj\"\npath=\"res://.godot/imported/layer_invisible.png-b8a35d26d7a70c1d9e228e24fcffb0d2.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/layer_invisible.png\"\ndest_files=[\"res://.godot/imported/layer_invisible.png-b8a35d26d7a70c1d9e228e24fcffb0d2.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/layer_visible.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://c2b3htff5yox8\"\npath=\"res://.godot/imported/layer_visible.png-28b5ac4566a2e156d8e7d4caecc5f889.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/layer_visible.png\"\ndest_files=[\"res://.godot/imported/layer_visible.png-28b5ac4566a2e156d8e7d4caecc5f889.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/linked_layer.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://brxdpqcx5g7v2\"\npath=\"res://.godot/imported/linked_layer.png-b1b5eaf8b8ea0396142d4f1a6180fff9.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/linked_layer.png\"\ndest_files=[\"res://.godot/imported/linked_layer.png-b1b5eaf8b8ea0396142d4f1a6180fff9.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/lock.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://des606sdhau2i\"\npath=\"res://.godot/imported/lock.png-cd4de2cfd1fd7db7839cbddf2e6ed0ef.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/lock.png\"\ndest_files=[\"res://.godot/imported/lock.png-cd4de2cfd1fd7db7839cbddf2e6ed0ef.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/merge_down.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bx1xa5aacxfx4\"\npath=\"res://.godot/imported/merge_down.png-a3f5d31e30b455770aabfc4c5082293e.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/merge_down.png\"\ndest_files=[\"res://.godot/imported/merge_down.png-a3f5d31e30b455770aabfc4c5082293e.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/move_down.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dmhauk0dee42v\"\npath=\"res://.godot/imported/move_down.png-5c0dcaa0f2a312e278777265b5650041.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/move_down.png\"\ndest_files=[\"res://.godot/imported/move_down.png-5c0dcaa0f2a312e278777265b5650041.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/move_up.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://c7bha4a6x4bav\"\npath=\"res://.godot/imported/move_up.png-2e639f267f2670e8bc72d0101082d31e.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/move_up.png\"\ndest_files=[\"res://.godot/imported/move_up.png-2e639f267f2670e8bc72d0101082d31e.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/new.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://d36mlbmq06q4e\"\npath=\"res://.godot/imported/new.png-0807d977a6b977842f10a56051eb0c7b.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/new.png\"\ndest_files=[\"res://.godot/imported/new.png-0807d977a6b977842f10a56051eb0c7b.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/type_icons/layer_3d.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://c0h02b3g41jn4\"\npath=\"res://.godot/imported/layer_3d.png-d1d129c484dc412c7f65f43e3ab214de.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/type_icons/layer_3d.png\"\ndest_files=[\"res://.godot/imported/layer_3d.png-d1d129c484dc412c7f65f43e3ab214de.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/type_icons/layer_group.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bvg3wqi6p6s14\"\npath=\"res://.godot/imported/layer_group.png-7073d09db245e0abdadd33a0d4a32e4d.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/type_icons/layer_group.png\"\ndest_files=[\"res://.godot/imported/layer_group.png-7073d09db245e0abdadd33a0d4a32e4d.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/type_icons/layer_pixel.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cjvk47bd56156\"\npath=\"res://.godot/imported/layer_pixel.png-5cb5e362528cc5d24159d624e17c1760.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/type_icons/layer_pixel.png\"\ndest_files=[\"res://.godot/imported/layer_pixel.png-5cb5e362528cc5d24159d624e17c1760.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/type_icons/layer_sound.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://ctkhyfr6idb3u\"\npath=\"res://.godot/imported/layer_sound.png-6a1e2becb20b310be6eb52c40325fe0a.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/type_icons/layer_sound.png\"\ndest_files=[\"res://.godot/imported/layer_sound.png-6a1e2becb20b310be6eb52c40325fe0a.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/type_icons/layer_tilemap.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cik62s8awxnlw\"\npath=\"res://.godot/imported/layer_tilemap.png-958a69d0e26ff564c8d8c53e0e5a15c6.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/type_icons/layer_tilemap.png\"\ndest_files=[\"res://.godot/imported/layer_tilemap.png-958a69d0e26ff564c8d8c53e0e5a15c6.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/unlinked_layer.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cofw1x6chh4i\"\npath=\"res://.godot/imported/unlinked_layer.png-3b8f06ad6f0e4f7ae07342b1315d50b5.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/unlinked_layer.png\"\ndest_files=[\"res://.godot/imported/unlinked_layer.png-3b8f06ad6f0e4f7ae07342b1315d50b5.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/layers/unlock.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dhc0pnnqojd2m\"\npath=\"res://.godot/imported/unlock.png-71ad91dbe0f60844cb241c3fa92b1d9e.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/layers/unlock.png\"\ndest_files=[\"res://.godot/imported/unlock.png-71ad91dbe0f60844cb241c3fa92b1d9e.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/alpha_lock_off.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://j8eywwy082a4\"\npath=\"res://.godot/imported/alpha_lock_off.png-2b88d446a40bc5d304eb489a1531dbc7.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/alpha_lock_off.png\"\ndest_files=[\"res://.godot/imported/alpha_lock_off.png-2b88d446a40bc5d304eb489a1531dbc7.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/alpha_lock_on.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cecc5pdyv1qqc\"\npath=\"res://.godot/imported/alpha_lock_on.png-b504142d180d946e470db4c9a8a68837.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/alpha_lock_on.png\"\ndest_files=[\"res://.godot/imported/alpha_lock_on.png-b504142d180d946e470db4c9a8a68837.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/animate.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://blrd4x0ma7b3h\"\npath=\"res://.godot/imported/animate.png-79364ccdc41b6325d06915e85b554b1e.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/animate.png\"\ndest_files=[\"res://.godot/imported/animate.png-79364ccdc41b6325d06915e85b554b1e.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/check.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://heqfoai5j8p\"\npath=\"res://.godot/imported/check.png-0fc65a6dd56b2296f9f8446beb7b136a.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/check.png\"\ndest_files=[\"res://.godot/imported/check.png-0fc65a6dd56b2296f9f8446beb7b136a.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/check_plain.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://d267xalp3p7ru\"\npath=\"res://.godot/imported/check_plain.png-6f37534ee70be1593b3b1be7b4c80f23.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/check_plain.png\"\ndest_files=[\"res://.godot/imported/check_plain.png-6f37534ee70be1593b3b1be7b4c80f23.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/checkbox_unpressed.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://ybfsxkc2qap7\"\npath=\"res://.godot/imported/checkbox_unpressed.png-4c5614ef21e1361f32e7886a1d063053.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/checkbox_unpressed.png\"\ndest_files=[\"res://.godot/imported/checkbox_unpressed.png-4c5614ef21e1361f32e7886a1d063053.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/close.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bnc78807k1xjv\"\npath=\"res://.godot/imported/close.png-5725622e3d74d3527ee26e70390098f4.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/close.png\"\ndest_files=[\"res://.godot/imported/close.png-5725622e3d74d3527ee26e70390098f4.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/close.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b4e44lb8k2pmt\"\npath=\"res://.godot/imported/close.svg-11f3414f2f3de5550eee4cc42f4941c6.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/close.svg\"\ndest_files=[\"res://.godot/imported/close.svg-11f3414f2f3de5550eee4cc42f4941c6.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.25\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/misc/color_switch.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://d0v821l01w7go\"\npath=\"res://.godot/imported/color_switch.png-a49ad8d7dd5258b7f0ac15f4eff6f2cb.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/color_switch.png\"\ndest_files=[\"res://.godot/imported/color_switch.png-a49ad8d7dd5258b7f0ac15f4eff6f2cb.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/dynamics.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dg3dumyfj1682\"\npath=\"res://.godot/imported/dynamics.png-ea904a4a1658c230cb654ce11b3cb7b2.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/dynamics.png\"\ndest_files=[\"res://.godot/imported/dynamics.png-ea904a4a1658c230cb654ce11b3cb7b2.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/external_link.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://3v78ojo0pkfg\"\npath=\"res://.godot/imported/external_link.svg-4c5b7d811a70be6a780cd15f86677f9a.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/external_link.svg\"\ndest_files=[\"res://.godot/imported/external_link.svg-4c5b7d811a70be6a780cd15f86677f9a.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/misc/heart.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://qqndfexvoxl1\"\npath=\"res://.godot/imported/heart.svg-69a32c8bb763f6140fb082aa8a95f07a.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/heart.svg\"\ndest_files=[\"res://.godot/imported/heart.svg-69a32c8bb763f6140fb082aa8a95f07a.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/misc/horizontal_mirror_off.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cjrokejjsp5dm\"\npath=\"res://.godot/imported/horizontal_mirror_off.png-9d8560bf545907eff57b3b2107854b44.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/horizontal_mirror_off.png\"\ndest_files=[\"res://.godot/imported/horizontal_mirror_off.png-9d8560bf545907eff57b3b2107854b44.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/horizontal_mirror_on.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://38kahqv1fdiu\"\npath=\"res://.godot/imported/horizontal_mirror_on.png-264c6a31006968d8eccd9723d3c84173.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/horizontal_mirror_on.png\"\ndest_files=[\"res://.godot/imported/horizontal_mirror_on.png-264c6a31006968d8eccd9723d3c84173.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/icon_reload.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bv7ldl8obhawm\"\npath=\"res://.godot/imported/icon_reload.png-938449bb97ec8e3146e3e63a36e4d9a4.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/icon_reload.png\"\ndest_files=[\"res://.godot/imported/icon_reload.png-938449bb97ec8e3146e3e63a36e4d9a4.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/landscape.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://0vc1pn1sn2ud\"\npath=\"res://.godot/imported/landscape.png-06f6d4634b998fafceba8617ed995411.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/landscape.png\"\ndest_files=[\"res://.godot/imported/landscape.png-06f6d4634b998fafceba8617ed995411.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/lock_aspect.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://beqermx8s5q8y\"\npath=\"res://.godot/imported/lock_aspect.png-73737b9c965fcfc20370ece65a769bab.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/lock_aspect.png\"\ndest_files=[\"res://.godot/imported/lock_aspect.png-73737b9c965fcfc20370ece65a769bab.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/lock_aspect_2.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cancw70yw0pv7\"\npath=\"res://.godot/imported/lock_aspect_2.png-463878b082f40e094e4a379076b066c6.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/lock_aspect_2.png\"\ndest_files=[\"res://.godot/imported/lock_aspect_2.png-463878b082f40e094e4a379076b066c6.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/lock_aspect_guides.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://kd10jfc1dxf5\"\npath=\"res://.godot/imported/lock_aspect_guides.png-928321195f27dd29d4b591772db9fba0.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/lock_aspect_guides.png\"\ndest_files=[\"res://.godot/imported/lock_aspect_guides.png-928321195f27dd29d4b591772db9fba0.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/locked_size.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cq0uqutw8r8wi\"\npath=\"res://.godot/imported/locked_size.png-05ec97950456a9ee42557d3414337309.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/locked_size.png\"\ndest_files=[\"res://.godot/imported/locked_size.png-05ec97950456a9ee42557d3414337309.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/mirror_x.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bpsfilx47bw3r\"\npath=\"res://.godot/imported/mirror_x.svg-16a0646fb607af92a2ccf231dd0f1d98.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/mirror_x.svg\"\ndest_files=[\"res://.godot/imported/mirror_x.svg-16a0646fb607af92a2ccf231dd0f1d98.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/misc/mirror_y.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bk6iaxiyl74ih\"\npath=\"res://.godot/imported/mirror_y.svg-47cb90f0f94e4ed7c37f151a9ddbaab0.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/mirror_y.svg\"\ndest_files=[\"res://.godot/imported/mirror_y.svg-47cb90f0f94e4ed7c37f151a9ddbaab0.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/misc/move_down_arrow.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://d1qjs2ci67se4\"\npath=\"res://.godot/imported/move_down_arrow.svg-76570684c2341024db5505cd94fb3ba5.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/move_down_arrow.svg\"\ndest_files=[\"res://.godot/imported/move_down_arrow.svg-76570684c2341024db5505cd94fb3ba5.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.7\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/misc/move_up_arrow.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cxj0mtixk466v\"\npath=\"res://.godot/imported/move_up_arrow.svg-01a22b2c21ca40bb8e863f736d2606de.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/move_up_arrow.svg\"\ndest_files=[\"res://.godot/imported/move_up_arrow.svg-01a22b2c21ca40bb8e863f736d2606de.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.7\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/misc/musical_note.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dfjd72smxp6ma\"\npath=\"res://.godot/imported/musical_note.png-f1be7cc6341733e6ffe2fa5b650b80c2.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/musical_note.png\"\ndest_files=[\"res://.godot/imported/musical_note.png-f1be7cc6341733e6ffe2fa5b650b80c2.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/options.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dwoilatxfh1s7\"\npath=\"res://.godot/imported/options.png-4666dcc1c1d35e1d78d00669ca968ad4.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/options.png\"\ndest_files=[\"res://.godot/imported/options.png-4666dcc1c1d35e1d78d00669ca968ad4.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/pixel_perfect_off.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://22h12g8p3jtd\"\npath=\"res://.godot/imported/pixel_perfect_off.png-3ae3ddb583d51a5cedad3b51fdc0f0d4.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/pixel_perfect_off.png\"\ndest_files=[\"res://.godot/imported/pixel_perfect_off.png-3ae3ddb583d51a5cedad3b51fdc0f0d4.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/pixel_perfect_on.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://ckx4ua0ecg4xq\"\npath=\"res://.godot/imported/pixel_perfect_on.png-b6491a77b0ebb21671803e7a75c8e18d.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/pixel_perfect_on.png\"\ndest_files=[\"res://.godot/imported/pixel_perfect_on.png-b6491a77b0ebb21671803e7a75c8e18d.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/portrait.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://kj867tldofxi\"\npath=\"res://.godot/imported/portrait.png-9b586f1b2b2a8fb8e580481b3bf6d826.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/portrait.png\"\ndest_files=[\"res://.godot/imported/portrait.png-9b586f1b2b2a8fb8e580481b3bf6d826.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/radio_unpressed.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://brdgp0y4tarar\"\npath=\"res://.godot/imported/radio_unpressed.png-a75f2d5cd86ae93980e481d43b3f4550.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/radio_unpressed.png\"\ndest_files=[\"res://.godot/imported/radio_unpressed.png-a75f2d5cd86ae93980e481d43b3f4550.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/save.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cvc120a27s57m\"\npath=\"res://.godot/imported/save.svg-4b99ce717d52a4473a09bf06262e3b44.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/save.svg\"\ndest_files=[\"res://.godot/imported/save.svg-4b99ce717d52a4473a09bf06262e3b44.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/misc/search.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://fvgl2kl81v0h\"\npath=\"res://.godot/imported/search.svg-804ba91c3225a44cfabc75acd104e8ea.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/search.svg\"\ndest_files=[\"res://.godot/imported/search.svg-804ba91c3225a44cfabc75acd104e8ea.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/misc/settings.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cis71foi5jt31\"\npath=\"res://.godot/imported/settings.svg-9e60faa1666134ef3fcd7b95fe437b98.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/settings.svg\"\ndest_files=[\"res://.godot/imported/settings.svg-9e60faa1666134ef3fcd7b95fe437b98.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/misc/uncheck.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://di8au2u87jgv5\"\npath=\"res://.godot/imported/uncheck.png-e9003e3a9b5f329de0c2aec37621a462.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/uncheck.png\"\ndest_files=[\"res://.godot/imported/uncheck.png-e9003e3a9b5f329de0c2aec37621a462.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/unlocked_size.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bgrq56ndc4ydj\"\npath=\"res://.godot/imported/unlocked_size.png-bd224f1987da9100f208bda51349ff67.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/unlocked_size.png\"\ndest_files=[\"res://.godot/imported/unlocked_size.png-bd224f1987da9100f208bda51349ff67.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/value_arrow.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://ct8wn8m6x4m54\"\npath=\"res://.godot/imported/value_arrow.svg-fba0386b90d817941c289525e36a6d5f.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/value_arrow.svg\"\ndest_files=[\"res://.godot/imported/value_arrow.svg-fba0386b90d817941c289525e36a6d5f.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/misc/value_arrow_hover.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bq8h66v4ie8xl\"\npath=\"res://.godot/imported/value_arrow_hover.svg-32e8ddfab9c4382171107e88c513d4f4.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/value_arrow_hover.svg\"\ndest_files=[\"res://.godot/imported/value_arrow_hover.svg-32e8ddfab9c4382171107e88c513d4f4.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/misc/value_arrow_press.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://hhxenhteahv6\"\npath=\"res://.godot/imported/value_arrow_press.svg-8069ba67bd2ee03d7abc3777706035a9.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/value_arrow_press.svg\"\ndest_files=[\"res://.godot/imported/value_arrow_press.svg-8069ba67bd2ee03d7abc3777706035a9.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/misc/value_arrow_right.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cefhafnbc8upf\"\npath=\"res://.godot/imported/value_arrow_right.svg-7fe12cf8468d0e5236e1ce8bb4a7bec1.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/value_arrow_right.svg\"\ndest_files=[\"res://.godot/imported/value_arrow_right.svg-7fe12cf8468d0e5236e1ce8bb4a7bec1.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/misc/value_arrow_up.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bhkmiijflfqxx\"\npath=\"res://.godot/imported/value_arrow_up.svg-96ec51cd97c5466d50744c7e1ca664bd.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/value_arrow_up.svg\"\ndest_files=[\"res://.godot/imported/value_arrow_up.svg-96ec51cd97c5466d50744c7e1ca664bd.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/misc/value_slider.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://c7u0yofrpm50a\"\npath=\"res://.godot/imported/value_slider.png-1923f0534fe53aef508cb99231851c39.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/value_slider.png\"\ndest_files=[\"res://.godot/imported/value_slider.png-1923f0534fe53aef508cb99231851c39.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/vertical_mirror_off.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://hiduvaa73fr6\"\npath=\"res://.godot/imported/vertical_mirror_off.png-936c41f3e58c04ace7cdc4930d473d7c.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/vertical_mirror_off.png\"\ndest_files=[\"res://.godot/imported/vertical_mirror_off.png-936c41f3e58c04ace7cdc4930d473d7c.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/vertical_mirror_on.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://di0v6f5osw0id\"\npath=\"res://.godot/imported/vertical_mirror_on.png-f1f50f9138b06f859838a13350e60a8a.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/vertical_mirror_on.png\"\ndest_files=[\"res://.godot/imported/vertical_mirror_on.png-f1f50f9138b06f859838a13350e60a8a.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/x_minus_y_mirror_off.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://1kj5gcswa3t2\"\npath=\"res://.godot/imported/x_minus_y_mirror_off.png-da237e3b5b7ad1dfef1c935385f53dc5.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/x_minus_y_mirror_off.png\"\ndest_files=[\"res://.godot/imported/x_minus_y_mirror_off.png-da237e3b5b7ad1dfef1c935385f53dc5.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/x_minus_y_mirror_on.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dn14bkxwdqsfk\"\npath=\"res://.godot/imported/x_minus_y_mirror_on.png-0e9186904d8241facc4a0c1190f32c53.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/x_minus_y_mirror_on.png\"\ndest_files=[\"res://.godot/imported/x_minus_y_mirror_on.png-0e9186904d8241facc4a0c1190f32c53.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/xy_mirror_off.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dlxhm0ronna25\"\npath=\"res://.godot/imported/xy_mirror_off.png-8d2fd9ebdf350f0cd384fdf39fed4ec1.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/xy_mirror_off.png\"\ndest_files=[\"res://.godot/imported/xy_mirror_off.png-8d2fd9ebdf350f0cd384fdf39fed4ec1.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/xy_mirror_on.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cu2uqp5oupt80\"\npath=\"res://.godot/imported/xy_mirror_on.png-95d443df3b6d17add41283bdd720ea7e.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/xy_mirror_on.png\"\ndest_files=[\"res://.godot/imported/xy_mirror_on.png-95d443df3b6d17add41283bdd720ea7e.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/misc/z_index_indicator.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bsnfsiytk8sbs\"\npath=\"res://.godot/imported/z_index_indicator.png-7326a1bc4b35e22e98852cccdcd36eca.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/misc/z_index_indicator.png\"\ndest_files=[\"res://.godot/imported/z_index_indicator.png-7326a1bc4b35e22e98852cccdcd36eca.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/palette/add.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b7ydn1tt37rcl\"\npath=\"res://.godot/imported/add.png-c9dc80b6c922e70dabcc944f9eb6e5d9.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/palette/add.png\"\ndest_files=[\"res://.godot/imported/add.png-c9dc80b6c922e70dabcc944f9eb6e5d9.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/palette/edit.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://biyn51upnlxle\"\npath=\"res://.godot/imported/edit.png-69d6fa919970bb9987f02f09190d3661.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/palette/edit.png\"\ndest_files=[\"res://.godot/imported/edit.png-69d6fa919970bb9987f02f09190d3661.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/palette/sort.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://db4i3w3yencxg\"\npath=\"res://.godot/imported/sort.png-d80e96b77a5aad6d1848c4243782da48.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/palette/sort.png\"\ndest_files=[\"res://.godot/imported/sort.png-d80e96b77a5aad6d1848c4243782da48.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/pixel_image.png.import",
    "content": "[remap]\n\nimporter=\"image\"\ntype=\"Image\"\nuid=\"uid://dp23gk2ocyjiu\"\npath=\"res://.godot/imported/pixel_image.png-221d9db93637e5bd84a0851e7bc0147c.image\"\n\n[deps]\n\nsource_file=\"res://assets/graphics/pixel_image.png\"\ndest_files=[\"res://.godot/imported/pixel_image.png-221d9db93637e5bd84a0851e7bc0147c.image\"]\n\n[params]\n\n"
  },
  {
    "path": "assets/graphics/quick_access_panel/copy.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://btxf72xcqrn4c\"\npath=\"res://.godot/imported/copy.svg-888dc800d10f8928181a11a30785965a.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/quick_access_panel/copy.svg\"\ndest_files=[\"res://.godot/imported/copy.svg-888dc800d10f8928181a11a30785965a.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/quick_access_panel/cut.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bblxfj2ey7p04\"\npath=\"res://.godot/imported/cut.svg-f7669ce8db69cd915a207b7c4df1e35a.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/quick_access_panel/cut.svg\"\ndest_files=[\"res://.godot/imported/cut.svg-f7669ce8db69cd915a207b7c4df1e35a.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/quick_access_panel/paste.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://c6vu0iwn4qesr\"\npath=\"res://.godot/imported/paste.svg-7b3e183215858b0668ed51e95a10ceba.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/quick_access_panel/paste.svg\"\ndest_files=[\"res://.godot/imported/paste.svg-7b3e183215858b0668ed51e95a10ceba.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/quick_access_panel/redo.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://ciqtn0nqmn3nk\"\npath=\"res://.godot/imported/redo.svg-aa8bdf4ae57a0ee8317d88d83ba836cc.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/quick_access_panel/redo.svg\"\ndest_files=[\"res://.godot/imported/redo.svg-aa8bdf4ae57a0ee8317d88d83ba836cc.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/quick_access_panel/remove.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b0wuerwimmxav\"\npath=\"res://.godot/imported/remove.svg-b01f3254cbc805b35109615bc431d526.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/quick_access_panel/remove.svg\"\ndest_files=[\"res://.godot/imported/remove.svg-b01f3254cbc805b35109615bc431d526.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/quick_access_panel/save.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://drrcnm2w0glru\"\npath=\"res://.godot/imported/save.svg-2e412342f6001fd20e3860468afd1157.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/quick_access_panel/save.svg\"\ndest_files=[\"res://.godot/imported/save.svg-2e412342f6001fd20e3860468afd1157.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/quick_access_panel/undo.svg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dsb5lut4qfo11\"\npath=\"res://.godot/imported/undo.svg-05c38a0f1fbc4bdf83b803328863dd3d.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/quick_access_panel/undo.svg\"\ndest_files=[\"res://.godot/imported/undo.svg-05c38a0f1fbc4bdf83b803328863dd3d.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\nsvg/scale=1.0\neditor/scale_with_editor_scale=false\neditor/convert_colors_with_editor_theme=false\n"
  },
  {
    "path": "assets/graphics/recorder/start.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bgfqvkmstecr5\"\npath=\"res://.godot/imported/start.png-f7a4d6649bfd0c2da16e274157bff38e.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/recorder/start.png\"\ndest_files=[\"res://.godot/imported/start.png-f7a4d6649bfd0c2da16e274157bff38e.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/recorder/stop.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cdaou5ckbayre\"\npath=\"res://.godot/imported/stop.png-17c7b37f77b393ec6d5202f1f8a192ce.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/recorder/stop.png\"\ndest_files=[\"res://.godot/imported/stop.png-17c7b37f77b393ec6d5202f1f8a192ce.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/reference_images/move.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cedsyi8gf2n2i\"\npath=\"res://.godot/imported/move.png-ed702c0a346cd77f0de30a0cba128fc7.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/reference_images/move.png\"\ndest_files=[\"res://.godot/imported/move.png-ed702c0a346cd77f0de30a0cba128fc7.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/reference_images/rotate.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dtd43nvphu3jj\"\npath=\"res://.godot/imported/rotate.png-456db7ada5d7cd37fa30dc5557b226be.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/reference_images/rotate.png\"\ndest_files=[\"res://.godot/imported/rotate.png-456db7ada5d7cd37fa30dc5557b226be.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/reference_images/scale.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://nfabwr5mgdir\"\npath=\"res://.godot/imported/scale.png-475926e4af79bb726ef59440df6e6f71.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/reference_images/scale.png\"\ndest_files=[\"res://.godot/imported/scale.png-475926e4af79bb726ef59440df6e6f71.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/reference_images/select.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://d2m7enib3dplc\"\npath=\"res://.godot/imported/select.png-7c7e96d5ba897a73341e1d0445a3c991.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/reference_images/select.png\"\ndest_files=[\"res://.godot/imported/select.png-7c7e96d5ba897a73341e1d0445a3c991.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/splash.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cgjbk5vsy535u\"\npath=\"res://.godot/imported/splash.png-17460da1948f3a674809d951b9a8184a.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/splash.png\"\ndest_files=[\"res://.godot/imported/splash.png-17460da1948f3a674809d951b9a8184a.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/splash_screen/artworks/bearsaidno.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://ca1fyu66ul8m5\"\npath=\"res://.godot/imported/bearsaidno.png-182d518790988d25ad5ce4e3f9c102af.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/splash_screen/artworks/bearsaidno.png\"\ndest_files=[\"res://.godot/imported/bearsaidno.png-182d518790988d25ad5ce4e3f9c102af.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/splash_screen/artworks/roroto.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://vg683j48b8dl\"\npath=\"res://.godot/imported/roroto.png-5bb796ce1a0c5bb768b883a88b3da539.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/splash_screen/artworks/roroto.png\"\ndest_files=[\"res://.godot/imported/roroto.png-5bb796ce1a0c5bb768b883a88b3da539.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/splash_screen/discord.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://du0tqirgve32c\"\npath=\"res://.godot/imported/discord.png-73d97a9585e0efb593d5a88792440de4.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/splash_screen/discord.png\"\ndest_files=[\"res://.godot/imported/discord.png-73d97a9585e0efb593d5a88792440de4.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/splash_screen/github_32px.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bnhuqq1ucdlw2\"\npath=\"res://.godot/imported/github_32px.png-281ab32f2184cefb27bac8e948163a0c.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/splash_screen/github_32px.png\"\ndest_files=[\"res://.godot/imported/github_32px.png-281ab32f2184cefb27bac8e948163a0c.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/splash_screen/orama_64x64.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://s25pa611bpvj\"\npath=\"res://.godot/imported/orama_64x64.png-90aebdfc06fab9fe377c4ad4b8cc7f0f.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/splash_screen/orama_64x64.png\"\ndest_files=[\"res://.godot/imported/orama_64x64.png-90aebdfc06fab9fe377c4ad4b8cc7f0f.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/splash_screen/patreon_mark_white.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://c587jfnyu84ro\"\npath=\"res://.godot/imported/patreon_mark_white.png-333e31617952eb830c8e3f158ffcc047.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/splash_screen/patreon_mark_white.png\"\ndest_files=[\"res://.godot/imported/patreon_mark_white.png-333e31617952eb830c8e3f158ffcc047.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/splash_screen/version.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dywk5yd41twch\"\npath=\"res://.godot/imported/version.png-8fd3ce593258c5b901d0eeab8f20b522.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/splash_screen/version.png\"\ndest_files=[\"res://.godot/imported/version.png-8fd3ce593258c5b901d0eeab8f20b522.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tiles_panel/tiles_auto.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://7m4hln3mo2e5\"\npath=\"res://.godot/imported/tiles_auto.png-aa424acb8d9ccb5cfafcba826b056bb8.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tiles_panel/tiles_auto.png\"\ndest_files=[\"res://.godot/imported/tiles_auto.png-aa424acb8d9ccb5cfafcba826b056bb8.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tiles_panel/tiles_draw.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://d4by47alul2qw\"\npath=\"res://.godot/imported/tiles_draw.png-2161bdef1f2df0ebc1822c447f728c76.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tiles_panel/tiles_draw.png\"\ndest_files=[\"res://.godot/imported/tiles_draw.png-2161bdef1f2df0ebc1822c447f728c76.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tiles_panel/tiles_manual.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dfq0wpxsd51co\"\npath=\"res://.godot/imported/tiles_manual.png-6c03d83d755d93fe4203be9b488842d7.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tiles_panel/tiles_manual.png\"\ndest_files=[\"res://.godot/imported/tiles_manual.png-6c03d83d755d93fe4203be9b488842d7.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tiles_panel/tiles_stack.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://uo1ikty26del\"\npath=\"res://.godot/imported/tiles_stack.png-2dc663bcc395d8055dd966383581e31a.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tiles_panel/tiles_stack.png\"\ndest_files=[\"res://.godot/imported/tiles_stack.png-2dc663bcc395d8055dd966383581e31a.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/timeline/copy_frame.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cerkv5yx4cqeh\"\npath=\"res://.godot/imported/copy_frame.png-e09a3c5a1070079322962a711999889d.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/timeline/copy_frame.png\"\ndest_files=[\"res://.godot/imported/copy_frame.png-e09a3c5a1070079322962a711999889d.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/timeline/expandable.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dinubfua8gqhw\"\npath=\"res://.godot/imported/expandable.png-9dec5066d9defff2e5dcbc620ae7a945.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/timeline/expandable.png\"\ndest_files=[\"res://.godot/imported/expandable.png-9dec5066d9defff2e5dcbc620ae7a945.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/timeline/go_to_first_frame.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bujrukk5ii3bi\"\npath=\"res://.godot/imported/go_to_first_frame.png-5ace75ca4086d0cd0ea4cb5c328a5bdd.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/timeline/go_to_first_frame.png\"\ndest_files=[\"res://.godot/imported/go_to_first_frame.png-5ace75ca4086d0cd0ea4cb5c328a5bdd.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/timeline/go_to_last_frame.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://l4jj86y1hukm\"\npath=\"res://.godot/imported/go_to_last_frame.png-5bfd2e17ea9a4bef3107cad8cf57ab0c.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/timeline/go_to_last_frame.png\"\ndest_files=[\"res://.godot/imported/go_to_last_frame.png-5bfd2e17ea9a4bef3107cad8cf57ab0c.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/timeline/loop.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://fbwld5ofmocm\"\npath=\"res://.godot/imported/loop.png-0fe21b3572696cfdf51daf177457d190.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/timeline/loop.png\"\ndest_files=[\"res://.godot/imported/loop.png-0fe21b3572696cfdf51daf177457d190.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/timeline/loop_none.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b3v4o0nfdlcbn\"\npath=\"res://.godot/imported/loop_none.png-22d35e7d55b4528ac607e374179bbfe3.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/timeline/loop_none.png\"\ndest_files=[\"res://.godot/imported/loop_none.png-22d35e7d55b4528ac607e374179bbfe3.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/timeline/loop_pingpong.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://d3nhxgjkgdwx4\"\npath=\"res://.godot/imported/loop_pingpong.png-f033c9ab9f5df9770d9033128ad3bdb1.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/timeline/loop_pingpong.png\"\ndest_files=[\"res://.godot/imported/loop_pingpong.png-f033c9ab9f5df9770d9033128ad3bdb1.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/timeline/move_arrow.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://d1oxrkwndy5fi\"\npath=\"res://.godot/imported/move_arrow.png-e654998e3822a83f8f4ae2cc3dd973b8.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/timeline/move_arrow.png\"\ndest_files=[\"res://.godot/imported/move_arrow.png-e654998e3822a83f8f4ae2cc3dd973b8.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/timeline/new_frame.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://d1urikaf1lxwl\"\npath=\"res://.godot/imported/new_frame.png-af2063a43cbf3c78591238e21f66f075.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/timeline/new_frame.png\"\ndest_files=[\"res://.godot/imported/new_frame.png-af2063a43cbf3c78591238e21f66f075.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/timeline/next_frame.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b2ndrc0cvy1m5\"\npath=\"res://.godot/imported/next_frame.png-cd7680ea9df19801117c47b11806f322.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/timeline/next_frame.png\"\ndest_files=[\"res://.godot/imported/next_frame.png-cd7680ea9df19801117c47b11806f322.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/timeline/onion_skinning.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bx08wgf4t6r06\"\npath=\"res://.godot/imported/onion_skinning.png-715a7c88ad45013d4cd2d741b8d13857.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/timeline/onion_skinning.png\"\ndest_files=[\"res://.godot/imported/onion_skinning.png-715a7c88ad45013d4cd2d741b8d13857.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/timeline/onion_skinning_off.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dukip7mvotxsp\"\npath=\"res://.godot/imported/onion_skinning_off.png-ba5b99777ec37512407efe234529a202.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/timeline/onion_skinning_off.png\"\ndest_files=[\"res://.godot/imported/onion_skinning_off.png-ba5b99777ec37512407efe234529a202.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/timeline/pause.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bsk6rjydiogcc\"\npath=\"res://.godot/imported/pause.png-6213e49d72351c855d9a86b758e2f276.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/timeline/pause.png\"\ndest_files=[\"res://.godot/imported/pause.png-6213e49d72351c855d9a86b758e2f276.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/timeline/play.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://c7smxwfa8826j\"\npath=\"res://.godot/imported/play.png-968e50b88d3511be5f0d3d76d9dde478.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/timeline/play.png\"\ndest_files=[\"res://.godot/imported/play.png-968e50b88d3511be5f0d3d76d9dde478.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/timeline/play_backwards.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://esistdjfbrc4\"\npath=\"res://.godot/imported/play_backwards.png-3004489218149889b3e23d5bdf0a35bc.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/timeline/play_backwards.png\"\ndest_files=[\"res://.godot/imported/play_backwards.png-3004489218149889b3e23d5bdf0a35bc.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/timeline/previous_frame.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cw7nn7360atot\"\npath=\"res://.godot/imported/previous_frame.png-fc37ecd96f63e90341b50c578185611c.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/timeline/previous_frame.png\"\ndest_files=[\"res://.godot/imported/previous_frame.png-fc37ecd96f63e90341b50c578185611c.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/timeline/remove_frame.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bt72662c3gp2f\"\npath=\"res://.godot/imported/remove_frame.png-8093a4405f9a88bcb896e973afef045b.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/timeline/remove_frame.png\"\ndest_files=[\"res://.godot/imported/remove_frame.png-8093a4405f9a88bcb896e973afef045b.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/3dshapeedit.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dgiwrnyslvciy\"\npath=\"res://.godot/imported/3dshapeedit.png-2d2aa73fafc7df7f7df84b5c0db6c1a6.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/3dshapeedit.png\"\ndest_files=[\"res://.godot/imported/3dshapeedit.png-2d2aa73fafc7df7f7df84b5c0db6c1a6.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/bucket.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cqki4c2chcjtx\"\npath=\"res://.godot/imported/bucket.png-c31dc57fbf727577f054850c63eb803f.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/bucket.png\"\ndest_files=[\"res://.godot/imported/bucket.png-c31dc57fbf727577f054850c63eb803f.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/colorpicker.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://jqgqq0x4csuv\"\npath=\"res://.godot/imported/colorpicker.png-eaf5dae0c5646ebeedd5be7adcec3fc4.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/colorpicker.png\"\ndest_files=[\"res://.godot/imported/colorpicker.png-eaf5dae0c5646ebeedd5be7adcec3fc4.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/colorselect.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://c7ehylp4krapg\"\npath=\"res://.godot/imported/colorselect.png-8bc9961d9685310e49b7ac5394d63a43.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/colorselect.png\"\ndest_files=[\"res://.godot/imported/colorselect.png-8bc9961d9685310e49b7ac5394d63a43.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/crop.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://ddv5j1mhgkb1v\"\npath=\"res://.godot/imported/crop.png-b117b864c2b96dd1998350bff3c06cf8.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/crop.png\"\ndest_files=[\"res://.godot/imported/crop.png-b117b864c2b96dd1998350bff3c06cf8.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/3dshapeedit.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://du4f0vx07ekxu\"\npath=\"res://.godot/imported/3dshapeedit.png-cca253df77476289c578814dc8af5d80.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/3dshapeedit.png\"\ndest_files=[\"res://.godot/imported/3dshapeedit.png-cca253df77476289c578814dc8af5d80.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/bucket.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://4gwpbvu11u5t\"\npath=\"res://.godot/imported/bucket.png-c4bf805415b00425c55b8adac894ad7c.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/bucket.png\"\ndest_files=[\"res://.godot/imported/bucket.png-c4bf805415b00425c55b8adac894ad7c.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/colorpicker.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://duc2e7vcjpc1a\"\npath=\"res://.godot/imported/colorpicker.png-c6a61314982ffe89f5d4075de144fe78.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/colorpicker.png\"\ndest_files=[\"res://.godot/imported/colorpicker.png-c6a61314982ffe89f5d4075de144fe78.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/colorselect.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://df1wb5rxfcrnj\"\npath=\"res://.godot/imported/colorselect.png-855fe4674fbd105e7500362dbda30f8a.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/colorselect.png\"\ndest_files=[\"res://.godot/imported/colorselect.png-855fe4674fbd105e7500362dbda30f8a.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/crop.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://lyhijjv0r0hv\"\npath=\"res://.godot/imported/crop.png-b1dd939167138aaa21a7eeec94aed6bc.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/crop.png\"\ndest_files=[\"res://.godot/imported/crop.png-b1dd939167138aaa21a7eeec94aed6bc.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/curvetool.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://deuy67ughoib3\"\npath=\"res://.godot/imported/curvetool.png-035b507342a996edf5b660cc7e5f8671.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/curvetool.png\"\ndest_files=[\"res://.godot/imported/curvetool.png-035b507342a996edf5b660cc7e5f8671.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/ellipseselect.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://r6g6gtw0pydb\"\npath=\"res://.godot/imported/ellipseselect.png-8527cb3b0a9808cb60359a76f56bc85d.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/ellipseselect.png\"\ndest_files=[\"res://.godot/imported/ellipseselect.png-8527cb3b0a9808cb60359a76f56bc85d.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/ellipsetool.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cesvhtam3mwyb\"\npath=\"res://.godot/imported/ellipsetool.png-20648f66274b5b7765f16a599dc4d5ff.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/ellipsetool.png\"\ndest_files=[\"res://.godot/imported/ellipsetool.png-20648f66274b5b7765f16a599dc4d5ff.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/eraser.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cjig3eey2tffx\"\npath=\"res://.godot/imported/eraser.png-a00636af98c0fcf6bd6bf35640b83459.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/eraser.png\"\ndest_files=[\"res://.godot/imported/eraser.png-a00636af98c0fcf6bd6bf35640b83459.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/isometricboxtool.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dbhuy8u5157th\"\npath=\"res://.godot/imported/isometricboxtool.png-ae854711a9dc0b0230e0272532b14d93.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/isometricboxtool.png\"\ndest_files=[\"res://.godot/imported/isometricboxtool.png-ae854711a9dc0b0230e0272532b14d93.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/lasso.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bcslhoiu6rv6\"\npath=\"res://.godot/imported/lasso.png-b57369a1f33ebad796567cc7f2255d6c.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/lasso.png\"\ndest_files=[\"res://.godot/imported/lasso.png-b57369a1f33ebad796567cc7f2255d6c.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/linetool.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://ciu01f7am4n1o\"\npath=\"res://.godot/imported/linetool.png-f88b6978c31a033619980bf335cfaa21.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/linetool.png\"\ndest_files=[\"res://.godot/imported/linetool.png-f88b6978c31a033619980bf335cfaa21.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/magicwand.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bpceh02g4g2sy\"\npath=\"res://.godot/imported/magicwand.png-a88950f47e167183b2e78f8980f580f0.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/magicwand.png\"\ndest_files=[\"res://.godot/imported/magicwand.png-a88950f47e167183b2e78f8980f580f0.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/move.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://byt5eb1wvnwss\"\npath=\"res://.godot/imported/move.png-3d9f5f2d803b18a63b76370eb4228771.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/move.png\"\ndest_files=[\"res://.godot/imported/move.png-3d9f5f2d803b18a63b76370eb4228771.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/paintselect.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cplipjwqdowiw\"\npath=\"res://.godot/imported/paintselect.png-1d54eb74829e8876df77b986085c99ff.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/paintselect.png\"\ndest_files=[\"res://.godot/imported/paintselect.png-1d54eb74829e8876df77b986085c99ff.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/pan.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://21ghkqotcvf6\"\npath=\"res://.godot/imported/pan.png-c49ef20d232155a864f417b751f95229.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/pan.png\"\ndest_files=[\"res://.godot/imported/pan.png-c49ef20d232155a864f417b751f95229.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/pencil.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://c03sutx62rpqu\"\npath=\"res://.godot/imported/pencil.png-ad4aa17c50d39e687be59518f7ec26db.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/pencil.png\"\ndest_files=[\"res://.godot/imported/pencil.png-ad4aa17c50d39e687be59518f7ec26db.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/polygonselect.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bwtwx2gkkr272\"\npath=\"res://.godot/imported/polygonselect.png-f7d96d53f34c3c81d653feb6c115ef81.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/polygonselect.png\"\ndest_files=[\"res://.godot/imported/polygonselect.png-f7d96d53f34c3c81d653feb6c115ef81.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/rectangletool.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://c7b1125hs66sf\"\npath=\"res://.godot/imported/rectangletool.png-09c04120a942fab47b3339db72969340.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/rectangletool.png\"\ndest_files=[\"res://.godot/imported/rectangletool.png-09c04120a942fab47b3339db72969340.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/rectselect.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bxiqomq08ctsr\"\npath=\"res://.godot/imported/rectselect.png-6c6ec53df2045632b26bffa7c0399df4.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/rectselect.png\"\ndest_files=[\"res://.godot/imported/rectselect.png-6c6ec53df2045632b26bffa7c0399df4.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/shading.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bmvmfr51d54im\"\npath=\"res://.godot/imported/shading.png-984f5bf0d673a3c8f88917a16ae424be.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/shading.png\"\ndest_files=[\"res://.godot/imported/shading.png-984f5bf0d673a3c8f88917a16ae424be.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/text.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dn66bu1htli0i\"\npath=\"res://.godot/imported/text.png-e400a2b9b6a87e25638acb803c02cdbf.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/text.png\"\ndest_files=[\"res://.godot/imported/text.png-e400a2b9b6a87e25638acb803c02cdbf.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/cursors/zoom.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cishexydlicef\"\npath=\"res://.godot/imported/zoom.png-f285932698b88413c8bee72a7eaeb729.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/cursors/zoom.png\"\ndest_files=[\"res://.godot/imported/zoom.png-f285932698b88413c8bee72a7eaeb729.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/curvetool.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://br0lilqrvdvdc\"\npath=\"res://.godot/imported/curvetool.png-15311b84332d233b1a0c1817d9a6bd5d.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/curvetool.png\"\ndest_files=[\"res://.godot/imported/curvetool.png-15311b84332d233b1a0c1817d9a6bd5d.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/ellipseselect.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bg7kmumurtgtw\"\npath=\"res://.godot/imported/ellipseselect.png-5f72ef70288a187b55afee23ade1e1a7.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/ellipseselect.png\"\ndest_files=[\"res://.godot/imported/ellipseselect.png-5f72ef70288a187b55afee23ade1e1a7.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/ellipsetool.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://uvaboctgt76q\"\npath=\"res://.godot/imported/ellipsetool.png-dbe3434d15bf4170404c26ae5346e94b.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/ellipsetool.png\"\ndest_files=[\"res://.godot/imported/ellipsetool.png-dbe3434d15bf4170404c26ae5346e94b.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/eraser.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dq6xd7nc1n05f\"\npath=\"res://.godot/imported/eraser.png-fab786bb3ac6594d489aa816194aaa35.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/eraser.png\"\ndest_files=[\"res://.godot/imported/eraser.png-fab786bb3ac6594d489aa816194aaa35.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/isometricboxtool.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cb34jnagduo\"\npath=\"res://.godot/imported/isometricboxtool.png-a0adfc3ec6d34c9693e4363f615cef19.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/isometricboxtool.png\"\ndest_files=[\"res://.godot/imported/isometricboxtool.png-a0adfc3ec6d34c9693e4363f615cef19.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/lasso.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://da7rs50xsblfs\"\npath=\"res://.godot/imported/lasso.png-ec1894b24b0132d3f6a3be91da41f8dc.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/lasso.png\"\ndest_files=[\"res://.godot/imported/lasso.png-ec1894b24b0132d3f6a3be91da41f8dc.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/linetool.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cpjq2j6r4th0p\"\npath=\"res://.godot/imported/linetool.png-0a191874fc4cdbc2bd60402bee53bbb0.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/linetool.png\"\ndest_files=[\"res://.godot/imported/linetool.png-0a191874fc4cdbc2bd60402bee53bbb0.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/magicwand.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b3xttw1w2sk0s\"\npath=\"res://.godot/imported/magicwand.png-8ba9fbe50da4853c0fb18a6483f980af.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/magicwand.png\"\ndest_files=[\"res://.godot/imported/magicwand.png-8ba9fbe50da4853c0fb18a6483f980af.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/move.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b7fxbxglmalit\"\npath=\"res://.godot/imported/move.png-95395c868062f8af2883275731902866.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/move.png\"\ndest_files=[\"res://.godot/imported/move.png-95395c868062f8af2883275731902866.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/paintselect.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://caayrm17iqoty\"\npath=\"res://.godot/imported/paintselect.png-54b86a9f33e18f8c208a1cc6e370016d.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/paintselect.png\"\ndest_files=[\"res://.godot/imported/paintselect.png-54b86a9f33e18f8c208a1cc6e370016d.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/pan.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bttky7v3r6kmp\"\npath=\"res://.godot/imported/pan.png-6d28bfb8914e4526fac89435cef50f82.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/pan.png\"\ndest_files=[\"res://.godot/imported/pan.png-6d28bfb8914e4526fac89435cef50f82.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/pencil.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://buabnk6icy7ug\"\npath=\"res://.godot/imported/pencil.png-7f662d20172670ff197e6dfacc532133.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/pencil.png\"\ndest_files=[\"res://.godot/imported/pencil.png-7f662d20172670ff197e6dfacc532133.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/polygonselect.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://4u6cfo1rssuj\"\npath=\"res://.godot/imported/polygonselect.png-18ef1901643c94d3e320871eb4791d31.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/polygonselect.png\"\ndest_files=[\"res://.godot/imported/polygonselect.png-18ef1901643c94d3e320871eb4791d31.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/rectangletool.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://g58owiqp6lvv\"\npath=\"res://.godot/imported/rectangletool.png-7b28a8524c028aca32586b88ac56fff9.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/rectangletool.png\"\ndest_files=[\"res://.godot/imported/rectangletool.png-7b28a8524c028aca32586b88ac56fff9.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/rectselect.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://chg3ejelsgcwm\"\npath=\"res://.godot/imported/rectselect.png-76d30fd13a08951a940bd63b6e0447e7.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/rectselect.png\"\ndest_files=[\"res://.godot/imported/rectselect.png-76d30fd13a08951a940bd63b6e0447e7.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/shading.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dbwj2nx7vj6u0\"\npath=\"res://.godot/imported/shading.png-c61d51ae59f1838d7461ae0aadb0cfe8.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/shading.png\"\ndest_files=[\"res://.godot/imported/shading.png-c61d51ae59f1838d7461ae0aadb0cfe8.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/text.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bwpucajlx84xt\"\npath=\"res://.godot/imported/text.png-627e4dab52ac32f8208bc01b5803fe72.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/text.png\"\ndest_files=[\"res://.godot/imported/text.png-627e4dab52ac32f8208bc01b5803fe72.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/text_options/allign_center.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bw8cnv4x3bv76\"\npath=\"res://.godot/imported/allign_center.png-997bdcaf093455c0488bc55429d2bd62.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/text_options/allign_center.png\"\ndest_files=[\"res://.godot/imported/allign_center.png-997bdcaf093455c0488bc55429d2bd62.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/text_options/allign_fill.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cb6op8ekb24jq\"\npath=\"res://.godot/imported/allign_fill.png-9791b429c0d8e9e328a9d1549acd4f29.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/text_options/allign_fill.png\"\ndest_files=[\"res://.godot/imported/allign_fill.png-9791b429c0d8e9e328a9d1549acd4f29.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/text_options/allign_left.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dvwgfoajkwkbt\"\npath=\"res://.godot/imported/allign_left.png-7a3dee7ab825721445d69bbfe7ed3b6f.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/text_options/allign_left.png\"\ndest_files=[\"res://.godot/imported/allign_left.png-7a3dee7ab825721445d69bbfe7ed3b6f.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/text_options/allign_right.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://crgq05c1i6p67\"\npath=\"res://.godot/imported/allign_right.png-0f178439ce2624cdc338c3ebf507e30f.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/text_options/allign_right.png\"\ndest_files=[\"res://.godot/imported/allign_right.png-0f178439ce2624cdc338c3ebf507e30f.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/text_options/antialiasing_grayscale.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dgkjy5utwxfs0\"\npath=\"res://.godot/imported/antialiasing_grayscale.png-f3fee5777d46da7008986e88858dfd30.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/text_options/antialiasing_grayscale.png\"\ndest_files=[\"res://.godot/imported/antialiasing_grayscale.png-f3fee5777d46da7008986e88858dfd30.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/text_options/antialiasing_lcd.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dux65bi78pmu8\"\npath=\"res://.godot/imported/antialiasing_lcd.png-b5995461bf6371ee97f9966b19d1fd42.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/text_options/antialiasing_lcd.png\"\ndest_files=[\"res://.godot/imported/antialiasing_lcd.png-b5995461bf6371ee97f9966b19d1fd42.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/text_options/antialiasing_off.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://bu0lr6u0f7iva\"\npath=\"res://.godot/imported/antialiasing_off.png-51ab2a25fdd4bf7af4da0c9ec99e0846.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/text_options/antialiasing_off.png\"\ndest_files=[\"res://.godot/imported/antialiasing_off.png-51ab2a25fdd4bf7af4da0c9ec99e0846.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/text_options/bold.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://dcs2c1qvc0a6c\"\npath=\"res://.godot/imported/bold.png-9f104d93235546acd30785edaefaf7ce.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/text_options/bold.png\"\ndest_files=[\"res://.godot/imported/bold.png-9f104d93235546acd30785edaefaf7ce.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/text_options/italic.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://b4paoyuodyjet\"\npath=\"res://.godot/imported/italic.png-e16f3f1c8f6ef813af88c239044157a0.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/text_options/italic.png\"\ndest_files=[\"res://.godot/imported/italic.png-e16f3f1c8f6ef813af88c239044157a0.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/tool_background.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://cnomk15kl7go0\"\npath=\"res://.godot/imported/tool_background.png-6ff92c662de40dca94545bb57f5c1e8e.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/tool_background.png\"\ndest_files=[\"res://.godot/imported/tool_background.png-6ff92c662de40dca94545bb57f5c1e8e.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/tool_background_right.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://4h6t2v7tf6r2\"\npath=\"res://.godot/imported/tool_background_right.png-b85194199086ecc86f931ab5d9e069d9.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/tool_background_right.png\"\ndest_files=[\"res://.godot/imported/tool_background_right.png-b85194199086ecc86f931ab5d9e069d9.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/graphics/tools/zoom.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"CompressedTexture2D\"\nuid=\"uid://gie66g478yqe\"\npath=\"res://.godot/imported/zoom.png-eaff4465be5bd02afba89224bc1cf3dc.ctex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/graphics/tools/zoom.png\"\ndest_files=[\"res://.godot/imported/zoom.png-eaff4465be5bd02afba89224bc1cf3dc.ctex\"]\n\n[params]\n\ncompress/mode=0\ncompress/high_quality=false\ncompress/lossy_quality=0.7\ncompress/uastc_level=0\ncompress/rdo_quality_loss=0.0\ncompress/hdr_compression=1\ncompress/normal_map=0\ncompress/channel_pack=0\nmipmaps/generate=false\nmipmaps/limit=-1\nroughness/mode=0\nroughness/src_normal=\"\"\nprocess/channel_remap/red=0\nprocess/channel_remap/green=1\nprocess/channel_remap/blue=2\nprocess/channel_remap/alpha=3\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/normal_map_invert_y=false\nprocess/hdr_as_srgb=false\nprocess/hdr_clamp_exposure=false\nprocess/size_limit=0\ndetect_3d/compress_to=1\n"
  },
  {
    "path": "assets/layouts/Default.tres",
    "content": "[gd_resource type=\"Resource\" script_class=\"DockableLayout\" format=3 uid=\"uid://4xtpiowddm7p\"]\n\n[ext_resource type=\"Script\" uid=\"uid://da67x3ua6ietw\" path=\"res://addons/dockable_container/layout_panel.gd\" id=\"1_jxh43\"]\n[ext_resource type=\"Script\" uid=\"uid://bvvbi3x82xnut\" path=\"res://addons/dockable_container/layout_split.gd\" id=\"2_lw52w\"]\n[ext_resource type=\"Script\" uid=\"uid://icucbtatip66\" path=\"res://addons/dockable_container/layout.gd\" id=\"3_4h5wj\"]\n\n[sub_resource type=\"Resource\" id=\"Resource_atmme\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_jxh43\")\nnames = PackedStringArray(\"Tools\")\n\n[sub_resource type=\"Resource\" id=\"Resource_4b0py\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_jxh43\")\nnames = PackedStringArray(\"Tiles\")\n\n[sub_resource type=\"Resource\" id=\"Resource_epagr\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_lw52w\")\ndirection = 1\nfirst = SubResource(\"Resource_atmme\")\nsecond = SubResource(\"Resource_4b0py\")\n\n[sub_resource type=\"Resource\" id=\"Resource_ouvfk\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_jxh43\")\nnames = PackedStringArray(\"Main Canvas\")\n\n[sub_resource type=\"Resource\" id=\"Resource_an0ef\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_jxh43\")\nnames = PackedStringArray(\"Perspective Editor\")\n\n[sub_resource type=\"Resource\" id=\"Resource_xgnjk\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_lw52w\")\nfirst = SubResource(\"Resource_ouvfk\")\nsecond = SubResource(\"Resource_an0ef\")\n\n[sub_resource type=\"Resource\" id=\"Resource_o7cqb\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_jxh43\")\nnames = PackedStringArray(\"Second Canvas\")\n\n[sub_resource type=\"Resource\" id=\"Resource_ataha\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_lw52w\")\npercent = 0.980952\nfirst = SubResource(\"Resource_xgnjk\")\nsecond = SubResource(\"Resource_o7cqb\")\n\n[sub_resource type=\"Resource\" id=\"Resource_8y4au\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_jxh43\")\nnames = PackedStringArray(\"Animation Timeline\")\n\n[sub_resource type=\"Resource\" id=\"Resource_q2jwk\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_lw52w\")\ndirection = 1\npercent = 0.75578\nfirst = SubResource(\"Resource_ataha\")\nsecond = SubResource(\"Resource_8y4au\")\n\n[sub_resource type=\"Resource\" id=\"Resource_5r0ap\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_jxh43\")\nnames = PackedStringArray(\"Canvas Preview\")\n\n[sub_resource type=\"Resource\" id=\"Resource_6pqxe\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_jxh43\")\nnames = PackedStringArray(\"Recorder\")\n\n[sub_resource type=\"Resource\" id=\"Resource_ln20x\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_lw52w\")\ndirection = 1\npercent = 0.911765\nfirst = SubResource(\"Resource_5r0ap\")\nsecond = SubResource(\"Resource_6pqxe\")\n\n[sub_resource type=\"Resource\" id=\"Resource_dksrd\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_jxh43\")\nnames = PackedStringArray(\"Global Tool Options\")\n\n[sub_resource type=\"Resource\" id=\"Resource_kmey0\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_jxh43\")\nnames = PackedStringArray(\"Color Picker\", \"Reference Images\")\n\n[sub_resource type=\"Resource\" id=\"Resource_1tm61\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_lw52w\")\ndirection = 1\npercent = 0.0499712\nfirst = SubResource(\"Resource_dksrd\")\nsecond = SubResource(\"Resource_kmey0\")\n\n[sub_resource type=\"Resource\" id=\"Resource_btl4b\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_jxh43\")\nnames = PackedStringArray(\"Left Tool Options\")\n\n[sub_resource type=\"Resource\" id=\"Resource_eu0mc\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_jxh43\")\nnames = PackedStringArray(\"Right Tool Options\")\n\n[sub_resource type=\"Resource\" id=\"Resource_8ff4m\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_lw52w\")\nfirst = SubResource(\"Resource_btl4b\")\nsecond = SubResource(\"Resource_eu0mc\")\n\n[sub_resource type=\"Resource\" id=\"Resource_e72nu\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_lw52w\")\ndirection = 1\npercent = 0.643859\nfirst = SubResource(\"Resource_1tm61\")\nsecond = SubResource(\"Resource_8ff4m\")\n\n[sub_resource type=\"Resource\" id=\"Resource_sg54a\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_jxh43\")\nnames = PackedStringArray(\"Palettes\")\n\n[sub_resource type=\"Resource\" id=\"Resource_gdwmg\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_lw52w\")\ndirection = 1\npercent = 0.82948\nfirst = SubResource(\"Resource_e72nu\")\nsecond = SubResource(\"Resource_sg54a\")\n\n[sub_resource type=\"Resource\" id=\"Resource_acda3\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_lw52w\")\ndirection = 1\npercent = 0.0549133\nfirst = SubResource(\"Resource_ln20x\")\nsecond = SubResource(\"Resource_gdwmg\")\n\n[sub_resource type=\"Resource\" id=\"Resource_2qk0j\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_lw52w\")\npercent = 0.704098\nfirst = SubResource(\"Resource_q2jwk\")\nsecond = SubResource(\"Resource_acda3\")\n\n[sub_resource type=\"Resource\" id=\"Resource_msuil\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_lw52w\")\npercent = 0.0\nfirst = SubResource(\"Resource_epagr\")\nsecond = SubResource(\"Resource_2qk0j\")\n\n[resource]\nresource_name = \"Default\"\nscript = ExtResource(\"3_4h5wj\")\nroot = SubResource(\"Resource_msuil\")\nhidden_tabs = {\n\"Canvas Preview\": true,\n\"Color Picker Sliders\": true,\n\"Perspective Editor\": true,\n\"Recorder\": true,\n\"Second Canvas\": true,\n\"Tiles\": true\n}\n"
  },
  {
    "path": "assets/layouts/Tallscreen.tres",
    "content": "[gd_resource type=\"Resource\" script_class=\"DockableLayout\" format=3 uid=\"uid://brcnmadkdaqok\"]\n\n[ext_resource type=\"Script\" uid=\"uid://da67x3ua6ietw\" path=\"res://addons/dockable_container/layout_panel.gd\" id=\"1_t44r1\"]\n[ext_resource type=\"Script\" uid=\"uid://bvvbi3x82xnut\" path=\"res://addons/dockable_container/layout_split.gd\" id=\"2_rngtv\"]\n[ext_resource type=\"Script\" uid=\"uid://icucbtatip66\" path=\"res://addons/dockable_container/layout.gd\" id=\"3_v86xb\"]\n\n[sub_resource type=\"Resource\" id=\"Resource_kn4x4\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_t44r1\")\nnames = PackedStringArray(\"Main Canvas\")\n\n[sub_resource type=\"Resource\" id=\"Resource_btw27\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_t44r1\")\nnames = PackedStringArray(\"Second Canvas\")\n\n[sub_resource type=\"Resource\" id=\"Resource_bp28t\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_rngtv\")\npercent = 0.829091\nfirst = SubResource(\"Resource_kn4x4\")\nsecond = SubResource(\"Resource_btw27\")\n\n[sub_resource type=\"Resource\" id=\"Resource_10g0s\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_t44r1\")\nnames = PackedStringArray(\"Perspective Editor\")\n\n[sub_resource type=\"Resource\" id=\"Resource_otntk\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_rngtv\")\npercent = 0.8625\nfirst = SubResource(\"Resource_bp28t\")\nsecond = SubResource(\"Resource_10g0s\")\n\n[sub_resource type=\"Resource\" id=\"Resource_12axs\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_t44r1\")\nnames = PackedStringArray(\"Tools\")\n\n[sub_resource type=\"Resource\" id=\"Resource_1omiw\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_t44r1\")\nnames = PackedStringArray(\"Left Tool Options\", \"Right Tool Options\")\n\n[sub_resource type=\"Resource\" id=\"Resource_p32ds\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_t44r1\")\nnames = PackedStringArray(\"Color Picker\")\n\n[sub_resource type=\"Resource\" id=\"Resource_n6xyc\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_rngtv\")\nfirst = SubResource(\"Resource_1omiw\")\nsecond = SubResource(\"Resource_p32ds\")\n\n[sub_resource type=\"Resource\" id=\"Resource_1dcep\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_t44r1\")\nnames = PackedStringArray(\"Canvas Preview\", \"Reference Images\", \"Recorder\")\n\n[sub_resource type=\"Resource\" id=\"Resource_hc3ve\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_t44r1\")\nnames = PackedStringArray(\"Global Tool Options\")\n\n[sub_resource type=\"Resource\" id=\"Resource_nppps\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_rngtv\")\ndirection = 1\npercent = 0.729839\nfirst = SubResource(\"Resource_1dcep\")\nsecond = SubResource(\"Resource_hc3ve\")\n\n[sub_resource type=\"Resource\" id=\"Resource_d54jb\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_t44r1\")\nnames = PackedStringArray(\"Palettes\")\n\n[sub_resource type=\"Resource\" id=\"Resource_f6rik\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_rngtv\")\nfirst = SubResource(\"Resource_nppps\")\nsecond = SubResource(\"Resource_d54jb\")\n\n[sub_resource type=\"Resource\" id=\"Resource_26vov\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_rngtv\")\npercent = 0.501251\nfirst = SubResource(\"Resource_n6xyc\")\nsecond = SubResource(\"Resource_f6rik\")\n\n[sub_resource type=\"Resource\" id=\"Resource_m3axb\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_t44r1\")\nnames = PackedStringArray(\"Animation Timeline\")\n\n[sub_resource type=\"Resource\" id=\"Resource_8dhxy\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"1_t44r1\")\nnames = PackedStringArray(\"Tiles\")\n\n[sub_resource type=\"Resource\" id=\"Resource_j3q3h\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_rngtv\")\nfirst = SubResource(\"Resource_m3axb\")\nsecond = SubResource(\"Resource_8dhxy\")\n\n[sub_resource type=\"Resource\" id=\"Resource_af0bk\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_rngtv\")\ndirection = 1\nfirst = SubResource(\"Resource_26vov\")\nsecond = SubResource(\"Resource_j3q3h\")\n\n[sub_resource type=\"Resource\" id=\"Resource_1xpva\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_rngtv\")\npercent = 0.03125\nfirst = SubResource(\"Resource_12axs\")\nsecond = SubResource(\"Resource_af0bk\")\n\n[sub_resource type=\"Resource\" id=\"Resource_6dytr\"]\nresource_name = \"Split\"\nscript = ExtResource(\"2_rngtv\")\ndirection = 1\npercent = 0.459538\nfirst = SubResource(\"Resource_otntk\")\nsecond = SubResource(\"Resource_1xpva\")\n\n[resource]\nresource_name = \"Tallscreen\"\nscript = ExtResource(\"3_v86xb\")\nroot = SubResource(\"Resource_6dytr\")\nhidden_tabs = {\n\"Perspective Editor\": true,\n\"Recorder\": true,\n\"Second Canvas\": true,\n\"Tiles\": true\n}\n"
  },
  {
    "path": "assets/premult_alpha_canvas_item_mat.tres",
    "content": "[gd_resource type=\"CanvasItemMaterial\" format=3 uid=\"uid://c4nxqxi1khn0\"]\n\n[resource]\nblend_mode = 4\nlight_mode = 1\n"
  },
  {
    "path": "assets/themes/blue/theme.tres",
    "content": "[gd_resource type=\"Theme\" format=3 uid=\"uid://cx57kadpotelu\"]\n\n[ext_resource type=\"Texture2D\" uid=\"uid://brdgp0y4tarar\" path=\"res://assets/graphics/misc/radio_unpressed.png\" id=\"1_hr4ey\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ybfsxkc2qap7\" path=\"res://assets/graphics/misc/checkbox_unpressed.png\" id=\"2_xevqb\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ct8wn8m6x4m54\" path=\"res://assets/graphics/misc/value_arrow.svg\" id=\"3_r6vyk\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bq8h66v4ie8xl\" path=\"res://assets/graphics/misc/value_arrow_hover.svg\" id=\"4_vaslw\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://hhxenhteahv6\" path=\"res://assets/graphics/misc/value_arrow_press.svg\" id=\"5_dt8k8\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://c7u0yofrpm50a\" path=\"res://assets/graphics/misc/value_slider.png\" id=\"6_acryc\"]\n[ext_resource type=\"FontFile\" uid=\"uid://cvc4lelf6hl7x\" path=\"res://assets/fonts/Roboto-Regular.ttf\" id=\"7_kbyq4\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_755mo\"]\ncontent_margin_left = 8.0\ncontent_margin_top = 8.0\ncontent_margin_right = 8.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.2, 0.23137255, 0.30980393, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\n\n[sub_resource type=\"StyleBoxFlat\" id=\"23\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_kpwev\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.45803925, 0.52705884, 0.70274514, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_nv6tl\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.14901961, 0.17254902, 0.23137255, 0.5)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_t0f5f\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_1qcnj\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.14901961, 0.17254902, 0.23137255, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_8hww6\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.14901961, 0.17254902, 0.23137255, 0.5)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_a57y0\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2, 0.23137255, 0.30980393, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_t43bd\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.44313726, 0.50980395, 0.6784314, 1)\nborder_width_left = 3\nborder_width_top = 3\nborder_width_right = 3\nborder_width_bottom = 3\nborder_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_lbyuh\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4dymj\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4jbvl\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_eoilh\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_dr6kc\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_8hsnf\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_d140b\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_k7wcw\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_j786n\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_viauy\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ygru1\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_h750t\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"33\"]\nbg_color = Color(0.768627, 0.768627, 0.768627, 1)\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"34\"]\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"35\"]\nbg_color = Color(0.2, 0.2, 0.2, 1)\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_504p6\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.602353, 0.602353, 0.602353, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_mihib\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 2.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.2, 0.23137255, 0.30980393, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_yin2u\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.14901961, 0.17254902, 0.23137255, 0.5)\nborder_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ttqs8\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_wdt2l\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.14901961, 0.17254902, 0.23137255, 0.5)\nborder_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_6cw85\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ri1fl\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.14901961, 0.17254902, 0.23137255, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_q3k4c\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.40431374, 0.42078432, 0.4619608, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_l27bo\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.31921571, 0.33803922, 0.38509804, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_1emgw\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 4.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.6)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ktbsq\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(1, 1, 1, 0.75)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxLine\" id=\"81\"]\ncolor = Color(1, 1, 1, 0.1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"86\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.333333, 0.333333, 0.333333, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"87\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.333333, 0.333333, 0.333333, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"88\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.0666667, 0.0666667, 0.0666667, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"94\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.113281, 0.113281, 0.113281, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(1, 1, 1, 0.2)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4ngk1\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"95\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.14901961, 0.17254902, 0.23137255, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"96\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.14901961, 0.17254902, 0.23137255, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"StyleBoxEmpty_u871w\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_o72qi\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.14901961, 0.17254902, 0.23137255, 1)\nborder_width_left = 3\nborder_width_top = 3\nborder_width_right = 3\nborder_width_bottom = 3\nborder_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"3\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"5\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"2\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"97\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"103\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"104\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 2.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.2, 0.23137255, 0.30980393, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"112\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.14901961, 0.17254902, 0.23137255, 0.5)\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\n\n[sub_resource type=\"StyleBoxLine\" id=\"113\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 7.0\n\n[sub_resource type=\"StyleBoxLine\" id=\"114\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_end = 7.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"105\"]\ncontent_margin_left = 8.0\ncontent_margin_top = 8.0\ncontent_margin_right = 8.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.334961, 0.334961, 0.334961, 1)\nshadow_color = Color(0, 0, 0, 0.3)\nshadow_size = 4\n\n[sub_resource type=\"StyleBoxLine\" id=\"115\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 7.0\ngrow_end = 7.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_fc11h\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"123\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"52\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_co58r\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.14901961, 0.17254902, 0.23137255, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"1\"]\nbg_color = Color(0.14901961, 0.17254902, 0.23137255, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_fewc7\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.3)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_bxstr\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_dfms8\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.3)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_msbem\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\nborder_width_top = 2\nborder_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_n4ubj\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.19490197, 0.22509804, 0.3019608, 1)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_jssey\"]\nbg_color = Color(0.2, 0.23137255, 0.30980393, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"StyleBoxEmpty_o56ri\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 0.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 0.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"4\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"151\"]\ncontent_margin_left = 1.0\ncontent_margin_top = 1.0\ncontent_margin_right = 1.0\ncontent_margin_bottom = 1.0\nbg_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\nshadow_color = Color(0, 0, 0, 0.3)\nshadow_size = 4\n\n[sub_resource type=\"StyleBoxFlat\" id=\"156\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"157\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.113281, 0.113281, 0.113281, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"158\"]\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"159\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_tcenw\"]\nbg_color = Color(0.2, 0.23137255, 0.30980393, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"161\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_bbug8\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 0.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.1, 0.1, 0.1, 0.6)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxLine\" id=\"167\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 0.0\ngrow_end = 0.0\nvertical = true\n\n[sub_resource type=\"StyleBoxFlat\" id=\"168\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"169\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"170\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_pgljm\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 28.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.16862746, 0.1882353, 0.23921569, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 4.0\nexpand_margin_top = 28.0\nexpand_margin_right = 4.0\nexpand_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_wmfk1\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 28.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.4, 0.4, 0.4, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 4.0\nexpand_margin_top = 28.0\nexpand_margin_right = 4.0\nexpand_margin_bottom = 4.0\n\n[resource]\nresource_name = \"Blue\"\ndefault_font = ExtResource(\"7_kbyq4\")\ndefault_font_size = 16\nAcceptDialog/styles/panel = SubResource(\"StyleBoxFlat_755mo\")\nBoxContainer/constants/separation = 4\nButton/colors/font_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nButton/colors/font_disabled_color = Color(0.6392157, 0.6666667, 0.92156863, 0.5)\nButton/colors/font_focus_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\nButton/colors/font_hover_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\nButton/colors/font_hover_pressed_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\nButton/colors/font_pressed_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\nButton/colors/icon_color_pressed = Color(1, 1, 1, 1)\nButton/colors/icon_disabled_color = Color(0.6392157, 0.6666667, 0.92156863, 0.5)\nButton/colors/icon_hover_color = Color(0.7007843, 0.76117647, 0.914902, 1)\nButton/colors/icon_hover_pressed_color = Color(0.6580392, 0.7270588, 0.9027451, 1)\nButton/colors/icon_normal_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\nButton/colors/icon_pressed_color = Color(0.6580392, 0.7270588, 0.9027451, 1)\nButton/styles/disabled = SubResource(\"23\")\nButton/styles/focus = SubResource(\"StyleBoxFlat_kpwev\")\nButton/styles/hover = SubResource(\"StyleBoxFlat_nv6tl\")\nButton/styles/normal = SubResource(\"23\")\nButton/styles/pressed = SubResource(\"StyleBoxFlat_t0f5f\")\nCelButton/base_type = &\"Button\"\nCelButton/styles/guide = SubResource(\"StyleBoxFlat_1qcnj\")\nCelButton/styles/hover = SubResource(\"StyleBoxFlat_8hww6\")\nCelButton/styles/normal = SubResource(\"StyleBoxFlat_a57y0\")\nCelButton/styles/pressed = SubResource(\"StyleBoxFlat_t43bd\")\nCheckBox/icons/radio_unchecked = ExtResource(\"1_hr4ey\")\nCheckBox/icons/radio_unchecked_disabled = ExtResource(\"1_hr4ey\")\nCheckBox/icons/unchecked = ExtResource(\"2_xevqb\")\nCheckBox/icons/unchecked_disabled = ExtResource(\"2_xevqb\")\nCheckBox/styles/disabled = SubResource(\"StyleBoxFlat_lbyuh\")\nCheckBox/styles/focus = SubResource(\"StyleBoxFlat_4dymj\")\nCheckBox/styles/hover = SubResource(\"StyleBoxFlat_4jbvl\")\nCheckBox/styles/hover_pressed = SubResource(\"StyleBoxFlat_eoilh\")\nCheckBox/styles/normal = SubResource(\"StyleBoxFlat_dr6kc\")\nCheckBox/styles/pressed = SubResource(\"StyleBoxFlat_8hsnf\")\nCheckButton/styles/disabled = SubResource(\"StyleBoxFlat_d140b\")\nCheckButton/styles/focus = SubResource(\"StyleBoxFlat_k7wcw\")\nCheckButton/styles/hover = SubResource(\"StyleBoxFlat_j786n\")\nCheckButton/styles/hover_pressed = SubResource(\"StyleBoxFlat_viauy\")\nCheckButton/styles/normal = SubResource(\"StyleBoxFlat_ygru1\")\nCheckButton/styles/pressed = SubResource(\"StyleBoxFlat_h750t\")\nCollapsibleContainer/base_type = &\"VBoxContainer\"\nCollapsibleContainer/icons/arrow_normal = ExtResource(\"3_r6vyk\")\nColorPicker/constants/h_width = 28\nColorPicker/constants/margin = 8\nColorPickerButton/styles/disabled = null\nColorPickerButton/styles/focus = null\nColorPickerButton/styles/hover = SubResource(\"33\")\nColorPickerButton/styles/normal = SubResource(\"34\")\nColorPickerButton/styles/pressed = SubResource(\"35\")\nFoldableContainer/colors/collapsed_font_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nFoldableContainer/colors/font_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nFoldableContainer/colors/hover_font_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\nFoldableContainer/styles/focus = SubResource(\"StyleBoxFlat_504p6\")\nFoldableContainer/styles/panel = SubResource(\"StyleBoxFlat_mihib\")\nFoldableContainer/styles/title_collapsed_hover_panel = SubResource(\"StyleBoxFlat_yin2u\")\nFoldableContainer/styles/title_collapsed_panel = SubResource(\"StyleBoxFlat_ttqs8\")\nFoldableContainer/styles/title_hover_panel = SubResource(\"StyleBoxFlat_wdt2l\")\nFoldableContainer/styles/title_panel = SubResource(\"StyleBoxFlat_6cw85\")\nGraphEdit/colors/activity = Color(0.184314, 0.396078, 0.533333, 1)\nGraphEdit/colors/grid_major = Color(1, 1, 1, 0.15)\nGraphEdit/colors/grid_minor = Color(1, 1, 1, 0.07)\nGraphEdit/colors/selection_fill = Color(0.184314, 0.396078, 0.533333, 0.3)\nGraphEdit/colors/selection_stroke = Color(0.184314, 0.396078, 0.533333, 0.8)\nGraphNode/colors/resizer_color = Color(1, 1, 1, 0.7)\nHScrollBar/styles/grabber = SubResource(\"StyleBoxFlat_ri1fl\")\nHScrollBar/styles/grabber_highlight = SubResource(\"StyleBoxFlat_q3k4c\")\nHScrollBar/styles/grabber_pressed = SubResource(\"StyleBoxFlat_l27bo\")\nHScrollBar/styles/scroll = SubResource(\"StyleBoxFlat_1emgw\")\nHScrollBar/styles/scroll_focus = SubResource(\"StyleBoxFlat_ktbsq\")\nHSeparator/styles/separator = SubResource(\"81\")\nHSlider/styles/grabber_area = SubResource(\"86\")\nHSlider/styles/grabber_area_highlight = SubResource(\"87\")\nHSlider/styles/slider = SubResource(\"88\")\nHeaderSmall/font_sizes/font_size = 18\nIcons/colors/modulate_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\nItemList/colors/font_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nItemList/colors/font_hovered_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\nItemList/colors/guide_color = Color(1, 1, 1, 0.05)\nItemList/styles/cursor = SubResource(\"94\")\nItemList/styles/cursor_unfocused = SubResource(\"94\")\nItemList/styles/panel = SubResource(\"StyleBoxFlat_4ngk1\")\nItemList/styles/selected = SubResource(\"95\")\nItemList/styles/selected_focus = SubResource(\"96\")\nLabel/colors/font_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nLabel/styles/normal = SubResource(\"StyleBoxEmpty_u871w\")\nLayerFrameButton/base_type = &\"CelButton\"\nLayerFrameButton/styles/pressed = SubResource(\"StyleBoxFlat_o72qi\")\nLineEdit/colors/clear_button_color = Color(0.77832, 0.77832, 0.77832, 1)\nLineEdit/colors/clear_button_color_pressed = Color(0.184314, 0.396078, 0.533333, 1)\nLineEdit/colors/font_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nLineEdit/colors/font_uneditable_color = Color(0.6392157, 0.6666667, 0.92156863, 0.5)\nLineEdit/colors/selection_color = Color(0.184314, 0.396078, 0.533333, 0.4)\nLineEdit/styles/focus = SubResource(\"3\")\nLineEdit/styles/normal = SubResource(\"5\")\nLineEdit/styles/read_only = SubResource(\"2\")\nLinkButton/styles/focus = SubResource(\"97\")\nMarginContainer/constants/margin_bottom = 2\nMarginContainer/constants/margin_left = 8\nMarginContainer/constants/margin_right = 8\nMarginContainer/constants/margin_top = 2\nMenuBar/colors/font_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nMenuBar/colors/font_disabled_color = Color(0.6392157, 0.6666667, 0.92156863, 0.5)\nMenuBar/colors/font_hover_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\nMenuBar/colors/font_pressed_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\nMenuButton/colors/font_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nMenuButton/colors/font_disabled_color = Color(0.6392157, 0.6666667, 0.92156863, 0.5)\nMenuButton/colors/font_hover_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\nMenuButton/colors/font_pressed_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\nMisc/colors/clear_color = Color(0.2, 0.23137255, 0.30980393, 1)\nOptionButton/colors/font_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nOptionButton/colors/font_disabled_color = Color(0.6392157, 0.6666667, 0.92156863, 0.5)\nPanel/styles/panel = SubResource(\"103\")\nPanelContainer/styles/panel = SubResource(\"104\")\nPopupMenu/colors/font_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nPopupMenu/colors/font_disabled_color = Color(0.6392157, 0.6666667, 0.92156863, 0.5)\nPopupMenu/colors/font_hover_color = Color(0.57254905, 0.65882355, 0.8784314, 1)\nPopupMenu/icons/radio_unchecked = ExtResource(\"1_hr4ey\")\nPopupMenu/icons/radio_unchecked_disabled = ExtResource(\"1_hr4ey\")\nPopupMenu/icons/unchecked = ExtResource(\"2_xevqb\")\nPopupMenu/icons/unchecked_disabled = ExtResource(\"2_xevqb\")\nPopupMenu/styles/hover = SubResource(\"112\")\nPopupMenu/styles/labeled_separator_left = SubResource(\"113\")\nPopupMenu/styles/labeled_separator_right = SubResource(\"114\")\nPopupMenu/styles/panel = SubResource(\"105\")\nPopupMenu/styles/separator = SubResource(\"115\")\nPopupPanel/styles/panel = SubResource(\"StyleBoxFlat_fc11h\")\nProgressBar/colors/font_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nRichTextLabel/colors/default_color = Color(0.77832, 0.77832, 0.77832, 1)\nRichTextLabel/styles/focus = SubResource(\"123\")\nRichTextLabel/styles/normal = SubResource(\"52\")\nRulerButton/base_type = &\"Button\"\nRulerButton/styles/disabled = SubResource(\"StyleBoxFlat_co58r\")\nRulerButton/styles/focus = SubResource(\"1\")\nRulerButton/styles/hover = SubResource(\"1\")\nRulerButton/styles/normal = SubResource(\"1\")\nRulerButton/styles/pressed = SubResource(\"1\")\nTabBar/colors/font_disabled_color = Color(0.6392157, 0.6666667, 0.92156863, 0.5)\nTabBar/colors/font_selected_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nTabBar/colors/font_unselected_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nTabBar/styles/tab_disabled = SubResource(\"StyleBoxFlat_fewc7\")\nTabBar/styles/tab_focus = SubResource(\"StyleBoxFlat_bxstr\")\nTabBar/styles/tab_hovered = SubResource(\"StyleBoxFlat_dfms8\")\nTabBar/styles/tab_selected = SubResource(\"StyleBoxFlat_msbem\")\nTabBar/styles/tab_unselected = SubResource(\"StyleBoxFlat_n4ubj\")\nTabContainer/colors/font_disabled_color = Color(0.6392157, 0.6666667, 0.92156863, 0.5)\nTabContainer/colors/font_selected_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nTabContainer/colors/font_unselected_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nTabContainer/constants/side_margin = 0\nTabContainer/styles/panel = SubResource(\"StyleBoxFlat_jssey\")\nTabContainer/styles/tab_disabled = SubResource(\"StyleBoxFlat_fewc7\")\nTabContainer/styles/tab_focus = SubResource(\"StyleBoxFlat_bxstr\")\nTabContainer/styles/tab_hovered = SubResource(\"StyleBoxFlat_dfms8\")\nTabContainer/styles/tab_selected = SubResource(\"StyleBoxFlat_msbem\")\nTabContainer/styles/tab_unselected = SubResource(\"StyleBoxFlat_n4ubj\")\nTabContainer/styles/tabbar_background = SubResource(\"StyleBoxEmpty_o56ri\")\nTextEdit/colors/background_color = Color(0, 0, 0, 0)\nTextEdit/colors/caret_background_color = Color(0, 0, 0, 1)\nTextEdit/colors/caret_color = Color(0.77832, 0.77832, 0.77832, 1)\nTextEdit/colors/current_line_color = Color(0.25, 0.25, 0.26, 0.8)\nTextEdit/colors/font_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nTextEdit/colors/font_uneditable_color = Color(0.6392157, 0.6666667, 0.92156863, 0.5)\nTextEdit/colors/selection_color = Color(0.184314, 0.396078, 0.533333, 0.4)\nTextEdit/colors/word_highlighted_color = Color(0.8, 0.9, 0.9, 0.15)\nTextEdit/styles/focus = SubResource(\"4\")\nTextEdit/styles/normal = SubResource(\"5\")\nTextEdit/styles/read_only = SubResource(\"2\")\nTooltipLabel/colors/font_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nTooltipPanel/styles/panel = SubResource(\"151\")\nTree/colors/children_hl_line_color = Color(0.6392157, 0.6666667, 0.92156863, 0.15)\nTree/colors/custom_button_font_highlight = Color(0.866992, 0.866992, 0.866992, 1)\nTree/colors/drop_position_color = Color(0.184314, 0.396078, 0.533333, 1)\nTree/colors/font_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nTree/colors/guide_color = Color(1, 1, 1, 0.05)\nTree/colors/parent_hl_line_color = Color(0.6392157, 0.6666667, 0.92156863, 0.15)\nTree/colors/relationship_line_color = Color(0.6392157, 0.6666667, 0.92156863, 0.1)\nTree/colors/title_button_color = Color(0.77832, 0.77832, 0.77832, 1)\nTree/constants/children_hl_line_width = 2\nTree/constants/draw_relationship_lines = 1\nTree/constants/parent_hl_line_width = 2\nTree/constants/scroll_border = 40\nTree/icons/unchecked = ExtResource(\"2_xevqb\")\nTree/styles/button_pressed = SubResource(\"156\")\nTree/styles/cursor = SubResource(\"157\")\nTree/styles/cursor_unfocused = SubResource(\"157\")\nTree/styles/custom_button = SubResource(\"158\")\nTree/styles/custom_button_hover = SubResource(\"5\")\nTree/styles/custom_button_pressed = SubResource(\"159\")\nTree/styles/panel = SubResource(\"StyleBoxFlat_tcenw\")\nTree/styles/selected = SubResource(\"95\")\nTree/styles/selected_focus = SubResource(\"96\")\nTree/styles/title_button_hover = SubResource(\"161\")\nTree/styles/title_button_normal = SubResource(\"161\")\nTree/styles/title_button_pressed = SubResource(\"161\")\nVScrollBar/styles/grabber = SubResource(\"StyleBoxFlat_ri1fl\")\nVScrollBar/styles/grabber_highlight = SubResource(\"StyleBoxFlat_q3k4c\")\nVScrollBar/styles/grabber_pressed = SubResource(\"StyleBoxFlat_l27bo\")\nVScrollBar/styles/scroll = SubResource(\"StyleBoxFlat_bbug8\")\nVScrollBar/styles/scroll_focus = SubResource(\"StyleBoxFlat_ktbsq\")\nVSeparator/styles/separator = SubResource(\"167\")\nVSlider/styles/grabber_area = SubResource(\"168\")\nVSlider/styles/grabber_area_highlight = SubResource(\"169\")\nVSlider/styles/slider = SubResource(\"170\")\nValueSlider/base_type = &\"TextureProgressBar\"\nValueSlider/colors/progress_color = Color(0.14901961, 0.17254902, 0.23137255, 1)\nValueSlider/colors/under_color = Color(0.2784314, 0.32156864, 0.43137255, 1)\nValueSlider/icons/arrow_hover = ExtResource(\"4_vaslw\")\nValueSlider/icons/arrow_normal = ExtResource(\"3_r6vyk\")\nValueSlider/icons/arrow_pressed = ExtResource(\"5_dt8k8\")\nValueSlider/icons/texture_over = null\nValueSlider/icons/texture_progress = ExtResource(\"6_acryc\")\nValueSlider/icons/texture_under = ExtResource(\"6_acryc\")\nWindow/colors/title_color = Color(0.6392157, 0.6666667, 0.92156863, 1)\nWindow/constants/resize_margin = 16\nWindow/constants/title_height = 24\nWindow/styles/embedded_border = SubResource(\"StyleBoxFlat_pgljm\")\nWindow/styles/embedded_unfocused_border = SubResource(\"StyleBoxFlat_wmfk1\")\n"
  },
  {
    "path": "assets/themes/caramel/theme.tres",
    "content": "[gd_resource type=\"Theme\" format=3 uid=\"uid://bt5baxg8dg3m5\"]\n\n[ext_resource type=\"Texture2D\" uid=\"uid://brdgp0y4tarar\" path=\"res://assets/graphics/misc/radio_unpressed.png\" id=\"1_oyygx\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ybfsxkc2qap7\" path=\"res://assets/graphics/misc/checkbox_unpressed.png\" id=\"2_3mf1i\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ct8wn8m6x4m54\" path=\"res://assets/graphics/misc/value_arrow.svg\" id=\"3_a4nge\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bq8h66v4ie8xl\" path=\"res://assets/graphics/misc/value_arrow_hover.svg\" id=\"4_gsaue\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://hhxenhteahv6\" path=\"res://assets/graphics/misc/value_arrow_press.svg\" id=\"5_xe364\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://c7u0yofrpm50a\" path=\"res://assets/graphics/misc/value_slider.png\" id=\"6_s2lbo\"]\n[ext_resource type=\"FontFile\" uid=\"uid://cvc4lelf6hl7x\" path=\"res://assets/fonts/Roboto-Regular.ttf\" id=\"7_fgn6m\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_755mo\"]\ncontent_margin_left = 8.0\ncontent_margin_top = 8.0\ncontent_margin_right = 8.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.8117647, 0.5294118, 0.3019608, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\n\n[sub_resource type=\"StyleBoxFlat\" id=\"23\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_kpwev\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.8, 0.6431373, 0.4203922, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_nv6tl\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.80784315, 0.4862745, 0.2509804, 0.5)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_t0f5f\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(1, 0.8039216, 0.5254902, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_1qcnj\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.80784315, 0.4862745, 0.2509804, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_8hww6\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.80784315, 0.4862745, 0.2509804, 0.5)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_a57y0\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.8117647, 0.5294118, 0.3019608, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_t43bd\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.84705883, 0.5058824, 0.25490198, 1)\nborder_width_left = 3\nborder_width_top = 3\nborder_width_right = 3\nborder_width_bottom = 3\nborder_color = Color(1, 0.8039216, 0.5254902, 1)\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_lbyuh\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4dymj\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4jbvl\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_eoilh\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_dr6kc\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_8hsnf\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_d140b\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_k7wcw\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_j786n\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_viauy\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ygru1\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_h750t\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"33\"]\nbg_color = Color(0.768627, 0.768627, 0.768627, 1)\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"34\"]\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"35\"]\nbg_color = Color(0.2, 0.2, 0.2, 1)\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_504p6\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.602353, 0.602353, 0.602353, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_mihib\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 2.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.8117647, 0.5294118, 0.3019608, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_yin2u\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.80784315, 0.4862745, 0.2509804, 0.5)\nborder_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ttqs8\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_wdt2l\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.80784315, 0.4862745, 0.2509804, 0.5)\nborder_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_6cw85\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ri1fl\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.80784315, 0.4862745, 0.2509804, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_q3k4c\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.8654902, 0.6403922, 0.4756863, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_l27bo\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.8462745, 0.5890196, 0.4007843, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_1emgw\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 4.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.6)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ktbsq\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(1, 1, 1, 0.75)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxLine\" id=\"81\"]\ncolor = Color(1, 1, 1, 0.1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"86\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.333333, 0.333333, 0.333333, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"87\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.333333, 0.333333, 0.333333, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"88\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.0666667, 0.0666667, 0.0666667, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"94\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.113281, 0.113281, 0.113281, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(1, 1, 1, 0.2)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4ngk1\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(1, 0.8039216, 0.5254902, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"95\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.80784315, 0.4862745, 0.2509804, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"96\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.80784315, 0.4862745, 0.2509804, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"StyleBoxEmpty_u871w\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_o72qi\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.80784315, 0.4862745, 0.2509804, 1)\nborder_width_left = 3\nborder_width_top = 3\nborder_width_right = 3\nborder_width_bottom = 3\nborder_color = Color(1, 0.8039216, 0.5254902, 1)\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"3\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(1, 0.8039216, 0.5254902, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"5\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"2\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"97\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"103\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"104\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 2.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.8117647, 0.5294118, 0.3019608, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"112\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.80784315, 0.4862745, 0.2509804, 0.5)\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\n\n[sub_resource type=\"StyleBoxLine\" id=\"113\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 7.0\n\n[sub_resource type=\"StyleBoxLine\" id=\"114\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_end = 7.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"105\"]\ncontent_margin_left = 8.0\ncontent_margin_top = 8.0\ncontent_margin_right = 8.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.334961, 0.334961, 0.334961, 1)\nshadow_color = Color(0, 0, 0, 0.3)\nshadow_size = 4\n\n[sub_resource type=\"StyleBoxLine\" id=\"115\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 7.0\ngrow_end = 7.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_fc11h\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"123\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"52\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_co58r\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.80784315, 0.4862745, 0.2509804, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"1\"]\nbg_color = Color(0.80784315, 0.4862745, 0.2509804, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_fewc7\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.3)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_bxstr\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(1, 0.8039216, 0.5254902, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_dfms8\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.3)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_msbem\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\nborder_width_top = 2\nborder_color = Color(1, 0.8039216, 0.5254902, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_n4ubj\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.48588237, 0.28549019, 0.13725491, 1)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_jssey\"]\nbg_color = Color(0.8117647, 0.5294118, 0.3019608, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"StyleBoxEmpty_o56ri\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 0.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 0.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"4\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(1, 0.8039216, 0.5254902, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"151\"]\ncontent_margin_left = 1.0\ncontent_margin_top = 1.0\ncontent_margin_right = 1.0\ncontent_margin_bottom = 1.0\nbg_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(1, 0.8039216, 0.5254902, 1)\nshadow_color = Color(0, 0, 0, 0.3)\nshadow_size = 4\n\n[sub_resource type=\"StyleBoxFlat\" id=\"156\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"157\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.113281, 0.113281, 0.113281, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"158\"]\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"159\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_tcenw\"]\nbg_color = Color(0.8117647, 0.5294118, 0.3019608, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"161\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_bbug8\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 0.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.1, 0.1, 0.1, 0.6)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxLine\" id=\"167\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 0.0\ngrow_end = 0.0\nvertical = true\n\n[sub_resource type=\"StyleBoxFlat\" id=\"168\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"169\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"170\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_pgljm\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 28.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.6, 0.3647059, 0.25882354, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 4.0\nexpand_margin_top = 28.0\nexpand_margin_right = 4.0\nexpand_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_wmfk1\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 28.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.4, 0.4, 0.4, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 4.0\nexpand_margin_top = 28.0\nexpand_margin_right = 4.0\nexpand_margin_bottom = 4.0\n\n[resource]\nresource_name = \"Caramel\"\ndefault_font = ExtResource(\"7_fgn6m\")\ndefault_font_size = 16\nAcceptDialog/styles/panel = SubResource(\"StyleBoxFlat_755mo\")\nBoxContainer/constants/separation = 4\nButton/colors/font_color = Color(0.972549, 0.8, 0.6156863, 1)\nButton/colors/font_disabled_color = Color(0.972549, 0.8, 0.6156863, 0.5)\nButton/colors/font_focus_color = Color(1, 0.8039216, 0.5254902, 1)\nButton/colors/font_hover_color = Color(1, 0.8039216, 0.5254902, 1)\nButton/colors/font_hover_pressed_color = Color(1, 0.8039216, 0.5254902, 1)\nButton/colors/font_pressed_color = Color(1, 0.8039216, 0.5254902, 1)\nButton/colors/icon_color_pressed = Color(1, 1, 1, 1)\nButton/colors/icon_disabled_color = Color(0.972549, 0.8, 0.6156863, 0.5)\nButton/colors/icon_hover_color = Color(1, 0.8627451, 0.66784316, 1)\nButton/colors/icon_hover_pressed_color = Color(1, 0.84313726, 0.6203922, 1)\nButton/colors/icon_normal_color = Color(1, 0.8039216, 0.5254902, 1)\nButton/colors/icon_pressed_color = Color(1, 0.84313726, 0.6203922, 1)\nButton/styles/disabled = SubResource(\"23\")\nButton/styles/focus = SubResource(\"StyleBoxFlat_kpwev\")\nButton/styles/hover = SubResource(\"StyleBoxFlat_nv6tl\")\nButton/styles/normal = SubResource(\"23\")\nButton/styles/pressed = SubResource(\"StyleBoxFlat_t0f5f\")\nCelButton/base_type = &\"Button\"\nCelButton/styles/guide = SubResource(\"StyleBoxFlat_1qcnj\")\nCelButton/styles/hover = SubResource(\"StyleBoxFlat_8hww6\")\nCelButton/styles/normal = SubResource(\"StyleBoxFlat_a57y0\")\nCelButton/styles/pressed = SubResource(\"StyleBoxFlat_t43bd\")\nCheckBox/icons/radio_unchecked = ExtResource(\"1_oyygx\")\nCheckBox/icons/radio_unchecked_disabled = ExtResource(\"1_oyygx\")\nCheckBox/icons/unchecked = ExtResource(\"2_3mf1i\")\nCheckBox/icons/unchecked_disabled = ExtResource(\"2_3mf1i\")\nCheckBox/styles/disabled = SubResource(\"StyleBoxFlat_lbyuh\")\nCheckBox/styles/focus = SubResource(\"StyleBoxFlat_4dymj\")\nCheckBox/styles/hover = SubResource(\"StyleBoxFlat_4jbvl\")\nCheckBox/styles/hover_pressed = SubResource(\"StyleBoxFlat_eoilh\")\nCheckBox/styles/normal = SubResource(\"StyleBoxFlat_dr6kc\")\nCheckBox/styles/pressed = SubResource(\"StyleBoxFlat_8hsnf\")\nCheckButton/styles/disabled = SubResource(\"StyleBoxFlat_d140b\")\nCheckButton/styles/focus = SubResource(\"StyleBoxFlat_k7wcw\")\nCheckButton/styles/hover = SubResource(\"StyleBoxFlat_j786n\")\nCheckButton/styles/hover_pressed = SubResource(\"StyleBoxFlat_viauy\")\nCheckButton/styles/normal = SubResource(\"StyleBoxFlat_ygru1\")\nCheckButton/styles/pressed = SubResource(\"StyleBoxFlat_h750t\")\nCollapsibleContainer/base_type = &\"VBoxContainer\"\nCollapsibleContainer/icons/arrow_normal = ExtResource(\"3_a4nge\")\nColorPicker/constants/h_width = 28\nColorPicker/constants/margin = 8\nColorPickerButton/styles/disabled = null\nColorPickerButton/styles/focus = null\nColorPickerButton/styles/hover = SubResource(\"33\")\nColorPickerButton/styles/normal = SubResource(\"34\")\nColorPickerButton/styles/pressed = SubResource(\"35\")\nFoldableContainer/colors/collapsed_font_color = Color(0.972549, 0.8, 0.6156863, 1)\nFoldableContainer/colors/font_color = Color(0.972549, 0.8, 0.6156863, 1)\nFoldableContainer/colors/hover_font_color = Color(1, 0.8039216, 0.5254902, 1)\nFoldableContainer/styles/focus = SubResource(\"StyleBoxFlat_504p6\")\nFoldableContainer/styles/panel = SubResource(\"StyleBoxFlat_mihib\")\nFoldableContainer/styles/title_collapsed_hover_panel = SubResource(\"StyleBoxFlat_yin2u\")\nFoldableContainer/styles/title_collapsed_panel = SubResource(\"StyleBoxFlat_ttqs8\")\nFoldableContainer/styles/title_hover_panel = SubResource(\"StyleBoxFlat_wdt2l\")\nFoldableContainer/styles/title_panel = SubResource(\"StyleBoxFlat_6cw85\")\nGraphEdit/colors/activity = Color(0.184314, 0.396078, 0.533333, 1)\nGraphEdit/colors/grid_major = Color(1, 1, 1, 0.15)\nGraphEdit/colors/grid_minor = Color(1, 1, 1, 0.07)\nGraphEdit/colors/selection_fill = Color(0.184314, 0.396078, 0.533333, 0.3)\nGraphEdit/colors/selection_stroke = Color(0.184314, 0.396078, 0.533333, 0.8)\nGraphNode/colors/resizer_color = Color(1, 1, 1, 0.7)\nHScrollBar/styles/grabber = SubResource(\"StyleBoxFlat_ri1fl\")\nHScrollBar/styles/grabber_highlight = SubResource(\"StyleBoxFlat_q3k4c\")\nHScrollBar/styles/grabber_pressed = SubResource(\"StyleBoxFlat_l27bo\")\nHScrollBar/styles/scroll = SubResource(\"StyleBoxFlat_1emgw\")\nHScrollBar/styles/scroll_focus = SubResource(\"StyleBoxFlat_ktbsq\")\nHSeparator/styles/separator = SubResource(\"81\")\nHSlider/styles/grabber_area = SubResource(\"86\")\nHSlider/styles/grabber_area_highlight = SubResource(\"87\")\nHSlider/styles/slider = SubResource(\"88\")\nHeaderSmall/font_sizes/font_size = 18\nIcons/colors/modulate_color = Color(1, 0.8039216, 0.5254902, 1)\nItemList/colors/font_color = Color(0.972549, 0.8, 0.6156863, 1)\nItemList/colors/font_hovered_color = Color(1, 0.8039216, 0.5254902, 1)\nItemList/colors/guide_color = Color(1, 1, 1, 0.05)\nItemList/styles/cursor = SubResource(\"94\")\nItemList/styles/cursor_unfocused = SubResource(\"94\")\nItemList/styles/panel = SubResource(\"StyleBoxFlat_4ngk1\")\nItemList/styles/selected = SubResource(\"95\")\nItemList/styles/selected_focus = SubResource(\"96\")\nLabel/colors/font_color = Color(0.972549, 0.8, 0.6156863, 1)\nLabel/styles/normal = SubResource(\"StyleBoxEmpty_u871w\")\nLayerFrameButton/base_type = &\"CelButton\"\nLayerFrameButton/styles/pressed = SubResource(\"StyleBoxFlat_o72qi\")\nLineEdit/colors/clear_button_color = Color(0.77832, 0.77832, 0.77832, 1)\nLineEdit/colors/clear_button_color_pressed = Color(0.184314, 0.396078, 0.533333, 1)\nLineEdit/colors/font_color = Color(0.972549, 0.8, 0.6156863, 1)\nLineEdit/colors/font_uneditable_color = Color(0.972549, 0.8, 0.6156863, 0.5)\nLineEdit/colors/selection_color = Color(0.184314, 0.396078, 0.533333, 0.4)\nLineEdit/styles/focus = SubResource(\"3\")\nLineEdit/styles/normal = SubResource(\"5\")\nLineEdit/styles/read_only = SubResource(\"2\")\nLinkButton/styles/focus = SubResource(\"97\")\nMarginContainer/constants/margin_bottom = 2\nMarginContainer/constants/margin_left = 8\nMarginContainer/constants/margin_right = 8\nMarginContainer/constants/margin_top = 2\nMenuBar/colors/font_color = Color(0.972549, 0.8, 0.6156863, 1)\nMenuBar/colors/font_disabled_color = Color(0.972549, 0.8, 0.6156863, 0.5)\nMenuBar/colors/font_hover_color = Color(1, 0.8039216, 0.5254902, 1)\nMenuBar/colors/font_pressed_color = Color(1, 0.8039216, 0.5254902, 1)\nMenuButton/colors/font_color = Color(0.972549, 0.8, 0.6156863, 1)\nMenuButton/colors/font_disabled_color = Color(0.972549, 0.8, 0.6156863, 0.5)\nMenuButton/colors/font_hover_color = Color(1, 0.8039216, 0.5254902, 1)\nMenuButton/colors/font_pressed_color = Color(1, 0.8039216, 0.5254902, 1)\nMisc/colors/clear_color = Color(0.8117647, 0.5294118, 0.3019608, 1)\nOptionButton/colors/font_color = Color(0.972549, 0.8, 0.6156863, 1)\nOptionButton/colors/font_disabled_color = Color(0.972549, 0.8, 0.6156863, 0.5)\nPanel/styles/panel = SubResource(\"103\")\nPanelContainer/styles/panel = SubResource(\"104\")\nPopupMenu/colors/font_color = Color(0.972549, 0.8, 0.6156863, 1)\nPopupMenu/colors/font_disabled_color = Color(0.972549, 0.8, 0.6156863, 0.5)\nPopupMenu/colors/font_hover_color = Color(1, 0.8039216, 0.5254902, 1)\nPopupMenu/icons/radio_unchecked = ExtResource(\"1_oyygx\")\nPopupMenu/icons/radio_unchecked_disabled = ExtResource(\"1_oyygx\")\nPopupMenu/icons/unchecked = ExtResource(\"2_3mf1i\")\nPopupMenu/icons/unchecked_disabled = ExtResource(\"2_3mf1i\")\nPopupMenu/styles/hover = SubResource(\"112\")\nPopupMenu/styles/labeled_separator_left = SubResource(\"113\")\nPopupMenu/styles/labeled_separator_right = SubResource(\"114\")\nPopupMenu/styles/panel = SubResource(\"105\")\nPopupMenu/styles/separator = SubResource(\"115\")\nPopupPanel/styles/panel = SubResource(\"StyleBoxFlat_fc11h\")\nProgressBar/colors/font_color = Color(0.972549, 0.8, 0.6156863, 1)\nRichTextLabel/colors/default_color = Color(0.77832, 0.77832, 0.77832, 1)\nRichTextLabel/styles/focus = SubResource(\"123\")\nRichTextLabel/styles/normal = SubResource(\"52\")\nRulerButton/base_type = &\"Button\"\nRulerButton/styles/disabled = SubResource(\"StyleBoxFlat_co58r\")\nRulerButton/styles/focus = SubResource(\"1\")\nRulerButton/styles/hover = SubResource(\"1\")\nRulerButton/styles/normal = SubResource(\"1\")\nRulerButton/styles/pressed = SubResource(\"1\")\nTabBar/colors/font_disabled_color = Color(0.972549, 0.8, 0.6156863, 0.5)\nTabBar/colors/font_selected_color = Color(0.972549, 0.8, 0.6156863, 1)\nTabBar/colors/font_unselected_color = Color(0.972549, 0.8, 0.6156863, 1)\nTabBar/styles/tab_disabled = SubResource(\"StyleBoxFlat_fewc7\")\nTabBar/styles/tab_focus = SubResource(\"StyleBoxFlat_bxstr\")\nTabBar/styles/tab_hovered = SubResource(\"StyleBoxFlat_dfms8\")\nTabBar/styles/tab_selected = SubResource(\"StyleBoxFlat_msbem\")\nTabBar/styles/tab_unselected = SubResource(\"StyleBoxFlat_n4ubj\")\nTabContainer/colors/font_disabled_color = Color(0.972549, 0.8, 0.6156863, 0.5)\nTabContainer/colors/font_selected_color = Color(0.972549, 0.8, 0.6156863, 1)\nTabContainer/colors/font_unselected_color = Color(0.972549, 0.8, 0.6156863, 1)\nTabContainer/constants/side_margin = 0\nTabContainer/styles/panel = SubResource(\"StyleBoxFlat_jssey\")\nTabContainer/styles/tab_disabled = SubResource(\"StyleBoxFlat_fewc7\")\nTabContainer/styles/tab_focus = SubResource(\"StyleBoxFlat_bxstr\")\nTabContainer/styles/tab_hovered = SubResource(\"StyleBoxFlat_dfms8\")\nTabContainer/styles/tab_selected = SubResource(\"StyleBoxFlat_msbem\")\nTabContainer/styles/tab_unselected = SubResource(\"StyleBoxFlat_n4ubj\")\nTabContainer/styles/tabbar_background = SubResource(\"StyleBoxEmpty_o56ri\")\nTextEdit/colors/background_color = Color(0, 0, 0, 0)\nTextEdit/colors/caret_background_color = Color(0, 0, 0, 1)\nTextEdit/colors/caret_color = Color(0.77832, 0.77832, 0.77832, 1)\nTextEdit/colors/current_line_color = Color(0.25, 0.25, 0.26, 0.8)\nTextEdit/colors/font_color = Color(0.972549, 0.8, 0.6156863, 1)\nTextEdit/colors/font_uneditable_color = Color(0.972549, 0.8, 0.6156863, 0.5)\nTextEdit/colors/selection_color = Color(0.184314, 0.396078, 0.533333, 0.4)\nTextEdit/colors/word_highlighted_color = Color(0.8, 0.9, 0.9, 0.15)\nTextEdit/styles/focus = SubResource(\"4\")\nTextEdit/styles/normal = SubResource(\"5\")\nTextEdit/styles/read_only = SubResource(\"2\")\nTooltipLabel/colors/font_color = Color(0.972549, 0.8, 0.6156863, 1)\nTooltipPanel/styles/panel = SubResource(\"151\")\nTree/colors/children_hl_line_color = Color(0.972549, 0.8, 0.6156863, 0.15)\nTree/colors/custom_button_font_highlight = Color(0.866992, 0.866992, 0.866992, 1)\nTree/colors/drop_position_color = Color(0.184314, 0.396078, 0.533333, 1)\nTree/colors/font_color = Color(0.972549, 0.8, 0.6156863, 1)\nTree/colors/guide_color = Color(1, 1, 1, 0.05)\nTree/colors/parent_hl_line_color = Color(0.972549, 0.8, 0.6156863, 0.15)\nTree/colors/relationship_line_color = Color(0.972549, 0.8, 0.6156863, 0.1)\nTree/colors/title_button_color = Color(0.77832, 0.77832, 0.77832, 1)\nTree/constants/children_hl_line_width = 2\nTree/constants/draw_relationship_lines = 1\nTree/constants/parent_hl_line_width = 2\nTree/constants/scroll_border = 40\nTree/icons/unchecked = ExtResource(\"2_3mf1i\")\nTree/styles/button_pressed = SubResource(\"156\")\nTree/styles/cursor = SubResource(\"157\")\nTree/styles/cursor_unfocused = SubResource(\"157\")\nTree/styles/custom_button = SubResource(\"158\")\nTree/styles/custom_button_hover = SubResource(\"5\")\nTree/styles/custom_button_pressed = SubResource(\"159\")\nTree/styles/panel = SubResource(\"StyleBoxFlat_tcenw\")\nTree/styles/selected = SubResource(\"95\")\nTree/styles/selected_focus = SubResource(\"96\")\nTree/styles/title_button_hover = SubResource(\"161\")\nTree/styles/title_button_normal = SubResource(\"161\")\nTree/styles/title_button_pressed = SubResource(\"161\")\nVScrollBar/styles/grabber = SubResource(\"StyleBoxFlat_ri1fl\")\nVScrollBar/styles/grabber_highlight = SubResource(\"StyleBoxFlat_q3k4c\")\nVScrollBar/styles/grabber_pressed = SubResource(\"StyleBoxFlat_l27bo\")\nVScrollBar/styles/scroll = SubResource(\"StyleBoxFlat_bbug8\")\nVScrollBar/styles/scroll_focus = SubResource(\"StyleBoxFlat_ktbsq\")\nVSeparator/styles/separator = SubResource(\"167\")\nVSlider/styles/grabber_area = SubResource(\"168\")\nVSlider/styles/grabber_area_highlight = SubResource(\"169\")\nVSlider/styles/slider = SubResource(\"170\")\nValueSlider/base_type = &\"TextureProgressBar\"\nValueSlider/colors/progress_color = Color(0.80784315, 0.4862745, 0.2509804, 1)\nValueSlider/colors/under_color = Color(0.69411767, 0.40784314, 0.19607843, 1)\nValueSlider/icons/arrow_hover = ExtResource(\"4_gsaue\")\nValueSlider/icons/arrow_normal = ExtResource(\"3_a4nge\")\nValueSlider/icons/arrow_pressed = ExtResource(\"5_xe364\")\nValueSlider/icons/texture_over = null\nValueSlider/icons/texture_progress = ExtResource(\"6_s2lbo\")\nValueSlider/icons/texture_under = ExtResource(\"6_s2lbo\")\nWindow/colors/title_color = Color(0.972549, 0.8, 0.6156863, 1)\nWindow/constants/resize_margin = 16\nWindow/constants/title_height = 24\nWindow/styles/embedded_border = SubResource(\"StyleBoxFlat_pgljm\")\nWindow/styles/embedded_unfocused_border = SubResource(\"StyleBoxFlat_wmfk1\")\n"
  },
  {
    "path": "assets/themes/dark/theme.tres",
    "content": "[gd_resource type=\"Theme\" format=3 uid=\"uid://dog5j8wjiwikc\"]\n\n[ext_resource type=\"Texture2D\" uid=\"uid://brdgp0y4tarar\" path=\"res://assets/graphics/misc/radio_unpressed.png\" id=\"1_hljni\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ybfsxkc2qap7\" path=\"res://assets/graphics/misc/checkbox_unpressed.png\" id=\"2_fuvsh\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ct8wn8m6x4m54\" path=\"res://assets/graphics/misc/value_arrow.svg\" id=\"3_q5mth\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bq8h66v4ie8xl\" path=\"res://assets/graphics/misc/value_arrow_hover.svg\" id=\"4_jd3ok\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://hhxenhteahv6\" path=\"res://assets/graphics/misc/value_arrow_press.svg\" id=\"5_hteot\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://c7u0yofrpm50a\" path=\"res://assets/graphics/misc/value_slider.png\" id=\"6_auhn6\"]\n[ext_resource type=\"FontFile\" uid=\"uid://cvc4lelf6hl7x\" path=\"res://assets/fonts/Roboto-Regular.ttf\" id=\"7_yjxjk\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_755mo\"]\ncontent_margin_left = 8.0\ncontent_margin_top = 8.0\ncontent_margin_right = 8.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.141176, 0.141176, 0.141176, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\n\n[sub_resource type=\"StyleBoxFlat\" id=\"23\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_kpwev\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.6023528, 0.6023528, 0.6023528, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_nv6tl\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.231373, 0.231373, 0.231373, 0.5)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_t0f5f\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.752941, 0.752941, 0.752941, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_1qcnj\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.231373, 0.231373, 0.231373, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_8hww6\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.231373, 0.231373, 0.231373, 0.5)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_a57y0\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.141176, 0.141176, 0.141176, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_t43bd\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nborder_width_left = 3\nborder_width_top = 3\nborder_width_right = 3\nborder_width_bottom = 3\nborder_color = Color(0.752941, 0.752941, 0.752941, 1)\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_lbyuh\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4dymj\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4jbvl\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_eoilh\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_dr6kc\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_8hsnf\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_d140b\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_k7wcw\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_j786n\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_viauy\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ygru1\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_h750t\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"33\"]\nbg_color = Color(0.768627, 0.768627, 0.768627, 1)\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"34\"]\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"35\"]\nbg_color = Color(0.2, 0.2, 0.2, 1)\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_504p6\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.602353, 0.602353, 0.602353, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_mihib\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 2.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.141176, 0.141176, 0.141176, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_yin2u\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.231373, 0.231373, 0.231373, 0.5)\nborder_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ttqs8\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_wdt2l\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.231373, 0.231373, 0.231373, 0.5)\nborder_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_6cw85\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ri1fl\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.231373, 0.231373, 0.231373, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_q3k4c\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.4619611, 0.4619611, 0.4619611, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_l27bo\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.3850984, 0.3850984, 0.3850984, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_1emgw\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 4.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.6)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ktbsq\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(1, 1, 1, 0.75)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxLine\" id=\"81\"]\ncolor = Color(1, 1, 1, 0.1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"86\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.333333, 0.333333, 0.333333, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"87\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.333333, 0.333333, 0.333333, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"88\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.0666667, 0.0666667, 0.0666667, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"94\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.113281, 0.113281, 0.113281, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(1, 1, 1, 0.2)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4ngk1\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.752941, 0.752941, 0.752941, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"95\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.231373, 0.231373, 0.231373, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"96\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.231373, 0.231373, 0.231373, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"StyleBoxEmpty_u871w\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_o72qi\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.231373, 0.231373, 0.231373, 1)\nborder_width_left = 3\nborder_width_top = 3\nborder_width_right = 3\nborder_width_bottom = 3\nborder_color = Color(0.752941, 0.752941, 0.752941, 1)\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"3\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.752941, 0.752941, 0.752941, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"5\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"2\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"97\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"103\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"104\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 2.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.141176, 0.141176, 0.141176, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"112\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.231373, 0.231373, 0.231373, 0.5)\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\n\n[sub_resource type=\"StyleBoxLine\" id=\"113\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 7.0\n\n[sub_resource type=\"StyleBoxLine\" id=\"114\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_end = 7.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"105\"]\ncontent_margin_left = 8.0\ncontent_margin_top = 8.0\ncontent_margin_right = 8.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.334961, 0.334961, 0.334961, 1)\nshadow_color = Color(0, 0, 0, 0.3)\nshadow_size = 4\n\n[sub_resource type=\"StyleBoxLine\" id=\"115\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 7.0\ngrow_end = 7.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_fc11h\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"123\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"52\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_co58r\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.231373, 0.231373, 0.231373, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"1\"]\nbg_color = Color(0.231373, 0.231373, 0.231373, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_fewc7\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.3)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_bxstr\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.752941, 0.752941, 0.752941, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_dfms8\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.3)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_msbem\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_width_top = 2\nborder_color = Color(0.752941, 0.752941, 0.752941, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_n4ubj\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.06313727, 0.06313727, 0.06313727, 1)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_jssey\"]\nbg_color = Color(0.141176, 0.141176, 0.141176, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"StyleBoxEmpty_o56ri\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 0.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 0.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"4\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.752941, 0.752941, 0.752941, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"151\"]\ncontent_margin_left = 1.0\ncontent_margin_top = 1.0\ncontent_margin_right = 1.0\ncontent_margin_bottom = 1.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.752941, 0.752941, 0.752941, 1)\nshadow_color = Color(0, 0, 0, 0.3)\nshadow_size = 4\n\n[sub_resource type=\"StyleBoxFlat\" id=\"156\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"157\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.113281, 0.113281, 0.113281, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"158\"]\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"159\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_tcenw\"]\nbg_color = Color(0.141176, 0.141176, 0.141176, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"161\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_bbug8\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 0.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.1, 0.1, 0.1, 0.6)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxLine\" id=\"167\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 0.0\ngrow_end = 0.0\nvertical = true\n\n[sub_resource type=\"StyleBoxFlat\" id=\"168\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"169\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"170\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_pgljm\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 28.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.321569, 0.321569, 0.321569, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 4.0\nexpand_margin_top = 28.0\nexpand_margin_right = 4.0\nexpand_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_wmfk1\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 28.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.4, 0.4, 0.4, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 4.0\nexpand_margin_top = 28.0\nexpand_margin_right = 4.0\nexpand_margin_bottom = 4.0\n\n[resource]\nresource_name = \"Dark\"\ndefault_font = ExtResource(\"7_yjxjk\")\ndefault_font_size = 16\nAcceptDialog/styles/panel = SubResource(\"StyleBoxFlat_755mo\")\nBoxContainer/constants/separation = 4\nButton/colors/font_color = Color(0.776471, 0.776471, 0.776471, 1)\nButton/colors/font_disabled_color = Color(0.776471, 0.776471, 0.776471, 0.5)\nButton/colors/font_focus_color = Color(0.752941, 0.752941, 0.752941, 1)\nButton/colors/font_hover_color = Color(0.752941, 0.752941, 0.752941, 1)\nButton/colors/font_hover_pressed_color = Color(0.752941, 0.752941, 0.752941, 1)\nButton/colors/font_pressed_color = Color(0.752941, 0.752941, 0.752941, 1)\nButton/colors/icon_color_pressed = Color(1, 1, 1, 1)\nButton/colors/icon_disabled_color = Color(0.776471, 0.776471, 0.776471, 0.5)\nButton/colors/icon_hover_color = Color(0.82705873, 0.82705873, 0.82705873, 1)\nButton/colors/icon_hover_pressed_color = Color(0.8023528, 0.8023528, 0.8023528, 1)\nButton/colors/icon_normal_color = Color(0.752941, 0.752941, 0.752941, 1)\nButton/colors/icon_pressed_color = Color(0.8023528, 0.8023528, 0.8023528, 1)\nButton/styles/disabled = SubResource(\"23\")\nButton/styles/focus = SubResource(\"StyleBoxFlat_kpwev\")\nButton/styles/hover = SubResource(\"StyleBoxFlat_nv6tl\")\nButton/styles/normal = SubResource(\"23\")\nButton/styles/pressed = SubResource(\"StyleBoxFlat_t0f5f\")\nCelButton/base_type = &\"Button\"\nCelButton/styles/guide = SubResource(\"StyleBoxFlat_1qcnj\")\nCelButton/styles/hover = SubResource(\"StyleBoxFlat_8hww6\")\nCelButton/styles/normal = SubResource(\"StyleBoxFlat_a57y0\")\nCelButton/styles/pressed = SubResource(\"StyleBoxFlat_t43bd\")\nCheckBox/icons/radio_unchecked = ExtResource(\"1_hljni\")\nCheckBox/icons/radio_unchecked_disabled = ExtResource(\"1_hljni\")\nCheckBox/icons/unchecked = ExtResource(\"2_fuvsh\")\nCheckBox/icons/unchecked_disabled = ExtResource(\"2_fuvsh\")\nCheckBox/styles/disabled = SubResource(\"StyleBoxFlat_lbyuh\")\nCheckBox/styles/focus = SubResource(\"StyleBoxFlat_4dymj\")\nCheckBox/styles/hover = SubResource(\"StyleBoxFlat_4jbvl\")\nCheckBox/styles/hover_pressed = SubResource(\"StyleBoxFlat_eoilh\")\nCheckBox/styles/normal = SubResource(\"StyleBoxFlat_dr6kc\")\nCheckBox/styles/pressed = SubResource(\"StyleBoxFlat_8hsnf\")\nCheckButton/styles/disabled = SubResource(\"StyleBoxFlat_d140b\")\nCheckButton/styles/focus = SubResource(\"StyleBoxFlat_k7wcw\")\nCheckButton/styles/hover = SubResource(\"StyleBoxFlat_j786n\")\nCheckButton/styles/hover_pressed = SubResource(\"StyleBoxFlat_viauy\")\nCheckButton/styles/normal = SubResource(\"StyleBoxFlat_ygru1\")\nCheckButton/styles/pressed = SubResource(\"StyleBoxFlat_h750t\")\nCollapsibleContainer/base_type = &\"VBoxContainer\"\nCollapsibleContainer/icons/arrow_normal = ExtResource(\"3_q5mth\")\nColorPicker/constants/h_width = 28\nColorPicker/constants/margin = 8\nColorPickerButton/styles/disabled = null\nColorPickerButton/styles/focus = null\nColorPickerButton/styles/hover = SubResource(\"33\")\nColorPickerButton/styles/normal = SubResource(\"34\")\nColorPickerButton/styles/pressed = SubResource(\"35\")\nFoldableContainer/colors/collapsed_font_color = Color(0.776471, 0.776471, 0.776471, 1)\nFoldableContainer/colors/font_color = Color(0.776471, 0.776471, 0.776471, 1)\nFoldableContainer/colors/hover_font_color = Color(0.752941, 0.752941, 0.752941, 1)\nFoldableContainer/styles/focus = SubResource(\"StyleBoxFlat_504p6\")\nFoldableContainer/styles/panel = SubResource(\"StyleBoxFlat_mihib\")\nFoldableContainer/styles/title_collapsed_hover_panel = SubResource(\"StyleBoxFlat_yin2u\")\nFoldableContainer/styles/title_collapsed_panel = SubResource(\"StyleBoxFlat_ttqs8\")\nFoldableContainer/styles/title_hover_panel = SubResource(\"StyleBoxFlat_wdt2l\")\nFoldableContainer/styles/title_panel = SubResource(\"StyleBoxFlat_6cw85\")\nGraphEdit/colors/activity = Color(0.184314, 0.396078, 0.533333, 1)\nGraphEdit/colors/grid_major = Color(1, 1, 1, 0.15)\nGraphEdit/colors/grid_minor = Color(1, 1, 1, 0.07)\nGraphEdit/colors/selection_fill = Color(0.184314, 0.396078, 0.533333, 0.3)\nGraphEdit/colors/selection_stroke = Color(0.184314, 0.396078, 0.533333, 0.8)\nGraphNode/colors/resizer_color = Color(1, 1, 1, 0.7)\nHScrollBar/styles/grabber = SubResource(\"StyleBoxFlat_ri1fl\")\nHScrollBar/styles/grabber_highlight = SubResource(\"StyleBoxFlat_q3k4c\")\nHScrollBar/styles/grabber_pressed = SubResource(\"StyleBoxFlat_l27bo\")\nHScrollBar/styles/scroll = SubResource(\"StyleBoxFlat_1emgw\")\nHScrollBar/styles/scroll_focus = SubResource(\"StyleBoxFlat_ktbsq\")\nHSeparator/styles/separator = SubResource(\"81\")\nHSlider/styles/grabber_area = SubResource(\"86\")\nHSlider/styles/grabber_area_highlight = SubResource(\"87\")\nHSlider/styles/slider = SubResource(\"88\")\nHeaderSmall/font_sizes/font_size = 18\nIcons/colors/modulate_color = Color(0.752941, 0.752941, 0.752941, 1)\nItemList/colors/font_color = Color(0.776471, 0.776471, 0.776471, 1)\nItemList/colors/font_hovered_color = Color(0.752941, 0.752941, 0.752941, 1)\nItemList/colors/guide_color = Color(1, 1, 1, 0.05)\nItemList/styles/cursor = SubResource(\"94\")\nItemList/styles/cursor_unfocused = SubResource(\"94\")\nItemList/styles/panel = SubResource(\"StyleBoxFlat_4ngk1\")\nItemList/styles/selected = SubResource(\"95\")\nItemList/styles/selected_focus = SubResource(\"96\")\nLabel/colors/font_color = Color(0.776471, 0.776471, 0.776471, 1)\nLabel/styles/normal = SubResource(\"StyleBoxEmpty_u871w\")\nLayerFrameButton/base_type = &\"CelButton\"\nLayerFrameButton/styles/pressed = SubResource(\"StyleBoxFlat_o72qi\")\nLineEdit/colors/clear_button_color = Color(0.77832, 0.77832, 0.77832, 1)\nLineEdit/colors/clear_button_color_pressed = Color(0.184314, 0.396078, 0.533333, 1)\nLineEdit/colors/font_color = Color(0.776471, 0.776471, 0.776471, 1)\nLineEdit/colors/font_uneditable_color = Color(0.776471, 0.776471, 0.776471, 0.5)\nLineEdit/colors/selection_color = Color(0.184314, 0.396078, 0.533333, 0.4)\nLineEdit/styles/focus = SubResource(\"3\")\nLineEdit/styles/normal = SubResource(\"5\")\nLineEdit/styles/read_only = SubResource(\"2\")\nLinkButton/styles/focus = SubResource(\"97\")\nMarginContainer/constants/margin_bottom = 2\nMarginContainer/constants/margin_left = 8\nMarginContainer/constants/margin_right = 8\nMarginContainer/constants/margin_top = 2\nMenuBar/colors/font_color = Color(0.776471, 0.776471, 0.776471, 1)\nMenuBar/colors/font_disabled_color = Color(0.776471, 0.776471, 0.776471, 0.5)\nMenuBar/colors/font_hover_color = Color(0.752941, 0.752941, 0.752941, 1)\nMenuBar/colors/font_pressed_color = Color(0.752941, 0.752941, 0.752941, 1)\nMenuButton/colors/font_color = Color(0.776471, 0.776471, 0.776471, 1)\nMenuButton/colors/font_disabled_color = Color(0.776471, 0.776471, 0.776471, 0.5)\nMenuButton/colors/font_hover_color = Color(0.752941, 0.752941, 0.752941, 1)\nMenuButton/colors/font_pressed_color = Color(0.752941, 0.752941, 0.752941, 1)\nMisc/colors/clear_color = Color(0.141176, 0.141176, 0.141176, 1)\nOptionButton/colors/font_color = Color(0.776471, 0.776471, 0.776471, 1)\nOptionButton/colors/font_disabled_color = Color(0.776471, 0.776471, 0.776471, 0.5)\nPanel/styles/panel = SubResource(\"103\")\nPanelContainer/styles/panel = SubResource(\"104\")\nPopupMenu/colors/font_color = Color(0.776471, 0.776471, 0.776471, 1)\nPopupMenu/colors/font_disabled_color = Color(0.776471, 0.776471, 0.776471, 0.5)\nPopupMenu/colors/font_hover_color = Color(0.752941, 0.752941, 0.752941, 1)\nPopupMenu/icons/radio_unchecked = ExtResource(\"1_hljni\")\nPopupMenu/icons/radio_unchecked_disabled = ExtResource(\"1_hljni\")\nPopupMenu/icons/unchecked = ExtResource(\"2_fuvsh\")\nPopupMenu/icons/unchecked_disabled = ExtResource(\"2_fuvsh\")\nPopupMenu/styles/hover = SubResource(\"112\")\nPopupMenu/styles/labeled_separator_left = SubResource(\"113\")\nPopupMenu/styles/labeled_separator_right = SubResource(\"114\")\nPopupMenu/styles/panel = SubResource(\"105\")\nPopupMenu/styles/separator = SubResource(\"115\")\nPopupPanel/styles/panel = SubResource(\"StyleBoxFlat_fc11h\")\nProgressBar/colors/font_color = Color(0.776471, 0.776471, 0.776471, 1)\nRichTextLabel/colors/default_color = Color(0.77832, 0.77832, 0.77832, 1)\nRichTextLabel/styles/focus = SubResource(\"123\")\nRichTextLabel/styles/normal = SubResource(\"52\")\nRulerButton/base_type = &\"Button\"\nRulerButton/styles/disabled = SubResource(\"StyleBoxFlat_co58r\")\nRulerButton/styles/focus = SubResource(\"1\")\nRulerButton/styles/hover = SubResource(\"1\")\nRulerButton/styles/normal = SubResource(\"1\")\nRulerButton/styles/pressed = SubResource(\"1\")\nTabBar/colors/font_disabled_color = Color(0.776471, 0.776471, 0.776471, 0.5)\nTabBar/colors/font_selected_color = Color(0.776471, 0.776471, 0.776471, 1)\nTabBar/colors/font_unselected_color = Color(0.776471, 0.776471, 0.776471, 1)\nTabBar/styles/tab_disabled = SubResource(\"StyleBoxFlat_fewc7\")\nTabBar/styles/tab_focus = SubResource(\"StyleBoxFlat_bxstr\")\nTabBar/styles/tab_hovered = SubResource(\"StyleBoxFlat_dfms8\")\nTabBar/styles/tab_selected = SubResource(\"StyleBoxFlat_msbem\")\nTabBar/styles/tab_unselected = SubResource(\"StyleBoxFlat_n4ubj\")\nTabContainer/colors/font_disabled_color = Color(0.776471, 0.776471, 0.776471, 0.5)\nTabContainer/colors/font_selected_color = Color(0.776471, 0.776471, 0.776471, 1)\nTabContainer/colors/font_unselected_color = Color(0.776471, 0.776471, 0.776471, 1)\nTabContainer/constants/side_margin = 0\nTabContainer/styles/panel = SubResource(\"StyleBoxFlat_jssey\")\nTabContainer/styles/tab_disabled = SubResource(\"StyleBoxFlat_fewc7\")\nTabContainer/styles/tab_focus = SubResource(\"StyleBoxFlat_bxstr\")\nTabContainer/styles/tab_hovered = SubResource(\"StyleBoxFlat_dfms8\")\nTabContainer/styles/tab_selected = SubResource(\"StyleBoxFlat_msbem\")\nTabContainer/styles/tab_unselected = SubResource(\"StyleBoxFlat_n4ubj\")\nTabContainer/styles/tabbar_background = SubResource(\"StyleBoxEmpty_o56ri\")\nTextEdit/colors/background_color = Color(0, 0, 0, 0)\nTextEdit/colors/caret_background_color = Color(0, 0, 0, 1)\nTextEdit/colors/caret_color = Color(0.77832, 0.77832, 0.77832, 1)\nTextEdit/colors/current_line_color = Color(0.25, 0.25, 0.26, 0.8)\nTextEdit/colors/font_color = Color(0.776471, 0.776471, 0.776471, 1)\nTextEdit/colors/font_uneditable_color = Color(0.776471, 0.776471, 0.776471, 0.5)\nTextEdit/colors/selection_color = Color(0.184314, 0.396078, 0.533333, 0.4)\nTextEdit/colors/word_highlighted_color = Color(0.8, 0.9, 0.9, 0.15)\nTextEdit/styles/focus = SubResource(\"4\")\nTextEdit/styles/normal = SubResource(\"5\")\nTextEdit/styles/read_only = SubResource(\"2\")\nTooltipLabel/colors/font_color = Color(0.776471, 0.776471, 0.776471, 1)\nTooltipPanel/styles/panel = SubResource(\"151\")\nTree/colors/children_hl_line_color = Color(0.776471, 0.776471, 0.776471, 0.15)\nTree/colors/custom_button_font_highlight = Color(0.866992, 0.866992, 0.866992, 1)\nTree/colors/drop_position_color = Color(0.184314, 0.396078, 0.533333, 1)\nTree/colors/font_color = Color(0.776471, 0.776471, 0.776471, 1)\nTree/colors/guide_color = Color(1, 1, 1, 0.05)\nTree/colors/parent_hl_line_color = Color(0.776471, 0.776471, 0.776471, 0.15)\nTree/colors/relationship_line_color = Color(0.776471, 0.776471, 0.776471, 0.1)\nTree/colors/title_button_color = Color(0.77832, 0.77832, 0.77832, 1)\nTree/constants/children_hl_line_width = 2\nTree/constants/draw_relationship_lines = 1\nTree/constants/parent_hl_line_width = 2\nTree/constants/scroll_border = 40\nTree/icons/unchecked = ExtResource(\"2_fuvsh\")\nTree/styles/button_pressed = SubResource(\"156\")\nTree/styles/cursor = SubResource(\"157\")\nTree/styles/cursor_unfocused = SubResource(\"157\")\nTree/styles/custom_button = SubResource(\"158\")\nTree/styles/custom_button_hover = SubResource(\"5\")\nTree/styles/custom_button_pressed = SubResource(\"159\")\nTree/styles/panel = SubResource(\"StyleBoxFlat_tcenw\")\nTree/styles/selected = SubResource(\"95\")\nTree/styles/selected_focus = SubResource(\"96\")\nTree/styles/title_button_hover = SubResource(\"161\")\nTree/styles/title_button_normal = SubResource(\"161\")\nTree/styles/title_button_pressed = SubResource(\"161\")\nVScrollBar/styles/grabber = SubResource(\"StyleBoxFlat_ri1fl\")\nVScrollBar/styles/grabber_highlight = SubResource(\"StyleBoxFlat_q3k4c\")\nVScrollBar/styles/grabber_pressed = SubResource(\"StyleBoxFlat_l27bo\")\nVScrollBar/styles/scroll = SubResource(\"StyleBoxFlat_bbug8\")\nVScrollBar/styles/scroll_focus = SubResource(\"StyleBoxFlat_ktbsq\")\nVSeparator/styles/separator = SubResource(\"167\")\nVSlider/styles/grabber_area = SubResource(\"168\")\nVSlider/styles/grabber_area_highlight = SubResource(\"169\")\nVSlider/styles/slider = SubResource(\"170\")\nValueSlider/base_type = &\"TextureProgressBar\"\nValueSlider/colors/progress_color = Color(0.231373, 0.231373, 0.231373, 1)\nValueSlider/colors/under_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nValueSlider/icons/arrow_hover = ExtResource(\"4_jd3ok\")\nValueSlider/icons/arrow_normal = ExtResource(\"3_q5mth\")\nValueSlider/icons/arrow_pressed = ExtResource(\"5_hteot\")\nValueSlider/icons/texture_over = null\nValueSlider/icons/texture_progress = ExtResource(\"6_auhn6\")\nValueSlider/icons/texture_under = ExtResource(\"6_auhn6\")\nWindow/colors/title_color = Color(0.776471, 0.776471, 0.776471, 1)\nWindow/constants/resize_margin = 16\nWindow/constants/title_height = 24\nWindow/styles/embedded_border = SubResource(\"StyleBoxFlat_pgljm\")\nWindow/styles/embedded_unfocused_border = SubResource(\"StyleBoxFlat_wmfk1\")\n"
  },
  {
    "path": "assets/themes/gray/theme.tres",
    "content": "[gd_resource type=\"Theme\" format=3 uid=\"uid://bcsvx8gcies1a\"]\n\n[ext_resource type=\"Texture2D\" uid=\"uid://brdgp0y4tarar\" path=\"res://assets/graphics/misc/radio_unpressed.png\" id=\"1_h60mv\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ybfsxkc2qap7\" path=\"res://assets/graphics/misc/checkbox_unpressed.png\" id=\"2_5jrxt\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ct8wn8m6x4m54\" path=\"res://assets/graphics/misc/value_arrow.svg\" id=\"3_0aksj\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bq8h66v4ie8xl\" path=\"res://assets/graphics/misc/value_arrow_hover.svg\" id=\"4_k512v\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://hhxenhteahv6\" path=\"res://assets/graphics/misc/value_arrow_press.svg\" id=\"5_vi8n5\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://c7u0yofrpm50a\" path=\"res://assets/graphics/misc/value_slider.png\" id=\"6_0tljg\"]\n[ext_resource type=\"FontFile\" uid=\"uid://cvc4lelf6hl7x\" path=\"res://assets/fonts/Roboto-Regular.ttf\" id=\"7_hcw2r\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_755mo\"]\ncontent_margin_left = 8.0\ncontent_margin_top = 8.0\ncontent_margin_right = 8.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.18039216, 0.18039216, 0.20392157, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\n\n[sub_resource type=\"StyleBoxFlat\" id=\"23\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2, 0.2, 0.22352941, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_kpwev\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.5239216, 0.5584314, 0.7341177, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_nv6tl\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.30980393, 0.3137255, 0.39607844, 0.5)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_t0f5f\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2, 0.2, 0.22352941, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.654902, 0.69803923, 0.91764706, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_1qcnj\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.30980393, 0.3137255, 0.39607844, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.2, 0.2, 0.22352941, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_8hww6\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.30980393, 0.3137255, 0.39607844, 0.5)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.2, 0.2, 0.22352941, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_a57y0\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.18039216, 0.18039216, 0.20392157, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.2, 0.2, 0.22352941, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_t43bd\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.4627451, 0.4627451, 0.54509807, 1)\nborder_width_left = 3\nborder_width_top = 3\nborder_width_right = 3\nborder_width_bottom = 3\nborder_color = Color(0.654902, 0.69803923, 0.91764706, 1)\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_lbyuh\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4dymj\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4jbvl\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_eoilh\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_dr6kc\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_8hsnf\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_d140b\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_k7wcw\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_j786n\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_viauy\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ygru1\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_h750t\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"33\"]\nbg_color = Color(0.768627, 0.768627, 0.768627, 1)\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"34\"]\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"35\"]\nbg_color = Color(0.2, 0.2, 0.2, 1)\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_504p6\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2, 0.2, 0.22352941, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.602353, 0.602353, 0.602353, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_mihib\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 2.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.18039216, 0.18039216, 0.20392157, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_yin2u\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.30980393, 0.3137255, 0.39607844, 0.5)\nborder_color = Color(0.2, 0.2, 0.22352941, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ttqs8\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2, 0.2, 0.22352941, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_wdt2l\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.30980393, 0.3137255, 0.39607844, 0.5)\nborder_color = Color(0.2, 0.2, 0.22352941, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_6cw85\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2, 0.2, 0.22352941, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ri1fl\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.30980393, 0.3137255, 0.39607844, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_q3k4c\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.51686275, 0.5196079, 0.5772549, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_l27bo\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.44784313, 0.45098042, 0.51686275, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_1emgw\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 4.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.6)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ktbsq\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(1, 1, 1, 0.75)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxLine\" id=\"81\"]\ncolor = Color(1, 1, 1, 0.1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"86\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.333333, 0.333333, 0.333333, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"87\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.333333, 0.333333, 0.333333, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"88\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.0666667, 0.0666667, 0.0666667, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"94\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.113281, 0.113281, 0.113281, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(1, 1, 1, 0.2)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4ngk1\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2, 0.2, 0.22352941, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.654902, 0.69803923, 0.91764706, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"95\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.30980393, 0.3137255, 0.39607844, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"96\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.30980393, 0.3137255, 0.39607844, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"StyleBoxEmpty_u871w\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_o72qi\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.30980393, 0.3137255, 0.39607844, 1)\nborder_width_left = 3\nborder_width_top = 3\nborder_width_right = 3\nborder_width_bottom = 3\nborder_color = Color(0.654902, 0.69803923, 0.91764706, 1)\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"3\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2, 0.2, 0.22352941, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.654902, 0.69803923, 0.91764706, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"5\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2, 0.2, 0.22352941, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"2\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2, 0.2, 0.22352941, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"97\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"103\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2, 0.2, 0.22352941, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"104\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 2.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.18039216, 0.18039216, 0.20392157, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"112\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.30980393, 0.3137255, 0.39607844, 0.5)\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\n\n[sub_resource type=\"StyleBoxLine\" id=\"113\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 7.0\n\n[sub_resource type=\"StyleBoxLine\" id=\"114\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_end = 7.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"105\"]\ncontent_margin_left = 8.0\ncontent_margin_top = 8.0\ncontent_margin_right = 8.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.2, 0.2, 0.22352941, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.334961, 0.334961, 0.334961, 1)\nshadow_color = Color(0, 0, 0, 0.3)\nshadow_size = 4\n\n[sub_resource type=\"StyleBoxLine\" id=\"115\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 7.0\ngrow_end = 7.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_fc11h\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2, 0.2, 0.22352941, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"123\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"52\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_co58r\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.30980393, 0.3137255, 0.39607844, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"1\"]\nbg_color = Color(0.30980393, 0.3137255, 0.39607844, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_fewc7\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.3)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_bxstr\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2, 0.2, 0.22352941, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.654902, 0.69803923, 0.91764706, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_dfms8\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.3)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_msbem\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2, 0.2, 0.22352941, 1)\nborder_width_top = 2\nborder_color = Color(0.654902, 0.69803923, 0.91764706, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_n4ubj\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.14, 0.14, 0.15647058, 1)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_jssey\"]\nbg_color = Color(0.18039216, 0.18039216, 0.20392157, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"StyleBoxEmpty_o56ri\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 0.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 0.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"4\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2, 0.2, 0.22352941, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.654902, 0.69803923, 0.91764706, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"151\"]\ncontent_margin_left = 1.0\ncontent_margin_top = 1.0\ncontent_margin_right = 1.0\ncontent_margin_bottom = 1.0\nbg_color = Color(0.2, 0.2, 0.22352941, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.654902, 0.69803923, 0.91764706, 1)\nshadow_color = Color(0, 0, 0, 0.3)\nshadow_size = 4\n\n[sub_resource type=\"StyleBoxFlat\" id=\"156\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"157\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.113281, 0.113281, 0.113281, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"158\"]\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"159\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_tcenw\"]\nbg_color = Color(0.18039216, 0.18039216, 0.20392157, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"161\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_bbug8\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 0.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.1, 0.1, 0.1, 0.6)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxLine\" id=\"167\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 0.0\ngrow_end = 0.0\nvertical = true\n\n[sub_resource type=\"StyleBoxFlat\" id=\"168\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"169\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"170\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_pgljm\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 28.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.13333334, 0.13333334, 0.18039216, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 4.0\nexpand_margin_top = 28.0\nexpand_margin_right = 4.0\nexpand_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_wmfk1\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 28.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.4, 0.4, 0.4, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 4.0\nexpand_margin_top = 28.0\nexpand_margin_right = 4.0\nexpand_margin_bottom = 4.0\n\n[resource]\nresource_name = \"Gray\"\ndefault_font = ExtResource(\"7_hcw2r\")\ndefault_font_size = 16\nAcceptDialog/styles/panel = SubResource(\"StyleBoxFlat_755mo\")\nBoxContainer/constants/separation = 4\nButton/colors/font_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nButton/colors/font_disabled_color = Color(0.5686275, 0.57254905, 0.72156864, 0.5)\nButton/colors/font_focus_color = Color(0.654902, 0.69803923, 0.91764706, 1)\nButton/colors/font_hover_color = Color(0.654902, 0.69803923, 0.91764706, 1)\nButton/colors/font_hover_pressed_color = Color(0.654902, 0.69803923, 0.91764706, 1)\nButton/colors/font_pressed_color = Color(0.654902, 0.69803923, 0.91764706, 1)\nButton/colors/icon_color_pressed = Color(1, 1, 1, 1)\nButton/colors/icon_disabled_color = Color(0.5686275, 0.57254905, 0.72156864, 0.5)\nButton/colors/icon_hover_color = Color(0.7584314, 0.78862745, 0.94235295, 1)\nButton/colors/icon_hover_pressed_color = Color(0.7239216, 0.7584314, 0.9341177, 1)\nButton/colors/icon_normal_color = Color(0.654902, 0.69803923, 0.91764706, 1)\nButton/colors/icon_pressed_color = Color(0.7239216, 0.7584314, 0.9341177, 1)\nButton/styles/disabled = SubResource(\"23\")\nButton/styles/focus = SubResource(\"StyleBoxFlat_kpwev\")\nButton/styles/hover = SubResource(\"StyleBoxFlat_nv6tl\")\nButton/styles/normal = SubResource(\"23\")\nButton/styles/pressed = SubResource(\"StyleBoxFlat_t0f5f\")\nCelButton/base_type = &\"Button\"\nCelButton/styles/guide = SubResource(\"StyleBoxFlat_1qcnj\")\nCelButton/styles/hover = SubResource(\"StyleBoxFlat_8hww6\")\nCelButton/styles/normal = SubResource(\"StyleBoxFlat_a57y0\")\nCelButton/styles/pressed = SubResource(\"StyleBoxFlat_t43bd\")\nCheckBox/icons/radio_unchecked = ExtResource(\"1_h60mv\")\nCheckBox/icons/radio_unchecked_disabled = ExtResource(\"1_h60mv\")\nCheckBox/icons/unchecked = ExtResource(\"2_5jrxt\")\nCheckBox/icons/unchecked_disabled = ExtResource(\"2_5jrxt\")\nCheckBox/styles/disabled = SubResource(\"StyleBoxFlat_lbyuh\")\nCheckBox/styles/focus = SubResource(\"StyleBoxFlat_4dymj\")\nCheckBox/styles/hover = SubResource(\"StyleBoxFlat_4jbvl\")\nCheckBox/styles/hover_pressed = SubResource(\"StyleBoxFlat_eoilh\")\nCheckBox/styles/normal = SubResource(\"StyleBoxFlat_dr6kc\")\nCheckBox/styles/pressed = SubResource(\"StyleBoxFlat_8hsnf\")\nCheckButton/styles/disabled = SubResource(\"StyleBoxFlat_d140b\")\nCheckButton/styles/focus = SubResource(\"StyleBoxFlat_k7wcw\")\nCheckButton/styles/hover = SubResource(\"StyleBoxFlat_j786n\")\nCheckButton/styles/hover_pressed = SubResource(\"StyleBoxFlat_viauy\")\nCheckButton/styles/normal = SubResource(\"StyleBoxFlat_ygru1\")\nCheckButton/styles/pressed = SubResource(\"StyleBoxFlat_h750t\")\nCollapsibleContainer/base_type = &\"VBoxContainer\"\nCollapsibleContainer/icons/arrow_normal = ExtResource(\"3_0aksj\")\nColorPicker/constants/h_width = 28\nColorPicker/constants/margin = 8\nColorPickerButton/styles/disabled = null\nColorPickerButton/styles/focus = null\nColorPickerButton/styles/hover = SubResource(\"33\")\nColorPickerButton/styles/normal = SubResource(\"34\")\nColorPickerButton/styles/pressed = SubResource(\"35\")\nFoldableContainer/colors/collapsed_font_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nFoldableContainer/colors/font_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nFoldableContainer/colors/hover_font_color = Color(0.654902, 0.69803923, 0.91764706, 1)\nFoldableContainer/styles/focus = SubResource(\"StyleBoxFlat_504p6\")\nFoldableContainer/styles/panel = SubResource(\"StyleBoxFlat_mihib\")\nFoldableContainer/styles/title_collapsed_hover_panel = SubResource(\"StyleBoxFlat_yin2u\")\nFoldableContainer/styles/title_collapsed_panel = SubResource(\"StyleBoxFlat_ttqs8\")\nFoldableContainer/styles/title_hover_panel = SubResource(\"StyleBoxFlat_wdt2l\")\nFoldableContainer/styles/title_panel = SubResource(\"StyleBoxFlat_6cw85\")\nGraphEdit/colors/activity = Color(0.184314, 0.396078, 0.533333, 1)\nGraphEdit/colors/grid_major = Color(1, 1, 1, 0.15)\nGraphEdit/colors/grid_minor = Color(1, 1, 1, 0.07)\nGraphEdit/colors/selection_fill = Color(0.184314, 0.396078, 0.533333, 0.3)\nGraphEdit/colors/selection_stroke = Color(0.184314, 0.396078, 0.533333, 0.8)\nGraphNode/colors/resizer_color = Color(1, 1, 1, 0.7)\nHScrollBar/styles/grabber = SubResource(\"StyleBoxFlat_ri1fl\")\nHScrollBar/styles/grabber_highlight = SubResource(\"StyleBoxFlat_q3k4c\")\nHScrollBar/styles/grabber_pressed = SubResource(\"StyleBoxFlat_l27bo\")\nHScrollBar/styles/scroll = SubResource(\"StyleBoxFlat_1emgw\")\nHScrollBar/styles/scroll_focus = SubResource(\"StyleBoxFlat_ktbsq\")\nHSeparator/styles/separator = SubResource(\"81\")\nHSlider/styles/grabber_area = SubResource(\"86\")\nHSlider/styles/grabber_area_highlight = SubResource(\"87\")\nHSlider/styles/slider = SubResource(\"88\")\nHeaderSmall/font_sizes/font_size = 18\nIcons/colors/modulate_color = Color(0.654902, 0.69803923, 0.91764706, 1)\nItemList/colors/font_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nItemList/colors/font_hovered_color = Color(0.654902, 0.69803923, 0.91764706, 1)\nItemList/colors/guide_color = Color(1, 1, 1, 0.05)\nItemList/styles/cursor = SubResource(\"94\")\nItemList/styles/cursor_unfocused = SubResource(\"94\")\nItemList/styles/panel = SubResource(\"StyleBoxFlat_4ngk1\")\nItemList/styles/selected = SubResource(\"95\")\nItemList/styles/selected_focus = SubResource(\"96\")\nLabel/colors/font_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nLabel/styles/normal = SubResource(\"StyleBoxEmpty_u871w\")\nLayerFrameButton/base_type = &\"CelButton\"\nLayerFrameButton/styles/pressed = SubResource(\"StyleBoxFlat_o72qi\")\nLineEdit/colors/clear_button_color = Color(0.77832, 0.77832, 0.77832, 1)\nLineEdit/colors/clear_button_color_pressed = Color(0.184314, 0.396078, 0.533333, 1)\nLineEdit/colors/font_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nLineEdit/colors/font_uneditable_color = Color(0.5686275, 0.57254905, 0.72156864, 0.5)\nLineEdit/colors/selection_color = Color(0.184314, 0.396078, 0.533333, 0.4)\nLineEdit/styles/focus = SubResource(\"3\")\nLineEdit/styles/normal = SubResource(\"5\")\nLineEdit/styles/read_only = SubResource(\"2\")\nLinkButton/styles/focus = SubResource(\"97\")\nMarginContainer/constants/margin_bottom = 2\nMarginContainer/constants/margin_left = 8\nMarginContainer/constants/margin_right = 8\nMarginContainer/constants/margin_top = 2\nMenuBar/colors/font_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nMenuBar/colors/font_disabled_color = Color(0.5686275, 0.57254905, 0.72156864, 0.5)\nMenuBar/colors/font_hover_color = Color(0.654902, 0.69803923, 0.91764706, 1)\nMenuBar/colors/font_pressed_color = Color(0.654902, 0.69803923, 0.91764706, 1)\nMenuButton/colors/font_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nMenuButton/colors/font_disabled_color = Color(0.5686275, 0.57254905, 0.72156864, 0.5)\nMenuButton/colors/font_hover_color = Color(0.654902, 0.69803923, 0.91764706, 1)\nMenuButton/colors/font_pressed_color = Color(0.654902, 0.69803923, 0.91764706, 1)\nMisc/colors/clear_color = Color(0.18039216, 0.18039216, 0.20392157, 1)\nOptionButton/colors/font_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nOptionButton/colors/font_disabled_color = Color(0.5686275, 0.57254905, 0.72156864, 0.5)\nPanel/styles/panel = SubResource(\"103\")\nPanelContainer/styles/panel = SubResource(\"104\")\nPopupMenu/colors/font_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nPopupMenu/colors/font_disabled_color = Color(0.5686275, 0.57254905, 0.72156864, 0.5)\nPopupMenu/colors/font_hover_color = Color(0.654902, 0.69803923, 0.91764706, 1)\nPopupMenu/icons/radio_unchecked = ExtResource(\"1_h60mv\")\nPopupMenu/icons/radio_unchecked_disabled = ExtResource(\"1_h60mv\")\nPopupMenu/icons/unchecked = ExtResource(\"2_5jrxt\")\nPopupMenu/icons/unchecked_disabled = ExtResource(\"2_5jrxt\")\nPopupMenu/styles/hover = SubResource(\"112\")\nPopupMenu/styles/labeled_separator_left = SubResource(\"113\")\nPopupMenu/styles/labeled_separator_right = SubResource(\"114\")\nPopupMenu/styles/panel = SubResource(\"105\")\nPopupMenu/styles/separator = SubResource(\"115\")\nPopupPanel/styles/panel = SubResource(\"StyleBoxFlat_fc11h\")\nProgressBar/colors/font_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nRichTextLabel/colors/default_color = Color(0.77832, 0.77832, 0.77832, 1)\nRichTextLabel/styles/focus = SubResource(\"123\")\nRichTextLabel/styles/normal = SubResource(\"52\")\nRulerButton/base_type = &\"Button\"\nRulerButton/styles/disabled = SubResource(\"StyleBoxFlat_co58r\")\nRulerButton/styles/focus = SubResource(\"1\")\nRulerButton/styles/hover = SubResource(\"1\")\nRulerButton/styles/normal = SubResource(\"1\")\nRulerButton/styles/pressed = SubResource(\"1\")\nTabBar/colors/font_disabled_color = Color(0.5686275, 0.57254905, 0.72156864, 0.5)\nTabBar/colors/font_selected_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nTabBar/colors/font_unselected_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nTabBar/styles/tab_disabled = SubResource(\"StyleBoxFlat_fewc7\")\nTabBar/styles/tab_focus = SubResource(\"StyleBoxFlat_bxstr\")\nTabBar/styles/tab_hovered = SubResource(\"StyleBoxFlat_dfms8\")\nTabBar/styles/tab_selected = SubResource(\"StyleBoxFlat_msbem\")\nTabBar/styles/tab_unselected = SubResource(\"StyleBoxFlat_n4ubj\")\nTabContainer/colors/font_disabled_color = Color(0.5686275, 0.57254905, 0.72156864, 0.5)\nTabContainer/colors/font_selected_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nTabContainer/colors/font_unselected_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nTabContainer/constants/side_margin = 0\nTabContainer/styles/panel = SubResource(\"StyleBoxFlat_jssey\")\nTabContainer/styles/tab_disabled = SubResource(\"StyleBoxFlat_fewc7\")\nTabContainer/styles/tab_focus = SubResource(\"StyleBoxFlat_bxstr\")\nTabContainer/styles/tab_hovered = SubResource(\"StyleBoxFlat_dfms8\")\nTabContainer/styles/tab_selected = SubResource(\"StyleBoxFlat_msbem\")\nTabContainer/styles/tab_unselected = SubResource(\"StyleBoxFlat_n4ubj\")\nTabContainer/styles/tabbar_background = SubResource(\"StyleBoxEmpty_o56ri\")\nTextEdit/colors/background_color = Color(0, 0, 0, 0)\nTextEdit/colors/caret_background_color = Color(0, 0, 0, 1)\nTextEdit/colors/caret_color = Color(0.77832, 0.77832, 0.77832, 1)\nTextEdit/colors/current_line_color = Color(0.25, 0.25, 0.26, 0.8)\nTextEdit/colors/font_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nTextEdit/colors/font_uneditable_color = Color(0.5686275, 0.57254905, 0.72156864, 0.5)\nTextEdit/colors/selection_color = Color(0.184314, 0.396078, 0.533333, 0.4)\nTextEdit/colors/word_highlighted_color = Color(0.8, 0.9, 0.9, 0.15)\nTextEdit/styles/focus = SubResource(\"4\")\nTextEdit/styles/normal = SubResource(\"5\")\nTextEdit/styles/read_only = SubResource(\"2\")\nTooltipLabel/colors/font_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nTooltipPanel/styles/panel = SubResource(\"151\")\nTree/colors/children_hl_line_color = Color(0.5686275, 0.57254905, 0.72156864, 0.15)\nTree/colors/custom_button_font_highlight = Color(0.866992, 0.866992, 0.866992, 1)\nTree/colors/drop_position_color = Color(0.184314, 0.396078, 0.533333, 1)\nTree/colors/font_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nTree/colors/guide_color = Color(1, 1, 1, 0.05)\nTree/colors/parent_hl_line_color = Color(0.5686275, 0.57254905, 0.72156864, 0.15)\nTree/colors/relationship_line_color = Color(0.5686275, 0.57254905, 0.72156864, 0.1)\nTree/colors/title_button_color = Color(0.77832, 0.77832, 0.77832, 1)\nTree/constants/children_hl_line_width = 2\nTree/constants/draw_relationship_lines = 1\nTree/constants/parent_hl_line_width = 2\nTree/constants/scroll_border = 40\nTree/icons/unchecked = ExtResource(\"2_5jrxt\")\nTree/styles/button_pressed = SubResource(\"156\")\nTree/styles/cursor = SubResource(\"157\")\nTree/styles/cursor_unfocused = SubResource(\"157\")\nTree/styles/custom_button = SubResource(\"158\")\nTree/styles/custom_button_hover = SubResource(\"5\")\nTree/styles/custom_button_pressed = SubResource(\"159\")\nTree/styles/panel = SubResource(\"StyleBoxFlat_tcenw\")\nTree/styles/selected = SubResource(\"95\")\nTree/styles/selected_focus = SubResource(\"96\")\nTree/styles/title_button_hover = SubResource(\"161\")\nTree/styles/title_button_normal = SubResource(\"161\")\nTree/styles/title_button_pressed = SubResource(\"161\")\nVScrollBar/styles/grabber = SubResource(\"StyleBoxFlat_ri1fl\")\nVScrollBar/styles/grabber_highlight = SubResource(\"StyleBoxFlat_q3k4c\")\nVScrollBar/styles/grabber_pressed = SubResource(\"StyleBoxFlat_l27bo\")\nVScrollBar/styles/scroll = SubResource(\"StyleBoxFlat_bbug8\")\nVScrollBar/styles/scroll_focus = SubResource(\"StyleBoxFlat_ktbsq\")\nVSeparator/styles/separator = SubResource(\"167\")\nVSlider/styles/grabber_area = SubResource(\"168\")\nVSlider/styles/grabber_area_highlight = SubResource(\"169\")\nVSlider/styles/slider = SubResource(\"170\")\nValueSlider/base_type = &\"TextureProgressBar\"\nValueSlider/colors/progress_color = Color(0.30980393, 0.3137255, 0.39607844, 1)\nValueSlider/colors/under_color = Color(0.2, 0.2, 0.22352941, 1)\nValueSlider/icons/arrow_hover = ExtResource(\"4_k512v\")\nValueSlider/icons/arrow_normal = ExtResource(\"3_0aksj\")\nValueSlider/icons/arrow_pressed = ExtResource(\"5_vi8n5\")\nValueSlider/icons/texture_over = null\nValueSlider/icons/texture_progress = ExtResource(\"6_0tljg\")\nValueSlider/icons/texture_under = ExtResource(\"6_0tljg\")\nWindow/colors/title_color = Color(0.5686275, 0.57254905, 0.72156864, 1)\nWindow/constants/resize_margin = 16\nWindow/constants/title_height = 24\nWindow/styles/embedded_border = SubResource(\"StyleBoxFlat_pgljm\")\nWindow/styles/embedded_unfocused_border = SubResource(\"StyleBoxFlat_wmfk1\")\n"
  },
  {
    "path": "assets/themes/light/theme.tres",
    "content": "[gd_resource type=\"Theme\" format=3 uid=\"uid://c6xeinnkixmnh\"]\n\n[ext_resource type=\"Texture2D\" uid=\"uid://brdgp0y4tarar\" path=\"res://assets/graphics/misc/radio_unpressed.png\" id=\"1_ykufr\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ybfsxkc2qap7\" path=\"res://assets/graphics/misc/checkbox_unpressed.png\" id=\"2_chxkv\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ct8wn8m6x4m54\" path=\"res://assets/graphics/misc/value_arrow.svg\" id=\"3_l2cu4\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bq8h66v4ie8xl\" path=\"res://assets/graphics/misc/value_arrow_hover.svg\" id=\"4_0jf0k\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://hhxenhteahv6\" path=\"res://assets/graphics/misc/value_arrow_press.svg\" id=\"5_fscw0\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://c7u0yofrpm50a\" path=\"res://assets/graphics/misc/value_slider.png\" id=\"6_nowvd\"]\n[ext_resource type=\"FontFile\" uid=\"uid://cvc4lelf6hl7x\" path=\"res://assets/fonts/Roboto-Regular.ttf\" id=\"7_mowvt\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_755mo\"]\ncontent_margin_left = 8.0\ncontent_margin_top = 8.0\ncontent_margin_right = 8.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.85882354, 0.89411765, 0.9411765, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\n\n[sub_resource type=\"StyleBoxFlat\" id=\"23\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_kpwev\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.42588237, 0.43529412, 0.5262745, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_nv6tl\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.6666667, 0.8, 0.972549, 0.5)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_t0f5f\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_1qcnj\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.6666667, 0.8, 0.972549, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_8hww6\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.6666667, 0.8, 0.972549, 0.5)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_a57y0\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.85882354, 0.89411765, 0.9411765, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_t43bd\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.6862745, 0.76862746, 0.87058824, 1)\nborder_width_left = 3\nborder_width_top = 3\nborder_width_right = 3\nborder_width_bottom = 3\nborder_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_lbyuh\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4dymj\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4jbvl\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_eoilh\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_dr6kc\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_8hsnf\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_d140b\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_k7wcw\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_j786n\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_viauy\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ygru1\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_h750t\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"33\"]\nbg_color = Color(0.768627, 0.768627, 0.768627, 1)\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"34\"]\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"35\"]\nbg_color = Color(0.2, 0.2, 0.2, 1)\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_504p6\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.602353, 0.602353, 0.602353, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_mihib\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 2.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.85882354, 0.89411765, 0.9411765, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_yin2u\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.6666667, 0.8, 0.972549, 0.5)\nborder_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ttqs8\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_wdt2l\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.6666667, 0.8, 0.972549, 0.5)\nborder_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_6cw85\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ri1fl\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.6666667, 0.8, 0.972549, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_q3k4c\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.7666667, 0.86, 0.9807843, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_l27bo\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.73333335, 0.84000003, 0.9780392, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_1emgw\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 4.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.6)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ktbsq\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(1, 1, 1, 0.75)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxLine\" id=\"81\"]\ncolor = Color(1, 1, 1, 0.1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"86\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.333333, 0.333333, 0.333333, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"87\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.333333, 0.333333, 0.333333, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"88\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.0666667, 0.0666667, 0.0666667, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"94\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.113281, 0.113281, 0.113281, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(1, 1, 1, 0.2)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4ngk1\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"95\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.6666667, 0.8, 0.972549, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"96\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.6666667, 0.8, 0.972549, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"StyleBoxEmpty_u871w\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_o72qi\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.6666667, 0.8, 0.972549, 1)\nborder_width_left = 3\nborder_width_top = 3\nborder_width_right = 3\nborder_width_bottom = 3\nborder_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"3\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"5\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"2\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"97\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"103\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"104\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 2.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.85882354, 0.89411765, 0.9411765, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"112\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.6666667, 0.8, 0.972549, 0.5)\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\n\n[sub_resource type=\"StyleBoxLine\" id=\"113\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 7.0\n\n[sub_resource type=\"StyleBoxLine\" id=\"114\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_end = 7.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"105\"]\ncontent_margin_left = 8.0\ncontent_margin_top = 8.0\ncontent_margin_right = 8.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.334961, 0.334961, 0.334961, 1)\nshadow_color = Color(0, 0, 0, 0.3)\nshadow_size = 4\n\n[sub_resource type=\"StyleBoxLine\" id=\"115\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 7.0\ngrow_end = 7.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_fc11h\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"123\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"52\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_co58r\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.6666667, 0.8, 0.972549, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"1\"]\nbg_color = Color(0.6666667, 0.8, 0.972549, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_fewc7\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.3)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_bxstr\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_dfms8\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.3)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_msbem\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\nborder_width_top = 2\nborder_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_n4ubj\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.63411766, 0.66156864, 0.6780392, 1)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_jssey\"]\nbg_color = Color(0.85882354, 0.89411765, 0.9411765, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"StyleBoxEmpty_o56ri\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 0.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 0.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"4\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"151\"]\ncontent_margin_left = 1.0\ncontent_margin_top = 1.0\ncontent_margin_right = 1.0\ncontent_margin_bottom = 1.0\nbg_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\nshadow_color = Color(0, 0, 0, 0.3)\nshadow_size = 4\n\n[sub_resource type=\"StyleBoxFlat\" id=\"156\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"157\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.113281, 0.113281, 0.113281, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"158\"]\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"159\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_tcenw\"]\nbg_color = Color(0.85882354, 0.89411765, 0.9411765, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"161\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_bbug8\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 0.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.1, 0.1, 0.1, 0.6)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxLine\" id=\"167\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 0.0\ngrow_end = 0.0\nvertical = true\n\n[sub_resource type=\"StyleBoxFlat\" id=\"168\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"169\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"170\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_pgljm\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 28.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.5647059, 0.6862745, 0.7921569, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 4.0\nexpand_margin_top = 28.0\nexpand_margin_right = 4.0\nexpand_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_wmfk1\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 28.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.4, 0.4, 0.4, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 4.0\nexpand_margin_top = 28.0\nexpand_margin_right = 4.0\nexpand_margin_bottom = 4.0\n\n[resource]\nresource_name = \"Light\"\ndefault_font = ExtResource(\"7_mowvt\")\ndefault_font_size = 16\nAcceptDialog/styles/panel = SubResource(\"StyleBoxFlat_755mo\")\nBoxContainer/constants/separation = 4\nButton/colors/font_color = Color(0.28627452, 0.44313726, 0.6, 1)\nButton/colors/font_disabled_color = Color(0.28627452, 0.44313726, 0.6, 0.5)\nButton/colors/font_focus_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\nButton/colors/font_hover_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\nButton/colors/font_hover_pressed_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\nButton/colors/font_pressed_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\nButton/colors/icon_color_pressed = Color(1, 1, 1, 1)\nButton/colors/icon_disabled_color = Color(0.28627452, 0.44313726, 0.6, 0.5)\nButton/colors/icon_hover_color = Color(0.4976471, 0.5058824, 0.5854902, 1)\nButton/colors/icon_hover_pressed_color = Color(0.42588237, 0.43529412, 0.5262745, 1)\nButton/colors/icon_normal_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\nButton/colors/icon_pressed_color = Color(0.42588237, 0.43529412, 0.5262745, 1)\nButton/styles/disabled = SubResource(\"23\")\nButton/styles/focus = SubResource(\"StyleBoxFlat_kpwev\")\nButton/styles/hover = SubResource(\"StyleBoxFlat_nv6tl\")\nButton/styles/normal = SubResource(\"23\")\nButton/styles/pressed = SubResource(\"StyleBoxFlat_t0f5f\")\nCelButton/base_type = &\"Button\"\nCelButton/styles/guide = SubResource(\"StyleBoxFlat_1qcnj\")\nCelButton/styles/hover = SubResource(\"StyleBoxFlat_8hww6\")\nCelButton/styles/normal = SubResource(\"StyleBoxFlat_a57y0\")\nCelButton/styles/pressed = SubResource(\"StyleBoxFlat_t43bd\")\nCheckBox/icons/radio_unchecked = ExtResource(\"1_ykufr\")\nCheckBox/icons/radio_unchecked_disabled = ExtResource(\"1_ykufr\")\nCheckBox/icons/unchecked = ExtResource(\"2_chxkv\")\nCheckBox/icons/unchecked_disabled = ExtResource(\"2_chxkv\")\nCheckBox/styles/disabled = SubResource(\"StyleBoxFlat_lbyuh\")\nCheckBox/styles/focus = SubResource(\"StyleBoxFlat_4dymj\")\nCheckBox/styles/hover = SubResource(\"StyleBoxFlat_4jbvl\")\nCheckBox/styles/hover_pressed = SubResource(\"StyleBoxFlat_eoilh\")\nCheckBox/styles/normal = SubResource(\"StyleBoxFlat_dr6kc\")\nCheckBox/styles/pressed = SubResource(\"StyleBoxFlat_8hsnf\")\nCheckButton/styles/disabled = SubResource(\"StyleBoxFlat_d140b\")\nCheckButton/styles/focus = SubResource(\"StyleBoxFlat_k7wcw\")\nCheckButton/styles/hover = SubResource(\"StyleBoxFlat_j786n\")\nCheckButton/styles/hover_pressed = SubResource(\"StyleBoxFlat_viauy\")\nCheckButton/styles/normal = SubResource(\"StyleBoxFlat_ygru1\")\nCheckButton/styles/pressed = SubResource(\"StyleBoxFlat_h750t\")\nCollapsibleContainer/base_type = &\"VBoxContainer\"\nCollapsibleContainer/icons/arrow_normal = ExtResource(\"3_l2cu4\")\nColorPicker/constants/h_width = 28\nColorPicker/constants/margin = 8\nColorPickerButton/styles/disabled = null\nColorPickerButton/styles/focus = null\nColorPickerButton/styles/hover = SubResource(\"33\")\nColorPickerButton/styles/normal = SubResource(\"34\")\nColorPickerButton/styles/pressed = SubResource(\"35\")\nFoldableContainer/colors/collapsed_font_color = Color(0.28627452, 0.44313726, 0.6, 1)\nFoldableContainer/colors/font_color = Color(0.28627452, 0.44313726, 0.6, 1)\nFoldableContainer/colors/hover_font_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\nFoldableContainer/styles/focus = SubResource(\"StyleBoxFlat_504p6\")\nFoldableContainer/styles/panel = SubResource(\"StyleBoxFlat_mihib\")\nFoldableContainer/styles/title_collapsed_hover_panel = SubResource(\"StyleBoxFlat_yin2u\")\nFoldableContainer/styles/title_collapsed_panel = SubResource(\"StyleBoxFlat_ttqs8\")\nFoldableContainer/styles/title_hover_panel = SubResource(\"StyleBoxFlat_wdt2l\")\nFoldableContainer/styles/title_panel = SubResource(\"StyleBoxFlat_6cw85\")\nGraphEdit/colors/activity = Color(0.184314, 0.396078, 0.533333, 1)\nGraphEdit/colors/grid_major = Color(1, 1, 1, 0.15)\nGraphEdit/colors/grid_minor = Color(1, 1, 1, 0.07)\nGraphEdit/colors/selection_fill = Color(0.184314, 0.396078, 0.533333, 0.3)\nGraphEdit/colors/selection_stroke = Color(0.184314, 0.396078, 0.533333, 0.8)\nGraphNode/colors/resizer_color = Color(1, 1, 1, 0.7)\nHScrollBar/styles/grabber = SubResource(\"StyleBoxFlat_ri1fl\")\nHScrollBar/styles/grabber_highlight = SubResource(\"StyleBoxFlat_q3k4c\")\nHScrollBar/styles/grabber_pressed = SubResource(\"StyleBoxFlat_l27bo\")\nHScrollBar/styles/scroll = SubResource(\"StyleBoxFlat_1emgw\")\nHScrollBar/styles/scroll_focus = SubResource(\"StyleBoxFlat_ktbsq\")\nHSeparator/styles/separator = SubResource(\"81\")\nHSlider/styles/grabber_area = SubResource(\"86\")\nHSlider/styles/grabber_area_highlight = SubResource(\"87\")\nHSlider/styles/slider = SubResource(\"88\")\nHeaderSmall/font_sizes/font_size = 18\nIcons/colors/modulate_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\nItemList/colors/font_color = Color(0.28627452, 0.44313726, 0.6, 1)\nItemList/colors/font_hovered_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\nItemList/colors/guide_color = Color(1, 1, 1, 0.05)\nItemList/styles/cursor = SubResource(\"94\")\nItemList/styles/cursor_unfocused = SubResource(\"94\")\nItemList/styles/panel = SubResource(\"StyleBoxFlat_4ngk1\")\nItemList/styles/selected = SubResource(\"95\")\nItemList/styles/selected_focus = SubResource(\"96\")\nLabel/colors/font_color = Color(0.28627452, 0.44313726, 0.6, 1)\nLabel/styles/normal = SubResource(\"StyleBoxEmpty_u871w\")\nLayerFrameButton/base_type = &\"CelButton\"\nLayerFrameButton/styles/pressed = SubResource(\"StyleBoxFlat_o72qi\")\nLineEdit/colors/clear_button_color = Color(0.77832, 0.77832, 0.77832, 1)\nLineEdit/colors/clear_button_color_pressed = Color(0.184314, 0.396078, 0.533333, 1)\nLineEdit/colors/font_color = Color(0.28627452, 0.44313726, 0.6, 1)\nLineEdit/colors/font_uneditable_color = Color(0.28627452, 0.44313726, 0.6, 0.5)\nLineEdit/colors/selection_color = Color(0.184314, 0.396078, 0.533333, 0.4)\nLineEdit/styles/focus = SubResource(\"3\")\nLineEdit/styles/normal = SubResource(\"5\")\nLineEdit/styles/read_only = SubResource(\"2\")\nLinkButton/styles/focus = SubResource(\"97\")\nMarginContainer/constants/margin_bottom = 2\nMarginContainer/constants/margin_left = 8\nMarginContainer/constants/margin_right = 8\nMarginContainer/constants/margin_top = 2\nMenuBar/colors/font_color = Color(0.28627452, 0.44313726, 0.6, 1)\nMenuBar/colors/font_disabled_color = Color(0.28627452, 0.44313726, 0.6, 0.5)\nMenuBar/colors/font_hover_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\nMenuBar/colors/font_pressed_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\nMenuButton/colors/font_color = Color(0.28627452, 0.44313726, 0.6, 1)\nMenuButton/colors/font_disabled_color = Color(0.28627452, 0.44313726, 0.6, 0.5)\nMenuButton/colors/font_hover_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\nMenuButton/colors/font_pressed_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\nMisc/colors/clear_color = Color(0.85882354, 0.89411765, 0.9411765, 1)\nOptionButton/colors/font_color = Color(0.28627452, 0.44313726, 0.6, 1)\nOptionButton/colors/font_disabled_color = Color(0.28627452, 0.44313726, 0.6, 0.5)\nPanel/styles/panel = SubResource(\"103\")\nPanelContainer/styles/panel = SubResource(\"104\")\nPopupMenu/colors/font_color = Color(0.28627452, 0.44313726, 0.6, 1)\nPopupMenu/colors/font_disabled_color = Color(0.28627452, 0.44313726, 0.6, 0.5)\nPopupMenu/colors/font_hover_color = Color(0.28235295, 0.29411766, 0.40784314, 1)\nPopupMenu/icons/radio_unchecked = ExtResource(\"1_ykufr\")\nPopupMenu/icons/radio_unchecked_disabled = ExtResource(\"1_ykufr\")\nPopupMenu/icons/unchecked = ExtResource(\"2_chxkv\")\nPopupMenu/icons/unchecked_disabled = ExtResource(\"2_chxkv\")\nPopupMenu/styles/hover = SubResource(\"112\")\nPopupMenu/styles/labeled_separator_left = SubResource(\"113\")\nPopupMenu/styles/labeled_separator_right = SubResource(\"114\")\nPopupMenu/styles/panel = SubResource(\"105\")\nPopupMenu/styles/separator = SubResource(\"115\")\nPopupPanel/styles/panel = SubResource(\"StyleBoxFlat_fc11h\")\nProgressBar/colors/font_color = Color(0.28627452, 0.44313726, 0.6, 1)\nRichTextLabel/colors/default_color = Color(0.77832, 0.77832, 0.77832, 1)\nRichTextLabel/styles/focus = SubResource(\"123\")\nRichTextLabel/styles/normal = SubResource(\"52\")\nRulerButton/base_type = &\"Button\"\nRulerButton/styles/disabled = SubResource(\"StyleBoxFlat_co58r\")\nRulerButton/styles/focus = SubResource(\"1\")\nRulerButton/styles/hover = SubResource(\"1\")\nRulerButton/styles/normal = SubResource(\"1\")\nRulerButton/styles/pressed = SubResource(\"1\")\nTabBar/colors/font_disabled_color = Color(0.28627452, 0.44313726, 0.6, 0.5)\nTabBar/colors/font_selected_color = Color(0.28627452, 0.44313726, 0.6, 1)\nTabBar/colors/font_unselected_color = Color(0.28627452, 0.44313726, 0.6, 1)\nTabBar/styles/tab_disabled = SubResource(\"StyleBoxFlat_fewc7\")\nTabBar/styles/tab_focus = SubResource(\"StyleBoxFlat_bxstr\")\nTabBar/styles/tab_hovered = SubResource(\"StyleBoxFlat_dfms8\")\nTabBar/styles/tab_selected = SubResource(\"StyleBoxFlat_msbem\")\nTabBar/styles/tab_unselected = SubResource(\"StyleBoxFlat_n4ubj\")\nTabContainer/colors/font_disabled_color = Color(0.28627452, 0.44313726, 0.6, 0.5)\nTabContainer/colors/font_selected_color = Color(0.28627452, 0.44313726, 0.6, 1)\nTabContainer/colors/font_unselected_color = Color(0.28627452, 0.44313726, 0.6, 1)\nTabContainer/constants/side_margin = 0\nTabContainer/styles/panel = SubResource(\"StyleBoxFlat_jssey\")\nTabContainer/styles/tab_disabled = SubResource(\"StyleBoxFlat_fewc7\")\nTabContainer/styles/tab_focus = SubResource(\"StyleBoxFlat_bxstr\")\nTabContainer/styles/tab_hovered = SubResource(\"StyleBoxFlat_dfms8\")\nTabContainer/styles/tab_selected = SubResource(\"StyleBoxFlat_msbem\")\nTabContainer/styles/tab_unselected = SubResource(\"StyleBoxFlat_n4ubj\")\nTabContainer/styles/tabbar_background = SubResource(\"StyleBoxEmpty_o56ri\")\nTextEdit/colors/background_color = Color(0, 0, 0, 0)\nTextEdit/colors/caret_background_color = Color(0, 0, 0, 1)\nTextEdit/colors/caret_color = Color(0.77832, 0.77832, 0.77832, 1)\nTextEdit/colors/current_line_color = Color(0.25, 0.25, 0.26, 0.8)\nTextEdit/colors/font_color = Color(0.28627452, 0.44313726, 0.6, 1)\nTextEdit/colors/font_uneditable_color = Color(0.28627452, 0.44313726, 0.6, 0.5)\nTextEdit/colors/selection_color = Color(0.184314, 0.396078, 0.533333, 0.4)\nTextEdit/colors/word_highlighted_color = Color(0.8, 0.9, 0.9, 0.15)\nTextEdit/styles/focus = SubResource(\"4\")\nTextEdit/styles/normal = SubResource(\"5\")\nTextEdit/styles/read_only = SubResource(\"2\")\nTooltipLabel/colors/font_color = Color(0.28627452, 0.44313726, 0.6, 1)\nTooltipPanel/styles/panel = SubResource(\"151\")\nTree/colors/children_hl_line_color = Color(0.28627452, 0.44313726, 0.6, 0.15)\nTree/colors/custom_button_font_highlight = Color(0.866992, 0.866992, 0.866992, 1)\nTree/colors/drop_position_color = Color(0.184314, 0.396078, 0.533333, 1)\nTree/colors/font_color = Color(0.28627452, 0.44313726, 0.6, 1)\nTree/colors/guide_color = Color(1, 1, 1, 0.05)\nTree/colors/parent_hl_line_color = Color(0.28627452, 0.44313726, 0.6, 0.15)\nTree/colors/relationship_line_color = Color(0.28627452, 0.44313726, 0.6, 0.1)\nTree/colors/title_button_color = Color(0.77832, 0.77832, 0.77832, 1)\nTree/constants/children_hl_line_width = 2\nTree/constants/draw_relationship_lines = 1\nTree/constants/parent_hl_line_width = 2\nTree/constants/scroll_border = 40\nTree/icons/unchecked = ExtResource(\"2_chxkv\")\nTree/styles/button_pressed = SubResource(\"156\")\nTree/styles/cursor = SubResource(\"157\")\nTree/styles/cursor_unfocused = SubResource(\"157\")\nTree/styles/custom_button = SubResource(\"158\")\nTree/styles/custom_button_hover = SubResource(\"5\")\nTree/styles/custom_button_pressed = SubResource(\"159\")\nTree/styles/panel = SubResource(\"StyleBoxFlat_tcenw\")\nTree/styles/selected = SubResource(\"95\")\nTree/styles/selected_focus = SubResource(\"96\")\nTree/styles/title_button_hover = SubResource(\"161\")\nTree/styles/title_button_normal = SubResource(\"161\")\nTree/styles/title_button_pressed = SubResource(\"161\")\nVScrollBar/styles/grabber = SubResource(\"StyleBoxFlat_ri1fl\")\nVScrollBar/styles/grabber_highlight = SubResource(\"StyleBoxFlat_q3k4c\")\nVScrollBar/styles/grabber_pressed = SubResource(\"StyleBoxFlat_l27bo\")\nVScrollBar/styles/scroll = SubResource(\"StyleBoxFlat_bbug8\")\nVScrollBar/styles/scroll_focus = SubResource(\"StyleBoxFlat_ktbsq\")\nVSeparator/styles/separator = SubResource(\"167\")\nVSlider/styles/grabber_area = SubResource(\"168\")\nVSlider/styles/grabber_area_highlight = SubResource(\"169\")\nVSlider/styles/slider = SubResource(\"170\")\nValueSlider/base_type = &\"TextureProgressBar\"\nValueSlider/colors/progress_color = Color(0.6666667, 0.8, 0.972549, 1)\nValueSlider/colors/under_color = Color(0.90588236, 0.94509804, 0.96862745, 1)\nValueSlider/icons/arrow_hover = ExtResource(\"4_0jf0k\")\nValueSlider/icons/arrow_normal = ExtResource(\"3_l2cu4\")\nValueSlider/icons/arrow_pressed = ExtResource(\"5_fscw0\")\nValueSlider/icons/texture_over = null\nValueSlider/icons/texture_progress = ExtResource(\"6_nowvd\")\nValueSlider/icons/texture_under = ExtResource(\"6_nowvd\")\nWindow/colors/title_color = Color(0.28627452, 0.44313726, 0.6, 1)\nWindow/constants/resize_margin = 16\nWindow/constants/title_height = 24\nWindow/styles/embedded_border = SubResource(\"StyleBoxFlat_pgljm\")\nWindow/styles/embedded_unfocused_border = SubResource(\"StyleBoxFlat_wmfk1\")\n"
  },
  {
    "path": "assets/themes/purple/theme.tres",
    "content": "[gd_resource type=\"Theme\" format=3 uid=\"uid://cr0esjqwvlt0v\"]\n\n[ext_resource type=\"Texture2D\" uid=\"uid://brdgp0y4tarar\" path=\"res://assets/graphics/misc/radio_unpressed.png\" id=\"1_viku8\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ybfsxkc2qap7\" path=\"res://assets/graphics/misc/checkbox_unpressed.png\" id=\"2_nk0px\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ct8wn8m6x4m54\" path=\"res://assets/graphics/misc/value_arrow.svg\" id=\"3_nmrql\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bq8h66v4ie8xl\" path=\"res://assets/graphics/misc/value_arrow_hover.svg\" id=\"4_pf5sq\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://hhxenhteahv6\" path=\"res://assets/graphics/misc/value_arrow_press.svg\" id=\"5_qn8tt\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://c7u0yofrpm50a\" path=\"res://assets/graphics/misc/value_slider.png\" id=\"6_txfxb\"]\n[ext_resource type=\"FontFile\" uid=\"uid://cvc4lelf6hl7x\" path=\"res://assets/fonts/Roboto-Regular.ttf\" id=\"7_pufvv\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_755mo\"]\ncontent_margin_left = 8.0\ncontent_margin_top = 8.0\ncontent_margin_right = 8.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.38431373, 0.23137255, 0.47058824, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\n\n[sub_resource type=\"StyleBoxFlat\" id=\"23\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_kpwev\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.652549, 0.46117648, 0.6933333, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_nv6tl\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.47843137, 0.3019608, 0.5568628, 0.5)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_t0f5f\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_1qcnj\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.47843137, 0.3019608, 0.5568628, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_8hww6\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.47843137, 0.3019608, 0.5568628, 0.5)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_a57y0\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.38431373, 0.23137255, 0.47058824, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_t43bd\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.61960787, 0.4, 0.70980394, 1)\nborder_width_left = 3\nborder_width_top = 3\nborder_width_right = 3\nborder_width_bottom = 3\nborder_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_lbyuh\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4dymj\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4jbvl\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_eoilh\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_dr6kc\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_8hsnf\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_d140b\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_k7wcw\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_j786n\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_viauy\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ygru1\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_h750t\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"33\"]\nbg_color = Color(0.768627, 0.768627, 0.768627, 1)\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"34\"]\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"35\"]\nbg_color = Color(0.2, 0.2, 0.2, 1)\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_504p6\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.602353, 0.602353, 0.602353, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_mihib\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 2.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.38431373, 0.23137255, 0.47058824, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_yin2u\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.47843137, 0.3019608, 0.5568628, 0.5)\nborder_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ttqs8\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_wdt2l\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.47843137, 0.3019608, 0.5568628, 0.5)\nborder_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_6cw85\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ri1fl\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.47843137, 0.3019608, 0.5568628, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_q3k4c\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.634902, 0.51137257, 0.68980396, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_l27bo\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.5827451, 0.4415686, 0.6454902, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_1emgw\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 4.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.6)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ktbsq\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(1, 1, 1, 0.75)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxLine\" id=\"81\"]\ncolor = Color(1, 1, 1, 0.1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"86\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.333333, 0.333333, 0.333333, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"87\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.333333, 0.333333, 0.333333, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"88\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.0666667, 0.0666667, 0.0666667, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"94\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.113281, 0.113281, 0.113281, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(1, 1, 1, 0.2)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4ngk1\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"95\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.47843137, 0.3019608, 0.5568628, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"96\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.47843137, 0.3019608, 0.5568628, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"StyleBoxEmpty_u871w\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_o72qi\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.47843137, 0.3019608, 0.5568628, 1)\nborder_width_left = 3\nborder_width_top = 3\nborder_width_right = 3\nborder_width_bottom = 3\nborder_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"3\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"5\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"2\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"97\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"103\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"104\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 2.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.38431373, 0.23137255, 0.47058824, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"112\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.47843137, 0.3019608, 0.5568628, 0.5)\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\n\n[sub_resource type=\"StyleBoxLine\" id=\"113\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 7.0\n\n[sub_resource type=\"StyleBoxLine\" id=\"114\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_end = 7.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"105\"]\ncontent_margin_left = 8.0\ncontent_margin_top = 8.0\ncontent_margin_right = 8.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.334961, 0.334961, 0.334961, 1)\nshadow_color = Color(0, 0, 0, 0.3)\nshadow_size = 4\n\n[sub_resource type=\"StyleBoxLine\" id=\"115\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 7.0\ngrow_end = 7.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_fc11h\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"123\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"52\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_co58r\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.47843137, 0.3019608, 0.5568628, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"1\"]\nbg_color = Color(0.47843137, 0.3019608, 0.5568628, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_fewc7\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.3)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_bxstr\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_dfms8\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.3)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_msbem\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\nborder_width_top = 2\nborder_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_n4ubj\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.18392158, 0.13176471, 0.23882353, 1)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_jssey\"]\nbg_color = Color(0.38431373, 0.23137255, 0.47058824, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"StyleBoxEmpty_o56ri\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 0.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 0.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"4\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"151\"]\ncontent_margin_left = 1.0\ncontent_margin_top = 1.0\ncontent_margin_right = 1.0\ncontent_margin_bottom = 1.0\nbg_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\nshadow_color = Color(0, 0, 0, 0.3)\nshadow_size = 4\n\n[sub_resource type=\"StyleBoxFlat\" id=\"156\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"157\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.113281, 0.113281, 0.113281, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"158\"]\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"159\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_tcenw\"]\nbg_color = Color(0.38431373, 0.23137255, 0.47058824, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"161\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_bbug8\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 0.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.1, 0.1, 0.1, 0.6)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxLine\" id=\"167\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 0.0\ngrow_end = 0.0\nvertical = true\n\n[sub_resource type=\"StyleBoxFlat\" id=\"168\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"169\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"170\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_pgljm\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 28.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.23921569, 0.14117648, 0.27450982, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 4.0\nexpand_margin_top = 28.0\nexpand_margin_right = 4.0\nexpand_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_wmfk1\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 28.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.4, 0.4, 0.4, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 4.0\nexpand_margin_top = 28.0\nexpand_margin_right = 4.0\nexpand_margin_bottom = 4.0\n\n[resource]\nresource_name = \"Purple\"\ndefault_font = ExtResource(\"7_pufvv\")\ndefault_font_size = 16\nAcceptDialog/styles/panel = SubResource(\"StyleBoxFlat_755mo\")\nBoxContainer/constants/separation = 4\nButton/colors/font_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nButton/colors/font_disabled_color = Color(0.68235296, 0.44705883, 0.8156863, 0.5)\nButton/colors/font_focus_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\nButton/colors/font_hover_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\nButton/colors/font_hover_pressed_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\nButton/colors/font_pressed_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\nButton/colors/icon_color_pressed = Color(1, 1, 1, 1)\nButton/colors/icon_disabled_color = Color(0.68235296, 0.44705883, 0.8156863, 0.5)\nButton/colors/icon_hover_color = Color(0.8709804, 0.7035294, 0.9066667, 1)\nButton/colors/icon_hover_pressed_color = Color(0.852549, 0.6611765, 0.8933333, 1)\nButton/colors/icon_normal_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\nButton/colors/icon_pressed_color = Color(0.852549, 0.6611765, 0.8933333, 1)\nButton/styles/disabled = SubResource(\"23\")\nButton/styles/focus = SubResource(\"StyleBoxFlat_kpwev\")\nButton/styles/hover = SubResource(\"StyleBoxFlat_nv6tl\")\nButton/styles/normal = SubResource(\"23\")\nButton/styles/pressed = SubResource(\"StyleBoxFlat_t0f5f\")\nCelButton/base_type = &\"Button\"\nCelButton/styles/guide = SubResource(\"StyleBoxFlat_1qcnj\")\nCelButton/styles/hover = SubResource(\"StyleBoxFlat_8hww6\")\nCelButton/styles/normal = SubResource(\"StyleBoxFlat_a57y0\")\nCelButton/styles/pressed = SubResource(\"StyleBoxFlat_t43bd\")\nCheckBox/icons/radio_unchecked = ExtResource(\"1_viku8\")\nCheckBox/icons/radio_unchecked_disabled = ExtResource(\"1_viku8\")\nCheckBox/icons/unchecked = ExtResource(\"2_nk0px\")\nCheckBox/icons/unchecked_disabled = ExtResource(\"2_nk0px\")\nCheckBox/styles/disabled = SubResource(\"StyleBoxFlat_lbyuh\")\nCheckBox/styles/focus = SubResource(\"StyleBoxFlat_4dymj\")\nCheckBox/styles/hover = SubResource(\"StyleBoxFlat_4jbvl\")\nCheckBox/styles/hover_pressed = SubResource(\"StyleBoxFlat_eoilh\")\nCheckBox/styles/normal = SubResource(\"StyleBoxFlat_dr6kc\")\nCheckBox/styles/pressed = SubResource(\"StyleBoxFlat_8hsnf\")\nCheckButton/styles/disabled = SubResource(\"StyleBoxFlat_d140b\")\nCheckButton/styles/focus = SubResource(\"StyleBoxFlat_k7wcw\")\nCheckButton/styles/hover = SubResource(\"StyleBoxFlat_j786n\")\nCheckButton/styles/hover_pressed = SubResource(\"StyleBoxFlat_viauy\")\nCheckButton/styles/normal = SubResource(\"StyleBoxFlat_ygru1\")\nCheckButton/styles/pressed = SubResource(\"StyleBoxFlat_h750t\")\nCollapsibleContainer/base_type = &\"VBoxContainer\"\nCollapsibleContainer/icons/arrow_normal = ExtResource(\"3_nmrql\")\nColorPicker/constants/h_width = 28\nColorPicker/constants/margin = 8\nColorPickerButton/styles/disabled = null\nColorPickerButton/styles/focus = null\nColorPickerButton/styles/hover = SubResource(\"33\")\nColorPickerButton/styles/normal = SubResource(\"34\")\nColorPickerButton/styles/pressed = SubResource(\"35\")\nFoldableContainer/colors/collapsed_font_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nFoldableContainer/colors/font_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nFoldableContainer/colors/hover_font_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\nFoldableContainer/styles/focus = SubResource(\"StyleBoxFlat_504p6\")\nFoldableContainer/styles/panel = SubResource(\"StyleBoxFlat_mihib\")\nFoldableContainer/styles/title_collapsed_hover_panel = SubResource(\"StyleBoxFlat_yin2u\")\nFoldableContainer/styles/title_collapsed_panel = SubResource(\"StyleBoxFlat_ttqs8\")\nFoldableContainer/styles/title_hover_panel = SubResource(\"StyleBoxFlat_wdt2l\")\nFoldableContainer/styles/title_panel = SubResource(\"StyleBoxFlat_6cw85\")\nGraphEdit/colors/activity = Color(0.184314, 0.396078, 0.533333, 1)\nGraphEdit/colors/grid_major = Color(1, 1, 1, 0.15)\nGraphEdit/colors/grid_minor = Color(1, 1, 1, 0.07)\nGraphEdit/colors/selection_fill = Color(0.184314, 0.396078, 0.533333, 0.3)\nGraphEdit/colors/selection_stroke = Color(0.184314, 0.396078, 0.533333, 0.8)\nGraphNode/colors/resizer_color = Color(1, 1, 1, 0.7)\nHScrollBar/styles/grabber = SubResource(\"StyleBoxFlat_ri1fl\")\nHScrollBar/styles/grabber_highlight = SubResource(\"StyleBoxFlat_q3k4c\")\nHScrollBar/styles/grabber_pressed = SubResource(\"StyleBoxFlat_l27bo\")\nHScrollBar/styles/scroll = SubResource(\"StyleBoxFlat_1emgw\")\nHScrollBar/styles/scroll_focus = SubResource(\"StyleBoxFlat_ktbsq\")\nHSeparator/styles/separator = SubResource(\"81\")\nHSlider/styles/grabber_area = SubResource(\"86\")\nHSlider/styles/grabber_area_highlight = SubResource(\"87\")\nHSlider/styles/slider = SubResource(\"88\")\nHeaderSmall/font_sizes/font_size = 18\nIcons/colors/modulate_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\nItemList/colors/font_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nItemList/colors/font_hovered_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\nItemList/colors/guide_color = Color(1, 1, 1, 0.05)\nItemList/styles/cursor = SubResource(\"94\")\nItemList/styles/cursor_unfocused = SubResource(\"94\")\nItemList/styles/panel = SubResource(\"StyleBoxFlat_4ngk1\")\nItemList/styles/selected = SubResource(\"95\")\nItemList/styles/selected_focus = SubResource(\"96\")\nLabel/colors/font_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nLabel/styles/normal = SubResource(\"StyleBoxEmpty_u871w\")\nLayerFrameButton/base_type = &\"CelButton\"\nLayerFrameButton/styles/pressed = SubResource(\"StyleBoxFlat_o72qi\")\nLineEdit/colors/clear_button_color = Color(0.77832, 0.77832, 0.77832, 1)\nLineEdit/colors/clear_button_color_pressed = Color(0.184314, 0.396078, 0.533333, 1)\nLineEdit/colors/font_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nLineEdit/colors/font_uneditable_color = Color(0.68235296, 0.44705883, 0.8156863, 0.5)\nLineEdit/colors/selection_color = Color(0.184314, 0.396078, 0.533333, 0.4)\nLineEdit/styles/focus = SubResource(\"3\")\nLineEdit/styles/normal = SubResource(\"5\")\nLineEdit/styles/read_only = SubResource(\"2\")\nLinkButton/styles/focus = SubResource(\"97\")\nMarginContainer/constants/margin_bottom = 2\nMarginContainer/constants/margin_left = 8\nMarginContainer/constants/margin_right = 8\nMarginContainer/constants/margin_top = 2\nMenuBar/colors/font_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nMenuBar/colors/font_disabled_color = Color(0.68235296, 0.44705883, 0.8156863, 0.5)\nMenuBar/colors/font_hover_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\nMenuBar/colors/font_pressed_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\nMenuButton/colors/font_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nMenuButton/colors/font_disabled_color = Color(0.68235296, 0.44705883, 0.8156863, 0.5)\nMenuButton/colors/font_hover_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\nMenuButton/colors/font_pressed_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\nMisc/colors/clear_color = Color(0.38431373, 0.23137255, 0.47058824, 1)\nOptionButton/colors/font_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nOptionButton/colors/font_disabled_color = Color(0.68235296, 0.44705883, 0.8156863, 0.5)\nPanel/styles/panel = SubResource(\"103\")\nPanelContainer/styles/panel = SubResource(\"104\")\nPopupMenu/colors/font_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nPopupMenu/colors/font_disabled_color = Color(0.68235296, 0.44705883, 0.8156863, 0.5)\nPopupMenu/colors/font_hover_color = Color(0.8156863, 0.5764706, 0.8666667, 1)\nPopupMenu/icons/radio_unchecked = ExtResource(\"1_viku8\")\nPopupMenu/icons/radio_unchecked_disabled = ExtResource(\"1_viku8\")\nPopupMenu/icons/unchecked = ExtResource(\"2_nk0px\")\nPopupMenu/icons/unchecked_disabled = ExtResource(\"2_nk0px\")\nPopupMenu/styles/hover = SubResource(\"112\")\nPopupMenu/styles/labeled_separator_left = SubResource(\"113\")\nPopupMenu/styles/labeled_separator_right = SubResource(\"114\")\nPopupMenu/styles/panel = SubResource(\"105\")\nPopupMenu/styles/separator = SubResource(\"115\")\nPopupPanel/styles/panel = SubResource(\"StyleBoxFlat_fc11h\")\nProgressBar/colors/font_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nRichTextLabel/colors/default_color = Color(0.77832, 0.77832, 0.77832, 1)\nRichTextLabel/styles/focus = SubResource(\"123\")\nRichTextLabel/styles/normal = SubResource(\"52\")\nRulerButton/base_type = &\"Button\"\nRulerButton/styles/disabled = SubResource(\"StyleBoxFlat_co58r\")\nRulerButton/styles/focus = SubResource(\"1\")\nRulerButton/styles/hover = SubResource(\"1\")\nRulerButton/styles/normal = SubResource(\"1\")\nRulerButton/styles/pressed = SubResource(\"1\")\nTabBar/colors/font_disabled_color = Color(0.68235296, 0.44705883, 0.8156863, 0.5)\nTabBar/colors/font_selected_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nTabBar/colors/font_unselected_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nTabBar/styles/tab_disabled = SubResource(\"StyleBoxFlat_fewc7\")\nTabBar/styles/tab_focus = SubResource(\"StyleBoxFlat_bxstr\")\nTabBar/styles/tab_hovered = SubResource(\"StyleBoxFlat_dfms8\")\nTabBar/styles/tab_selected = SubResource(\"StyleBoxFlat_msbem\")\nTabBar/styles/tab_unselected = SubResource(\"StyleBoxFlat_n4ubj\")\nTabContainer/colors/font_disabled_color = Color(0.68235296, 0.44705883, 0.8156863, 0.5)\nTabContainer/colors/font_selected_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nTabContainer/colors/font_unselected_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nTabContainer/constants/side_margin = 0\nTabContainer/styles/panel = SubResource(\"StyleBoxFlat_jssey\")\nTabContainer/styles/tab_disabled = SubResource(\"StyleBoxFlat_fewc7\")\nTabContainer/styles/tab_focus = SubResource(\"StyleBoxFlat_bxstr\")\nTabContainer/styles/tab_hovered = SubResource(\"StyleBoxFlat_dfms8\")\nTabContainer/styles/tab_selected = SubResource(\"StyleBoxFlat_msbem\")\nTabContainer/styles/tab_unselected = SubResource(\"StyleBoxFlat_n4ubj\")\nTabContainer/styles/tabbar_background = SubResource(\"StyleBoxEmpty_o56ri\")\nTextEdit/colors/background_color = Color(0, 0, 0, 0)\nTextEdit/colors/caret_background_color = Color(0, 0, 0, 1)\nTextEdit/colors/caret_color = Color(0.77832, 0.77832, 0.77832, 1)\nTextEdit/colors/current_line_color = Color(0.25, 0.25, 0.26, 0.8)\nTextEdit/colors/font_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nTextEdit/colors/font_uneditable_color = Color(0.68235296, 0.44705883, 0.8156863, 0.5)\nTextEdit/colors/selection_color = Color(0.184314, 0.396078, 0.533333, 0.4)\nTextEdit/colors/word_highlighted_color = Color(0.8, 0.9, 0.9, 0.15)\nTextEdit/styles/focus = SubResource(\"4\")\nTextEdit/styles/normal = SubResource(\"5\")\nTextEdit/styles/read_only = SubResource(\"2\")\nTooltipLabel/colors/font_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nTooltipPanel/styles/panel = SubResource(\"151\")\nTree/colors/children_hl_line_color = Color(0.68235296, 0.44705883, 0.8156863, 0.15)\nTree/colors/custom_button_font_highlight = Color(0.866992, 0.866992, 0.866992, 1)\nTree/colors/drop_position_color = Color(0.184314, 0.396078, 0.533333, 1)\nTree/colors/font_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nTree/colors/guide_color = Color(1, 1, 1, 0.05)\nTree/colors/parent_hl_line_color = Color(0.68235296, 0.44705883, 0.8156863, 0.15)\nTree/colors/relationship_line_color = Color(0.68235296, 0.44705883, 0.8156863, 0.1)\nTree/colors/title_button_color = Color(0.77832, 0.77832, 0.77832, 1)\nTree/constants/children_hl_line_width = 2\nTree/constants/draw_relationship_lines = 1\nTree/constants/parent_hl_line_width = 2\nTree/constants/scroll_border = 40\nTree/icons/unchecked = ExtResource(\"2_nk0px\")\nTree/styles/button_pressed = SubResource(\"156\")\nTree/styles/cursor = SubResource(\"157\")\nTree/styles/cursor_unfocused = SubResource(\"157\")\nTree/styles/custom_button = SubResource(\"158\")\nTree/styles/custom_button_hover = SubResource(\"5\")\nTree/styles/custom_button_pressed = SubResource(\"159\")\nTree/styles/panel = SubResource(\"StyleBoxFlat_tcenw\")\nTree/styles/selected = SubResource(\"95\")\nTree/styles/selected_focus = SubResource(\"96\")\nTree/styles/title_button_hover = SubResource(\"161\")\nTree/styles/title_button_normal = SubResource(\"161\")\nTree/styles/title_button_pressed = SubResource(\"161\")\nVScrollBar/styles/grabber = SubResource(\"StyleBoxFlat_ri1fl\")\nVScrollBar/styles/grabber_highlight = SubResource(\"StyleBoxFlat_q3k4c\")\nVScrollBar/styles/grabber_pressed = SubResource(\"StyleBoxFlat_l27bo\")\nVScrollBar/styles/scroll = SubResource(\"StyleBoxFlat_bbug8\")\nVScrollBar/styles/scroll_focus = SubResource(\"StyleBoxFlat_ktbsq\")\nVSeparator/styles/separator = SubResource(\"167\")\nVSlider/styles/grabber_area = SubResource(\"168\")\nVSlider/styles/grabber_area_highlight = SubResource(\"169\")\nVSlider/styles/slider = SubResource(\"170\")\nValueSlider/base_type = &\"TextureProgressBar\"\nValueSlider/colors/progress_color = Color(0.47843137, 0.3019608, 0.5568628, 1)\nValueSlider/colors/under_color = Color(0.2627451, 0.1882353, 0.34117648, 1)\nValueSlider/icons/arrow_hover = ExtResource(\"4_pf5sq\")\nValueSlider/icons/arrow_normal = ExtResource(\"3_nmrql\")\nValueSlider/icons/arrow_pressed = ExtResource(\"5_qn8tt\")\nValueSlider/icons/texture_over = null\nValueSlider/icons/texture_progress = ExtResource(\"6_txfxb\")\nValueSlider/icons/texture_under = ExtResource(\"6_txfxb\")\nWindow/colors/title_color = Color(0.68235296, 0.44705883, 0.8156863, 1)\nWindow/constants/resize_margin = 16\nWindow/constants/title_height = 24\nWindow/styles/embedded_border = SubResource(\"StyleBoxFlat_pgljm\")\nWindow/styles/embedded_unfocused_border = SubResource(\"StyleBoxFlat_wmfk1\")\n"
  },
  {
    "path": "assets/themes/rose/theme.tres",
    "content": "[gd_resource type=\"Theme\" format=3 uid=\"uid://c08f104157qmd\"]\n\n[ext_resource type=\"Texture2D\" uid=\"uid://brdgp0y4tarar\" path=\"res://assets/graphics/misc/radio_unpressed.png\" id=\"1_pi7ud\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ybfsxkc2qap7\" path=\"res://assets/graphics/misc/checkbox_unpressed.png\" id=\"2_ny05m\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ct8wn8m6x4m54\" path=\"res://assets/graphics/misc/value_arrow.svg\" id=\"3_48fkc\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bq8h66v4ie8xl\" path=\"res://assets/graphics/misc/value_arrow_hover.svg\" id=\"4_oopla\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://hhxenhteahv6\" path=\"res://assets/graphics/misc/value_arrow_press.svg\" id=\"5_vi3xo\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://c7u0yofrpm50a\" path=\"res://assets/graphics/misc/value_slider.png\" id=\"6_ky01u\"]\n[ext_resource type=\"FontFile\" uid=\"uid://cvc4lelf6hl7x\" path=\"res://assets/fonts/Roboto-Regular.ttf\" id=\"7_vp2v7\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_755mo\"]\ncontent_margin_left = 8.0\ncontent_margin_top = 8.0\ncontent_margin_right = 8.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.78431374, 0.3372549, 0.4627451, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\n\n[sub_resource type=\"StyleBoxFlat\" id=\"23\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_kpwev\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.7717647, 0.48627454, 0.5584314, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_nv6tl\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.8745098, 0.43529412, 0.5372549, 0.5)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_t0f5f\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_1qcnj\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.8745098, 0.43529412, 0.5372549, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_8hww6\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.8745098, 0.43529412, 0.5372549, 0.5)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_a57y0\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.78431374, 0.3372549, 0.4627451, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_t43bd\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.75686276, 0.3019608, 0.40784314, 1)\nborder_width_left = 3\nborder_width_top = 3\nborder_width_right = 3\nborder_width_bottom = 3\nborder_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_lbyuh\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4dymj\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4jbvl\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_eoilh\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_dr6kc\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_8hsnf\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_d140b\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_k7wcw\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_j786n\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_viauy\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ygru1\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_h750t\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\ndraw_center = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"33\"]\nbg_color = Color(0.768627, 0.768627, 0.768627, 1)\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"34\"]\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"35\"]\nbg_color = Color(0.2, 0.2, 0.2, 1)\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.686275, 0.686275, 0.686275, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_504p6\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.602353, 0.602353, 0.602353, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_mihib\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 2.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.78431374, 0.3372549, 0.4627451, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_yin2u\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.8745098, 0.43529412, 0.5372549, 0.5)\nborder_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ttqs8\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_wdt2l\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.8745098, 0.43529412, 0.5372549, 0.5)\nborder_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_6cw85\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\nborder_color = Color(1, 1, 1, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ri1fl\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.8745098, 0.43529412, 0.5372549, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_q3k4c\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.9121569, 0.60470587, 0.67607844, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_l27bo\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.89960784, 0.5482353, 0.62980396, 1)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_1emgw\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 4.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.6)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ktbsq\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(1, 1, 1, 0.75)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxLine\" id=\"81\"]\ncolor = Color(1, 1, 1, 0.1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"86\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.333333, 0.333333, 0.333333, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"87\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.333333, 0.333333, 0.333333, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"88\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 2.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.0666667, 0.0666667, 0.0666667, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"94\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.113281, 0.113281, 0.113281, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(1, 1, 1, 0.2)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_4ngk1\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"95\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.8745098, 0.43529412, 0.5372549, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"96\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.8745098, 0.43529412, 0.5372549, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"StyleBoxEmpty_u871w\"]\ncontent_margin_top = 4.0\ncontent_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_o72qi\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.8745098, 0.43529412, 0.5372549, 1)\nborder_width_left = 3\nborder_width_top = 3\nborder_width_right = 3\nborder_width_bottom = 3\nborder_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"3\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"5\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"2\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"97\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"103\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"104\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 2.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 2.0\nbg_color = Color(0.78431374, 0.3372549, 0.4627451, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"112\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.8745098, 0.43529412, 0.5372549, 0.5)\nborder_color = Color(0.0792967, 0.0792967, 0.0792967, 1)\n\n[sub_resource type=\"StyleBoxLine\" id=\"113\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 7.0\n\n[sub_resource type=\"StyleBoxLine\" id=\"114\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_end = 7.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"105\"]\ncontent_margin_left = 8.0\ncontent_margin_top = 8.0\ncontent_margin_right = 8.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.334961, 0.334961, 0.334961, 1)\nshadow_color = Color(0, 0, 0, 0.3)\nshadow_size = 4\n\n[sub_resource type=\"StyleBoxLine\" id=\"115\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 7.0\ngrow_end = 7.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_fc11h\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"123\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"52\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0901961, 0.0901961, 0.0901961, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_co58r\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.8745098, 0.43529412, 0.5372549, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"1\"]\nbg_color = Color(0.8745098, 0.43529412, 0.5372549, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_fewc7\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.3)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_bxstr\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\nborder_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 2.0\nexpand_margin_top = 2.0\nexpand_margin_right = 2.0\nexpand_margin_bottom = 2.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_dfms8\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.1, 0.1, 0.1, 0.3)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_msbem\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\nborder_width_top = 2\nborder_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_n4ubj\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 4.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.45294118, 0.1509804, 0.22784314, 1)\nborder_width_left = 1\nborder_width_right = 1\nborder_color = Color(0.175, 0.175, 0.175, 1)\ncorner_detail = 1\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_jssey\"]\nbg_color = Color(0.78431374, 0.3372549, 0.4627451, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"StyleBoxEmpty_o56ri\"]\ncontent_margin_left = 0.0\ncontent_margin_top = 0.0\ncontent_margin_right = 0.0\ncontent_margin_bottom = 0.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"4\"]\ncontent_margin_left = 6.0\ncontent_margin_top = 4.0\ncontent_margin_right = 6.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\ncorner_radius_top_left = 2\ncorner_radius_top_right = 2\ncorner_radius_bottom_right = 2\ncorner_radius_bottom_left = 2\n\n[sub_resource type=\"StyleBoxFlat\" id=\"151\"]\ncontent_margin_left = 1.0\ncontent_margin_top = 1.0\ncontent_margin_right = 1.0\ncontent_margin_bottom = 1.0\nbg_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\nshadow_color = Color(0, 0, 0, 0.3)\nshadow_size = 4\n\n[sub_resource type=\"StyleBoxFlat\" id=\"156\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"157\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.113281, 0.113281, 0.113281, 1)\ndraw_center = false\nborder_width_left = 1\nborder_width_top = 1\nborder_width_right = 1\nborder_width_bottom = 1\nborder_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"158\"]\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"159\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_tcenw\"]\nbg_color = Color(0.78431374, 0.3372549, 0.4627451, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"161\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 4.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 4.0\nbg_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\nborder_color = Color(0.113281, 0.113281, 0.113281, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_bbug8\"]\ncontent_margin_left = 4.0\ncontent_margin_top = 0.0\ncontent_margin_right = 4.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.1, 0.1, 0.1, 0.6)\ncorner_radius_top_left = 10\ncorner_radius_top_right = 10\ncorner_radius_bottom_right = 10\ncorner_radius_bottom_left = 10\ncorner_detail = 6\n\n[sub_resource type=\"StyleBoxLine\" id=\"167\"]\ncolor = Color(1, 1, 1, 0.1)\ngrow_begin = 0.0\ngrow_end = 0.0\nvertical = true\n\n[sub_resource type=\"StyleBoxFlat\" id=\"168\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"169\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.334961, 0.334961, 0.334961, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"170\"]\ncontent_margin_left = 2.0\ncontent_margin_top = 0.0\ncontent_margin_right = 2.0\ncontent_margin_bottom = 0.0\nbg_color = Color(0.0679686, 0.0679686, 0.0679686, 1)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_pgljm\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 28.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.38039216, 0.15686275, 0.23921569, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 4.0\nexpand_margin_top = 28.0\nexpand_margin_right = 4.0\nexpand_margin_bottom = 4.0\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_wmfk1\"]\ncontent_margin_left = 10.0\ncontent_margin_top = 28.0\ncontent_margin_right = 10.0\ncontent_margin_bottom = 8.0\nbg_color = Color(0.4, 0.4, 0.4, 1)\ncorner_radius_top_left = 3\ncorner_radius_top_right = 3\ncorner_radius_bottom_right = 3\ncorner_radius_bottom_left = 3\ncorner_detail = 5\nexpand_margin_left = 4.0\nexpand_margin_top = 28.0\nexpand_margin_right = 4.0\nexpand_margin_bottom = 4.0\n\n[resource]\nresource_name = \"Rose\"\ndefault_font = ExtResource(\"7_vp2v7\")\ndefault_font_size = 16\nAcceptDialog/styles/panel = SubResource(\"StyleBoxFlat_755mo\")\nBoxContainer/constants/separation = 4\nButton/colors/font_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nButton/colors/font_disabled_color = Color(0.7764706, 0.7764706, 0.7764706, 0.5)\nButton/colors/font_focus_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\nButton/colors/font_hover_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\nButton/colors/font_hover_pressed_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\nButton/colors/font_pressed_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\nButton/colors/icon_color_pressed = Color(1, 1, 1, 1)\nButton/colors/icon_disabled_color = Color(0.7764706, 0.7764706, 0.7764706, 0.5)\nButton/colors/icon_hover_color = Color(0.9752941, 0.7254902, 0.78862745, 1)\nButton/colors/icon_hover_pressed_color = Color(0.9717647, 0.6862745, 0.7584314, 1)\nButton/colors/icon_normal_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\nButton/colors/icon_pressed_color = Color(0.9717647, 0.6862745, 0.7584314, 1)\nButton/styles/disabled = SubResource(\"23\")\nButton/styles/focus = SubResource(\"StyleBoxFlat_kpwev\")\nButton/styles/hover = SubResource(\"StyleBoxFlat_nv6tl\")\nButton/styles/normal = SubResource(\"23\")\nButton/styles/pressed = SubResource(\"StyleBoxFlat_t0f5f\")\nCelButton/base_type = &\"Button\"\nCelButton/styles/guide = SubResource(\"StyleBoxFlat_1qcnj\")\nCelButton/styles/hover = SubResource(\"StyleBoxFlat_8hww6\")\nCelButton/styles/normal = SubResource(\"StyleBoxFlat_a57y0\")\nCelButton/styles/pressed = SubResource(\"StyleBoxFlat_t43bd\")\nCheckBox/icons/radio_unchecked = ExtResource(\"1_pi7ud\")\nCheckBox/icons/radio_unchecked_disabled = ExtResource(\"1_pi7ud\")\nCheckBox/icons/unchecked = ExtResource(\"2_ny05m\")\nCheckBox/icons/unchecked_disabled = ExtResource(\"2_ny05m\")\nCheckBox/styles/disabled = SubResource(\"StyleBoxFlat_lbyuh\")\nCheckBox/styles/focus = SubResource(\"StyleBoxFlat_4dymj\")\nCheckBox/styles/hover = SubResource(\"StyleBoxFlat_4jbvl\")\nCheckBox/styles/hover_pressed = SubResource(\"StyleBoxFlat_eoilh\")\nCheckBox/styles/normal = SubResource(\"StyleBoxFlat_dr6kc\")\nCheckBox/styles/pressed = SubResource(\"StyleBoxFlat_8hsnf\")\nCheckButton/styles/disabled = SubResource(\"StyleBoxFlat_d140b\")\nCheckButton/styles/focus = SubResource(\"StyleBoxFlat_k7wcw\")\nCheckButton/styles/hover = SubResource(\"StyleBoxFlat_j786n\")\nCheckButton/styles/hover_pressed = SubResource(\"StyleBoxFlat_viauy\")\nCheckButton/styles/normal = SubResource(\"StyleBoxFlat_ygru1\")\nCheckButton/styles/pressed = SubResource(\"StyleBoxFlat_h750t\")\nCollapsibleContainer/base_type = &\"VBoxContainer\"\nCollapsibleContainer/icons/arrow_normal = ExtResource(\"3_48fkc\")\nColorPicker/constants/h_width = 28\nColorPicker/constants/margin = 8\nColorPickerButton/styles/disabled = null\nColorPickerButton/styles/focus = null\nColorPickerButton/styles/hover = SubResource(\"33\")\nColorPickerButton/styles/normal = SubResource(\"34\")\nColorPickerButton/styles/pressed = SubResource(\"35\")\nFoldableContainer/colors/collapsed_font_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nFoldableContainer/colors/font_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nFoldableContainer/colors/hover_font_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\nFoldableContainer/styles/focus = SubResource(\"StyleBoxFlat_504p6\")\nFoldableContainer/styles/panel = SubResource(\"StyleBoxFlat_mihib\")\nFoldableContainer/styles/title_collapsed_hover_panel = SubResource(\"StyleBoxFlat_yin2u\")\nFoldableContainer/styles/title_collapsed_panel = SubResource(\"StyleBoxFlat_ttqs8\")\nFoldableContainer/styles/title_hover_panel = SubResource(\"StyleBoxFlat_wdt2l\")\nFoldableContainer/styles/title_panel = SubResource(\"StyleBoxFlat_6cw85\")\nGraphEdit/colors/activity = Color(0.184314, 0.396078, 0.533333, 1)\nGraphEdit/colors/grid_major = Color(1, 1, 1, 0.15)\nGraphEdit/colors/grid_minor = Color(1, 1, 1, 0.07)\nGraphEdit/colors/selection_fill = Color(0.184314, 0.396078, 0.533333, 0.3)\nGraphEdit/colors/selection_stroke = Color(0.184314, 0.396078, 0.533333, 0.8)\nGraphNode/colors/resizer_color = Color(1, 1, 1, 0.7)\nHScrollBar/styles/grabber = SubResource(\"StyleBoxFlat_ri1fl\")\nHScrollBar/styles/grabber_highlight = SubResource(\"StyleBoxFlat_q3k4c\")\nHScrollBar/styles/grabber_pressed = SubResource(\"StyleBoxFlat_l27bo\")\nHScrollBar/styles/scroll = SubResource(\"StyleBoxFlat_1emgw\")\nHScrollBar/styles/scroll_focus = SubResource(\"StyleBoxFlat_ktbsq\")\nHSeparator/styles/separator = SubResource(\"81\")\nHSlider/styles/grabber_area = SubResource(\"86\")\nHSlider/styles/grabber_area_highlight = SubResource(\"87\")\nHSlider/styles/slider = SubResource(\"88\")\nHeaderSmall/font_sizes/font_size = 18\nIcons/colors/modulate_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\nItemList/colors/font_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nItemList/colors/font_hovered_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\nItemList/colors/guide_color = Color(1, 1, 1, 0.05)\nItemList/styles/cursor = SubResource(\"94\")\nItemList/styles/cursor_unfocused = SubResource(\"94\")\nItemList/styles/panel = SubResource(\"StyleBoxFlat_4ngk1\")\nItemList/styles/selected = SubResource(\"95\")\nItemList/styles/selected_focus = SubResource(\"96\")\nLabel/colors/font_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nLabel/styles/normal = SubResource(\"StyleBoxEmpty_u871w\")\nLayerFrameButton/base_type = &\"CelButton\"\nLayerFrameButton/styles/pressed = SubResource(\"StyleBoxFlat_o72qi\")\nLineEdit/colors/clear_button_color = Color(0.77832, 0.77832, 0.77832, 1)\nLineEdit/colors/clear_button_color_pressed = Color(0.184314, 0.396078, 0.533333, 1)\nLineEdit/colors/font_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nLineEdit/colors/font_uneditable_color = Color(0.7764706, 0.7764706, 0.7764706, 0.5)\nLineEdit/colors/selection_color = Color(0.184314, 0.396078, 0.533333, 0.4)\nLineEdit/styles/focus = SubResource(\"3\")\nLineEdit/styles/normal = SubResource(\"5\")\nLineEdit/styles/read_only = SubResource(\"2\")\nLinkButton/styles/focus = SubResource(\"97\")\nMarginContainer/constants/margin_bottom = 2\nMarginContainer/constants/margin_left = 8\nMarginContainer/constants/margin_right = 8\nMarginContainer/constants/margin_top = 2\nMenuBar/colors/font_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nMenuBar/colors/font_disabled_color = Color(0.7764706, 0.7764706, 0.7764706, 0.5)\nMenuBar/colors/font_hover_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\nMenuBar/colors/font_pressed_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\nMenuButton/colors/font_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nMenuButton/colors/font_disabled_color = Color(0.7764706, 0.7764706, 0.7764706, 0.5)\nMenuButton/colors/font_hover_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\nMenuButton/colors/font_pressed_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\nMisc/colors/clear_color = Color(0.78431374, 0.3372549, 0.4627451, 1)\nOptionButton/colors/font_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nOptionButton/colors/font_disabled_color = Color(0.7764706, 0.7764706, 0.7764706, 0.5)\nPanel/styles/panel = SubResource(\"103\")\nPanelContainer/styles/panel = SubResource(\"104\")\nPopupMenu/colors/font_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nPopupMenu/colors/font_disabled_color = Color(0.7764706, 0.7764706, 0.7764706, 0.5)\nPopupMenu/colors/font_hover_color = Color(0.9647059, 0.60784316, 0.69803923, 1)\nPopupMenu/icons/radio_unchecked = ExtResource(\"1_pi7ud\")\nPopupMenu/icons/radio_unchecked_disabled = ExtResource(\"1_pi7ud\")\nPopupMenu/icons/unchecked = ExtResource(\"2_ny05m\")\nPopupMenu/icons/unchecked_disabled = ExtResource(\"2_ny05m\")\nPopupMenu/styles/hover = SubResource(\"112\")\nPopupMenu/styles/labeled_separator_left = SubResource(\"113\")\nPopupMenu/styles/labeled_separator_right = SubResource(\"114\")\nPopupMenu/styles/panel = SubResource(\"105\")\nPopupMenu/styles/separator = SubResource(\"115\")\nPopupPanel/styles/panel = SubResource(\"StyleBoxFlat_fc11h\")\nProgressBar/colors/font_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nRichTextLabel/colors/default_color = Color(0.77832, 0.77832, 0.77832, 1)\nRichTextLabel/styles/focus = SubResource(\"123\")\nRichTextLabel/styles/normal = SubResource(\"52\")\nRulerButton/base_type = &\"Button\"\nRulerButton/styles/disabled = SubResource(\"StyleBoxFlat_co58r\")\nRulerButton/styles/focus = SubResource(\"1\")\nRulerButton/styles/hover = SubResource(\"1\")\nRulerButton/styles/normal = SubResource(\"1\")\nRulerButton/styles/pressed = SubResource(\"1\")\nTabBar/colors/font_disabled_color = Color(0.7764706, 0.7764706, 0.7764706, 0.5)\nTabBar/colors/font_selected_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nTabBar/colors/font_unselected_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nTabBar/styles/tab_disabled = SubResource(\"StyleBoxFlat_fewc7\")\nTabBar/styles/tab_focus = SubResource(\"StyleBoxFlat_bxstr\")\nTabBar/styles/tab_hovered = SubResource(\"StyleBoxFlat_dfms8\")\nTabBar/styles/tab_selected = SubResource(\"StyleBoxFlat_msbem\")\nTabBar/styles/tab_unselected = SubResource(\"StyleBoxFlat_n4ubj\")\nTabContainer/colors/font_disabled_color = Color(0.7764706, 0.7764706, 0.7764706, 0.5)\nTabContainer/colors/font_selected_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nTabContainer/colors/font_unselected_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nTabContainer/constants/side_margin = 0\nTabContainer/styles/panel = SubResource(\"StyleBoxFlat_jssey\")\nTabContainer/styles/tab_disabled = SubResource(\"StyleBoxFlat_fewc7\")\nTabContainer/styles/tab_focus = SubResource(\"StyleBoxFlat_bxstr\")\nTabContainer/styles/tab_hovered = SubResource(\"StyleBoxFlat_dfms8\")\nTabContainer/styles/tab_selected = SubResource(\"StyleBoxFlat_msbem\")\nTabContainer/styles/tab_unselected = SubResource(\"StyleBoxFlat_n4ubj\")\nTabContainer/styles/tabbar_background = SubResource(\"StyleBoxEmpty_o56ri\")\nTextEdit/colors/background_color = Color(0, 0, 0, 0)\nTextEdit/colors/caret_background_color = Color(0, 0, 0, 1)\nTextEdit/colors/caret_color = Color(0.77832, 0.77832, 0.77832, 1)\nTextEdit/colors/current_line_color = Color(0.25, 0.25, 0.26, 0.8)\nTextEdit/colors/font_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nTextEdit/colors/font_uneditable_color = Color(0.7764706, 0.7764706, 0.7764706, 0.5)\nTextEdit/colors/selection_color = Color(0.184314, 0.396078, 0.533333, 0.4)\nTextEdit/colors/word_highlighted_color = Color(0.8, 0.9, 0.9, 0.15)\nTextEdit/styles/focus = SubResource(\"4\")\nTextEdit/styles/normal = SubResource(\"5\")\nTextEdit/styles/read_only = SubResource(\"2\")\nTooltipLabel/colors/font_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nTooltipPanel/styles/panel = SubResource(\"151\")\nTree/colors/children_hl_line_color = Color(0.7764706, 0.7764706, 0.7764706, 0.15)\nTree/colors/custom_button_font_highlight = Color(0.866992, 0.866992, 0.866992, 1)\nTree/colors/drop_position_color = Color(0.184314, 0.396078, 0.533333, 1)\nTree/colors/font_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nTree/colors/guide_color = Color(1, 1, 1, 0.05)\nTree/colors/parent_hl_line_color = Color(0.7764706, 0.7764706, 0.7764706, 0.15)\nTree/colors/relationship_line_color = Color(0.7764706, 0.7764706, 0.7764706, 0.1)\nTree/colors/title_button_color = Color(0.77832, 0.77832, 0.77832, 1)\nTree/constants/children_hl_line_width = 2\nTree/constants/draw_relationship_lines = 1\nTree/constants/parent_hl_line_width = 2\nTree/constants/scroll_border = 40\nTree/icons/unchecked = ExtResource(\"2_ny05m\")\nTree/styles/button_pressed = SubResource(\"156\")\nTree/styles/cursor = SubResource(\"157\")\nTree/styles/cursor_unfocused = SubResource(\"157\")\nTree/styles/custom_button = SubResource(\"158\")\nTree/styles/custom_button_hover = SubResource(\"5\")\nTree/styles/custom_button_pressed = SubResource(\"159\")\nTree/styles/panel = SubResource(\"StyleBoxFlat_tcenw\")\nTree/styles/selected = SubResource(\"95\")\nTree/styles/selected_focus = SubResource(\"96\")\nTree/styles/title_button_hover = SubResource(\"161\")\nTree/styles/title_button_normal = SubResource(\"161\")\nTree/styles/title_button_pressed = SubResource(\"161\")\nVScrollBar/styles/grabber = SubResource(\"StyleBoxFlat_ri1fl\")\nVScrollBar/styles/grabber_highlight = SubResource(\"StyleBoxFlat_q3k4c\")\nVScrollBar/styles/grabber_pressed = SubResource(\"StyleBoxFlat_l27bo\")\nVScrollBar/styles/scroll = SubResource(\"StyleBoxFlat_bbug8\")\nVScrollBar/styles/scroll_focus = SubResource(\"StyleBoxFlat_ktbsq\")\nVSeparator/styles/separator = SubResource(\"167\")\nVSlider/styles/grabber_area = SubResource(\"168\")\nVSlider/styles/grabber_area_highlight = SubResource(\"169\")\nVSlider/styles/slider = SubResource(\"170\")\nValueSlider/base_type = &\"TextureProgressBar\"\nValueSlider/colors/progress_color = Color(0.8745098, 0.43529412, 0.5372549, 1)\nValueSlider/colors/under_color = Color(0.64705884, 0.21568628, 0.3254902, 1)\nValueSlider/icons/arrow_hover = ExtResource(\"4_oopla\")\nValueSlider/icons/arrow_normal = ExtResource(\"3_48fkc\")\nValueSlider/icons/arrow_pressed = ExtResource(\"5_vi3xo\")\nValueSlider/icons/texture_over = null\nValueSlider/icons/texture_progress = ExtResource(\"6_ky01u\")\nValueSlider/icons/texture_under = ExtResource(\"6_ky01u\")\nWindow/colors/title_color = Color(0.7764706, 0.7764706, 0.7764706, 1)\nWindow/constants/resize_margin = 16\nWindow/constants/title_height = 24\nWindow/styles/embedded_border = SubResource(\"StyleBoxFlat_pgljm\")\nWindow/styles/embedded_unfocused_border = SubResource(\"StyleBoxFlat_wmfk1\")\n"
  },
  {
    "path": "crowdin.yml",
    "content": "files:\n  - source: /Translations/Translations.pot\n    translation: /Translations/%locale_with_underscore%.po\n  - source: /installer/*.pot\n    translation: /installer/po/%locale%.po\n"
  },
  {
    "path": "export_presets.cfg",
    "content": "[preset.0]\n\nname=\"Linux 64-bit\"\nplatform=\"Linux\"\nrunnable=true\ndedicated_server=false\ncustom_features=\"\"\nexport_filter=\"exclude\"\nexport_files=PackedStringArray(\"res://Translations/af_ZA.po\", \"res://Translations/vi_VN.po\", \"res://Translations/be_BY.po\", \"res://Translations/bg_BG.po\", \"res://Translations/ca_ES.po\", \"res://Translations/cy_GB.po\", \"res://Translations/en_PT.po\", \"res://Translations/et_EE.po\", \"res://Translations/fil_PH.po\", \"res://Translations/fi_FI.po\", \"res://Translations/ga_IE.po\", \"res://Translations/grc.po\", \"res://Translations/he_IL.po\", \"res://Translations/hi_IN.po\", \"res://Translations/hr_HR.po\", \"res://Translations/is_IS.po\", \"res://Translations/la_LA.po\", \"res://Translations/lt_LT.po\", \"res://Translations/mk_MK.po\", \"res://Translations/ml_IN.po\", \"res://Translations/mr_IN.po\", \"res://Translations/ms_MY.po\", \"res://Translations/no_NO.po\", \"res://Translations/nl_NL.po\", \"res://Translations/si_LK.po\", \"res://Translations/sk_SK.po\", \"res://Translations/sl_SI.po\", \"res://Translations/sq_AL.po\", \"res://Translations/sr_SP.po\", \"res://Translations/sv_SE.po\", \"res://Translations/sw_KE.po\", \"res://Translations/ta_IN.po\", \"res://Translations/th_TH.po\", \"res://Translations/tlh_AA.po\")\ninclude_filter=\"\"\nexclude_filter=\"\"\nexport_path=\"\"\npatches=PackedStringArray()\npatch_delta_encoding=false\npatch_delta_compression_level_zstd=19\npatch_delta_min_reduction=0.1\npatch_delta_include_filters=\"*\"\npatch_delta_exclude_filters=\"\"\nencryption_include_filters=\"\"\nencryption_exclude_filters=\"\"\nseed=0\nencrypt_pck=false\nencrypt_directory=false\nscript_export_mode=2\n\n[preset.0.options]\n\ncustom_template/debug=\"\"\ncustom_template/release=\"\"\ndebug/export_console_wrapper=1\nbinary_format/embed_pck=false\ntexture_format/s3tc_bptc=true\ntexture_format/etc2_astc=false\nshader_baker/enabled=false\nbinary_format/architecture=\"x86_64\"\nssh_remote_deploy/enabled=false\nssh_remote_deploy/host=\"user@host_ip\"\nssh_remote_deploy/port=\"22\"\nssh_remote_deploy/extra_args_ssh=\"\"\nssh_remote_deploy/extra_args_scp=\"\"\nssh_remote_deploy/run_script=\"#!/usr/bin/env bash\nexport DISPLAY=:0\nunzip -o -q \\\"{temp_dir}/{archive_name}\\\" -d \\\"{temp_dir}\\\"\n\\\"{temp_dir}/{exe_name}\\\" {cmd_args}\"\nssh_remote_deploy/cleanup_script=\"#!/usr/bin/env bash\nkill $(pgrep -x -f \\\"{temp_dir}/{exe_name} {cmd_args}\\\")\nrm -rf \\\"{temp_dir}\\\"\"\ntexture_format/bptc=true\ntexture_format/s3tc=true\ntexture_format/etc=false\ntexture_format/etc2=false\nbinary_format/64_bits=true\ntexture_format/no_bptc_fallbacks=true\n\n[preset.1]\n\nname=\"Windows Desktop 64-bit\"\nplatform=\"Windows Desktop\"\nrunnable=true\ndedicated_server=false\ncustom_features=\"\"\nexport_filter=\"exclude\"\nexport_files=PackedStringArray(\"res://Translations/af_ZA.po\", \"res://Translations/vi_VN.po\", \"res://Translations/be_BY.po\", \"res://Translations/bg_BG.po\", \"res://Translations/ca_ES.po\", \"res://Translations/cy_GB.po\", \"res://Translations/en_PT.po\", \"res://Translations/et_EE.po\", \"res://Translations/fil_PH.po\", \"res://Translations/fi_FI.po\", \"res://Translations/ga_IE.po\", \"res://Translations/grc.po\", \"res://Translations/he_IL.po\", \"res://Translations/hi_IN.po\", \"res://Translations/hr_HR.po\", \"res://Translations/is_IS.po\", \"res://Translations/la_LA.po\", \"res://Translations/lt_LT.po\", \"res://Translations/mk_MK.po\", \"res://Translations/ml_IN.po\", \"res://Translations/mr_IN.po\", \"res://Translations/ms_MY.po\", \"res://Translations/no_NO.po\", \"res://Translations/nl_NL.po\", \"res://Translations/si_LK.po\", \"res://Translations/sk_SK.po\", \"res://Translations/sl_SI.po\", \"res://Translations/sq_AL.po\", \"res://Translations/sr_SP.po\", \"res://Translations/sv_SE.po\", \"res://Translations/sw_KE.po\", \"res://Translations/ta_IN.po\", \"res://Translations/th_TH.po\", \"res://Translations/tlh_AA.po\")\ninclude_filter=\"\"\nexclude_filter=\"\"\nexport_path=\"\"\npatches=PackedStringArray()\npatch_delta_encoding=false\npatch_delta_compression_level_zstd=19\npatch_delta_min_reduction=0.1\npatch_delta_include_filters=\"*\"\npatch_delta_exclude_filters=\"\"\nencryption_include_filters=\"\"\nencryption_exclude_filters=\"\"\nseed=0\nencrypt_pck=false\nencrypt_directory=false\nscript_export_mode=2\n\n[preset.1.options]\n\ncustom_template/debug=\"\"\ncustom_template/release=\"\"\ndebug/export_console_wrapper=1\nbinary_format/embed_pck=false\ntexture_format/s3tc_bptc=true\ntexture_format/etc2_astc=false\nshader_baker/enabled=false\nbinary_format/architecture=\"x86_64\"\ncodesign/enable=false\ncodesign/timestamp=true\ncodesign/timestamp_server_url=\"\"\ncodesign/digest_algorithm=1\ncodesign/description=\"\"\ncodesign/custom_options=PackedStringArray()\napplication/modify_resources=true\napplication/icon=\"res://assets/graphics/icons/icon.ico\"\napplication/console_wrapper_icon=\"\"\napplication/icon_interpolation=4\napplication/file_version=\"1.1.9.0\"\napplication/product_version=\"1.1.9.0\"\napplication/company_name=\"Orama Interactive\"\napplication/product_name=\"Pixelorama\"\napplication/file_description=\"Pixelorama - Your free & open-source sprite editor\"\napplication/copyright=\"Orama Interactive and contributors 2019-present\"\napplication/trademarks=\"\"\napplication/export_angle=0\napplication/export_d3d12=0\napplication/d3d12_agility_sdk_multiarch=true\nssh_remote_deploy/enabled=false\nssh_remote_deploy/host=\"user@host_ip\"\nssh_remote_deploy/port=\"22\"\nssh_remote_deploy/extra_args_ssh=\"\"\nssh_remote_deploy/extra_args_scp=\"\"\nssh_remote_deploy/run_script=\"Expand-Archive -LiteralPath '{temp_dir}\\\\{archive_name}' -DestinationPath '{temp_dir}'\n$action = New-ScheduledTaskAction -Execute '{temp_dir}\\\\{exe_name}' -Argument '{cmd_args}'\n$trigger = New-ScheduledTaskTrigger -Once -At 00:00\n$settings = New-ScheduledTaskSettingsSet\n$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings\nRegister-ScheduledTask godot_remote_debug -InputObject $task -Force:$true\nStart-ScheduledTask -TaskName godot_remote_debug\nwhile (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }\nUnregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue\"\nssh_remote_deploy/cleanup_script=\"Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue\nUnregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue\nRemove-Item -Recurse -Force '{temp_dir}'\"\ntexture_format/bptc=true\ntexture_format/s3tc=true\ntexture_format/etc=false\ntexture_format/etc2=false\nbinary_format/64_bits=true\ntexture_format/no_bptc_fallbacks=true\n\n[preset.2]\n\nname=\"Web\"\nplatform=\"Web\"\nrunnable=true\ndedicated_server=false\ncustom_features=\"\"\nexport_filter=\"exclude\"\nexport_files=PackedStringArray(\"res://Translations/af_ZA.po\", \"res://Translations/vi_VN.po\", \"res://Translations/be_BY.po\", \"res://Translations/bg_BG.po\", \"res://Translations/ca_ES.po\", \"res://Translations/cy_GB.po\", \"res://Translations/en_PT.po\", \"res://Translations/et_EE.po\", \"res://Translations/fil_PH.po\", \"res://Translations/fi_FI.po\", \"res://Translations/ga_IE.po\", \"res://Translations/grc.po\", \"res://Translations/he_IL.po\", \"res://Translations/hi_IN.po\", \"res://Translations/hr_HR.po\", \"res://Translations/is_IS.po\", \"res://Translations/la_LA.po\", \"res://Translations/lt_LT.po\", \"res://Translations/mk_MK.po\", \"res://Translations/ml_IN.po\", \"res://Translations/mr_IN.po\", \"res://Translations/ms_MY.po\", \"res://Translations/no_NO.po\", \"res://Translations/nl_NL.po\", \"res://Translations/si_LK.po\", \"res://Translations/sk_SK.po\", \"res://Translations/sl_SI.po\", \"res://Translations/sq_AL.po\", \"res://Translations/sr_SP.po\", \"res://Translations/sv_SE.po\", \"res://Translations/sw_KE.po\", \"res://Translations/ta_IN.po\", \"res://Translations/th_TH.po\", \"res://Translations/tlh_AA.po\")\ninclude_filter=\"\"\nexclude_filter=\"\"\nexport_path=\"\"\npatches=PackedStringArray()\npatch_delta_encoding=false\npatch_delta_compression_level_zstd=19\npatch_delta_min_reduction=0.1\npatch_delta_include_filters=\"*\"\npatch_delta_exclude_filters=\"\"\nencryption_include_filters=\"\"\nencryption_exclude_filters=\"\"\nseed=0\nencrypt_pck=false\nencrypt_directory=false\nscript_export_mode=2\n\n[preset.2.options]\n\ncustom_template/debug=\"\"\ncustom_template/release=\"\"\nvariant/extensions_support=false\nvariant/thread_support=false\nvram_texture_compression/for_desktop=true\nvram_texture_compression/for_mobile=false\nhtml/export_icon=true\nhtml/custom_html_shell=\"\"\nhtml/head_include=\"\"\nhtml/canvas_resize_policy=2\nhtml/focus_canvas_on_start=true\nhtml/experimental_virtual_keyboard=false\nprogressive_web_app/enabled=true\nprogressive_web_app/ensure_cross_origin_isolation_headers=true\nprogressive_web_app/offline_page=\"\"\nprogressive_web_app/display=1\nprogressive_web_app/orientation=0\nprogressive_web_app/icon_144x144=\"\"\nprogressive_web_app/icon_180x180=\"\"\nprogressive_web_app/icon_512x512=\"\"\nprogressive_web_app/background_color=Color(0, 0, 0, 1)\nthreads/emscripten_pool_size=8\nthreads/godot_pool_size=4\n\n[preset.3]\n\nname=\"Windows Desktop 32-bit\"\nplatform=\"Windows Desktop\"\nrunnable=false\ndedicated_server=false\ncustom_features=\"\"\nexport_filter=\"exclude\"\nexport_files=PackedStringArray(\"res://Translations/af_ZA.po\", \"res://Translations/vi_VN.po\", \"res://Translations/be_BY.po\", \"res://Translations/bg_BG.po\", \"res://Translations/ca_ES.po\", \"res://Translations/cy_GB.po\", \"res://Translations/en_PT.po\", \"res://Translations/et_EE.po\", \"res://Translations/fil_PH.po\", \"res://Translations/fi_FI.po\", \"res://Translations/ga_IE.po\", \"res://Translations/grc.po\", \"res://Translations/he_IL.po\", \"res://Translations/hi_IN.po\", \"res://Translations/hr_HR.po\", \"res://Translations/is_IS.po\", \"res://Translations/la_LA.po\", \"res://Translations/lt_LT.po\", \"res://Translations/mk_MK.po\", \"res://Translations/ml_IN.po\", \"res://Translations/mr_IN.po\", \"res://Translations/ms_MY.po\", \"res://Translations/no_NO.po\", \"res://Translations/nl_NL.po\", \"res://Translations/si_LK.po\", \"res://Translations/sk_SK.po\", \"res://Translations/sl_SI.po\", \"res://Translations/sq_AL.po\", \"res://Translations/sr_SP.po\", \"res://Translations/sv_SE.po\", \"res://Translations/sw_KE.po\", \"res://Translations/ta_IN.po\", \"res://Translations/th_TH.po\", \"res://Translations/tlh_AA.po\")\ninclude_filter=\"\"\nexclude_filter=\"\"\nexport_path=\"\"\npatches=PackedStringArray()\npatch_delta_encoding=false\npatch_delta_compression_level_zstd=19\npatch_delta_min_reduction=0.1\npatch_delta_include_filters=\"*\"\npatch_delta_exclude_filters=\"\"\nencryption_include_filters=\"\"\nencryption_exclude_filters=\"\"\nseed=0\nencrypt_pck=false\nencrypt_directory=false\nscript_export_mode=2\n\n[preset.3.options]\n\ncustom_template/debug=\"\"\ncustom_template/release=\"\"\ndebug/export_console_wrapper=1\nbinary_format/embed_pck=false\ntexture_format/s3tc_bptc=true\ntexture_format/etc2_astc=false\nshader_baker/enabled=false\nbinary_format/architecture=\"x86_32\"\ncodesign/enable=false\ncodesign/timestamp=true\ncodesign/timestamp_server_url=\"\"\ncodesign/digest_algorithm=1\ncodesign/description=\"\"\ncodesign/custom_options=PackedStringArray()\napplication/modify_resources=true\napplication/icon=\"res://assets/graphics/icons/icon.ico\"\napplication/console_wrapper_icon=\"\"\napplication/icon_interpolation=4\napplication/file_version=\"1.1.9.0\"\napplication/product_version=\"1.1.9.0\"\napplication/company_name=\"Orama Interactive\"\napplication/product_name=\"Pixelorama\"\napplication/file_description=\"Pixelorama - Your free & open-source sprite editor\"\napplication/copyright=\"Orama Interactive and contributors 2019-present\"\napplication/trademarks=\"\"\napplication/export_angle=0\napplication/export_d3d12=0\napplication/d3d12_agility_sdk_multiarch=true\nssh_remote_deploy/enabled=false\nssh_remote_deploy/host=\"user@host_ip\"\nssh_remote_deploy/port=\"22\"\nssh_remote_deploy/extra_args_ssh=\"\"\nssh_remote_deploy/extra_args_scp=\"\"\nssh_remote_deploy/run_script=\"Expand-Archive -LiteralPath '{temp_dir}\\\\{archive_name}' -DestinationPath '{temp_dir}'\n$action = New-ScheduledTaskAction -Execute '{temp_dir}\\\\{exe_name}' -Argument '{cmd_args}'\n$trigger = New-ScheduledTaskTrigger -Once -At 00:00\n$settings = New-ScheduledTaskSettingsSet\n$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings\nRegister-ScheduledTask godot_remote_debug -InputObject $task -Force:$true\nStart-ScheduledTask -TaskName godot_remote_debug\nwhile (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }\nUnregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue\"\nssh_remote_deploy/cleanup_script=\"Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue\nUnregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue\nRemove-Item -Recurse -Force '{temp_dir}'\"\ntexture_format/bptc=true\ntexture_format/s3tc=true\ntexture_format/etc=false\ntexture_format/etc2=false\nbinary_format/64_bits=false\ntexture_format/no_bptc_fallbacks=true\n\n[preset.4]\n\nname=\"Linux 32-bit\"\nplatform=\"Linux\"\nrunnable=false\ndedicated_server=false\ncustom_features=\"\"\nexport_filter=\"exclude\"\nexport_files=PackedStringArray(\"res://Translations/af_ZA.po\", \"res://Translations/vi_VN.po\", \"res://Translations/be_BY.po\", \"res://Translations/bg_BG.po\", \"res://Translations/ca_ES.po\", \"res://Translations/cy_GB.po\", \"res://Translations/en_PT.po\", \"res://Translations/et_EE.po\", \"res://Translations/fil_PH.po\", \"res://Translations/fi_FI.po\", \"res://Translations/ga_IE.po\", \"res://Translations/grc.po\", \"res://Translations/he_IL.po\", \"res://Translations/hi_IN.po\", \"res://Translations/hr_HR.po\", \"res://Translations/is_IS.po\", \"res://Translations/la_LA.po\", \"res://Translations/lt_LT.po\", \"res://Translations/mk_MK.po\", \"res://Translations/ml_IN.po\", \"res://Translations/mr_IN.po\", \"res://Translations/ms_MY.po\", \"res://Translations/no_NO.po\", \"res://Translations/nl_NL.po\", \"res://Translations/si_LK.po\", \"res://Translations/sk_SK.po\", \"res://Translations/sl_SI.po\", \"res://Translations/sq_AL.po\", \"res://Translations/sr_SP.po\", \"res://Translations/sv_SE.po\", \"res://Translations/sw_KE.po\", \"res://Translations/ta_IN.po\", \"res://Translations/th_TH.po\", \"res://Translations/tlh_AA.po\")\ninclude_filter=\"\"\nexclude_filter=\"\"\nexport_path=\"\"\npatches=PackedStringArray()\npatch_delta_encoding=false\npatch_delta_compression_level_zstd=19\npatch_delta_min_reduction=0.1\npatch_delta_include_filters=\"*\"\npatch_delta_exclude_filters=\"\"\nencryption_include_filters=\"\"\nencryption_exclude_filters=\"\"\nseed=0\nencrypt_pck=false\nencrypt_directory=false\nscript_export_mode=2\n\n[preset.4.options]\n\ncustom_template/debug=\"\"\ncustom_template/release=\"\"\ndebug/export_console_wrapper=1\nbinary_format/embed_pck=false\ntexture_format/s3tc_bptc=true\ntexture_format/etc2_astc=false\nshader_baker/enabled=false\nbinary_format/architecture=\"x86_32\"\nssh_remote_deploy/enabled=false\nssh_remote_deploy/host=\"user@host_ip\"\nssh_remote_deploy/port=\"22\"\nssh_remote_deploy/extra_args_ssh=\"\"\nssh_remote_deploy/extra_args_scp=\"\"\nssh_remote_deploy/run_script=\"#!/usr/bin/env bash\nexport DISPLAY=:0\nunzip -o -q \\\"{temp_dir}/{archive_name}\\\" -d \\\"{temp_dir}\\\"\n\\\"{temp_dir}/{exe_name}\\\" {cmd_args}\"\nssh_remote_deploy/cleanup_script=\"#!/usr/bin/env bash\nkill $(pgrep -x -f \\\"{temp_dir}/{exe_name} {cmd_args}\\\")\nrm -rf \\\"{temp_dir}\\\"\"\ntexture_format/bptc=true\ntexture_format/s3tc=true\ntexture_format/etc=false\ntexture_format/etc2=false\nbinary_format/64_bits=false\ntexture_format/no_bptc_fallbacks=true\n\n[preset.5]\n\nname=\"Linux ARM64\"\nplatform=\"Linux\"\nrunnable=false\ndedicated_server=false\ncustom_features=\"\"\nexport_filter=\"exclude\"\nexport_files=PackedStringArray(\"res://Translations/af_ZA.po\", \"res://Translations/vi_VN.po\", \"res://Translations/be_BY.po\", \"res://Translations/bg_BG.po\", \"res://Translations/ca_ES.po\", \"res://Translations/cy_GB.po\", \"res://Translations/en_PT.po\", \"res://Translations/et_EE.po\", \"res://Translations/fil_PH.po\", \"res://Translations/fi_FI.po\", \"res://Translations/ga_IE.po\", \"res://Translations/grc.po\", \"res://Translations/he_IL.po\", \"res://Translations/hi_IN.po\", \"res://Translations/hr_HR.po\", \"res://Translations/is_IS.po\", \"res://Translations/la_LA.po\", \"res://Translations/lt_LT.po\", \"res://Translations/mk_MK.po\", \"res://Translations/ml_IN.po\", \"res://Translations/mr_IN.po\", \"res://Translations/ms_MY.po\", \"res://Translations/no_NO.po\", \"res://Translations/nl_NL.po\", \"res://Translations/si_LK.po\", \"res://Translations/sk_SK.po\", \"res://Translations/sl_SI.po\", \"res://Translations/sq_AL.po\", \"res://Translations/sr_SP.po\", \"res://Translations/sv_SE.po\", \"res://Translations/sw_KE.po\", \"res://Translations/ta_IN.po\", \"res://Translations/th_TH.po\", \"res://Translations/tlh_AA.po\")\ninclude_filter=\"\"\nexclude_filter=\"\"\nexport_path=\"\"\npatches=PackedStringArray()\npatch_delta_encoding=false\npatch_delta_compression_level_zstd=19\npatch_delta_min_reduction=0.1\npatch_delta_include_filters=\"*\"\npatch_delta_exclude_filters=\"\"\nencryption_include_filters=\"\"\nencryption_exclude_filters=\"\"\nseed=0\nencrypt_pck=false\nencrypt_directory=false\nscript_export_mode=2\n\n[preset.5.options]\n\ncustom_template/debug=\"\"\ncustom_template/release=\"\"\ndebug/export_console_wrapper=1\nbinary_format/embed_pck=false\ntexture_format/s3tc_bptc=true\ntexture_format/etc2_astc=false\nshader_baker/enabled=false\nbinary_format/architecture=\"arm64\"\nssh_remote_deploy/enabled=false\nssh_remote_deploy/host=\"user@host_ip\"\nssh_remote_deploy/port=\"22\"\nssh_remote_deploy/extra_args_ssh=\"\"\nssh_remote_deploy/extra_args_scp=\"\"\nssh_remote_deploy/run_script=\"#!/usr/bin/env bash\nexport DISPLAY=:0\nunzip -o -q \\\"{temp_dir}/{archive_name}\\\" -d \\\"{temp_dir}\\\"\n\\\"{temp_dir}/{exe_name}\\\" {cmd_args}\"\nssh_remote_deploy/cleanup_script=\"#!/usr/bin/env bash\nkill $(pgrep -x -f \\\"{temp_dir}/{exe_name} {cmd_args}\\\")\nrm -rf \\\"{temp_dir}\\\"\"\ntexture_format/bptc=true\ntexture_format/s3tc=true\ntexture_format/etc=false\ntexture_format/etc2=false\nbinary_format/64_bits=false\ntexture_format/no_bptc_fallbacks=true\n\n[preset.6]\n\nname=\"Linux ARM32\"\nplatform=\"Linux\"\nrunnable=false\ndedicated_server=false\ncustom_features=\"\"\nexport_filter=\"exclude\"\nexport_files=PackedStringArray(\"res://Translations/af_ZA.po\", \"res://Translations/vi_VN.po\", \"res://Translations/be_BY.po\", \"res://Translations/bg_BG.po\", \"res://Translations/ca_ES.po\", \"res://Translations/cy_GB.po\", \"res://Translations/en_PT.po\", \"res://Translations/et_EE.po\", \"res://Translations/fil_PH.po\", \"res://Translations/fi_FI.po\", \"res://Translations/ga_IE.po\", \"res://Translations/grc.po\", \"res://Translations/he_IL.po\", \"res://Translations/hi_IN.po\", \"res://Translations/hr_HR.po\", \"res://Translations/is_IS.po\", \"res://Translations/la_LA.po\", \"res://Translations/lt_LT.po\", \"res://Translations/mk_MK.po\", \"res://Translations/ml_IN.po\", \"res://Translations/mr_IN.po\", \"res://Translations/ms_MY.po\", \"res://Translations/no_NO.po\", \"res://Translations/nl_NL.po\", \"res://Translations/si_LK.po\", \"res://Translations/sk_SK.po\", \"res://Translations/sl_SI.po\", \"res://Translations/sq_AL.po\", \"res://Translations/sr_SP.po\", \"res://Translations/sv_SE.po\", \"res://Translations/sw_KE.po\", \"res://Translations/ta_IN.po\", \"res://Translations/th_TH.po\", \"res://Translations/tlh_AA.po\")\ninclude_filter=\"\"\nexclude_filter=\"\"\nexport_path=\"\"\npatches=PackedStringArray()\npatch_delta_encoding=false\npatch_delta_compression_level_zstd=19\npatch_delta_min_reduction=0.1\npatch_delta_include_filters=\"*\"\npatch_delta_exclude_filters=\"\"\nencryption_include_filters=\"\"\nencryption_exclude_filters=\"\"\nseed=0\nencrypt_pck=false\nencrypt_directory=false\nscript_export_mode=2\n\n[preset.6.options]\n\ncustom_template/debug=\"\"\ncustom_template/release=\"\"\ndebug/export_console_wrapper=1\nbinary_format/embed_pck=false\ntexture_format/s3tc_bptc=true\ntexture_format/etc2_astc=false\nshader_baker/enabled=false\nbinary_format/architecture=\"arm32\"\nssh_remote_deploy/enabled=false\nssh_remote_deploy/host=\"user@host_ip\"\nssh_remote_deploy/port=\"22\"\nssh_remote_deploy/extra_args_ssh=\"\"\nssh_remote_deploy/extra_args_scp=\"\"\nssh_remote_deploy/run_script=\"#!/usr/bin/env bash\nexport DISPLAY=:0\nunzip -o -q \\\"{temp_dir}/{archive_name}\\\" -d \\\"{temp_dir}\\\"\n\\\"{temp_dir}/{exe_name}\\\" {cmd_args}\"\nssh_remote_deploy/cleanup_script=\"#!/usr/bin/env bash\nkill $(pgrep -x -f \\\"{temp_dir}/{exe_name} {cmd_args}\\\")\nrm -rf \\\"{temp_dir}\\\"\"\ntexture_format/bptc=true\ntexture_format/s3tc=true\ntexture_format/etc=false\ntexture_format/etc2=false\n\n[preset.7]\n\nname=\"macOS\"\nplatform=\"macOS\"\nrunnable=true\ndedicated_server=false\ncustom_features=\"\"\nexport_filter=\"exclude\"\nexport_files=PackedStringArray(\"res://Translations/af_ZA.po\", \"res://Translations/vi_VN.po\", \"res://Translations/be_BY.po\", \"res://Translations/bg_BG.po\", \"res://Translations/ca_ES.po\", \"res://Translations/cy_GB.po\", \"res://Translations/en_PT.po\", \"res://Translations/et_EE.po\", \"res://Translations/fil_PH.po\", \"res://Translations/fi_FI.po\", \"res://Translations/ga_IE.po\", \"res://Translations/grc.po\", \"res://Translations/he_IL.po\", \"res://Translations/hi_IN.po\", \"res://Translations/hr_HR.po\", \"res://Translations/is_IS.po\", \"res://Translations/la_LA.po\", \"res://Translations/lt_LT.po\", \"res://Translations/mk_MK.po\", \"res://Translations/ml_IN.po\", \"res://Translations/mr_IN.po\", \"res://Translations/ms_MY.po\", \"res://Translations/no_NO.po\", \"res://Translations/nl_NL.po\", \"res://Translations/si_LK.po\", \"res://Translations/sk_SK.po\", \"res://Translations/sl_SI.po\", \"res://Translations/sq_AL.po\", \"res://Translations/sr_SP.po\", \"res://Translations/sv_SE.po\", \"res://Translations/sw_KE.po\", \"res://Translations/ta_IN.po\", \"res://Translations/th_TH.po\", \"res://Translations/tlh_AA.po\")\ninclude_filter=\"\"\nexclude_filter=\"\"\nexport_path=\"\"\npatches=PackedStringArray()\npatch_delta_encoding=false\npatch_delta_compression_level_zstd=19\npatch_delta_min_reduction=0.1\npatch_delta_include_filters=\"*\"\npatch_delta_exclude_filters=\"\"\nencryption_include_filters=\"\"\nencryption_exclude_filters=\"\"\nseed=0\nencrypt_pck=false\nencrypt_directory=false\nscript_export_mode=2\n\n[preset.7.options]\n\nexport/distribution_type=1\nbinary_format/architecture=\"universal\"\ncustom_template/debug=\"\"\ncustom_template/release=\"\"\ndebug/export_console_wrapper=1\napplication/liquid_glass_icon=\"\"\napplication/icon=\"res://assets/graphics/icons/icon.icns\"\napplication/icon_interpolation=4\napplication/bundle_identifier=\"com.orama-interactive.pixelorama\"\napplication/signature=\"\"\napplication/app_category=\"Graphics-design\"\napplication/short_version=\"1.1.9\"\napplication/version=\"1.1.9\"\napplication/copyright=\"Orama Interactive and contributors 2019-present\"\napplication/copyright_localized={}\napplication/min_macos_version_x86_64=\"10.12\"\napplication/min_macos_version_arm64=\"11.00\"\napplication/export_angle=0\ndisplay/high_res=true\nshader_baker/enabled=false\napplication/additional_plist_content=\"\"\nxcode/platform_build=\"14C18\"\nxcode/sdk_version=\"13.1\"\nxcode/sdk_build=\"22C55\"\nxcode/sdk_name=\"macosx13.1\"\nxcode/xcode_version=\"1420\"\nxcode/xcode_build=\"14C18\"\ncodesign/codesign=1\ncodesign/installer_identity=\"\"\ncodesign/apple_team_id=\"\"\ncodesign/identity=\"\"\ncodesign/entitlements/custom_file=\"\"\ncodesign/entitlements/allow_jit_code_execution=false\ncodesign/entitlements/allow_unsigned_executable_memory=false\ncodesign/entitlements/allow_dyld_environment_variables=false\ncodesign/entitlements/disable_library_validation=false\ncodesign/entitlements/audio_input=false\ncodesign/entitlements/camera=false\ncodesign/entitlements/location=false\ncodesign/entitlements/address_book=false\ncodesign/entitlements/calendars=false\ncodesign/entitlements/photos_library=false\ncodesign/entitlements/apple_events=false\ncodesign/entitlements/debugging=false\ncodesign/entitlements/app_sandbox/enabled=false\ncodesign/entitlements/app_sandbox/network_server=false\ncodesign/entitlements/app_sandbox/network_client=false\ncodesign/entitlements/app_sandbox/device_usb=false\ncodesign/entitlements/app_sandbox/device_bluetooth=false\ncodesign/entitlements/app_sandbox/files_downloads=0\ncodesign/entitlements/app_sandbox/files_pictures=0\ncodesign/entitlements/app_sandbox/files_music=0\ncodesign/entitlements/app_sandbox/files_movies=0\ncodesign/entitlements/app_sandbox/files_user_selected=0\ncodesign/entitlements/app_sandbox/helper_executables=[]\ncodesign/entitlements/additional=\"\"\ncodesign/custom_options=PackedStringArray()\nnotarization/notarization=0\nprivacy/microphone_usage_description=\"\"\nprivacy/microphone_usage_description_localized={}\nprivacy/camera_usage_description=\"\"\nprivacy/camera_usage_description_localized={}\nprivacy/location_usage_description=\"\"\nprivacy/location_usage_description_localized={}\nprivacy/address_book_usage_description=\"\"\nprivacy/address_book_usage_description_localized={}\nprivacy/calendar_usage_description=\"\"\nprivacy/calendar_usage_description_localized={}\nprivacy/photos_library_usage_description=\"\"\nprivacy/photos_library_usage_description_localized={}\nprivacy/desktop_folder_usage_description=\"\"\nprivacy/desktop_folder_usage_description_localized={}\nprivacy/documents_folder_usage_description=\"\"\nprivacy/documents_folder_usage_description_localized={}\nprivacy/downloads_folder_usage_description=\"\"\nprivacy/downloads_folder_usage_description_localized={}\nprivacy/network_volumes_usage_description=\"\"\nprivacy/network_volumes_usage_description_localized={}\nprivacy/removable_volumes_usage_description=\"\"\nprivacy/removable_volumes_usage_description_localized={}\nprivacy/tracking_enabled=false\nprivacy/tracking_domains=PackedStringArray()\nprivacy/collected_data/name/collected=false\nprivacy/collected_data/name/linked_to_user=false\nprivacy/collected_data/name/used_for_tracking=false\nprivacy/collected_data/name/collection_purposes=0\nprivacy/collected_data/email_address/collected=false\nprivacy/collected_data/email_address/linked_to_user=false\nprivacy/collected_data/email_address/used_for_tracking=false\nprivacy/collected_data/email_address/collection_purposes=0\nprivacy/collected_data/phone_number/collected=false\nprivacy/collected_data/phone_number/linked_to_user=false\nprivacy/collected_data/phone_number/used_for_tracking=false\nprivacy/collected_data/phone_number/collection_purposes=0\nprivacy/collected_data/physical_address/collected=false\nprivacy/collected_data/physical_address/linked_to_user=false\nprivacy/collected_data/physical_address/used_for_tracking=false\nprivacy/collected_data/physical_address/collection_purposes=0\nprivacy/collected_data/other_contact_info/collected=false\nprivacy/collected_data/other_contact_info/linked_to_user=false\nprivacy/collected_data/other_contact_info/used_for_tracking=false\nprivacy/collected_data/other_contact_info/collection_purposes=0\nprivacy/collected_data/health/collected=false\nprivacy/collected_data/health/linked_to_user=false\nprivacy/collected_data/health/used_for_tracking=false\nprivacy/collected_data/health/collection_purposes=0\nprivacy/collected_data/fitness/collected=false\nprivacy/collected_data/fitness/linked_to_user=false\nprivacy/collected_data/fitness/used_for_tracking=false\nprivacy/collected_data/fitness/collection_purposes=0\nprivacy/collected_data/payment_info/collected=false\nprivacy/collected_data/payment_info/linked_to_user=false\nprivacy/collected_data/payment_info/used_for_tracking=false\nprivacy/collected_data/payment_info/collection_purposes=0\nprivacy/collected_data/credit_info/collected=false\nprivacy/collected_data/credit_info/linked_to_user=false\nprivacy/collected_data/credit_info/used_for_tracking=false\nprivacy/collected_data/credit_info/collection_purposes=0\nprivacy/collected_data/other_financial_info/collected=false\nprivacy/collected_data/other_financial_info/linked_to_user=false\nprivacy/collected_data/other_financial_info/used_for_tracking=false\nprivacy/collected_data/other_financial_info/collection_purposes=0\nprivacy/collected_data/precise_location/collected=false\nprivacy/collected_data/precise_location/linked_to_user=false\nprivacy/collected_data/precise_location/used_for_tracking=false\nprivacy/collected_data/precise_location/collection_purposes=0\nprivacy/collected_data/coarse_location/collected=false\nprivacy/collected_data/coarse_location/linked_to_user=false\nprivacy/collected_data/coarse_location/used_for_tracking=false\nprivacy/collected_data/coarse_location/collection_purposes=0\nprivacy/collected_data/sensitive_info/collected=false\nprivacy/collected_data/sensitive_info/linked_to_user=false\nprivacy/collected_data/sensitive_info/used_for_tracking=false\nprivacy/collected_data/sensitive_info/collection_purposes=0\nprivacy/collected_data/contacts/collected=false\nprivacy/collected_data/contacts/linked_to_user=false\nprivacy/collected_data/contacts/used_for_tracking=false\nprivacy/collected_data/contacts/collection_purposes=0\nprivacy/collected_data/emails_or_text_messages/collected=false\nprivacy/collected_data/emails_or_text_messages/linked_to_user=false\nprivacy/collected_data/emails_or_text_messages/used_for_tracking=false\nprivacy/collected_data/emails_or_text_messages/collection_purposes=0\nprivacy/collected_data/photos_or_videos/collected=false\nprivacy/collected_data/photos_or_videos/linked_to_user=false\nprivacy/collected_data/photos_or_videos/used_for_tracking=false\nprivacy/collected_data/photos_or_videos/collection_purposes=0\nprivacy/collected_data/audio_data/collected=false\nprivacy/collected_data/audio_data/linked_to_user=false\nprivacy/collected_data/audio_data/used_for_tracking=false\nprivacy/collected_data/audio_data/collection_purposes=0\nprivacy/collected_data/gameplay_content/collected=false\nprivacy/collected_data/gameplay_content/linked_to_user=false\nprivacy/collected_data/gameplay_content/used_for_tracking=false\nprivacy/collected_data/gameplay_content/collection_purposes=0\nprivacy/collected_data/customer_support/collected=false\nprivacy/collected_data/customer_support/linked_to_user=false\nprivacy/collected_data/customer_support/used_for_tracking=false\nprivacy/collected_data/customer_support/collection_purposes=0\nprivacy/collected_data/other_user_content/collected=false\nprivacy/collected_data/other_user_content/linked_to_user=false\nprivacy/collected_data/other_user_content/used_for_tracking=false\nprivacy/collected_data/other_user_content/collection_purposes=0\nprivacy/collected_data/browsing_history/collected=false\nprivacy/collected_data/browsing_history/linked_to_user=false\nprivacy/collected_data/browsing_history/used_for_tracking=false\nprivacy/collected_data/browsing_history/collection_purposes=0\nprivacy/collected_data/search_history/collected=false\nprivacy/collected_data/search_history/linked_to_user=false\nprivacy/collected_data/search_history/used_for_tracking=false\nprivacy/collected_data/search_history/collection_purposes=0\nprivacy/collected_data/user_id/collected=false\nprivacy/collected_data/user_id/linked_to_user=false\nprivacy/collected_data/user_id/used_for_tracking=false\nprivacy/collected_data/user_id/collection_purposes=0\nprivacy/collected_data/device_id/collected=false\nprivacy/collected_data/device_id/linked_to_user=false\nprivacy/collected_data/device_id/used_for_tracking=false\nprivacy/collected_data/device_id/collection_purposes=0\nprivacy/collected_data/purchase_history/collected=false\nprivacy/collected_data/purchase_history/linked_to_user=false\nprivacy/collected_data/purchase_history/used_for_tracking=false\nprivacy/collected_data/purchase_history/collection_purposes=0\nprivacy/collected_data/product_interaction/collected=false\nprivacy/collected_data/product_interaction/linked_to_user=false\nprivacy/collected_data/product_interaction/used_for_tracking=false\nprivacy/collected_data/product_interaction/collection_purposes=0\nprivacy/collected_data/advertising_data/collected=false\nprivacy/collected_data/advertising_data/linked_to_user=false\nprivacy/collected_data/advertising_data/used_for_tracking=false\nprivacy/collected_data/advertising_data/collection_purposes=0\nprivacy/collected_data/other_usage_data/collected=false\nprivacy/collected_data/other_usage_data/linked_to_user=false\nprivacy/collected_data/other_usage_data/used_for_tracking=false\nprivacy/collected_data/other_usage_data/collection_purposes=0\nprivacy/collected_data/crash_data/collected=false\nprivacy/collected_data/crash_data/linked_to_user=false\nprivacy/collected_data/crash_data/used_for_tracking=false\nprivacy/collected_data/crash_data/collection_purposes=0\nprivacy/collected_data/performance_data/collected=false\nprivacy/collected_data/performance_data/linked_to_user=false\nprivacy/collected_data/performance_data/used_for_tracking=false\nprivacy/collected_data/performance_data/collection_purposes=0\nprivacy/collected_data/other_diagnostic_data/collected=false\nprivacy/collected_data/other_diagnostic_data/linked_to_user=false\nprivacy/collected_data/other_diagnostic_data/used_for_tracking=false\nprivacy/collected_data/other_diagnostic_data/collection_purposes=0\nprivacy/collected_data/environment_scanning/collected=false\nprivacy/collected_data/environment_scanning/linked_to_user=false\nprivacy/collected_data/environment_scanning/used_for_tracking=false\nprivacy/collected_data/environment_scanning/collection_purposes=0\nprivacy/collected_data/hands/collected=false\nprivacy/collected_data/hands/linked_to_user=false\nprivacy/collected_data/hands/used_for_tracking=false\nprivacy/collected_data/hands/collection_purposes=0\nprivacy/collected_data/head/collected=false\nprivacy/collected_data/head/linked_to_user=false\nprivacy/collected_data/head/used_for_tracking=false\nprivacy/collected_data/head/collection_purposes=0\nprivacy/collected_data/other_data_types/collected=false\nprivacy/collected_data/other_data_types/linked_to_user=false\nprivacy/collected_data/other_data_types/used_for_tracking=false\nprivacy/collected_data/other_data_types/collection_purposes=0\nssh_remote_deploy/enabled=false\nssh_remote_deploy/host=\"user@host_ip\"\nssh_remote_deploy/port=\"22\"\nssh_remote_deploy/extra_args_ssh=\"\"\nssh_remote_deploy/extra_args_scp=\"\"\nssh_remote_deploy/run_script=\"#!/usr/bin/env bash\nunzip -o -q \\\"{temp_dir}/{archive_name}\\\" -d \\\"{temp_dir}\\\"\nopen \\\"{temp_dir}/{exe_name}.app\\\" --args {cmd_args}\"\nssh_remote_deploy/cleanup_script=\"#!/usr/bin/env bash\nkill $(pgrep -x -f \\\"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\\\")\nrm -rf \\\"{temp_dir}\\\"\"\nprivacy/collected_data/search_hhistory/collected=false\nprivacy/collected_data/search_hhistory/linked_to_user=false\nprivacy/collected_data/search_hhistory/used_for_tracking=false\nprivacy/collected_data/search_hhistory/collection_purposes=0\napplication/min_macos_version=\"10.12\"\n\n[preset.8]\n\nname=\"Android\"\nplatform=\"Android\"\nrunnable=true\ndedicated_server=false\ncustom_features=\"\"\nexport_filter=\"exclude\"\nexport_files=PackedStringArray(\"res://Translations/af_ZA.po\", \"res://Translations/vi_VN.po\", \"res://Translations/be_BY.po\", \"res://Translations/bg_BG.po\", \"res://Translations/ca_ES.po\", \"res://Translations/cy_GB.po\", \"res://Translations/en_PT.po\", \"res://Translations/et_EE.po\", \"res://Translations/fil_PH.po\", \"res://Translations/fi_FI.po\", \"res://Translations/ga_IE.po\", \"res://Translations/grc.po\", \"res://Translations/he_IL.po\", \"res://Translations/hi_IN.po\", \"res://Translations/hr_HR.po\", \"res://Translations/is_IS.po\", \"res://Translations/la_LA.po\", \"res://Translations/lt_LT.po\", \"res://Translations/mk_MK.po\", \"res://Translations/ml_IN.po\", \"res://Translations/mr_IN.po\", \"res://Translations/ms_MY.po\", \"res://Translations/no_NO.po\", \"res://Translations/nl_NL.po\", \"res://Translations/si_LK.po\", \"res://Translations/sk_SK.po\", \"res://Translations/sl_SI.po\", \"res://Translations/sq_AL.po\", \"res://Translations/sr_SP.po\", \"res://Translations/sv_SE.po\", \"res://Translations/sw_KE.po\", \"res://Translations/ta_IN.po\", \"res://Translations/th_TH.po\", \"res://Translations/tlh_AA.po\")\ninclude_filter=\"\"\nexclude_filter=\"\"\nexport_path=\"\"\npatches=PackedStringArray()\npatch_delta_encoding=false\npatch_delta_compression_level_zstd=19\npatch_delta_min_reduction=0.1\npatch_delta_include_filters=\"*\"\npatch_delta_exclude_filters=\"\"\nencryption_include_filters=\"\"\nencryption_exclude_filters=\"\"\nseed=0\nencrypt_pck=false\nencrypt_directory=false\nscript_export_mode=2\n\n[preset.8.options]\n\ncustom_template/debug=\"\"\ncustom_template/release=\"\"\ngradle_build/use_gradle_build=true\ngradle_build/gradle_build_directory=\"\"\ngradle_build/android_source_template=\"\"\ngradle_build/compress_native_libraries=false\ngradle_build/export_format=0\ngradle_build/min_sdk=\"\"\ngradle_build/target_sdk=\"\"\ngradle_build/custom_theme_attributes={}\narchitectures/armeabi-v7a=false\narchitectures/arm64-v8a=true\narchitectures/x86=false\narchitectures/x86_64=false\nversion/code=1\nversion/name=\"1.1.9\"\npackage/unique_name=\"com.oramainteractive.pixelorama\"\npackage/name=\"Pixelorama\"\npackage/signed=true\npackage/app_category=3\npackage/retain_data_on_uninstall=false\npackage/exclude_from_recents=false\npackage/show_in_android_tv=false\npackage/show_in_app_library=true\npackage/show_as_launcher_app=false\nlauncher_icons/main_192x192=\"uid://cghkna21os4bf\"\nlauncher_icons/adaptive_foreground_432x432=\"uid://dr6ino6jy4rs0\"\nlauncher_icons/adaptive_background_432x432=\"uid://jfi3t3dx86mw\"\nlauncher_icons/adaptive_monochrome_432x432=\"uid://dwkfby6kuusmv\"\ngraphics/opengl_debug=false\nshader_baker/enabled=false\nxr_features/xr_mode=0\ngesture/swipe_to_dismiss=false\nscreen/immersive_mode=true\nscreen/edge_to_edge=false\nscreen/support_small=true\nscreen/support_normal=true\nscreen/support_large=true\nscreen/support_xlarge=true\nscreen/background_color=Color(0, 0, 0, 1)\nuser_data_backup/allow=false\ncommand_line/extra_args=\"\"\napk_expansion/enable=false\napk_expansion/SALT=\"\"\napk_expansion/public_key=\"\"\npermissions/custom_permissions=PackedStringArray()\npermissions/access_checkin_properties=false\npermissions/access_coarse_location=false\npermissions/access_fine_location=false\npermissions/access_location_extra_commands=false\npermissions/access_media_location=false\npermissions/access_mock_location=false\npermissions/access_network_state=false\npermissions/access_surface_flinger=false\npermissions/access_wifi_state=false\npermissions/account_manager=false\npermissions/add_voicemail=false\npermissions/authenticate_accounts=false\npermissions/battery_stats=false\npermissions/bind_accessibility_service=false\npermissions/bind_appwidget=false\npermissions/bind_device_admin=false\npermissions/bind_input_method=false\npermissions/bind_nfc_service=false\npermissions/bind_notification_listener_service=false\npermissions/bind_print_service=false\npermissions/bind_remoteviews=false\npermissions/bind_text_service=false\npermissions/bind_vpn_service=false\npermissions/bind_wallpaper=false\npermissions/bluetooth=false\npermissions/bluetooth_admin=false\npermissions/bluetooth_privileged=false\npermissions/brick=false\npermissions/broadcast_package_removed=false\npermissions/broadcast_sms=false\npermissions/broadcast_sticky=false\npermissions/broadcast_wap_push=false\npermissions/call_phone=false\npermissions/call_privileged=false\npermissions/camera=false\npermissions/capture_audio_output=false\npermissions/capture_secure_video_output=false\npermissions/capture_video_output=false\npermissions/change_component_enabled_state=false\npermissions/change_configuration=false\npermissions/change_network_state=false\npermissions/change_wifi_multicast_state=false\npermissions/change_wifi_state=false\npermissions/clear_app_cache=false\npermissions/clear_app_user_data=false\npermissions/control_location_updates=false\npermissions/delete_cache_files=false\npermissions/delete_packages=false\npermissions/device_power=false\npermissions/diagnostic=false\npermissions/disable_keyguard=false\npermissions/dump=false\npermissions/expand_status_bar=false\npermissions/factory_test=false\npermissions/flashlight=false\npermissions/force_back=false\npermissions/get_accounts=false\npermissions/get_package_size=false\npermissions/get_tasks=false\npermissions/get_top_activity_info=false\npermissions/global_search=false\npermissions/hardware_test=false\npermissions/inject_events=false\npermissions/install_location_provider=false\npermissions/install_packages=false\npermissions/install_shortcut=false\npermissions/internal_system_window=false\npermissions/internet=true\npermissions/kill_background_processes=false\npermissions/location_hardware=false\npermissions/manage_accounts=false\npermissions/manage_app_tokens=false\npermissions/manage_documents=false\npermissions/manage_external_storage=false\npermissions/manage_media=false\npermissions/master_clear=false\npermissions/media_content_control=false\npermissions/modify_audio_settings=false\npermissions/modify_phone_state=false\npermissions/mount_format_filesystems=false\npermissions/mount_unmount_filesystems=false\npermissions/nfc=false\npermissions/persistent_activity=false\npermissions/post_notifications=false\npermissions/process_outgoing_calls=false\npermissions/read_calendar=false\npermissions/read_call_log=false\npermissions/read_contacts=false\npermissions/read_external_storage=false\npermissions/read_frame_buffer=false\npermissions/read_history_bookmarks=false\npermissions/read_input_state=false\npermissions/read_logs=false\npermissions/read_media_audio=false\npermissions/read_media_images=false\npermissions/read_media_video=false\npermissions/read_media_visual_user_selected=false\npermissions/read_phone_state=false\npermissions/read_profile=false\npermissions/read_sms=false\npermissions/read_social_stream=false\npermissions/read_sync_settings=false\npermissions/read_sync_stats=false\npermissions/read_user_dictionary=false\npermissions/reboot=false\npermissions/receive_boot_completed=false\npermissions/receive_mms=false\npermissions/receive_sms=false\npermissions/receive_wap_push=false\npermissions/record_audio=false\npermissions/reorder_tasks=false\npermissions/restart_packages=false\npermissions/send_respond_via_message=false\npermissions/send_sms=false\npermissions/set_activity_watcher=false\npermissions/set_alarm=false\npermissions/set_always_finish=false\npermissions/set_animation_scale=false\npermissions/set_debug_app=false\npermissions/set_orientation=false\npermissions/set_pointer_speed=false\npermissions/set_preferred_applications=false\npermissions/set_process_limit=false\npermissions/set_time=false\npermissions/set_time_zone=false\npermissions/set_wallpaper=false\npermissions/set_wallpaper_hints=false\npermissions/signal_persistent_processes=false\npermissions/status_bar=false\npermissions/subscribed_feeds_read=false\npermissions/subscribed_feeds_write=false\npermissions/system_alert_window=false\npermissions/transmit_ir=false\npermissions/uninstall_shortcut=false\npermissions/update_device_stats=false\npermissions/use_credentials=false\npermissions/use_sip=false\npermissions/vibrate=false\npermissions/wake_lock=false\npermissions/write_apn_settings=false\npermissions/write_calendar=false\npermissions/write_call_log=false\npermissions/write_contacts=false\npermissions/write_external_storage=false\npermissions/write_gservices=false\npermissions/write_history_bookmarks=false\npermissions/write_profile=false\npermissions/write_secure_settings=false\npermissions/write_settings=false\npermissions/write_sms=false\npermissions/write_social_stream=false\npermissions/write_sync_settings=false\npermissions/write_user_dictionary=false\nxr_features/hand_tracking=0\nxr_features/hand_tracking_frequency=0\nxr_features/passthrough=0\n"
  },
  {
    "path": "installer/.gdignore",
    "content": ""
  },
  {
    "path": "installer/FileAssociation.nsh",
    "content": "/*\n_____________________________________________________________________________\n \n                       File Association\n_____________________________________________________________________________\n \n Based on code taken from http://nsis.sourceforge.net/File_Association \n \n Usage in script:\n 1. !include \"FileAssociation.nsh\"\n 2. [Section|Function]\n      ${FileAssociationFunction} \"Param1\" \"Param2\" \"...\" $var\n    [SectionEnd|FunctionEnd]\n \n FileAssociationFunction=[RegisterExtension|UnRegisterExtension]\n \n_____________________________________________________________________________\n \n ${RegisterExtension} \"[executable]\" \"[extension]\" \"[description]\"\n \n\"[executable]\"     ; executable which opens the file format\n                   ;\n\"[extension]\"      ; extension, which represents the file format to open\n                   ;\n\"[description]\"    ; description for the extension. This will be display in Windows Explorer.\n                   ;\n \n \n ${UnRegisterExtension} \"[extension]\" \"[description]\"\n \n\"[extension]\"      ; extension, which represents the file format to open\n                   ;\n\"[description]\"    ; description for the extension. This will be display in Windows Explorer.\n                   ;\n \n_____________________________________________________________________________\n \n                         Macros\n_____________________________________________________________________________\n \n Change log window verbosity (default: 3=no script)\n \n Example:\n !include \"FileAssociation.nsh\"\n !insertmacro RegisterExtension\n ${FileAssociation_VERBOSE} 4   # all verbosity\n !insertmacro UnRegisterExtension\n ${FileAssociation_VERBOSE} 3   # no script\n*/\n \n \n!ifndef FileAssociation_INCLUDED\n!define FileAssociation_INCLUDED\n \n!include Util.nsh\n \n!verbose push\n!verbose 3\n!ifndef _FileAssociation_VERBOSE\n  !define _FileAssociation_VERBOSE 3\n!endif\n!verbose ${_FileAssociation_VERBOSE}\n!define FileAssociation_VERBOSE `!insertmacro FileAssociation_VERBOSE`\n!verbose pop\n \n!macro FileAssociation_VERBOSE _VERBOSE\n  !verbose push\n  !verbose 3\n  !undef _FileAssociation_VERBOSE\n  !define _FileAssociation_VERBOSE ${_VERBOSE}\n  !verbose pop\n!macroend\n \n \n \n!macro RegisterExtensionCall _EXECUTABLE _EXTENSION _DESCRIPTION\n  !verbose push\n  !verbose ${_FileAssociation_VERBOSE}\n  Push `${_DESCRIPTION}`\n  Push `${_EXTENSION}`\n  Push `${_EXECUTABLE}`\n  ${CallArtificialFunction} RegisterExtension_\n  !verbose pop\n!macroend\n \n!macro UnRegisterExtensionCall _EXTENSION _DESCRIPTION\n  !verbose push\n  !verbose ${_FileAssociation_VERBOSE}\n  Push `${_EXTENSION}`\n  Push `${_DESCRIPTION}`\n  ${CallArtificialFunction} UnRegisterExtension_\n  !verbose pop\n!macroend\n \n \n \n!define RegisterExtension `!insertmacro RegisterExtensionCall`\n!define un.RegisterExtension `!insertmacro RegisterExtensionCall`\n \n!macro RegisterExtension\n!macroend\n \n!macro un.RegisterExtension\n!macroend\n \n!macro RegisterExtension_\n  !verbose push\n  !verbose ${_FileAssociation_VERBOSE}\n \n  Exch $R2 ;exe\n  Exch\n  Exch $R1 ;ext\n  Exch\n  Exch 2\n  Exch $R0 ;desc\n  Exch 2\n  Push $0\n  Push $1\n \n  ReadRegStr $1 HKCR $R1 \"\"  ; read current file association\n  StrCmp \"$1\" \"\" NoBackup  ; is it empty\n  StrCmp \"$1\" \"$R0\" NoBackup  ; is it our own\n    WriteRegStr HKCR $R1 \"backup_val\" \"$1\"  ; backup current value\nNoBackup:\n  WriteRegStr HKCR $R1 \"\" \"$R0\"  ; set our file association\n \n  ReadRegStr $0 HKCR $R0 \"\"\n  StrCmp $0 \"\" 0 Skip\n    WriteRegStr HKCR \"$R0\" \"\" \"$R0\"\n    WriteRegStr HKCR \"$R0\\shell\" \"\" \"open\"\n    WriteRegStr HKCR \"$R0\\DefaultIcon\" \"\" \"$R2,0\"\nSkip:\n  WriteRegStr HKCR \"$R0\\shell\\open\\command\" \"\" '\"$R2\" \"%1\"'\n  WriteRegStr HKCR \"$R0\\shell\\edit\" \"\" \"Edit $R0\"\n  WriteRegStr HKCR \"$R0\\shell\\edit\\command\" \"\" '\"$R2\" \"%1\"'\n \n  Pop $1\n  Pop $0\n  Pop $R2\n  Pop $R1\n  Pop $R0\n \n  !verbose pop\n!macroend\n \n \n \n!define UnRegisterExtension `!insertmacro UnRegisterExtensionCall`\n!define un.UnRegisterExtension `!insertmacro UnRegisterExtensionCall`\n \n!macro UnRegisterExtension\n!macroend\n \n!macro un.UnRegisterExtension\n!macroend\n \n!macro UnRegisterExtension_\n  !verbose push\n  !verbose ${_FileAssociation_VERBOSE}\n \n  Exch $R1 ;desc\n  Exch\n  Exch $R0 ;ext\n  Exch\n  Push $0\n  Push $1\n \n  ReadRegStr $1 HKCR $R0 \"\"\n  StrCmp $1 $R1 0 NoOwn ; only do this if we own it\n  ReadRegStr $1 HKCR $R0 \"backup_val\"\n  StrCmp $1 \"\" 0 Restore ; if backup=\"\" then delete the whole key\n  DeleteRegKey HKCR $R0\n  Goto NoOwn\n \nRestore:\n  WriteRegStr HKCR $R0 \"\" $1\n  DeleteRegValue HKCR $R0 \"backup_val\"\n  DeleteRegKey HKCR $R1 ;Delete key with association name settings\n \nNoOwn:\n \n  Pop $1\n  Pop $0\n  Pop $R1\n  Pop $R0\n \n  !verbose pop\n!macroend\n \n!endif # !FileAssociation_INCLUDED"
  },
  {
    "path": "installer/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019-present Orama Interactive and contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "installer/assets/.gdignore",
    "content": ""
  },
  {
    "path": "installer/installer.pot",
    "content": "#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: Pixelorama 0.9\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n\"\n\"Language-Team: LANGUAGE <LL@li.org>\\n\"\n\"Language: \\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n"
  },
  {
    "path": "installer/pixelorama.nsi",
    "content": "; Pixelorama Installer NSIS Script\n; Copyright Xenofon Konitsas (huskee) 2021\n; Licensed under the MIT License\n\n\n; Helper variables so that we don't change 20 instances of the version for every update\n\n  !define APPNAME \"Pixelorama\"\n  !define APPVERSION \"v1.1.8\"\n  !define COMPANYNAME \"Orama Interactive\"\n\n\n; Include the Modern UI library\n\n  !include \"MUI2.nsh\"\n  !include \"x64.nsh\"\n\n\n; Basic Installer Info\n\n  Name \"${APPNAME} ${APPVERSION}\"\n  OutFile \"${APPNAME}_${APPVERSION}_setup.exe\"\n  Unicode True\n\n\n; Default installation folder\n\n  InstallDir \"$APPDATA\\${COMPANYNAME}\\${APPNAME}\"\n\n\n; Get installation folder from registry if available\n\n  InstallDirRegKey HKCU \"Software\\${COMPANYNAME}\\${APPNAME}\" \"InstallDir\"\n\n\n; Request application privileges for Vista and later\n\n  RequestExecutionLevel admin\n\n\n; Interface Settings\n\n  !define MUI_ICON \"assets\\pixel-install.ico\"\n  !define MUI_UNICON \"assets\\pixel-uninstall.ico\"\n  !define MUI_WELCOMEFINISHPAGE_BITMAP \"assets\\wizard.bmp\"\n  !define MUI_UNWELCOMEFINISHPAGE_BITMAP \"assets\\wizard.bmp\"\n  !define MUI_HEADERIMAGE\n  !define MUI_HEADERIMAGE_RIGHT\n  !define MUI_HEADERIMAGE_BITMAP \"assets\\header.bmp\"\n  !define MUI_HEADERIMAGE_UNBITMAP \"assets\\header.bmp\"\n  !define MUI_ABORTWARNING\n  !define MUI_COMPONENTSPAGE_SMALLDESC\n  !define MUI_FINISHPAGE_NOAUTOCLOSE\n  !define MUI_UNFINISHPAGE_NOAUTOCLOSE\n  !define MUI_FINISHPAGE_RUN \"$INSTDIR\\pixelorama.exe\"\n\n; Language selection settings\n\n  !define MUI_LANGDLL_ALLLANGUAGES\n  ## Remember the installer language\n  !define MUI_LANGDLL_REGISTRY_ROOT HKCU\n  !define MUI_LANGDLL_REGISTRY_KEY \"Software\\${COMPANYNAME}\\${APPNAME}\"\n  !define MUI_LANGDLL_REGISTRY_VALUENAME \"Installer Language\"\n\n\n; Installer pages\n\n  !insertmacro MUI_PAGE_WELCOME\n  !insertmacro MUI_PAGE_LICENSE \"LICENSE\"\n  !insertmacro MUI_PAGE_COMPONENTS\n  !insertmacro MUI_PAGE_DIRECTORY\n  !insertmacro MUI_PAGE_INSTFILES\n  !insertmacro MUI_PAGE_FINISH\n\n  !insertmacro MUI_UNPAGE_WELCOME\n  !insertmacro MUI_UNPAGE_COMPONENTS\n  !insertmacro MUI_UNPAGE_CONFIRM\n  !insertmacro MUI_UNPAGE_INSTFILES\n  !insertmacro MUI_UNPAGE_FINISH\n\n\n; Multilingual support\n\n  !insertmacro MUI_LANGUAGE \"English\"\n  ;@INSERT_TRANSLATIONS@\n\n\n  ; Assign language strings to installer/uninstaller section names\n\n    LangString SecInstall ${LANG_ENGLISH} \"Install ${APPNAME}\"\n    LangString SecStartmenu ${LANG_ENGLISH} \"Create Start Menu shortcuts (optional)\"\n    LangString SecDesktop ${LANG_ENGLISH}  \"Create shortcut on Desktop (optional)\"\n    LangString un.SecUninstall ${LANG_ENGLISH} \"Uninstall ${APPNAME} ${APPVERSION}\"\n    LangString un.SecConfig ${LANG_ENGLISH} \"Remove configuration files (optional)\"\n\n\n; Installer sections\n\n  Section \"$(SecInstall)\" SecInstall ; Main install section\n\n  SectionIn RO ; Non optional section\n\n    ; Set the installation folder as the output directory\n      SetOutPath \"$INSTDIR\"\n\n    ; Copy all files to install directory\n      ${If} ${RunningX64}\n        File \"..\\build\\${APPNAME}-Windows-64bit\\${APPNAME}.exe\"\n        File \"..\\build\\${APPNAME}-Windows-64bit\\${APPNAME}.pck\"\n      ${Else}\n        File \"..\\build\\${APPNAME}-Windows-32bit\\${APPNAME}.exe\"\n        File \"..\\build\\${APPNAME}-Windows-32bit\\${APPNAME}.pck\"\n      ${EndIf}\n      File \"..\\assets\\graphics\\icons\\pxo.ico\"\n\n      SetOutPath \"$INSTDIR\\pixelorama_data\"\n      File /nonfatal /r \"..\\build\\pixelorama_data\\*\"\n\n    ; Store installation folder in the registry\n      WriteRegStr HKCU \"Software\\${COMPANYNAME}\\${APPNAME}\" \"InstallDir\" $INSTDIR\n\n    ; Create uninstaller\n      WriteUninstaller \"$INSTDIR\\uninstall.exe\"\n\n    ; Create Add/Remove Programs entry\n      WriteRegStr HKLM \"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${APPNAME}\" \\\n      \"DisplayName\" \"${APPNAME}\"\n      WriteRegStr HKLM \"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${APPNAME}\" \\\n      \"UninstallString\" \"$INSTDIR\\uninstall.exe\"\n      WriteRegStr HKLM \"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${APPNAME}\" \\\n      \"DisplayIcon\" \"$INSTDIR\\pixelorama.exe,0\"\n      WriteRegStr HKLM \"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${APPNAME}\" \\\n      \"InstallLocation\" \"$INSTDIR\"\n      WriteRegStr HKLM \"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${APPNAME}\" \\\n      \"Publisher\" \"${COMPANYNAME}\"\n      WriteRegStr HKLM \"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${APPNAME}\" \\\n      \"HelpLink\" \"https://orama-interactive.github.io/Pixelorama-Docs\"\n      WriteRegStr HKLM \"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${APPNAME}\" \\\n      \"DisplayVersion\" \"${APPVERSION}\"\n      WriteRegDWORD HKLM \"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${APPNAME}\" \\\n      \"NoModify\" 1\n      WriteRegDWORD HKLM \"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${APPNAME}\" \\\n      \"NoRepair\" 1\n\n    ; Associate .pxo files with Pixelorama\n      WriteRegStr HKCR \".pxo\" \"\" \"Pixelorama project\"\n      WriteRegStr HKCR \".pxo\" \"ContentType\" \"image/pixelorama\"\n      WriteRegStr HKCR \".pxo\" \"PerceivedType\" \"document\"\n\n      WriteRegStr HKCR \"Pixelorama project\" \"\" \"Pixelorama project\"\n      WriteRegStr HKCR \"Pixelorama project\\shell\" \"\" \"open\"\n      WriteRegStr HKCR \"Pixelorama project\\DefaultIcon\" \"\" \"$INSTDIR\\pxo.ico\"\n\n      WriteRegStr HKCR \"Pixelorama project\\shell\\open\\command\" \"\" '$INSTDIR\\${APPNAME}.exe \"%1\"'\n      WriteRegStr HKCR \"Pixelorama project\\shell\\edit\" \"\" \"Edit project in ${APPNAME}\"\n      WriteRegStr HKCR \"Pixelorama project\\shell\\edit\\command\" \"\" '$INSTDIR\\${APPNAME}.exe \"%1\"'\n  SectionEnd\n\n\n  Section /o \"$(SecStartmenu)\" SecStartmenu ; Create Start Menu shortcuts\n\n    ; Create folder in Start Menu\\Programs and create shortcuts for app and uninstaller\n    CreateDirectory \"$SMPROGRAMS\\${COMPANYNAME}\"\n\n    CreateShortCut \"$SMPROGRAMS\\${COMPANYNAME}\\${APPNAME} ${APPVERSION}.lnk\" \"$INSTDIR\\Pixelorama.exe\"\n    CreateShortCut \"$SMPROGRAMS\\${COMPANYNAME}\\Uninstall.lnk\" \"$INSTDIR\\uninstall.exe\"\n\n  SectionEnd\n\n\n  Section /o \"$(SecDesktop)\" SecDesktop ; Create Desktop shortcut\n\n    ; Create shortcut for app on desktop\n      CreateShortCut \"$DESKTOP\\${APPNAME} ${APPVERSION}.lnk\" \"$INSTDIR\\${APPNAME}.exe\"\n\n  SectionEnd\n\n\n; Installer functions\n\n  Function .onInit\n    !insertmacro MUI_LANGDLL_DISPLAY\n\n  FunctionEnd\n\n\n; Uninstaller sections\n\n  Section \"un.$(un.SecUninstall)\" un.SecUninstall ; Main uninstall section\n\n    SectionIn RO\n\n    ; Delete all files and folders created by the installer\n    Delete \"$INSTDIR\\uninstall.exe\"\n    Delete \"$INSTDIR\\${APPNAME}.exe\"\n    Delete \"$INSTDIR\\${APPNAME}.pck\"\n    Delete \"$INSTDIR\\pxo.ico\"\n    RMDir /r \"$INSTDIR\\pixelorama_data\"\n    RMDir \"$INSTDIR\"\n\n    ; Delete shortcuts\n    RMDir /r \"$SMPROGRAMS\\${COMPANYNAME}\"\n    Delete \"$DESKTOP\\${APPNAME} ${APPVERSION}.lnk\"\n\n    ; Delete the install folder\n    SetOutPath \"$APPDATA\"\n    RMDir /r \"${COMPANYNAME}\"\n\n    ; If empty, delete the application's registry key\n    DeleteRegKey /ifempty HKCU \"Software\\${COMPANYNAME}\\${APPNAME}\"\n\n    ; Delete the Add/Remove Programs entry\n    DeleteRegKey HKLM \"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${APPNAME}\"\n\n    ; Delete the .pxo file association\n    DeleteRegKey HKCR \"Pixelorama project\"\n    DeleteRegKey HKCR \".pxo\"\n\n  SectionEnd\n\n\n  Section \"un.$(un.SecConfig)\" un.SecConfig ; Configuration removal section\n\n    ; Delete the application's settings file\n    Delete \"$APPDATA\\Godot\\app_userdata\\${APPNAME}\\cache.ini\"\n\n  SectionEnd\n\n; Uninstaller functions\n\n  Function un.onInit\n   !insertmacro MUI_UNGETLANGUAGE\n\n  FunctionEnd\n\n\n; Section description language strings for multilingual support\n\n  LangString DESC_SecInstall ${LANG_ENGLISH} \"Installs ${APPNAME} ${APPVERSION}.\"\n  LangString DESC_SecStartmenu ${LANG_ENGLISH} \"Creates Start Menu shortcuts for ${APPNAME}.\"\n  LangString DESC_SecDesktop ${LANG_ENGLISH} \"Creates a Desktop shortcut for ${APPNAME}.\"\n  LangString DESC_un.SecUninstall ${LANG_ENGLISH} \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\n  LangString DESC_un.SecConfig ${LANG_ENGLISH} \"Removes configuration files for ${APPNAME}.\"\n\n\n; Assign language strings to installer/uninstaller descriptions\n\n  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN\n\n    !insertmacro MUI_DESCRIPTION_TEXT ${SecInstall} $(DESC_SecInstall)\n    !insertmacro MUI_DESCRIPTION_TEXT ${SecStartmenu} $(DESC_SecStartmenu)\n    !insertmacro MUI_DESCRIPTION_TEXT ${SecDesktop} $(DESC_SecDesktop)\n\n  !insertmacro MUI_FUNCTION_DESCRIPTION_END\n\n\n  !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN\n\n    !insertmacro MUI_DESCRIPTION_TEXT ${un.SecUninstall} $(DESC_un.SecUninstall)\n    !insertmacro MUI_DESCRIPTION_TEXT ${un.SecConfig} $(DESC_un.SecConfig)\n\n  !insertmacro MUI_UNFUNCTION_DESCRIPTION_END\n\n"
  },
  {
    "path": "installer/po/af-ZA.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Afrikaans\\n\"\n\"Language: af_ZA\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: af\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/ar-SA.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Arabic\\n\"\n\"Language: ar_SA\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ar\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"تثبيت ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"إنشاء اختصارات لقائمة ابدأ (اختياري)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"إنشاء اختصار على سطح المكتب (اختياري)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"الغاء تثبيت ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"إزالة ملفات التكوين (اختياري)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"تثبيت ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"إنشاء اختصارات قائمة ابدأ لـ ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"إنشاء اختصار على سطح المكتب لـ ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"إلغاء تثبيت ${APPNAME} ${APPVERSION} وإزالة جميع الاختصارات.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"إزالة ملفات التكوين لـ ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/be-BY.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2022-11-30 14:32\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Belarusian\\n\"\n\"Language: be_BY\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: be\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Усталяваць ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Стварыць ярлыкі ў меню Пуск (неабавязкова)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Стварыць ярлік на Працоўным стале (неабавязкова)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Выдаліць ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Выдаліць файлы кафігурацыі (неабавязкова)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Усталёўвае ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Стварае ў меню Пуск ярлыкі для ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Стварае на Працоўным стале ярлык для ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Выдаляе ${APPNAME} ${APPVERSION} і ўсе ярлыкі праграмы.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Выдаляе канфігурацыйныя файлы для ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/bg-BG.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 00:15\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Bulgarian\\n\"\n\"Language: bg_BG\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: bg\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/ca-ES.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2025-03-13 19:05\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Catalan\\n\"\n\"Language: ca_ES\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ca\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Instal·lar ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Crear drecera al menú d'inici (opcional)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Crear drecera al Escriptori (opcional)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Desinstalar ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Elimina fitxers de configuració (opcional)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Instala ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Crea una drecera al Menú d'Inici per ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Crea una drecera al Escriptori per ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Desinstala ${APPNAME} ${APPVERSION} i elimina totes les dreceres.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Elimina els fitxers de configuració de ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/cs-CZ.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2025-03-17 01:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Czech\\n\"\n\"Language: cs_CZ\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: cs\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Nainstalovat ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Vytvořit zástupce v nabídce Start (nepovinné)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Vytvořit zástupce na ploše (nepovinné)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Odinstalovat ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Odstranit konfigurační soubory (nepovinné)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Nainstaluje ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Vytvoří zástupce v nabídce Start pro ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Vytvoří zástupce na ploše pro ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Odinstaluje ${APPNAME} ${APPVERSION} a odstraní všechny zástupce.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Odstraní konfigurační soubory pro ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/cy-GB.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 00:15\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Welsh\\n\"\n\"Language: cy_GB\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=6; plural=(n == 0) ? 0 : ((n == 1) ? 1 : ((n == 2) ? 2 : ((n == 3) ? 3 : ((n == 6) ? 4 : 5))));\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: cy\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/da-DK.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-07-31 16:29\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Danish\\n\"\n\"Language: da_DK\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: da\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Installér ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Opret Startmenu-genveje (valgfrit)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Opret genvej på Skrivebord (valgfrit)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Afinstallér ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Fjern konfigurationsfiler (valgfrit)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Installerer ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Opretter Startmenu-genveje til ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Opretter en Skrivebords-genvej til ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Afinstallerer ${APPNAME} ${APPVERSION} og fjerner alle genveje.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Fjerner konfigurationsfiler for ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/de-DE.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2025-11-29 21:33\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: German\\n\"\n\"Language: de_DE\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: de\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"${APPNAME} installieren\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Startmenü-Verknüpfungen erstellen (optional)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Desktop-Verknüpfung erstellen (optional)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"${APPNAME} ${APPVERSION} deinstallieren\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Konfigurationsdateien entfernen (optional)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Installiert ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Erstellt Verknüpfungen im Startmenü für ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Erstellt eine Verknüpfung auf dem Desktop für ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Deinstalliert ${APPNAME} ${APPVERSION} und entfernt alle Verknüpfungen.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Entfernt Konfigurationsdateien für ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/el-GR.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Greek\\n\"\n\"Language: el_GR\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: el\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Εγκατάσταση του ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Δημιουργία συντομεύσεων στο μενού Έναρξης (προαιρετικό)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Δημιουργία συντόμευσης στην επιφάνεια εργασίας (προαιρετικό)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Απεγκατάσταση του ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Κατάργηση αρχείων ρύθμισης (προαιρετικό)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Εγκαθιστά το ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Δημιουργεί συντομεύσεις για το ${APPNAME} στο μενού Έναρξης.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Δημιουργεί συντόμευση για το ${APPNAME} στην Επιφάνεια Εργασίας.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Απεγκαθιστά το ${APPNAME} ${APPVERSION} και καταργεί όλες τις συντομεύσεις.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Καταργεί τα αρχεία ρυθμίσεων του ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/en-PT.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 01:17\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Pirate English\\n\"\n\"Language: en_PT\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: en-PT\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/eo-UY.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:42\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Esperanto\\n\"\n\"Language: eo_UY\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: eo\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Instali ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Krei simbolligilojn en Startmenuo (laŭvole)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Krei simbolligilojn en Labortablo (laŭvole)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Malinstali ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/es-ES.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-10 16:40\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Spanish\\n\"\n\"Language: es_ES\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: es-ES\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Instalar ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Crear atajos al menú de inicio (opcional)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Crear atajo en el Escritorio (opcional)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Desinstalar ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Eliminar archivos de configuración (opcional)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Instalar ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Crear atajos del menú de inicio para ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Crear atajo en el Escritorio para ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Desinstalar ${APPNAME} ${APPVERSION} y remover todos los atajos.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Eliminar archivos de configuración para ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/et-EE.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 00:15\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Estonian\\n\"\n\"Language: et_EE\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: et\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/fa-IR.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-12-05 14:52\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Persian\\n\"\n\"Language: fa_IR\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: fa\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"کارگذاری ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"ساخت میانبرهای گزینگان آغاز (دلبخواهی)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"ساخت میانبر در دسکتاپ (دلبخواهی)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"زدایش ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"زدایش پرونده‌های پیکربندی (دلبخواهی)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"${APPNAME} ${APPVERSION} را کارمی‌گذارد.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"میانبرهای گزینگان آغاز برای ${APPNAME} می‌سازد.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"یک میانبر دسکتاپ برای ${APPNAME} می‌سازد.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"${APPNAME} ${APPVERSION} را به همراه میانبرهایش می‌زداید.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"پرونده‌های پیکربندی برای ${APPNAME} را می‌زداید.\"\n\n"
  },
  {
    "path": "installer/po/fi-FI.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-07-30 07:47\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Finnish\\n\"\n\"Language: fi_FI\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: fi\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Asenna ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Luo käynnistysvalikon pikakuvakkeet (valinnainen)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Luo pikakuvake työpöydälle (valinnainen)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Poista asennus ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Poista asetustiedostot (valinnainen)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Asentaa ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Luo sovellukselle ${APPNAME} käynnistysvalikon pikakuvake.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Luo työpöydän pikakuvakkeen ${APPNAME} sovellukselle.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Poistaa ${APPNAME} sovelluksen version ${APPVERSION} asennuksen ja poistaa kaikki pikakuvakkeet.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Poistaa ${APPNAME} sovelluksen asetustiedostot.\"\n\n"
  },
  {
    "path": "installer/po/fil-PH.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 00:15\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Filipino\\n\"\n\"Language: fil_PH\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n > 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: fil\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/fr-FR.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: French\\n\"\n\"Language: fr_FR\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n > 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: fr\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Installer ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Créer des raccourcis dans le menu Démarrer (facultatif)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Créer un raccourci sur le bureau (facultatif)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Désinstaller ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Supprimer les fichiers de configuration (facultatif)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Installe ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Crée des raccourcis dans le menu Démarrer pour ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Crée un raccourci bureau pour ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Désinstalle ${APPNAME} ${APPVERSION} et enlève tous les raccourcis.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Supprime les fichiers de configuration pour ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/ga-IE.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 00:15\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Irish\\n\"\n\"Language: ga_IE\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ga-IE\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/grc.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 01:18\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Ancient Greek\\n\"\n\"Language: grc\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n > 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: grc\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/he-IL.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Hebrew\\n\"\n\"Language: he_IL\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: he\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"התקן ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"הוסף קיצור דרך לתפריט התחל (לא חובה)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"הוסף קיצור דרך לשולחן העבודה (לא חובה)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"הסר ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"הסר קבצי הגדרות (לא חובה)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"התקן ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"הוסף קיצור דרך לתפריט התחל עבור ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"הוסף קיצור קיצור דרך לשולחן העבודה עבור ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"הסר ${APPNAME} ${APPVERSION} ומחק את כל קיצורי הדרך.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"הסר קבצי הגדרות עבור ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/hi-IN.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-07-30 15:34\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Hindi\\n\"\n\"Language: hi_IN\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: hi\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"इनस्टॉल ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"स्टार्ट मेनू शॉर्टकट बनाएं (अनिवार्य नहीं)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"डेस्कटॉप पर शॉर्टकट बनाएं (अनिवार्य नहीं)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/hr-HR.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 00:15\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Croatian\\n\"\n\"Language: hr_HR\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: hr\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/hu-HU.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Hungarian\\n\"\n\"Language: hu_HU\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: hu\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"${APPNAME} letöltése\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Startmenü parancsikon létrehozása (opcionális)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Asztali parancsikon létrehozása (opcionális)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"${APPNAME} ${APPVERSION} eltávolítása\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Konfigurációs fájlok törlése (opcionális)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"${APPNAME} ${APPVERSION} letöltése.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Startmenü parancsikon létrehozása ${APPNAME}-hoz.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Asztali parancsikon létrehozása ${APPNAME}-hoz.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Eltávolítja a ${APPNAME} ${APPVERSION}-t és törli az összes parancsikonját.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Konfigurációs fájlok törlése ${APPNAME}-hoz.\"\n\n"
  },
  {
    "path": "installer/po/id-ID.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-12-12 23:05\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Indonesian\\n\"\n\"Language: id_ID\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: id\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Pasang ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Buat pintasan Menu Mulai (opsional)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Buat pintasan pada Desktop (opsional)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Copot ${APPNAME}${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Hapus berkas konfigurasi (opsional)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Pasang ${APPNAME}${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Buat pintasan Menu Mulai untuk ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Buat pintasan Desktop untuk ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Copot ${APPNAME}${APPVERSION} dan hapus semua pintasan.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Hapus berkas konfigurasi untuk ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/is-IS.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 00:15\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Icelandic\\n\"\n\"Language: is_IS\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: is\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/it-IT.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Italian\\n\"\n\"Language: it_IT\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: it\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Installa ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Crea scorciatoie dal menu Start (opzionale)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Crea scorciatoia sul Desktop (opzionale)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Disinstalla ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Rimuovi i file di configurazione (opzionale)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Installa ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Crea le scorciatoie del menu Start per ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Crea una scorciatoia desktop per ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Disinstalla ${APPNAME} ${APPVERSION} e rimuove tutte le scorciatoie.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Rimuove i file di configurazione per ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/ja-JP.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Japanese\\n\"\n\"Language: ja_JP\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ja\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"${APPNAME} をインストール\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"スタートメニューにショートカットを作成 (オプション)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"デスクトップにショートカットを作成 (オプション)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"${APPNAME} ${APPVERSION} をアンインストール\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"設定ファイルを削除 (オプション)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"${APPNAME} ${APPVERSION} をインストールします。\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"${APPNAME} のスタートメニューショートカットを作成します。\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"${APPNAME} のデスクトップショートカットを作成します。\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"${APPNAME} ${APPVERSION} をアンインストールし、すべてのショートカットを削除します。\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"${APPNAME} の設定ファイルを削除します。\"\n\n"
  },
  {
    "path": "installer/po/kk-KZ.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-11-15 13:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Kazakh\\n\"\n\"Language: kk_KZ\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: kk\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/ko-KR.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Korean\\n\"\n\"Language: ko_KR\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ko\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"${APPNAME} 설치\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"시작 메뉴에 바로가기 만들기 (선택)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"바탕화면에 바로가기 만들기 (선택)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"${APPNAME} ${APPVERSION} 제거\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"배치 파일 제거 (선택)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"${APPNAME} ${APPVERSION} 설치하기.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"시작 메뉴에 ${APPNAME}의 바로가기 만들기.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"바탕화면에 ${APPNAME}의 바로가기 만들기.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"${APPNAME} ${APPVERSION} 제거 및 모든 바로가기 제거하기.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"${APPNAME}의 배치 파일 제거하기.\"\n\n"
  },
  {
    "path": "installer/po/la-LA.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 01:17\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Latin\\n\"\n\"Language: la_LA\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: la-LA\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/lt-LT.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 00:15\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Lithuanian\\n\"\n\"Language: lt_LT\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: lt\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/lv-LV.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-05-21 16:44\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Latvian\\n\"\n\"Language: lv_LV\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: lv\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/mi-NZ.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-11-15 13:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Maori\\n\"\n\"Language: mi_NZ\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: mi\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/mk-MK.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 00:15\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Macedonian\\n\"\n\"Language: mk_MK\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n%10==1 && n%100 != 11 ? 0 : 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: mk\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/ml-IN.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-07-30 17:13\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Malayalam\\n\"\n\"Language: ml_IN\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ml-IN\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/mr-IN.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 00:15\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Marathi\\n\"\n\"Language: mr_IN\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: mr\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/ms-MY.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2025-02-10 11:01\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Malay\\n\"\n\"Language: ms_MY\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ms\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Pasang ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Cipta pintasan Menu Mula (opsional)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Cipta pintasan pada Desktop (opsional)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Nyahpasang ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Alih keluar fail konfigurasi (opsional)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Pasang ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Cipta pintasan Menu Mula untuk ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Cipta pintasan Desktop untuk ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Nyahpasang ${APPNAME}${APPVERSION} dan alih keluar pintasannya.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Alih keluar fail konfigurasi untuk ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/nb-NO.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-06-08 17:01\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Norwegian Bokmal\\n\"\n\"Language: nb_NO\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: nb\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Installér ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Lag snarveier på startmenyen (valgfritt)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Lag snarvei på skrivebordet (valgfritt)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Avinstaller ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Fjern konfigurasjonsfiler (valgfritt)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Installerer ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Oppretter snarveier på startmenyen for ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Oppretter snarvei på skrivebordet for ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Avinstallerer ${APPNAME} ${APPVERSION} og fjerner alle snarveier.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Fjerner konfigurasjonsfiler for ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/nl-NL.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Dutch\\n\"\n\"Language: nl_NL\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: nl\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/no-NO.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Norwegian\\n\"\n\"Language: no_NO\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: no\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Installér ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Lag snarveier på startmenyen (valgfritt)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Lag snarvei på skrivebordet (valgfritt)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Avinstaller ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Fjern konfigurasjonsfiler (valgfritt)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Installerer ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Oppretter snarveier på startmenyen for ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Oppretter snarvei på skrivebordet for ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Avinstallerer ${APPNAME} ${APPVERSION} og fjerner alle snarveier.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Fjerner konfigurasjonsfiler for ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/pl-PL.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Polish\\n\"\n\"Language: pl_PL\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: pl\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Zainstaluj ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Utwórz skróty w Menu Start (opcjonalne)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Utwórz skrót na pulpicie (opcjonalne)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Odinstaluj ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Usuń pliki konfiguracyjne (opcjonalnie)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Instaluje ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Tworzy skróty w Menu Start dla ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Tworzy skrót na pulpicie dla ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Odinstalowuje ${APPNAME} ${APPVERSION} i usuwa wszystkie skróty.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Usuwa pliki konfiguracyjne dla ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/pt-BR.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Portuguese, Brazilian\\n\"\n\"Language: pt_BR\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: pt-BR\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Instalar ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Criar atalhos no Menu Iniciar (opcional)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Criar atalho na Área de Trabalho (opcional)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Desinstalar ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Remover arquivos de configuração (opcional)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Instalar ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Cria atalhos no Menu Iniciar para ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Cria um atalho na Área de Trabalho para ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Desinstala o ${APPNAME} ${APPVERSION} e remove todos os atalhos.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Remover arquivos de configuração para ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/pt-PT.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-07-31 23:58\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Portuguese\\n\"\n\"Language: pt_PT\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: pt-PT\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Instalar ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Criar atalhos do Menu Iniciar (opcional)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Criar atalho na Área de Trabalho (opcional)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Desinstalar ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Remover arquivos de configuração (opcional)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Instala ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Cria atalhos do Menu Iniciar para ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Cria um atalho na área de trabalho para ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Desinstala o ${APPNAME} ${APPVERSION} e remove todos os atalhos.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Remove arquivos de configuração para ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/ro-RO.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Romanian\\n\"\n\"Language: ro_RO\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ro\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Instalare ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Creare comenzi rapide în meniul Start (opțional)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Creare comandă rapidă pe spațiul de lucru (opțional)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Dezinstalare ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Eliminare fișiere de configurare (opțional)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Instalează ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Creează comenzi rapide în meniul Start pentru ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Creează o comandă rapidă pe spațiul de lucru pentru ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Dezinstalează ${APPNAME} ${APPVERSION} și elimină toate comenzile rapide.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Elimină fișierele de configurare pentru ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/ru-RU.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-10-20 12:52\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Russian\\n\"\n\"Language: ru_RU\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ru\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Установить ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Создать ярлыки меню Пуск (опционально)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Создать ярлык на рабочем столе (опционально)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Удалить ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Удалить конфигурационные файлы (опционально)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Устанавливает ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Создает ярлыки меню Пуск для ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Создает ярлык на рабочем столе для ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Удаляет ${APPNAME} ${APPVERSION} и удаляет все ярлыки.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Удаление файлов конфигурации для ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/si-LK.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-08-24 12:16\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Sinhala\\n\"\n\"Language: si_LK\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: si-LK\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/sk-SK.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 00:15\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Slovak\\n\"\n\"Language: sk_SK\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: sk\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/sl-SI.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 00:15\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Slovenian\\n\"\n\"Language: sl_SI\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: sl\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/sq-AL.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2022-12-03 22:55\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Albanian\\n\"\n\"Language: sq_AL\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: sq\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/sr-SP.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Serbian (Cyrillic)\\n\"\n\"Language: sr_SP\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: sr\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Инсталирај ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Креирај пречицу у Старт Менију (опционално)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Креирај пречицу на десктопу (опционално)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Деинсталирај ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Обриши конфигурацијске фајлове (опционално)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Инсталира ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Креира пречицу у Старт Менију за ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Креира пречицу на десктопу за ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Деинсталира ${APPNAME} ${APPVERSION} и брише њихове пречице.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Брише конфигурацијске фајлове за ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/sv-SE.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2023-09-14 16:08\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Swedish\\n\"\n\"Language: sv_SE\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: sv-SE\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Installera ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Skapa genvägar i Startmenyn (valfritt)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Skapa genvägar på skrivbordet (valfritt)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Avinstallera ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Ta bort konfigurationsfiler (valfritt)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Installerar ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Skapar genvägar i Startmenyn för ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Skapar skrivbordsgenvägar för ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Avinstallerar ${APPNAME} ${APPVERSION} och tar bort alla genvägar.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Tar bort konfigurationsfiler för ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/sw-KE.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 00:15\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Swahili\\n\"\n\"Language: sw_KE\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: sw\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/ta-IN.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 00:15\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Tamil\\n\"\n\"Language: ta_IN\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: ta\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/th-TH.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 00:15\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Thai\\n\"\n\"Language: th_TH\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: th\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/tlh-AA.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2024-08-03 01:17\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Klingon\\n\"\n\"Language: tlh_AA\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: tlh-AA\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/tr-TR.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2025-07-01 17:14\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Turkish\\n\"\n\"Language: tr_TR\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=(n != 1);\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: tr\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Yükle ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Başlat Menüsü Kısayolu oluştur (isteğe bağlı)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Masaüstü Kısayolu oluştur (isteğe bağlı)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Kaldır ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Konfigürasyon dosyalarını sil (isteğe bağlı)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"${APPNAME} ${APPVERSION} indirilir.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"${APPNAME} için başlat menüsü kısayolu oluşturur.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"${APPNAME} için masaüstü kısayolu oluşturur.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"${APPNAME}${APPVERSION} silinir ve bütün kısayollar kaldırılır.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"${APPNAME} için konfigürasyon dosyalarını siler.\"\n\n"
  },
  {
    "path": "installer/po/uk-UA.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2025-02-16 02:29\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Ukrainian\\n\"\n\"Language: uk_UA\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\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: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: uk\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"Встановити ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"Створити ярлики в меню Пуск (необов'язково)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"Створити ярлик на стільниці (необов'язково)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"Видалити ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"Видалити конфігураційні файли (необов'язково)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"Встановлює ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"Створює ярлики в меню Пуск для ${APPNAME}.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"Створює ярлик на стільниці для ${APPNAME}.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"Видаляє ${APPNAME} ${APPVERSION} та стирає всі ярлики.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"Видаляє файли конфігурації для ${APPNAME}.\"\n\n"
  },
  {
    "path": "installer/po/vi-VN.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Vietnamese\\n\"\n\"Language: vi_VN\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: vi\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"\"\n\n"
  },
  {
    "path": "installer/po/zh-CN.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Chinese Simplified\\n\"\n\"Language: zh_CN\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: zh-CN\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"安装 ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"创建开始菜单快捷方式(可选)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"在桌面上创建快捷方式(可选)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"卸载 ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"删除配置文件(可选)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"安装 ${APPNAME} ${APPVERSION}。\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"为 ${APPNAME} 创建开始菜单快捷方式\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"为 ${APPNAME} 创建桌面快捷方式\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"卸载 ${APPNAME} ${APPVERSION} 并删除所有快捷方式。\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"删除 ${APPNAME} 的配置文件。\"\n\n"
  },
  {
    "path": "installer/po/zh-TW.po",
    "content": "msgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: pixelorama\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2021-05-07 04:44\\n\"\n\"PO-Revision-Date: 2021-05-21 17:41\\n\"\n\"Last-Translator: \\n\"\n\"Language-Team: Chinese Traditional\\n\"\n\"Language: zh_TW\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Crowdin-Project: pixelorama\\n\"\n\"X-Crowdin-Project-ID: 385497\\n\"\n\"X-Crowdin-Language: zh-TW\\n\"\n\"X-Crowdin-File: /master/installer/installer.pot\\n\"\n\"X-Crowdin-File-ID: 10\\n\"\n\n#. SecInstall\n#: ..\\pixelorama.nsi:84\nmsgid \"Install ${APPNAME}\"\nmsgstr \"安裝 ${APPNAME}\"\n\n#. SecStartmenu\n#: ..\\pixelorama.nsi:85\nmsgid \"Create Start Menu shortcuts (optional)\"\nmsgstr \"創建開始功能表捷徑 (可選)\"\n\n#. SecDesktop\n#: ..\\pixelorama.nsi:86\nmsgid \"Create shortcut on Desktop (optional)\"\nmsgstr \"創建桌面捷徑 (可選)\"\n\n#. un.SecUninstall\n#: ..\\pixelorama.nsi:87\nmsgid \"Uninstall ${APPNAME} ${APPVERSION}\"\nmsgstr \"移除 ${APPNAME} ${APPVERSION}\"\n\n#. un.SecConfig\n#: ..\\pixelorama.nsi:88\nmsgid \"Remove configuration files (optional)\"\nmsgstr \"刪除配置檔案 (可選)\"\n\n#. DESC_SecInstall\n#: ..\\pixelorama.nsi:200\nmsgid \"Installs ${APPNAME} ${APPVERSION}.\"\nmsgstr \"安裝 ${APPNAME} ${APPVERSION}.\"\n\n#. DESC_SecStartmenu\n#: ..\\pixelorama.nsi:201\nmsgid \"Creates Start Menu shortcuts for ${APPNAME}.\"\nmsgstr \"為 ${APPNAME} 創建開始功能表捷徑.\"\n\n#. DESC_SecDesktop\n#: ..\\pixelorama.nsi:202\nmsgid \"Creates a Desktop shortcut for ${APPNAME}.\"\nmsgstr \"為 ${APPNAME} 創建桌面捷徑.\"\n\n#. DESC_un.SecUninstall\n#: ..\\pixelorama.nsi:203\nmsgid \"Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts.\"\nmsgstr \"移除 ${APPNAME} ${APPVERSION} 及刪除所有捷鍵.\"\n\n#. DESC_un.SecConfig\n#: ..\\pixelorama.nsi:204\nmsgid \"Removes configuration files for ${APPNAME}.\"\nmsgstr \"為 ${APPNAME} 刪除配置檔案.\"\n\n"
  },
  {
    "path": "installer/utils/LICENSE",
    "content": " GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 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 General Public License is a free, copyleft license for\nsoftware and other kinds of works.\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,\nthe GNU General Public License is 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.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\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  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\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 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. Use with the GNU Affero General Public License.\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 Affero 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 special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe 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 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 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 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    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    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 General Public License for more details.\n\n    You should have received a copy of the GNU 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 the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\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 GPL, see\n<https://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<https://www.gnu.org/licenses/why-not-lgpl.html>."
  },
  {
    "path": "installer/utils/nsi2pot.py",
    "content": "\"\"\"\nnsi2pot.py: Create gettext POT template file from NSIS script\n\nCopyright (C) 2021 huskee \n(Original author: Dan Chowdhury)\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program.  If not, see <http://www.gnu.org/licenses/>.\n\"\"\"\n\nimport collections\nimport polib\nimport datetime\nimport os\nfrom optparse import OptionParser\n\nparser = OptionParser()\nparser.add_option(\"-i\", \"--input\", dest=\"input\",\n                  help=\"Input NSIS script location\", metavar=\"script.nsi\" )\nparser.add_option(\"-o\", \"--output\", dest=\"output\",\n                  help=\"POT file output location\", default=\"installer.pot\")\nparser.add_option(\"-p\", \"--project\", dest=\"project\",\n                  help=\"Project name to write to the pot file\")\nparser.add_option(\"-v\", \"--version\", dest=\"version\",\n                  help=\"Version to write to the pot file\")\nparser.add_option(\"-l\", \"--lang\", dest=\"lang\",\n                  help=\"NSIS script default language (default is English)\", default=\"English\" )\n\n(options, args) = parser.parse_args()\n\nmetadata = {\n    \"Project-Id-Version\" : (options.project + \" \" + options.version).strip(),\n    \"Report-Msgid-Bugs-To\" : \"\",\n    \"POT-Creation-Date\" : datetime.datetime.now().strftime('%Y-%m-%d %H:%M%z'),\n    \"PO-Revision-Date\" : \"YEAR-MO-DA HO:MI+ZONE\",\n    \"Last-Translator\" : \"FULL NAME <EMAIL@ADDRESS>\",\n    \"Language-Team\" : \"LANGUAGE <LL@li.org>\",\n    \"Language\"  : \"\",\n    \"MIME-Version\" : \"1.0\",\n    \"Content-Type\" : \"text/plain; charset=UTF-8\",\n    \"Content-Transfer-Encoding\" : \"8bit\"\n}\n\nNSIFilePath = options.input\n\n# Removes trailing \\ which marks a new line\ndef removeEscapedNewLine(line):\n    newline = line.rstrip(\"\\n\")\n    newline = line.rstrip()\n    newlen = len(newline)\n    if newline.rfind(\"\\\\\")+1 == len(newline):\n        return newline[:newlen-1]\n    return line\n\n# Open our source file\nNSIWorkingFile = open(NSIFilePath,\"r\")\nNSIWorkingFileDir,NSIFileName = os.path.split(NSIFilePath)\n# Create our new .POT file, and give our metadata\npoFile = polib.POFile()\npoFile.metadata = metadata\n# Create a cache of messageValues : [ [fileName1,lineNumber1], [fileName2,lineNumber2]... ]  (The same message could appear on multiple lines)\nLangStringCache = collections.OrderedDict()\n# Create a cache of messageValues : [ label1, label2 ] (The same message could have multiple NSIS labels)\nLangStringLabels = {}\n\n# What we're doing here is looping through each line of our .nsi till we find a LangString of the default language\n# Then, we try and grab the line number, the label, and the text\n# The text can be multiline, so we have to sometimes continue reading till we reach the end\nline=NSIWorkingFile.readline()\nlineNo = 1\nwhile line != '':\n    commands =  line.split()\n    if len(commands) > 3:\n        if commands[0] == \"LangString\" and commands[2].upper() == (\"${LANG_%s}\"%options.lang).upper():\n            label = commands[1]\n            value = \"\"\n            # Let's assume it's a one-liner\n            start = line.find('\"') + 1\n            if start:\n                end = line.find('\"',start)\n                if end != -1:\n                    value = line[start:end]\n                else: # Nope, multiline\n                    line = removeEscapedNewLine(line)\n                    # Keep reading till we reach the end\n                    value = line[start:]\n                    line = NSIWorkingFile.readline()\n                    lineNo += 1\n                    while line != '':\n                        line = removeEscapedNewLine(line)\n                        end = line.find('\"')\n                        if end != -1: #If we found the closing character, append\n                            value += line[:end].lstrip()\n                            break\n                        else: #If not, append and continue\n                            value += line.lstrip()\n                        line=NSIWorkingFile.readline()\n                        lineNo += 1\n\n            # Remove whitespace and new lines\n            value = value.strip(\"\\t\\n\")\n            value = polib.unescape ( value )\n            if not value in LangStringCache:\n                LangStringCache[value] = []\n            # Note down our file and line number\n            LangStringCache[value].append([options.input,lineNo])\n\n            if not value in LangStringLabels:\n                LangStringLabels[value] = []\n            # Note down our label\n            LangStringLabels[value].append(label)\n            \n    line=NSIWorkingFile.readline()\n    lineNo += 1\n\n# Now, we loop through our cache and build PO entries for each\n# We use PO comment field to store our NSIS labels, so we can decode it back later\nfor msgid,lineOccurances in LangStringCache.items():\n    entry = polib.POEntry(\n        msgid=msgid,\n        msgstr='',\n        occurrences=lineOccurances,\n        comment=(\" \").join(LangStringLabels[msgid])\n    )\n    poFile.append(entry)\n\n\nNSIWorkingFile.close()\n\n# Finally, let's generate our POT file\npoFile.save(options.output)\n\nprint ( \"%s: pot file generated\" %options.output )\n"
  },
  {
    "path": "installer/utils/po2nsi.py",
    "content": "\"\"\"\npo2nsi.py: Create multilingual NSIS script based on gettext\nPO files\n\nCopyright (C) 2021 huskee \n(Original author: Dan Chowdhury)\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program.  If not, see <http://www.gnu.org/licenses/>.\n\"\"\"\n\nimport collections\nimport os\nimport polib\nfrom optparse import OptionParser\n\nparser = OptionParser()\nparser.add_option(\"-i\", \"--input\", dest=\"input\",\n                  help=\"NSIS script to be localized\", metavar=\"script.nsi\")\nparser.add_option(\"-o\", \"--output\", dest=\"output\",\n                  help=\"Localized script output location\", metavar=\"script.nsi\")\nparser.add_option(\"-p\", \"--podir\", dest=\"podir\",\n                  help=\"Directory containing PO files\")\nparser.add_option(\"-l\", \"--lang\", dest=\"lang\",\n                  help=\"NSIS script default language (default is English)\", default=\"English\" )\nparser.add_option(\"-v\", \"--verbose\", action=\"store_true\",\n                  dest=\"verbose\", help=\"Verbose output\")                  \n\n(options, args) = parser.parse_args()\n\n\n# Define a dict to convert locale names to language names\nlocaleToName = {\n    \"af-ZA\" : \"Afrikaans\",\n    \"ar-SA\" : \"Arabic\",\n    \"ca-ES\" : \"Catalan\",\n    \"cs-CZ\" : \"Czech\",\n    \"da-DK\" : \"Danish\",\n    \"nl-NL\" : \"Dutch\",\n    \"en\" : \"English\",\n    \"eo-UY\" : \"Esperanto\",\n    \"fi-FI\" : \"Finnish\",\n    \"fr-FR\" : \"French\",\n    \"de-DE\" : \"German\",\n    \"el-GR\" : \"Greek\",\n    \"he-IL\" : \"Hebrew\",\n    \"hi-IN\" : \"Hindi\",\n    \"hu-HU\" : \"Hungarian\",\n    \"id-ID\" : \"Indonesian\",\n    \"it-IT\" : \"Italian\",\n    \"ja-JP\" : \"Japanese\",\n    \"ko-KR\" : \"Korean\",\n    \"lv-LV\" : \"Latvian\",\n    \"no-NO\" : \"Norwegian\",\n    \"pl-PL\" : \"Polish\",\n    \"pt-PT\" : \"Portuguese\",\n    \"pt-BR\" : \"PortugueseBR\",\n    \"ro-RO\" : \"Romanian\",\n    \"ru-RU\" : \"Russian\",\n    \"sr-SP\" : \"Serbian\",\n    \"zh-CN\" : \"SimpChinese\",\n    \"es-ES\" : \"Spanish\",\n    \"sv-SE\" : \"Swedish\",\n    \"zh-TW\" : \"TradChinese\",\n    \"tr-TR\" : \"Turkish\",\n    \"uk-UA\" : \"Ukrainian\",\n    \"vi-VN\" : \"Vietnamese\",\n}\n\nlocaleRTL = [ \"ar-SA\", \"he-IL\" ]\n\ndef escapeNSIS(st):\n    return st.replace('\\\\', r'$\\\\')\\\n             .replace('\\t', r'$\\t')\\\n             .replace('\\r', r'\\r')\\\n             .replace('\\n', r'\\n')\\\n             .replace('\\\"', r'$\\\"')\\\n             .replace('$$\\\\', '$\\\\')\n\ntranslationCache = {}\n\n# The purpose of this loop is to go to the podir scanning for PO files for each locale name\n# Once we've found a PO file, we use PO lib to read every translated entry\n# Using this, for each each language, we store a dict of entries - { nsilabel (comment) : translation (msgstr) }\n# For untranslated entries, we use msgid instead of msgstr (i.e. default English string)\nfor root,dirs,files in os.walk(options.podir):\n    for file in files:\n        filename,ext = os.path.splitext(file)\n        if ext == \".po\":\n            # Valid locale filename (fr.po, de.po etc)?\n            if filename not in localeToName:\n                print(\"%s: invalid filename, must be xx-YY language code\" %(filename))\n            else:\n                if options.verbose:\n                    print(\"Valid filename found\")             \n                language = localeToName[filename]\n                translationCache[language] = collections.OrderedDict()         \n                # Let's add a default LANGUAGE_CODE LangString to be read\n                translationCache[language][\"LANGUAGE_CODE\"] = filename\n                if options.verbose:\n                    print(\"Language: %s (%s)\" %(language, translationCache[language][\"LANGUAGE_CODE\"]))\n\n                # Are we RTL? Mark that down too as a LangString\n                if filename in localeRTL:\n                    translationCache[language][\"LANGUAGE_RTL\"] = \"1\"\n                    if options.verbose:\n                        print(\"RTL language\")\n                else:\n                    if options.verbose:\n                        print(\"Non RTL language\")\n\n                po = polib.pofile(os.path.join(root,file))\n                for entry in po.translated_entries():\n                    # Loop through all our labels and add translation (each translation may have multiple labels)\n                    for label in entry.comment.split():\n                        translationCache[language][label] = escapeNSIS(entry.msgstr)\n                        if options.verbose:\n                            print(\"msgstr added, \" + translationCache[language][label])\n                # For untranslated strings, let's add the English entry\n                for entry in po.untranslated_entries():\n                    for label in entry.comment.split():\n                        print(\"Warning: Label '%s' for language %s remains untranslated\"%(label,language))\n                        translationCache[language][label] = escapeNSIS(entry.msgid)\n                if options.verbose:\n                    print('\\n')\n\n\n        \n\n\n# Open our source NSI, dump it to a list and close it\nNSISourceFile = open(options.input,\"r\")\nif options.verbose:\n    print(\"Opened source file\")\nNSISourceLines = NSISourceFile.readlines()\nif options.verbose:\n    print(\"Read source file lines\")\nNSISourceFile.close()\nif options.verbose:    \n    print(\"Closed source file\")\nNSINewLines = []\n\n\n# Here we scan for \";@INSERT_TRANSLATIONS@\" in the NSIS, and add MUI_LANGUAGE macros and LangString's for translation languages\nlineNo = 1\nprint('\\n')\nfor line in NSISourceLines:\n    x = line.find(\";@INSERT_TRANSLATIONS@\")\n    if x != -1:\n        if options.verbose:\n            print(\"INSERT_TRANSLATIONS found\")\n        NSINewLines.append('\\n')\n        for language,translations in translationCache.items():\n            count = 0\n            # if the language isn't the default, we add our MUI_LANGUAGE macro\n            if language.upper() != options.lang.upper():\n                NSINewLines.append('  !insertmacro MUI_LANGUAGE \"%s\"\\n'%language)\n            # For every translation we grabbed from the .po, let's add our LangString\n            for label,value in translations.items():\n                NSINewLines.append('  LangString %s ${LANG_%s} \"%s\"\\n' % (label,language,value))\n                count += 1\n            NSINewLines.append('\\n')\n            print (\"%i translations merged for language %s\" %(count,language))\n    else:\n        NSINewLines.append (line)\n    \n# Finally, let's write our new .nsi to the desired target file\nNSIWorkingFile = open(options.output,\"w\",encoding='utf-8')\nNSIWorkingFile.writelines(NSINewLines)\nNSIWorkingFile.close()\n    \nprint (\"%s: NSIS script successfully localized\" %options.output)\n"
  },
  {
    "path": "installer/utils/polib.py",
    "content": "# -* coding: utf-8 -*-\n#\n# License: MIT (see LICENSE file provided)\n# vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4:\n\n\"\"\"\n**polib** allows you to manipulate, create, modify gettext files (pot, po and\nmo files).  You can load existing files, iterate through it's entries, add,\nmodify entries, comments or metadata, etc. or create new po files from scratch.\n\n**polib** provides a simple and pythonic API via the :func:`~polib.pofile` and\n:func:`~polib.mofile` convenience functions.\n\"\"\"\n\nimport array\nimport codecs\nimport os\nimport re\nimport struct\nimport sys\nimport textwrap\n\ntry:\n    import io\nexcept ImportError:\n    # replacement of io.open() for python < 2.6\n    # we use codecs instead\n    class io(object):\n        @staticmethod\n        def open(fpath, mode='r', encoding=None):\n            return codecs.open(fpath, mode, encoding)\n\n\n__author__ = 'David Jean Louis <izimobil@gmail.com>'\n__version__ = '1.1.0'\n__all__ = ['pofile', 'POFile', 'POEntry', 'mofile', 'MOFile', 'MOEntry',\n           'default_encoding', 'escape', 'unescape', 'detect_encoding', ]\n\n\n# the default encoding to use when encoding cannot be detected\ndefault_encoding = 'utf-8'\n\n# python 2/3 compatibility helpers {{{\n\n\nif sys.version_info[:2] < (3, 0):\n    PY3 = False\n    text_type = unicode\n\n    def b(s):\n        return s\n\n    def u(s):\n        return unicode(s, \"unicode_escape\")\n\nelse:\n    PY3 = True\n    text_type = str\n\n    def b(s):\n        return s.encode(\"latin-1\")\n\n    def u(s):\n        return s\n# }}}\n# _pofile_or_mofile {{{\n\n\ndef _pofile_or_mofile(f, type, **kwargs):\n    \"\"\"\n    Internal function used by :func:`polib.pofile` and :func:`polib.mofile` to\n    honor the DRY concept.\n    \"\"\"\n    # get the file encoding\n    enc = kwargs.get('encoding')\n    if enc is None:\n        enc = detect_encoding(f, type == 'mofile')\n\n    # parse the file\n    kls = type == 'pofile' and _POFileParser or _MOFileParser\n    parser = kls(\n        f,\n        encoding=enc,\n        check_for_duplicates=kwargs.get('check_for_duplicates', False),\n        klass=kwargs.get('klass')\n    )\n    instance = parser.parse()\n    instance.wrapwidth = kwargs.get('wrapwidth', 78)\n    return instance\n# }}}\n# _is_file {{{\n\n\ndef _is_file(filename_or_contents):\n    \"\"\"\n    Safely returns the value of os.path.exists(filename_or_contents).\n\n    Arguments:\n\n    ``filename_or_contents``\n        either a filename, or a string holding the contents of some file.\n        In the latter case, this function will always return False.\n    \"\"\"\n    try:\n        return os.path.exists(filename_or_contents)\n    except (ValueError, UnicodeEncodeError):\n        return False\n# }}}\n# function pofile() {{{\n\n\ndef pofile(pofile, **kwargs):\n    \"\"\"\n    Convenience function that parses the po or pot file ``pofile`` and returns\n    a :class:`~polib.POFile` instance.\n\n    Arguments:\n\n    ``pofile``\n        string, full or relative path to the po/pot file or its content (data).\n\n    ``wrapwidth``\n        integer, the wrap width, only useful when the ``-w`` option was passed\n        to xgettext (optional, default: ``78``).\n\n    ``encoding``\n        string, the encoding to use (e.g. \"utf-8\") (default: ``None``, the\n        encoding will be auto-detected).\n\n    ``check_for_duplicates``\n        whether to check for duplicate entries when adding entries to the\n        file (optional, default: ``False``).\n\n    ``klass``\n        class which is used to instantiate the return value (optional,\n        default: ``None``, the return value with be a :class:`~polib.POFile`\n        instance).\n    \"\"\"\n    return _pofile_or_mofile(pofile, 'pofile', **kwargs)\n# }}}\n# function mofile() {{{\n\n\ndef mofile(mofile, **kwargs):\n    \"\"\"\n    Convenience function that parses the mo file ``mofile`` and returns a\n    :class:`~polib.MOFile` instance.\n\n    Arguments:\n\n    ``mofile``\n        string, full or relative path to the mo file or its content (data).\n\n    ``wrapwidth``\n        integer, the wrap width, only useful when the ``-w`` option was passed\n        to xgettext to generate the po file that was used to format the mo file\n        (optional, default: ``78``).\n\n    ``encoding``\n        string, the encoding to use (e.g. \"utf-8\") (default: ``None``, the\n        encoding will be auto-detected).\n\n    ``check_for_duplicates``\n        whether to check for duplicate entries when adding entries to the\n        file (optional, default: ``False``).\n\n    ``klass``\n        class which is used to instantiate the return value (optional,\n        default: ``None``, the return value with be a :class:`~polib.POFile`\n        instance).\n    \"\"\"\n    return _pofile_or_mofile(mofile, 'mofile', **kwargs)\n# }}}\n# function detect_encoding() {{{\n\n\ndef detect_encoding(file, binary_mode=False):\n    \"\"\"\n    Try to detect the encoding used by the ``file``. The ``file`` argument can\n    be a PO or MO file path or a string containing the contents of the file.\n    If the encoding cannot be detected, the function will return the value of\n    ``default_encoding``.\n\n    Arguments:\n\n    ``file``\n        string, full or relative path to the po/mo file or its content.\n\n    ``binary_mode``\n        boolean, set this to True if ``file`` is a mo file.\n    \"\"\"\n    PATTERN = r'\"?Content-Type:.+? charset=([\\w_\\-:\\.]+)'\n    rxt = re.compile(u(PATTERN))\n    rxb = re.compile(b(PATTERN))\n\n    def charset_exists(charset):\n        \"\"\"Check whether ``charset`` is valid or not.\"\"\"\n        try:\n            codecs.lookup(charset)\n        except LookupError:\n            return False\n        return True\n\n    if not _is_file(file):\n        match = rxt.search(file)\n        if match:\n            enc = match.group(1).strip()\n            if charset_exists(enc):\n                return enc\n    else:\n        # For PY3, always treat as binary\n        if binary_mode or PY3:\n            mode = 'rb'\n            rx = rxb\n        else:\n            mode = 'r'\n            rx = rxt\n        f = open(file, mode)\n        for l in f.readlines():\n            match = rx.search(l)\n            if match:\n                f.close()\n                enc = match.group(1).strip()\n                if not isinstance(enc, text_type):\n                    enc = enc.decode('utf-8')\n                if charset_exists(enc):\n                    return enc\n        f.close()\n    return default_encoding\n# }}}\n# function escape() {{{\n\n\ndef escape(st):\n    \"\"\"\n    Escapes the characters ``\\\\\\\\``, ``\\\\t``, ``\\\\n``, ``\\\\r`` and ``\"`` in\n    the given string ``st`` and returns it.\n    \"\"\"\n    return st.replace('\\\\', r'\\\\')\\\n             .replace('\\t', r'\\t')\\\n             .replace('\\r', r'\\r')\\\n             .replace('\\n', r'\\n')\\\n             .replace('\\\"', r'\\\"')\n# }}}\n# function unescape() {{{\n\n\ndef unescape(st):\n    \"\"\"\n    Unescapes the characters ``\\\\\\\\``, ``\\\\t``, ``\\\\n``, ``\\\\r`` and ``\"`` in\n    the given string ``st`` and returns it.\n    \"\"\"\n    def unescape_repl(m):\n        m = m.group(1)\n        if m == 'n':\n            return '\\n'\n        if m == 't':\n            return '\\t'\n        if m == 'r':\n            return '\\r'\n        if m == '\\\\':\n            return '\\\\'\n        return m  # handles escaped double quote\n    return re.sub(r'\\\\(\\\\|n|t|r|\")', unescape_repl, st)\n# }}}\n# function natural_sort() {{{\n\n\ndef natural_sort(lst):\n    \"\"\"\n    Sort naturally the given list.\n    Credits: http://stackoverflow.com/a/4836734\n    \"\"\"\n    def convert(text):\n        return int(text) if text.isdigit() else text.lower()\n\n    def alphanum_key(key):\n        return [convert(c) for c in re.split('([0-9]+)', key)]\n\n    return sorted(lst, key=alphanum_key)\n\n# }}}\n# class _BaseFile {{{\n\n\nclass _BaseFile(list):\n    \"\"\"\n    Common base class for the :class:`~polib.POFile` and :class:`~polib.MOFile`\n    classes. This class should **not** be instantiated directly.\n    \"\"\"\n\n    def __init__(self, *args, **kwargs):\n        \"\"\"\n        Constructor, accepts the following keyword arguments:\n\n        ``pofile``\n            string, the path to the po or mo file, or its content as a string.\n\n        ``wrapwidth``\n            integer, the wrap width, only useful when the ``-w`` option was\n            passed to xgettext (optional, default: ``78``).\n\n        ``encoding``\n            string, the encoding to use, defaults to ``default_encoding``\n            global variable (optional).\n\n        ``check_for_duplicates``\n            whether to check for duplicate entries when adding entries to the\n            file, (optional, default: ``False``).\n        \"\"\"\n        list.__init__(self)\n        # the opened file handle\n        pofile = kwargs.get('pofile', None)\n        if pofile and _is_file(pofile):\n            self.fpath = pofile\n        else:\n            self.fpath = kwargs.get('fpath')\n        # the width at which lines should be wrapped\n        self.wrapwidth = kwargs.get('wrapwidth', 78)\n        # the file encoding\n        self.encoding = kwargs.get('encoding', default_encoding)\n        # whether to check for duplicate entries or not\n        self.check_for_duplicates = kwargs.get('check_for_duplicates', False)\n        # header\n        self.header = ''\n        # both po and mo files have metadata\n        self.metadata = {}\n        self.metadata_is_fuzzy = 0\n\n    def __unicode__(self):\n        \"\"\"\n        Returns the unicode representation of the file.\n        \"\"\"\n        ret = []\n        entries = [self.metadata_as_entry()] + \\\n                  [e for e in self if not e.obsolete]\n        for entry in entries:\n            ret.append(entry.__unicode__(self.wrapwidth))\n        for entry in self.obsolete_entries():\n            ret.append(entry.__unicode__(self.wrapwidth))\n        ret = u('\\n').join(ret)\n        return ret\n\n    if PY3:\n        def __str__(self):\n            return self.__unicode__()\n    else:\n        def __str__(self):\n            \"\"\"\n            Returns the string representation of the file.\n            \"\"\"\n            return unicode(self).encode(self.encoding)\n\n    def __contains__(self, entry):\n        \"\"\"\n        Overridden ``list`` method to implement the membership test (in and\n        not in).\n        The method considers that an entry is in the file if it finds an entry\n        that has the same msgid (the test is **case sensitive**) and the same\n        msgctxt (or none for both entries).\n\n        Argument:\n\n        ``entry``\n            an instance of :class:`~polib._BaseEntry`.\n        \"\"\"\n        return self.find(entry.msgid, by='msgid', msgctxt=entry.msgctxt) \\\n            is not None\n\n    def __eq__(self, other):\n        return str(self) == str(other)\n\n    def append(self, entry):\n        \"\"\"\n        Overridden method to check for duplicates entries, if a user tries to\n        add an entry that is already in the file, the method will raise a\n        ``ValueError`` exception.\n\n        Argument:\n\n        ``entry``\n            an instance of :class:`~polib._BaseEntry`.\n        \"\"\"\n        # check_for_duplicates may not be defined (yet) when unpickling.\n        # But if pickling, we never want to check for duplicates anyway.\n        if getattr(self, 'check_for_duplicates', False) and entry in self:\n            raise ValueError('Entry \"%s\" already exists' % entry.msgid)\n        super(_BaseFile, self).append(entry)\n\n    def insert(self, index, entry):\n        \"\"\"\n        Overridden method to check for duplicates entries, if a user tries to\n        add an entry that is already in the file, the method will raise a\n        ``ValueError`` exception.\n\n        Arguments:\n\n        ``index``\n            index at which the entry should be inserted.\n\n        ``entry``\n            an instance of :class:`~polib._BaseEntry`.\n        \"\"\"\n        if self.check_for_duplicates and entry in self:\n            raise ValueError('Entry \"%s\" already exists' % entry.msgid)\n        super(_BaseFile, self).insert(index, entry)\n\n    def metadata_as_entry(self):\n        \"\"\"\n        Returns the file metadata as a :class:`~polib.POFile` instance.\n        \"\"\"\n        e = POEntry(msgid='')\n        mdata = self.ordered_metadata()\n        if mdata:\n            strs = []\n            for name, value in mdata:\n                # Strip whitespace off each line in a multi-line entry\n                strs.append('%s: %s' % (name, value))\n            e.msgstr = '\\n'.join(strs) + '\\n'\n        if self.metadata_is_fuzzy:\n            e.flags.append('fuzzy')\n        return e\n\n    def save(self, fpath=None, repr_method='__unicode__'):\n        \"\"\"\n        Saves the po file to ``fpath``.\n        If it is an existing file and no ``fpath`` is provided, then the\n        existing file is rewritten with the modified data.\n\n        Keyword arguments:\n\n        ``fpath``\n            string, full or relative path to the file.\n\n        ``repr_method``\n            string, the method to use for output.\n        \"\"\"\n        if self.fpath is None and fpath is None:\n            raise IOError('You must provide a file path to save() method')\n        contents = getattr(self, repr_method)()\n        if fpath is None:\n            fpath = self.fpath\n        if repr_method == 'to_binary':\n            fhandle = open(fpath, 'wb')\n        else:\n            fhandle = io.open(fpath, 'w', encoding=self.encoding)\n            if not isinstance(contents, text_type):\n                contents = contents.decode(self.encoding)\n        fhandle.write(contents)\n        fhandle.close()\n        # set the file path if not set\n        if self.fpath is None and fpath:\n            self.fpath = fpath\n\n    def find(self, st, by='msgid', include_obsolete_entries=False,\n             msgctxt=False):\n        \"\"\"\n        Find the entry which msgid (or property identified by the ``by``\n        argument) matches the string ``st``.\n\n        Keyword arguments:\n\n        ``st``\n            string, the string to search for.\n\n        ``by``\n            string, the property to use for comparison (default: ``msgid``).\n\n        ``include_obsolete_entries``\n            boolean, whether to also search in entries that are obsolete.\n\n        ``msgctxt``\n            string, allows specifying a specific message context for the\n            search.\n        \"\"\"\n        if include_obsolete_entries:\n            entries = self[:]\n        else:\n            entries = [e for e in self if not e.obsolete]\n        matches = []\n        for e in entries:\n            if getattr(e, by) == st:\n                if msgctxt is not False and e.msgctxt != msgctxt:\n                    continue\n                matches.append(e)\n        if len(matches) == 1:\n            return matches[0]\n        elif len(matches) > 1:\n            if not msgctxt:\n                # find the entry with no msgctx\n                e = None\n                for m in matches:\n                    if not m.msgctxt:\n                        e = m\n                if e:\n                    return e\n                # fallback to the first entry found\n                return matches[0]\n        return None\n\n    def ordered_metadata(self):\n        \"\"\"\n        Convenience method that returns an ordered version of the metadata\n        dictionary. The return value is list of tuples (metadata name,\n        metadata_value).\n        \"\"\"\n        # copy the dict first\n        metadata = self.metadata.copy()\n        data_order = [\n            'Project-Id-Version',\n            'Report-Msgid-Bugs-To',\n            'POT-Creation-Date',\n            'PO-Revision-Date',\n            'Last-Translator',\n            'Language-Team',\n            'Language',\n            'MIME-Version',\n            'Content-Type',\n            'Content-Transfer-Encoding',\n            'Plural-Forms'\n        ]\n        ordered_data = []\n        for data in data_order:\n            try:\n                value = metadata.pop(data)\n                ordered_data.append((data, value))\n            except KeyError:\n                pass\n        # the rest of the metadata will be alphabetically ordered since there\n        # are no specs for this AFAIK\n        for data in natural_sort(metadata.keys()):\n            value = metadata[data]\n            ordered_data.append((data, value))\n        return ordered_data\n\n    def to_binary(self):\n        \"\"\"\n        Return the binary representation of the file.\n        \"\"\"\n        offsets = []\n        entries = self.translated_entries()\n\n        # the keys are sorted in the .mo file\n        def cmp(_self, other):\n            # msgfmt compares entries with msgctxt if it exists\n            self_msgid = _self.msgctxt and _self.msgctxt or _self.msgid\n            other_msgid = other.msgctxt and other.msgctxt or other.msgid\n            if self_msgid > other_msgid:\n                return 1\n            elif self_msgid < other_msgid:\n                return -1\n            else:\n                return 0\n        # add metadata entry\n        entries.sort(key=lambda o: o.msgid_with_context.encode('utf-8'))\n        mentry = self.metadata_as_entry()\n        entries = [mentry] + entries\n        entries_len = len(entries)\n        ids, strs = b(''), b('')\n        for e in entries:\n            # For each string, we need size and file offset.  Each string is\n            # NUL terminated; the NUL does not count into the size.\n            msgid = b('')\n            if e.msgctxt:\n                # Contexts are stored by storing the concatenation of the\n                # context, a <EOT> byte, and the original string\n                msgid = self._encode(e.msgctxt + '\\4')\n            if e.msgid_plural:\n                msgstr = []\n                for index in sorted(e.msgstr_plural.keys()):\n                    msgstr.append(e.msgstr_plural[index])\n                msgid += self._encode(e.msgid + '\\0' + e.msgid_plural)\n                msgstr = self._encode('\\0'.join(msgstr))\n            else:\n                msgid += self._encode(e.msgid)\n                msgstr = self._encode(e.msgstr)\n            offsets.append((len(ids), len(msgid), len(strs), len(msgstr)))\n            ids += msgid + b('\\0')\n            strs += msgstr + b('\\0')\n\n        # The header is 7 32-bit unsigned integers.\n        keystart = 7 * 4 + 16 * entries_len\n        # and the values start after the keys\n        valuestart = keystart + len(ids)\n        koffsets = []\n        voffsets = []\n        # The string table first has the list of keys, then the list of values.\n        # Each entry has first the size of the string, then the file offset.\n        for o1, l1, o2, l2 in offsets:\n            koffsets += [l1, o1 + keystart]\n            voffsets += [l2, o2 + valuestart]\n        offsets = koffsets + voffsets\n\n        output = struct.pack(\n            \"Iiiiiii\",\n            # Magic number\n            MOFile.MAGIC,\n            # Version\n            0,\n            # number of entries\n            entries_len,\n            # start of key index\n            7 * 4,\n            # start of value index\n            7 * 4 + entries_len * 8,\n            # size and offset of hash table, we don't use hash tables\n            0, keystart\n\n        )\n        if PY3 and sys.version_info.minor > 1:  # python 3.2 or superior\n            output += array.array(\"i\", offsets).tobytes()\n        else:\n            output += array.array(\"i\", offsets).tostring()\n        output += ids\n        output += strs\n        return output\n\n    def _encode(self, mixed):\n        \"\"\"\n        Encodes the given ``mixed`` argument with the file encoding if and\n        only if it's an unicode string and returns the encoded string.\n        \"\"\"\n        if isinstance(mixed, text_type):\n            mixed = mixed.encode(self.encoding)\n        return mixed\n# }}}\n# class POFile {{{\n\n\nclass POFile(_BaseFile):\n    \"\"\"\n    Po (or Pot) file reader/writer.\n    This class inherits the :class:`~polib._BaseFile` class and, by extension,\n    the python ``list`` type.\n    \"\"\"\n\n    def __unicode__(self):\n        \"\"\"\n        Returns the unicode representation of the po file.\n        \"\"\"\n        ret, headers = '', self.header.split('\\n')\n        for header in headers:\n            if not len(header):\n                ret += \"#\\n\"\n            elif header[:1] in [',', ':']:\n                ret += '#%s\\n' % header\n            else:\n                ret += '# %s\\n' % header\n\n        if not isinstance(ret, text_type):\n            ret = ret.decode(self.encoding)\n\n        return ret + _BaseFile.__unicode__(self)\n\n    def save_as_mofile(self, fpath):\n        \"\"\"\n        Saves the binary representation of the file to given ``fpath``.\n\n        Keyword argument:\n\n        ``fpath``\n            string, full or relative path to the mo file.\n        \"\"\"\n        _BaseFile.save(self, fpath, 'to_binary')\n\n    def percent_translated(self):\n        \"\"\"\n        Convenience method that returns the percentage of translated\n        messages.\n        \"\"\"\n        total = len([e for e in self if not e.obsolete])\n        if total == 0:\n            return 100\n        translated = len(self.translated_entries())\n        return int(translated * 100 / float(total))\n\n    def translated_entries(self):\n        \"\"\"\n        Convenience method that returns the list of translated entries.\n        \"\"\"\n        return [e for e in self if e.translated()]\n\n    def untranslated_entries(self):\n        \"\"\"\n        Convenience method that returns the list of untranslated entries.\n        \"\"\"\n        return [e for e in self if not e.translated() and not e.obsolete\n                and not e.fuzzy]\n\n    def fuzzy_entries(self):\n        \"\"\"\n        Convenience method that returns the list of fuzzy entries.\n        \"\"\"\n        return [e for e in self if e.fuzzy]\n\n    def obsolete_entries(self):\n        \"\"\"\n        Convenience method that returns the list of obsolete entries.\n        \"\"\"\n        return [e for e in self if e.obsolete]\n\n    def merge(self, refpot):\n        \"\"\"\n        Convenience method that merges the current pofile with the pot file\n        provided. It behaves exactly as the gettext msgmerge utility:\n\n        * comments of this file will be preserved, but extracted comments and\n          occurrences will be discarded;\n        * any translations or comments in the file will be discarded, however,\n          dot comments and file positions will be preserved;\n        * the fuzzy flags are preserved.\n\n        Keyword argument:\n\n        ``refpot``\n            object POFile, the reference catalog.\n        \"\"\"\n        # Store entries in dict/set for faster access\n        self_entries = dict(\n            (entry.msgid_with_context, entry) for entry in self\n        )\n        refpot_msgids = set(entry.msgid_with_context for entry in refpot)\n        # Merge entries that are in the refpot\n        for entry in refpot:\n            e = self_entries.get(entry.msgid_with_context)\n            if e is None:\n                e = POEntry()\n                self.append(e)\n            e.merge(entry)\n        # ok, now we must \"obsolete\" entries that are not in the refpot anymore\n        for entry in self:\n            if entry.msgid_with_context not in refpot_msgids:\n                entry.obsolete = True\n# }}}\n# class MOFile {{{\n\n\nclass MOFile(_BaseFile):\n    \"\"\"\n    Mo file reader/writer.\n    This class inherits the :class:`~polib._BaseFile` class and, by\n    extension, the python ``list`` type.\n    \"\"\"\n    MAGIC = 0x950412de\n    MAGIC_SWAPPED = 0xde120495\n\n    def __init__(self, *args, **kwargs):\n        \"\"\"\n        Constructor, accepts all keywords arguments accepted by\n        :class:`~polib._BaseFile` class.\n        \"\"\"\n        _BaseFile.__init__(self, *args, **kwargs)\n        self.magic_number = None\n        self.version = 0\n\n    def save_as_pofile(self, fpath):\n        \"\"\"\n        Saves the mofile as a pofile to ``fpath``.\n\n        Keyword argument:\n\n        ``fpath``\n            string, full or relative path to the file.\n        \"\"\"\n        _BaseFile.save(self, fpath)\n\n    def save(self, fpath=None):\n        \"\"\"\n        Saves the mofile to ``fpath``.\n\n        Keyword argument:\n\n        ``fpath``\n            string, full or relative path to the file.\n        \"\"\"\n        _BaseFile.save(self, fpath, 'to_binary')\n\n    def percent_translated(self):\n        \"\"\"\n        Convenience method to keep the same interface with POFile instances.\n        \"\"\"\n        return 100\n\n    def translated_entries(self):\n        \"\"\"\n        Convenience method to keep the same interface with POFile instances.\n        \"\"\"\n        return self\n\n    def untranslated_entries(self):\n        \"\"\"\n        Convenience method to keep the same interface with POFile instances.\n        \"\"\"\n        return []\n\n    def fuzzy_entries(self):\n        \"\"\"\n        Convenience method to keep the same interface with POFile instances.\n        \"\"\"\n        return []\n\n    def obsolete_entries(self):\n        \"\"\"\n        Convenience method to keep the same interface with POFile instances.\n        \"\"\"\n        return []\n# }}}\n# class _BaseEntry {{{\n\n\nclass _BaseEntry(object):\n    \"\"\"\n    Base class for :class:`~polib.POEntry` and :class:`~polib.MOEntry` classes.\n    This class should **not** be instantiated directly.\n    \"\"\"\n\n    def __init__(self, *args, **kwargs):\n        \"\"\"\n        Constructor, accepts the following keyword arguments:\n\n        ``msgid``\n            string, the entry msgid.\n\n        ``msgstr``\n            string, the entry msgstr.\n\n        ``msgid_plural``\n            string, the entry msgid_plural.\n\n        ``msgstr_plural``\n            list, the entry msgstr_plural lines.\n\n        ``msgctxt``\n            string, the entry context (msgctxt).\n\n        ``obsolete``\n            bool, whether the entry is \"obsolete\" or not.\n\n        ``encoding``\n            string, the encoding to use, defaults to ``default_encoding``\n            global variable (optional).\n        \"\"\"\n        self.msgid = kwargs.get('msgid', '')\n        self.msgstr = kwargs.get('msgstr', '')\n        self.msgid_plural = kwargs.get('msgid_plural', '')\n        self.msgstr_plural = kwargs.get('msgstr_plural', {})\n        self.msgctxt = kwargs.get('msgctxt', None)\n        self.obsolete = kwargs.get('obsolete', False)\n        self.encoding = kwargs.get('encoding', default_encoding)\n\n    def __unicode__(self, wrapwidth=78):\n        \"\"\"\n        Returns the unicode representation of the entry.\n        \"\"\"\n        if self.obsolete:\n            delflag = '#~ '\n        else:\n            delflag = ''\n        ret = []\n        # write the msgctxt if any\n        if self.msgctxt is not None:\n            ret += self._str_field(\"msgctxt\", delflag, \"\", self.msgctxt,\n                                   wrapwidth)\n        # write the msgid\n        ret += self._str_field(\"msgid\", delflag, \"\", self.msgid, wrapwidth)\n        # write the msgid_plural if any\n        if self.msgid_plural:\n            ret += self._str_field(\"msgid_plural\", delflag, \"\",\n                                   self.msgid_plural, wrapwidth)\n        if self.msgstr_plural:\n            # write the msgstr_plural if any\n            msgstrs = self.msgstr_plural\n            keys = list(msgstrs)\n            keys.sort()\n            for index in keys:\n                msgstr = msgstrs[index]\n                plural_index = '[%s]' % index\n                ret += self._str_field(\"msgstr\", delflag, plural_index, msgstr,\n                                       wrapwidth)\n        else:\n            # otherwise write the msgstr\n            ret += self._str_field(\"msgstr\", delflag, \"\", self.msgstr,\n                                   wrapwidth)\n        ret.append('')\n        ret = u('\\n').join(ret)\n        return ret\n\n    if PY3:\n        def __str__(self):\n            return self.__unicode__()\n    else:\n        def __str__(self):\n            \"\"\"\n            Returns the string representation of the entry.\n            \"\"\"\n            return unicode(self).encode(self.encoding)\n\n    def __eq__(self, other):\n        return str(self) == str(other)\n\n    def _str_field(self, fieldname, delflag, plural_index, field,\n                   wrapwidth=78):\n        lines = field.splitlines(True)\n        if len(lines) > 1:\n            lines = [''] + lines  # start with initial empty line\n        else:\n            escaped_field = escape(field)\n            specialchars_count = 0\n            for c in ['\\\\', '\\n', '\\r', '\\t', '\"']:\n                specialchars_count += field.count(c)\n            # comparison must take into account fieldname length + one space\n            # + 2 quotes (eg. msgid \"<string>\")\n            flength = len(fieldname) + 3\n            if plural_index:\n                flength += len(plural_index)\n            real_wrapwidth = wrapwidth - flength + specialchars_count\n            if wrapwidth > 0 and len(field) > real_wrapwidth:\n                # Wrap the line but take field name into account\n                lines = [''] + [unescape(item) for item in wrap(\n                    escaped_field,\n                    wrapwidth - 2,  # 2 for quotes \"\"\n                    drop_whitespace=False,\n                    break_long_words=False\n                )]\n            else:\n                lines = [field]\n        if fieldname.startswith('previous_'):\n            # quick and dirty trick to get the real field name\n            fieldname = fieldname[9:]\n\n        ret = ['%s%s%s \"%s\"' % (delflag, fieldname, plural_index,\n                                escape(lines.pop(0)))]\n        for line in lines:\n            ret.append('%s\"%s\"' % (delflag, escape(line)))\n        return ret\n# }}}\n# class POEntry {{{\n\n\nclass POEntry(_BaseEntry):\n    \"\"\"\n    Represents a po file entry.\n    \"\"\"\n\n    def __init__(self, *args, **kwargs):\n        \"\"\"\n        Constructor, accepts the following keyword arguments:\n\n        ``comment``\n            string, the entry comment.\n\n        ``tcomment``\n            string, the entry translator comment.\n\n        ``occurrences``\n            list, the entry occurrences.\n\n        ``flags``\n            list, the entry flags.\n\n        ``previous_msgctxt``\n            string, the entry previous context.\n\n        ``previous_msgid``\n            string, the entry previous msgid.\n\n        ``previous_msgid_plural``\n            string, the entry previous msgid_plural.\n\n        ``linenum``\n            integer, the line number of the entry\n        \"\"\"\n        _BaseEntry.__init__(self, *args, **kwargs)\n        self.comment = kwargs.get('comment', '')\n        self.tcomment = kwargs.get('tcomment', '')\n        self.occurrences = kwargs.get('occurrences', [])\n        self.flags = kwargs.get('flags', [])\n        self.previous_msgctxt = kwargs.get('previous_msgctxt', None)\n        self.previous_msgid = kwargs.get('previous_msgid', None)\n        self.previous_msgid_plural = kwargs.get('previous_msgid_plural', None)\n        self.linenum = kwargs.get('linenum', None)\n\n    def __unicode__(self, wrapwidth=78):\n        \"\"\"\n        Returns the unicode representation of the entry.\n        \"\"\"\n        ret = []\n        # comments first, if any (with text wrapping as xgettext does)\n        if self.obsolete:\n            comments = [('tcomment', '# ')]\n        else:\n            comments = [('comment', '#. '), ('tcomment', '# ')]\n        for c in comments:\n            val = getattr(self, c[0])\n            if val:\n                for comment in val.split('\\n'):\n                    if wrapwidth > 0 and len(comment) + len(c[1]) > wrapwidth:\n                        ret += wrap(\n                            comment,\n                            wrapwidth,\n                            initial_indent=c[1],\n                            subsequent_indent=c[1],\n                            break_long_words=False\n                        )\n                    else:\n                        ret.append('%s%s' % (c[1], comment))\n\n        # occurrences (with text wrapping as xgettext does)\n        if not self.obsolete and self.occurrences:\n            filelist = []\n            for fpath, lineno in self.occurrences:\n                if lineno:\n                    filelist.append('%s:%s' % (fpath, lineno))\n                else:\n                    filelist.append(fpath)\n            filestr = ' '.join(filelist)\n            if wrapwidth > 0 and len(filestr) + 3 > wrapwidth:\n                # textwrap split words that contain hyphen, this is not\n                # what we want for filenames, so the dirty hack is to\n                # temporally replace hyphens with a char that a file cannot\n                # contain, like \"*\"\n                ret += [l.replace('*', '-') for l in wrap(\n                    filestr.replace('-', '*'),\n                    wrapwidth,\n                    initial_indent='#: ',\n                    subsequent_indent='#: ',\n                    break_long_words=False\n                )]\n            else:\n                ret.append('#: ' + filestr)\n\n        # flags (TODO: wrapping ?)\n        if self.flags:\n            ret.append('#, %s' % ', '.join(self.flags))\n\n        # previous context and previous msgid/msgid_plural\n        fields = ['previous_msgctxt', 'previous_msgid',\n                  'previous_msgid_plural']\n        if self.obsolete:\n            prefix = \"#~| \"\n        else:\n            prefix = \"#| \"\n        for f in fields:\n            val = getattr(self, f)\n            if val:\n                ret += self._str_field(f, prefix, \"\", val, wrapwidth)\n\n        ret.append(_BaseEntry.__unicode__(self, wrapwidth))\n        ret = u('\\n').join(ret)\n        return ret\n\n    def __cmp__(self, other):\n        \"\"\"\n        Called by comparison operations if rich comparison is not defined.\n        \"\"\"\n        # First: Obsolete test\n        if self.obsolete != other.obsolete:\n            if self.obsolete:\n                return -1\n            else:\n                return 1\n        # Work on a copy to protect original\n        occ1 = sorted(self.occurrences[:])\n        occ2 = sorted(other.occurrences[:])\n        pos = 0\n        if occ1 > occ2:\n            return 1\n        if occ1 < occ2:\n            return -1\n        # Compare context\n        msgctxt = self.msgctxt or 0\n        othermsgctxt = other.msgctxt or 0\n        if msgctxt > othermsgctxt:\n            return 1\n        elif msgctxt < othermsgctxt:\n            return -1\n        # Compare msgid_plural\n        msgid_plural = self.msgid_plural or 0\n        othermsgid_plural = other.msgid_plural or 0\n        if msgid_plural > othermsgid_plural:\n            return 1\n        elif msgid_plural < othermsgid_plural:\n            return -1\n        # Compare msgstr_plural\n        msgstr_plural = self.msgstr_plural or 0\n        othermsgstr_plural = other.msgstr_plural or 0\n        if msgstr_plural > othermsgstr_plural:\n            return 1\n        elif msgstr_plural < othermsgstr_plural:\n            return -1\n        # Compare msgid\n        if self.msgid > other.msgid:\n            return 1\n        elif self.msgid < other.msgid:\n            return -1\n        return 0\n        # Compare msgstr\n        if self.msgstr > other.msgstr:\n            return 1\n        elif self.msgstr < other.msgstr:\n            return -1\n        return 0\n\n    def __gt__(self, other):\n        return self.__cmp__(other) > 0\n\n    def __lt__(self, other):\n        return self.__cmp__(other) < 0\n\n    def __ge__(self, other):\n        return self.__cmp__(other) >= 0\n\n    def __le__(self, other):\n        return self.__cmp__(other) <= 0\n\n    def __eq__(self, other):\n        return self.__cmp__(other) == 0\n\n    def __ne__(self, other):\n        return self.__cmp__(other) != 0\n\n    def translated(self):\n        \"\"\"\n        Returns ``True`` if the entry has been translated or ``False``\n        otherwise.\n        \"\"\"\n        if self.obsolete or self.fuzzy:\n            return False\n        if self.msgstr != '':\n            return True\n        if self.msgstr_plural:\n            for pos in self.msgstr_plural:\n                if self.msgstr_plural[pos] == '':\n                    return False\n            return True\n        return False\n\n    def merge(self, other):\n        \"\"\"\n        Merge the current entry with the given pot entry.\n        \"\"\"\n        self.msgid = other.msgid\n        self.msgctxt = other.msgctxt\n        self.occurrences = other.occurrences\n        self.comment = other.comment\n        fuzzy = self.fuzzy\n        self.flags = other.flags[:]  # clone flags\n        if fuzzy:\n            self.flags.append('fuzzy')\n        self.msgid_plural = other.msgid_plural\n        self.obsolete = other.obsolete\n        self.previous_msgctxt = other.previous_msgctxt\n        self.previous_msgid = other.previous_msgid\n        self.previous_msgid_plural = other.previous_msgid_plural\n        if other.msgstr_plural:\n            for pos in other.msgstr_plural:\n                try:\n                    # keep existing translation at pos if any\n                    self.msgstr_plural[pos]\n                except KeyError:\n                    self.msgstr_plural[pos] = ''\n\n    @property\n    def fuzzy(self):\n        return 'fuzzy' in self.flags\n\n    @property\n    def msgid_with_context(self):\n        if self.msgctxt:\n            return '%s%s%s' % (self.msgctxt, \"\\x04\", self.msgid)\n        return self.msgid\n\n    def __hash__(self):\n        return hash((self.msgid, self.msgstr))\n# }}}\n# class MOEntry {{{\n\n\nclass MOEntry(_BaseEntry):\n    \"\"\"\n    Represents a mo file entry.\n    \"\"\"\n    def __init__(self, *args, **kwargs):\n        \"\"\"\n        Constructor, accepts the following keyword arguments,\n        for consistency with :class:`~polib.POEntry`:\n\n        ``comment``\n        ``tcomment``\n        ``occurrences``\n        ``flags``\n        ``previous_msgctxt``\n        ``previous_msgid``\n        ``previous_msgid_plural``\n\n        Note: even though these keyword arguments are accepted,\n        they hold no real meaning in the context of MO files\n        and are simply ignored.\n        \"\"\"\n        _BaseEntry.__init__(self, *args, **kwargs)\n        self.comment = ''\n        self.tcomment = ''\n        self.occurrences = []\n        self.flags = []\n        self.previous_msgctxt = None\n        self.previous_msgid = None\n        self.previous_msgid_plural = None\n\n    def __hash__(self):\n        return hash((self.msgid, self.msgstr))\n\n# }}}\n# class _POFileParser {{{\n\n\nclass _POFileParser(object):\n    \"\"\"\n    A finite state machine to parse efficiently and correctly po\n    file format.\n    \"\"\"\n\n    def __init__(self, pofile, *args, **kwargs):\n        \"\"\"\n        Constructor.\n\n        Keyword arguments:\n\n        ``pofile``\n            string, path to the po file or its content\n\n        ``encoding``\n            string, the encoding to use, defaults to ``default_encoding``\n            global variable (optional).\n\n        ``check_for_duplicates``\n            whether to check for duplicate entries when adding entries to the\n            file (optional, default: ``False``).\n        \"\"\"\n        enc = kwargs.get('encoding', default_encoding)\n        if _is_file(pofile):\n            try:\n                self.fhandle = io.open(pofile, 'rt', encoding=enc)\n            except LookupError:\n                enc = default_encoding\n                self.fhandle = io.open(pofile, 'rt', encoding=enc)\n        else:\n            self.fhandle = pofile.splitlines()\n\n        klass = kwargs.get('klass')\n        if klass is None:\n            klass = POFile\n        self.instance = klass(\n            pofile=pofile,\n            encoding=enc,\n            check_for_duplicates=kwargs.get('check_for_duplicates', False)\n        )\n        self.transitions = {}\n        self.current_line = 0\n        self.current_entry = POEntry(linenum=self.current_line)\n        self.current_state = 'st'\n        self.current_token = None\n        # two memo flags used in handlers\n        self.msgstr_index = 0\n        self.entry_obsolete = 0\n        # Configure the state machine, by adding transitions.\n        # Signification of symbols:\n        #     * ST: Beginning of the file (start)\n        #     * HE: Header\n        #     * TC: a translation comment\n        #     * GC: a generated comment\n        #     * OC: a file/line occurrence\n        #     * FL: a flags line\n        #     * CT: a message context\n        #     * PC: a previous msgctxt\n        #     * PM: a previous msgid\n        #     * PP: a previous msgid_plural\n        #     * MI: a msgid\n        #     * MP: a msgid plural\n        #     * MS: a msgstr\n        #     * MX: a msgstr plural\n        #     * MC: a msgid or msgstr continuation line\n        all = ['st', 'he', 'gc', 'oc', 'fl', 'ct', 'pc', 'pm', 'pp', 'tc',\n               'ms', 'mp', 'mx', 'mi']\n\n        self.add('tc', ['st', 'he'],                                     'he')\n        self.add('tc', ['gc', 'oc', 'fl', 'tc', 'pc', 'pm', 'pp', 'ms',\n                        'mp', 'mx', 'mi'],                               'tc')\n        self.add('gc', all,                                              'gc')\n        self.add('oc', all,                                              'oc')\n        self.add('fl', all,                                              'fl')\n        self.add('pc', all,                                              'pc')\n        self.add('pm', all,                                              'pm')\n        self.add('pp', all,                                              'pp')\n        self.add('ct', ['st', 'he', 'gc', 'oc', 'fl', 'tc', 'pc', 'pm',\n                        'pp', 'ms', 'mx'],                               'ct')\n        self.add('mi', ['st', 'he', 'gc', 'oc', 'fl', 'ct', 'tc', 'pc',\n                 'pm', 'pp', 'ms', 'mx'],                                'mi')\n        self.add('mp', ['tc', 'gc', 'pc', 'pm', 'pp', 'mi'],             'mp')\n        self.add('ms', ['mi', 'mp', 'tc'],                               'ms')\n        self.add('mx', ['mi', 'mx', 'mp', 'tc'],                         'mx')\n        self.add('mc', ['ct', 'mi', 'mp', 'ms', 'mx', 'pm', 'pp', 'pc'], 'mc')\n\n    def parse(self):\n        \"\"\"\n        Run the state machine, parse the file line by line and call process()\n        with the current matched symbol.\n        \"\"\"\n\n        keywords = {\n            'msgctxt': 'ct',\n            'msgid': 'mi',\n            'msgstr': 'ms',\n            'msgid_plural': 'mp',\n        }\n        prev_keywords = {\n            'msgid_plural': 'pp',\n            'msgid': 'pm',\n            'msgctxt': 'pc',\n        }\n        tokens = []\n        fpath = '%s ' % self.instance.fpath if self.instance.fpath else ''\n        for line in self.fhandle:\n            self.current_line += 1\n            line = line.strip()\n            if line == '':\n                continue\n\n            tokens = line.split(None, 2)\n            nb_tokens = len(tokens)\n\n            if tokens[0] == '#~|':\n                continue\n\n            if tokens[0] == '#~' and nb_tokens > 1:\n                line = line[3:].strip()\n                tokens = tokens[1:]\n                nb_tokens -= 1\n                self.entry_obsolete = 1\n            else:\n                self.entry_obsolete = 0\n\n            # Take care of keywords like\n            # msgid, msgid_plural, msgctxt & msgstr.\n            if tokens[0] in keywords and nb_tokens > 1:\n                line = line[len(tokens[0]):].lstrip()\n                if re.search(r'([^\\\\]|^)\"', line[1:-1]):\n                    raise IOError('Syntax error in po file %s(line %s): '\n                                  'unescaped double quote found' %\n                                  (fpath, self.current_line))\n                self.current_token = line\n                self.process(keywords[tokens[0]])\n                continue\n\n            self.current_token = line\n\n            if tokens[0] == '#:':\n                if nb_tokens <= 1:\n                    continue\n                # we are on a occurrences line\n                self.process('oc')\n\n            elif line[:1] == '\"':\n                # we are on a continuation line\n                if re.search(r'([^\\\\]|^)\"', line[1:-1]):\n                    raise IOError('Syntax error in po file %s(line %s): '\n                                  'unescaped double quote found' %\n                                  (fpath, self.current_line))\n                self.process('mc')\n\n            elif line[:7] == 'msgstr[':\n                # we are on a msgstr plural\n                self.process('mx')\n\n            elif tokens[0] == '#,':\n                if nb_tokens <= 1:\n                    continue\n                # we are on a flags line\n                self.process('fl')\n\n            elif tokens[0] == '#' or tokens[0].startswith('##'):\n                if line == '#':\n                    line += ' '\n                # we are on a translator comment line\n                self.process('tc')\n\n            elif tokens[0] == '#.':\n                if nb_tokens <= 1:\n                    continue\n                # we are on a generated comment line\n                self.process('gc')\n\n            elif tokens[0] == '#|':\n                if nb_tokens <= 1:\n                    raise IOError('Syntax error in po file %s(line %s)' %\n                                  (fpath, self.current_line))\n\n                # Remove the marker and any whitespace right after that.\n                line = line[2:].lstrip()\n                self.current_token = line\n\n                if tokens[1].startswith('\"'):\n                    # Continuation of previous metadata.\n                    self.process('mc')\n                    continue\n\n                if nb_tokens == 2:\n                    # Invalid continuation line.\n                    raise IOError('Syntax error in po file %s(line %s): '\n                                  'invalid continuation line' %\n                                  (fpath, self.current_line))\n\n                # we are on a \"previous translation\" comment line,\n                if tokens[1] not in prev_keywords:\n                    # Unknown keyword in previous translation comment.\n                    raise IOError('Syntax error in po file %s(line %s): '\n                                  'unknown keyword %s' %\n                                  (fpath, self.current_line,\n                                   tokens[1]))\n\n                # Remove the keyword and any whitespace\n                # between it and the starting quote.\n                line = line[len(tokens[1]):].lstrip()\n                self.current_token = line\n                self.process(prev_keywords[tokens[1]])\n\n            else:\n                raise IOError('Syntax error in po file %s(line %s)' %\n                              (fpath, self.current_line))\n\n        if self.current_entry and len(tokens) > 0 and \\\n           not tokens[0].startswith('#'):\n            # since entries are added when another entry is found, we must add\n            # the last entry here (only if there are lines). Trailing comments\n            # are ignored\n            self.instance.append(self.current_entry)\n\n        # before returning the instance, check if there's metadata and if\n        # so extract it in a dict\n        metadataentry = self.instance.find('')\n        if metadataentry:  # metadata found\n            # remove the entry\n            self.instance.remove(metadataentry)\n            self.instance.metadata_is_fuzzy = metadataentry.flags\n            key = None\n            for msg in metadataentry.msgstr.splitlines():\n                try:\n                    key, val = msg.split(':', 1)\n                    self.instance.metadata[key] = val.strip()\n                except (ValueError, KeyError):\n                    if key is not None:\n                        self.instance.metadata[key] += '\\n' + msg.strip()\n        # close opened file\n        if not isinstance(self.fhandle, list):  # must be file\n            self.fhandle.close()\n        return self.instance\n\n    def add(self, symbol, states, next_state):\n        \"\"\"\n        Add a transition to the state machine.\n\n        Keywords arguments:\n\n        ``symbol``\n            string, the matched token (two chars symbol).\n\n        ``states``\n            list, a list of states (two chars symbols).\n\n        ``next_state``\n            the next state the fsm will have after the action.\n        \"\"\"\n        for state in states:\n            action = getattr(self, 'handle_%s' % next_state)\n            self.transitions[(symbol, state)] = (action, next_state)\n\n    def process(self, symbol):\n        \"\"\"\n        Process the transition corresponding to the current state and the\n        symbol provided.\n\n        Keywords arguments:\n\n        ``symbol``\n            string, the matched token (two chars symbol).\n\n        ``linenum``\n            integer, the current line number of the parsed file.\n        \"\"\"\n        try:\n            (action, state) = self.transitions[(symbol, self.current_state)]\n            if action():\n                self.current_state = state\n        except Exception:\n            raise IOError('Syntax error in po file (line %s)' %\n                          self.current_line)\n\n    # state handlers\n\n    def handle_he(self):\n        \"\"\"Handle a header comment.\"\"\"\n        if self.instance.header != '':\n            self.instance.header += '\\n'\n        self.instance.header += self.current_token[2:]\n        return 1\n\n    def handle_tc(self):\n        \"\"\"Handle a translator comment.\"\"\"\n        if self.current_state in ['mc', 'ms', 'mx']:\n            self.instance.append(self.current_entry)\n            self.current_entry = POEntry(linenum=self.current_line)\n        if self.current_entry.tcomment != '':\n            self.current_entry.tcomment += '\\n'\n        tcomment = self.current_token.lstrip('#')\n        if tcomment.startswith(' '):\n            tcomment = tcomment[1:]\n        self.current_entry.tcomment += tcomment\n        return True\n\n    def handle_gc(self):\n        \"\"\"Handle a generated comment.\"\"\"\n        if self.current_state in ['mc', 'ms', 'mx']:\n            self.instance.append(self.current_entry)\n            self.current_entry = POEntry(linenum=self.current_line)\n        if self.current_entry.comment != '':\n            self.current_entry.comment += '\\n'\n        self.current_entry.comment += self.current_token[3:]\n        return True\n\n    def handle_oc(self):\n        \"\"\"Handle a file:num occurrence.\"\"\"\n        if self.current_state in ['mc', 'ms', 'mx']:\n            self.instance.append(self.current_entry)\n            self.current_entry = POEntry(linenum=self.current_line)\n        occurrences = self.current_token[3:].split()\n        for occurrence in occurrences:\n            if occurrence != '':\n                try:\n                    fil, line = occurrence.rsplit(':', 1)\n                    if not line.isdigit():\n                        fil = occurrence\n                        line = ''\n                    self.current_entry.occurrences.append((fil, line))\n                except (ValueError, AttributeError):\n                    self.current_entry.occurrences.append((occurrence, ''))\n        return True\n\n    def handle_fl(self):\n        \"\"\"Handle a flags line.\"\"\"\n        if self.current_state in ['mc', 'ms', 'mx']:\n            self.instance.append(self.current_entry)\n            self.current_entry = POEntry(linenum=self.current_line)\n        self.current_entry.flags += [c.strip() for c in\n                                     self.current_token[3:].split(',')]\n        return True\n\n    def handle_pp(self):\n        \"\"\"Handle a previous msgid_plural line.\"\"\"\n        if self.current_state in ['mc', 'ms', 'mx']:\n            self.instance.append(self.current_entry)\n            self.current_entry = POEntry(linenum=self.current_line)\n        self.current_entry.previous_msgid_plural = \\\n            unescape(self.current_token[1:-1])\n        return True\n\n    def handle_pm(self):\n        \"\"\"Handle a previous msgid line.\"\"\"\n        if self.current_state in ['mc', 'ms', 'mx']:\n            self.instance.append(self.current_entry)\n            self.current_entry = POEntry(linenum=self.current_line)\n        self.current_entry.previous_msgid = \\\n            unescape(self.current_token[1:-1])\n        return True\n\n    def handle_pc(self):\n        \"\"\"Handle a previous msgctxt line.\"\"\"\n        if self.current_state in ['mc', 'ms', 'mx']:\n            self.instance.append(self.current_entry)\n            self.current_entry = POEntry(linenum=self.current_line)\n        self.current_entry.previous_msgctxt = \\\n            unescape(self.current_token[1:-1])\n        return True\n\n    def handle_ct(self):\n        \"\"\"Handle a msgctxt.\"\"\"\n        if self.current_state in ['mc', 'ms', 'mx']:\n            self.instance.append(self.current_entry)\n            self.current_entry = POEntry(linenum=self.current_line)\n        self.current_entry.msgctxt = unescape(self.current_token[1:-1])\n        return True\n\n    def handle_mi(self):\n        \"\"\"Handle a msgid.\"\"\"\n        if self.current_state in ['mc', 'ms', 'mx']:\n            self.instance.append(self.current_entry)\n            self.current_entry = POEntry(linenum=self.current_line)\n        self.current_entry.obsolete = self.entry_obsolete\n        self.current_entry.msgid = unescape(self.current_token[1:-1])\n        return True\n\n    def handle_mp(self):\n        \"\"\"Handle a msgid plural.\"\"\"\n        self.current_entry.msgid_plural = unescape(self.current_token[1:-1])\n        return True\n\n    def handle_ms(self):\n        \"\"\"Handle a msgstr.\"\"\"\n        self.current_entry.msgstr = unescape(self.current_token[1:-1])\n        return True\n\n    def handle_mx(self):\n        \"\"\"Handle a msgstr plural.\"\"\"\n        index = self.current_token[7]\n        value = self.current_token[self.current_token.find('\"') + 1:-1]\n        self.current_entry.msgstr_plural[int(index)] = unescape(value)\n        self.msgstr_index = int(index)\n        return True\n\n    def handle_mc(self):\n        \"\"\"Handle a msgid or msgstr continuation line.\"\"\"\n        token = unescape(self.current_token[1:-1])\n        if self.current_state == 'ct':\n            self.current_entry.msgctxt += token\n        elif self.current_state == 'mi':\n            self.current_entry.msgid += token\n        elif self.current_state == 'mp':\n            self.current_entry.msgid_plural += token\n        elif self.current_state == 'ms':\n            self.current_entry.msgstr += token\n        elif self.current_state == 'mx':\n            self.current_entry.msgstr_plural[self.msgstr_index] += token\n        elif self.current_state == 'pp':\n            self.current_entry.previous_msgid_plural += token\n        elif self.current_state == 'pm':\n            self.current_entry.previous_msgid += token\n        elif self.current_state == 'pc':\n            self.current_entry.previous_msgctxt += token\n        # don't change the current state\n        return False\n# }}}\n# class _MOFileParser {{{\n\n\nclass _MOFileParser(object):\n    \"\"\"\n    A class to parse binary mo files.\n    \"\"\"\n\n    def __init__(self, mofile, *args, **kwargs):\n        \"\"\"\n        Constructor.\n\n        Keyword arguments:\n\n        ``mofile``\n            string, path to the mo file or its content\n\n        ``encoding``\n            string, the encoding to use, defaults to ``default_encoding``\n            global variable (optional).\n\n        ``check_for_duplicates``\n            whether to check for duplicate entries when adding entries to the\n            file (optional, default: ``False``).\n        \"\"\"\n        self.fhandle = open(mofile, 'rb')\n\n        klass = kwargs.get('klass')\n        if klass is None:\n            klass = MOFile\n        self.instance = klass(\n            fpath=mofile,\n            encoding=kwargs.get('encoding', default_encoding),\n            check_for_duplicates=kwargs.get('check_for_duplicates', False)\n        )\n\n    def __del__(self):\n        \"\"\"\n        Make sure the file is closed, this prevents warnings on unclosed file\n        when running tests with python >= 3.2.\n        \"\"\"\n        if self.fhandle:\n            self.fhandle.close()\n\n    def parse(self):\n        \"\"\"\n        Build the instance with the file handle provided in the\n        constructor.\n        \"\"\"\n        # parse magic number\n        magic_number = self._readbinary('<I', 4)\n        if magic_number == MOFile.MAGIC:\n            ii = '<II'\n        elif magic_number == MOFile.MAGIC_SWAPPED:\n            ii = '>II'\n        else:\n            raise IOError('Invalid mo file, magic number is incorrect !')\n        self.instance.magic_number = magic_number\n        # parse the version number and the number of strings\n        version, numofstrings = self._readbinary(ii, 8)\n        # from MO file format specs: \"A program seeing an unexpected major\n        # revision number should stop reading the MO file entirely\"\n        if version >> 16 not in (0, 1):\n            raise IOError('Invalid mo file, unexpected major revision number')\n        self.instance.version = version\n        # original strings and translation strings hash table offset\n        msgids_hash_offset, msgstrs_hash_offset = self._readbinary(ii, 8)\n        # move to msgid hash table and read length and offset of msgids\n        self.fhandle.seek(msgids_hash_offset)\n        msgids_index = []\n        for i in range(numofstrings):\n            msgids_index.append(self._readbinary(ii, 8))\n        # move to msgstr hash table and read length and offset of msgstrs\n        self.fhandle.seek(msgstrs_hash_offset)\n        msgstrs_index = []\n        for i in range(numofstrings):\n            msgstrs_index.append(self._readbinary(ii, 8))\n        # build entries\n        encoding = self.instance.encoding\n        for i in range(numofstrings):\n            self.fhandle.seek(msgids_index[i][1])\n            msgid = self.fhandle.read(msgids_index[i][0])\n\n            self.fhandle.seek(msgstrs_index[i][1])\n            msgstr = self.fhandle.read(msgstrs_index[i][0])\n            if i == 0 and not msgid:  # metadata\n                raw_metadata, metadata = msgstr.split(b('\\n')), {}\n                for line in raw_metadata:\n                    tokens = line.split(b(':'), 1)\n                    if tokens[0] != b(''):\n                        try:\n                            k = tokens[0].decode(encoding)\n                            v = tokens[1].decode(encoding)\n                            metadata[k] = v.strip()\n                        except IndexError:\n                            metadata[k] = u('')\n                self.instance.metadata = metadata\n                continue\n            # test if we have a plural entry\n            msgid_tokens = msgid.split(b('\\0'))\n            if len(msgid_tokens) > 1:\n                entry = self._build_entry(\n                    msgid=msgid_tokens[0],\n                    msgid_plural=msgid_tokens[1],\n                    msgstr_plural=dict((k, v) for k, v in\n                                       enumerate(msgstr.split(b('\\0'))))\n                )\n            else:\n                entry = self._build_entry(msgid=msgid, msgstr=msgstr)\n            self.instance.append(entry)\n        # close opened file\n        self.fhandle.close()\n        return self.instance\n\n    def _build_entry(self, msgid, msgstr=None, msgid_plural=None,\n                     msgstr_plural=None):\n        msgctxt_msgid = msgid.split(b('\\x04'))\n        encoding = self.instance.encoding\n        if len(msgctxt_msgid) > 1:\n            kwargs = {\n                'msgctxt': msgctxt_msgid[0].decode(encoding),\n                'msgid': msgctxt_msgid[1].decode(encoding),\n            }\n        else:\n            kwargs = {'msgid': msgid.decode(encoding)}\n        if msgstr:\n            kwargs['msgstr'] = msgstr.decode(encoding)\n        if msgid_plural:\n            kwargs['msgid_plural'] = msgid_plural.decode(encoding)\n        if msgstr_plural:\n            for k in msgstr_plural:\n                msgstr_plural[k] = msgstr_plural[k].decode(encoding)\n            kwargs['msgstr_plural'] = msgstr_plural\n        return MOEntry(**kwargs)\n\n    def _readbinary(self, fmt, numbytes):\n        \"\"\"\n        Private method that unpack n bytes of data using format <fmt>.\n        It returns a tuple or a mixed value if the tuple length is 1.\n        \"\"\"\n        bytes = self.fhandle.read(numbytes)\n        tup = struct.unpack(fmt, bytes)\n        if len(tup) == 1:\n            return tup[0]\n        return tup\n# }}}\n# class TextWrapper {{{\n\n\nclass TextWrapper(textwrap.TextWrapper):\n    \"\"\"\n    Subclass of textwrap.TextWrapper that backport the\n    drop_whitespace option.\n    \"\"\"\n    def __init__(self, *args, **kwargs):\n        drop_whitespace = kwargs.pop('drop_whitespace', True)\n        textwrap.TextWrapper.__init__(self, *args, **kwargs)\n        self.drop_whitespace = drop_whitespace\n\n    def _wrap_chunks(self, chunks):\n        \"\"\"_wrap_chunks(chunks : [string]) -> [string]\n\n        Wrap a sequence of text chunks and return a list of lines of\n        length 'self.width' or less.  (If 'break_long_words' is false,\n        some lines may be longer than this.)  Chunks correspond roughly\n        to words and the whitespace between them: each chunk is\n        indivisible (modulo 'break_long_words'), but a line break can\n        come between any two chunks.  Chunks should not have internal\n        whitespace; ie. a chunk is either all whitespace or a \"word\".\n        Whitespace chunks will be removed from the beginning and end of\n        lines, but apart from that whitespace is preserved.\n        \"\"\"\n        lines = []\n        if self.width <= 0:\n            raise ValueError(\"invalid width %r (must be > 0)\" % self.width)\n\n        # Arrange in reverse order so items can be efficiently popped\n        # from a stack of chucks.\n        chunks.reverse()\n\n        while chunks:\n\n            # Start the list of chunks that will make up the current line.\n            # cur_len is just the length of all the chunks in cur_line.\n            cur_line = []\n            cur_len = 0\n\n            # Figure out which static string will prefix this line.\n            if lines:\n                indent = self.subsequent_indent\n            else:\n                indent = self.initial_indent\n\n            # Maximum width for this line.\n            width = self.width - len(indent)\n\n            # First chunk on line is whitespace -- drop it, unless this\n            # is the very beginning of the text (ie. no lines started yet).\n            if self.drop_whitespace and chunks[-1].strip() == '' and lines:\n                del chunks[-1]\n\n            while chunks:\n                length = len(chunks[-1])\n\n                # Can at least squeeze this chunk onto the current line.\n                if cur_len + length <= width:\n                    cur_line.append(chunks.pop())\n                    cur_len += length\n\n                # Nope, this line is full.\n                else:\n                    break\n\n            # The current line is full, and the next chunk is too big to\n            # fit on *any* line (not just this one).\n            if chunks and len(chunks[-1]) > width:\n                self._handle_long_word(chunks, cur_line, cur_len, width)\n\n            # If the last chunk on this line is all whitespace, drop it.\n            if self.drop_whitespace and cur_line and not cur_line[-1].strip():\n                del cur_line[-1]\n\n            # Convert current line back to a string and store it in list\n            # of all lines (return value).\n            if cur_line:\n                lines.append(indent + ''.join(cur_line))\n\n        return lines\n# }}}\n# function wrap() {{{\n\n\ndef wrap(text, width=70, **kwargs):\n    \"\"\"\n    Wrap a single paragraph of text, returning a list of wrapped lines.\n    \"\"\"\n    if sys.version_info < (2, 6):\n        return TextWrapper(width=width, **kwargs).wrap(text)\n    return textwrap.wrap(text, width=width, **kwargs)\n\n# }}}\n"
  },
  {
    "path": "pixelorama_data/.gdignore",
    "content": ""
  },
  {
    "path": "pixelorama_data/Palettes/Default.json",
    "content": "{\n \"colors\": [\n  {\n   \"color\": \"(0, 0, 0, 1)\",\n   \"index\": 0\n  },\n  {\n   \"color\": \"(0.1294, 0.1216, 0.2039, 1)\",\n   \"index\": 1\n  },\n  {\n   \"color\": \"(0.2667, 0.1569, 0.2314, 1)\",\n   \"index\": 2\n  },\n  {\n   \"color\": \"(0.4, 0.2196, 0.1922, 1)\",\n   \"index\": 3\n  },\n  {\n   \"color\": \"(0.5569, 0.3373, 0.2314, 1)\",\n   \"index\": 4\n  },\n  {\n   \"color\": \"(0.8745, 0.4392, 0.149, 1)\",\n   \"index\": 5\n  },\n  {\n   \"color\": \"(0.8471, 0.6275, 0.4, 1)\",\n   \"index\": 6\n  },\n  {\n   \"color\": \"(0.9294, 0.7647, 0.6039, 1)\",\n   \"index\": 7\n  },\n  {\n   \"color\": \"(0.9843, 0.949, 0.2118, 1)\",\n   \"index\": 8\n  },\n  {\n   \"color\": \"(0.6, 0.8941, 0.3137, 1)\",\n   \"index\": 9\n  },\n  {\n   \"color\": \"(0.4118, 0.7412, 0.1843, 1)\",\n   \"index\": 10\n  },\n  {\n   \"color\": \"(0.2118, 0.5765, 0.4314, 1)\",\n   \"index\": 11\n  },\n  {\n   \"color\": \"(0.2941, 0.4118, 0.1843, 1)\",\n   \"index\": 12\n  },\n  {\n   \"color\": \"(0.3216, 0.2941, 0.1373, 1)\",\n   \"index\": 13\n  },\n  {\n   \"color\": \"(0.1922, 0.2314, 0.2196, 1)\",\n   \"index\": 14\n  },\n  {\n   \"color\": \"(0.2471, 0.2471, 0.4549, 1)\",\n   \"index\": 15\n  },\n  {\n   \"color\": \"(0.1843, 0.3765, 0.5098, 1)\",\n   \"index\": 16\n  },\n  {\n   \"color\": \"(0.3569, 0.4314, 0.8824, 1)\",\n   \"index\": 17\n  },\n  {\n   \"color\": \"(0.3843, 0.6039, 1, 1)\",\n   \"index\": 18\n  },\n  {\n   \"color\": \"(0.3686, 0.8039, 0.8941, 1)\",\n   \"index\": 19\n  },\n  {\n   \"color\": \"(0.7922, 0.8588, 0.9843, 1)\",\n   \"index\": 20\n  },\n  {\n   \"color\": \"(1, 1, 1, 1)\",\n   \"index\": 21\n  },\n  {\n   \"color\": \"(0.6039, 0.6745, 0.7137, 1)\",\n   \"index\": 22\n  },\n  {\n   \"color\": \"(0.5137, 0.4941, 0.5294, 1)\",\n   \"index\": 23\n  },\n  {\n   \"color\": \"(0.4118, 0.4118, 0.4118, 1)\",\n   \"index\": 24\n  },\n  {\n   \"color\": \"(0.349, 0.3373, 0.3216, 1)\",\n   \"index\": 25\n  },\n  {\n   \"color\": \"(0.4588, 0.2588, 0.5373, 1)\",\n   \"index\": 26\n  },\n  {\n   \"color\": \"(0.6745, 0.1922, 0.1922, 1)\",\n   \"index\": 27\n  },\n  {\n   \"color\": \"(0.8471, 0.3373, 0.3843, 1)\",\n   \"index\": 28\n  },\n  {\n   \"color\": \"(0.8392, 0.4824, 0.7294, 1)\",\n   \"index\": 29\n  },\n  {\n   \"color\": \"(0.5569, 0.5922, 0.2863, 1)\",\n   \"index\": 30\n  },\n  {\n   \"color\": \"(0.5373, 0.4314, 0.1843, 1)\",\n   \"index\": 31\n  }\n ],\n \"comment\": \"Author: DawnBringer\\nFound in Lospec\\nhttps://lospec.com/palette-list/dawnbringer-32\",\n \"height\": 4,\n \"width\": 8\n}\n"
  },
  {
    "path": "pixelorama_data/Palettes/Pixelorama.json",
    "content": "{\n \"colors\": [\n  {\n   \"color\": \"(0.902, 0.8157, 0.6314, 1)\",\n   \"index\": 1\n  },\n  {\n   \"color\": \"(0.8, 0.6706, 0.5216, 1)\",\n   \"index\": 2\n  },\n  {\n   \"color\": \"(0.702, 0.5451, 0.4549, 1)\",\n   \"index\": 3\n  },\n  {\n   \"color\": \"(0.6, 0.4392, 0.3882, 1)\",\n   \"index\": 4\n  },\n  {\n   \"color\": \"(0.502, 0.349, 0.349, 1)\",\n   \"index\": 5\n  },\n  {\n   \"color\": \"(0.4, 0.2784, 0.3176, 1)\",\n   \"index\": 6\n  },\n  {\n   \"color\": \"(0.349, 0.2431, 0.298, 1)\",\n   \"index\": 7\n  },\n  {\n   \"color\": \"(0.302, 0.2118, 0.2667, 1)\",\n   \"index\": 8\n  },\n  {\n   \"color\": \"(0.251, 0.149, 0.2353, 1)\",\n   \"index\": 9\n  },\n  {\n   \"color\": \"(0.2, 0.1098, 0.2, 1)\",\n   \"index\": 10\n  },\n  {\n   \"color\": \"(0.1412, 0.0745, 0.149, 1)\",\n   \"index\": 11\n  },\n  {\n   \"color\": \"(1, 0.5216, 0.451, 1)\",\n   \"index\": 12\n  },\n  {\n   \"color\": \"(1, 0.4353, 0.349, 1)\",\n   \"index\": 13\n  },\n  {\n   \"color\": \"(1, 0.349, 0.3725, 1)\",\n   \"index\": 14\n  },\n  {\n   \"color\": \"(0.949, 0.2392, 0.3804, 1)\",\n   \"index\": 15\n  },\n  {\n   \"color\": \"(0.851, 0.2118, 0.4471, 1)\",\n   \"index\": 16\n  },\n  {\n   \"color\": \"(0.702, 0.1765, 0.5412, 1)\",\n   \"index\": 17\n  },\n  {\n   \"color\": \"(0.6039, 0.1569, 0.6196, 1)\",\n   \"index\": 18\n  },\n  {\n   \"color\": \"(0.451, 0.1569, 0.6196, 1)\",\n   \"index\": 19\n  },\n  {\n   \"color\": \"(0.3412, 0.1412, 0.5686, 1)\",\n   \"index\": 20\n  },\n  {\n   \"color\": \"(0.2196, 0.102, 0.4, 1)\",\n   \"index\": 21\n  },\n  {\n   \"color\": \"(0.1922, 0.0824, 0.349, 1)\",\n   \"index\": 22\n  },\n  {\n   \"color\": \"(0.1373, 0.0588, 0.251, 1)\",\n   \"index\": 23\n  },\n  {\n   \"color\": \"(1, 0.9686, 0.4, 1)\",\n   \"index\": 24\n  },\n  {\n   \"color\": \"(0.9804, 0.9333, 0.0667, 1)\",\n   \"index\": 25\n  },\n  {\n   \"color\": \"(0.9804, 0.7843, 0.0667, 1)\",\n   \"index\": 26\n  },\n  {\n   \"color\": \"(0.9608, 0.6392, 0.1255, 1)\",\n   \"index\": 27\n  },\n  {\n   \"color\": \"(0.9647, 0.5059, 0.1294, 1)\",\n   \"index\": 28\n  },\n  {\n   \"color\": \"(0.9294, 0.349, 0.1216, 1)\",\n   \"index\": 29\n  },\n  {\n   \"color\": \"(0.9294, 0.2549, 0.1216, 1)\",\n   \"index\": 30\n  },\n  {\n   \"color\": \"(0.9255, 0.1216, 0.149, 1)\",\n   \"index\": 31\n  },\n  {\n   \"color\": \"(0.7294, 0.0941, 0.2235, 1)\",\n   \"index\": 32\n  },\n  {\n   \"color\": \"(0.5294, 0.0706, 0.2392, 1)\",\n   \"index\": 33\n  },\n  {\n   \"color\": \"(0.3294, 0.0431, 0.2431, 1)\",\n   \"index\": 34\n  },\n  {\n   \"color\": \"(0.1451, 0.0196, 0.149, 1)\",\n   \"index\": 35\n  },\n  {\n   \"color\": \"(0.7333, 1, 0.502, 1)\",\n   \"index\": 36\n  },\n  {\n   \"color\": \"(0.5961, 0.949, 0.2863, 1)\",\n   \"index\": 37\n  },\n  {\n   \"color\": \"(0.3529, 0.902, 0.2706, 1)\",\n   \"index\": 38\n  },\n  {\n   \"color\": \"(0.1608, 0.8, 0.2863, 1)\",\n   \"index\": 39\n  },\n  {\n   \"color\": \"(0.0902, 0.702, 0.2941, 1)\",\n   \"index\": 40\n  },\n  {\n   \"color\": \"(0.0863, 0.651, 0.3843, 1)\",\n   \"index\": 41\n  },\n  {\n   \"color\": \"(0.0667, 0.502, 0.4431, 1)\",\n   \"index\": 42\n  },\n  {\n   \"color\": \"(0.0588, 0.3725, 0.451, 1)\",\n   \"index\": 43\n  },\n  {\n   \"color\": \"(0.102, 0.2392, 0.4, 1)\",\n   \"index\": 44\n  },\n  {\n   \"color\": \"(0.1216, 0.1569, 0.4, 1)\",\n   \"index\": 45\n  },\n  {\n   \"color\": \"(0.1333, 0.0902, 0.302, 1)\",\n   \"index\": 46\n  },\n  {\n   \"color\": \"(0.1216, 0.051, 0.1804, 1)\",\n   \"index\": 47\n  },\n  {\n   \"color\": \"(0.451, 1, 0.6784, 1)\",\n   \"index\": 48\n  },\n  {\n   \"color\": \"(0.3333, 0.949, 0.6941, 1)\",\n   \"index\": 49\n  },\n  {\n   \"color\": \"(0.2118, 0.851, 0.6902, 1)\",\n   \"index\": 50\n  },\n  {\n   \"color\": \"(0.1882, 0.749, 0.702, 1)\",\n   \"index\": 51\n  },\n  {\n   \"color\": \"(0.1765, 0.6667, 0.7098, 1)\",\n   \"index\": 52\n  },\n  {\n   \"color\": \"(0.1294, 0.5216, 0.651, 1)\",\n   \"index\": 53\n  },\n  {\n   \"color\": \"(0.1216, 0.4, 0.6, 1)\",\n   \"index\": 54\n  },\n  {\n   \"color\": \"(0.9961, 1, 0.851, 1)\",\n   \"index\": 0\n  },\n  {\n   \"color\": \"(0.1098, 0.2941, 0.549, 1)\",\n   \"index\": 55\n  }\n ],\n \"comment\": \"Author: Erevoid\",\n \"height\": 5,\n \"width\": 12\n}\n"
  },
  {
    "path": "project.godot",
    "content": "; Engine configuration file.\n; It's best edited using the editor UI and not directly,\n; since the parameters that go here are not all obvious.\n;\n; Format:\n;   [section] ; section goes between []\n;   param=value ; assign values to parameters\n\nconfig_version=5\n\n[application]\n\nconfig/name=\"Pixelorama\"\nconfig/description=\"Unleash your creativity with Pixelorama, a powerful and accessible open-source pixel art multitool. Whether you want to create sprites, tiles, animations, or just express yourself in the language of pixel art, this software will realize your pixel-perfect dreams with a vast toolbox of features.\"\nconfig/version=\"v1.1.9-dev\"\nconfig/tags=PackedStringArray(\"pixelorama\")\nrun/main_scene=\"res://src/Main.tscn\"\nconfig/use_custom_user_dir=true\nconfig/custom_user_dir_name=\"pixelorama\"\nconfig/project_settings_override=\"user://override.cfg\"\nconfig/quit_on_go_back=false\nconfig/features=PackedStringArray(\"4.6\")\nrun/low_processor_mode=true\nboot_splash/bg_color=Color(0.145098, 0.145098, 0.164706, 1)\nboot_splash/use_filter=false\nboot_splash/image=\"res://assets/graphics/splash.png\"\nconfig/icon=\"res://assets/graphics/icons/icon.png\"\nconfig/macos_native_icon=\"res://assets/graphics/icons/icon.icns\"\nconfig/windows_native_icon=\"res://assets/graphics/icons/icon.ico\"\nconfig/ExtensionsAPI_Version=8\nconfig/Pxo_Version=5\n\n[autoload]\n\nGlobal=\"*res://src/Autoload/Global.gd\"\nImport=\"*res://src/Autoload/Import.gd\"\nOpenSave=\"*res://src/Autoload/OpenSave.gd\"\nDrawingAlgos=\"*res://src/Autoload/DrawingAlgos.gd\"\nTools=\"*res://src/Autoload/Tools.gd\"\nHtml5FileExchange=\"*res://src/Autoload/HTML5FileExchange.gd\"\nExport=\"*res://src/Autoload/Export.gd\"\nPalettes=\"*res://src/Autoload/Palettes.gd\"\nKeychain=\"*uid://dgiia2xg7fsud\"\nExtensionsApi=\"*res://src/Autoload/ExtensionsApi.gd\"\nThemes=\"*res://src/Autoload/Themes.gd\"\nApplinks=\"*uid://bwxc40knpboql\"\n\n[debug]\n\ngdscript/warnings/return_value_discarded=false\ngdscript/warnings/narrowing_conversion=false\n\n[display]\n\nwindow/size/viewport_width=1280\nwindow/size/viewport_height=720\nwindow/energy_saving/keep_screen_on=false\nwindow/handheld/orientation=6\nwindow/per_pixel_transparency/allowed.android=false\nwindow/per_pixel_transparency/allowed.web=false\n\n[editor_plugins]\n\nenabled=PackedStringArray(\"res://addons/aimg_io/plugin.cfg\", \"res://addons/applinks/plugin.cfg\", \"res://addons/dockable_container/plugin.cfg\", \"res://addons/keychain/plugin.cfg\")\n\n[global_group]\n\nCanvasCameras=\"\"\nCanvasPreviews=\"\"\n\n[importer_defaults]\n\ntexture={\n\"compress/bptc_ldr\": 0,\n\"compress/hdr_mode\": 0,\n\"compress/lossy_quality\": 0.7,\n\"compress/mode\": 0,\n\"compress/normal_map\": 0,\n\"detect_3d\": false,\n\"flags/anisotropic\": false,\n\"flags/filter\": false,\n\"flags/mipmaps\": false,\n\"flags/repeat\": 0,\n\"flags/srgb\": 2,\n\"process/HDR_as_SRGB\": false,\n\"process/fix_alpha_border\": true,\n\"process/invert_color\": false,\n\"process/premult_alpha\": false,\n\"size_limit\": 0,\n\"stream\": false,\n\"svg/scale\": 1.0\n}\n\n[input]\n\nzoom_in={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventMouseButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"button_mask\":0,\"position\":Vector2(0, 0),\"global_position\":Vector2(0, 0),\"factor\":1.0,\"button_index\":4,\"canceled\":false,\"pressed\":false,\"double_click\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":61,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194437,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nzoom_out={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventMouseButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"button_mask\":0,\"position\":Vector2(0, 0),\"global_position\":Vector2(0, 0),\"factor\":1.0,\"button_index\":5,\"canceled\":false,\"pressed\":false,\"double_click\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":45,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194435,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nrotate_left={\n\"deadzone\": 1,\n\"events\": [Object(InputEventMouseButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"button_mask\":0,\"position\":Vector2(0, 0),\"global_position\":Vector2(0, 0),\"factor\":1.0,\"button_index\":5,\"canceled\":false,\"pressed\":false,\"double_click\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":61,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194437,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nrotate_right={\n\"deadzone\": 1,\n\"events\": [Object(InputEventMouseButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"button_mask\":0,\"position\":Vector2(0, 0),\"global_position\":Vector2(0, 0),\"factor\":1.0,\"button_index\":4,\"canceled\":false,\"pressed\":false,\"double_click\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":45,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194435,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nmiddle_mouse={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventMouseButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"button_mask\":0,\"position\":Vector2(0, 0),\"global_position\":Vector2(0, 0),\"factor\":1.0,\"button_index\":3,\"canceled\":false,\"pressed\":false,\"double_click\":false,\"script\":null)\n]\n}\nleft_mouse={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventMouseButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"button_mask\":0,\"position\":Vector2(0, 0),\"global_position\":Vector2(0, 0),\"factor\":1.0,\"button_index\":1,\"canceled\":false,\"pressed\":false,\"double_click\":false,\"script\":null)\n]\n}\nright_mouse={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventMouseButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"button_mask\":0,\"position\":Vector2(0, 0),\"global_position\":Vector2(0, 0),\"factor\":1.0,\"button_index\":2,\"canceled\":false,\"pressed\":false,\"double_click\":false,\"script\":null)\n]\n}\nleft_pencil_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":80,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_pencil_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":80,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_eraser_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":69,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_eraser_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":69,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_fill_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":66,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_fill_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":66,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_rectangle_select_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":82,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_rectangle_select_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":82,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ncopy={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":67,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ncut={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":88,\"physical_keycode\":88,\"key_label\":88,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\npaste={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":86,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\npaste_in_place={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":true,\"shift_pressed\":false,\"pressed\":false,\"keycode\":86,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\npaste_from_clipboard={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":true,\"pressed\":false,\"keycode\":86,\"physical_keycode\":0,\"key_label\":0,\"unicode\":86,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ndelete={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194312,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_shading_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":85,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_shading_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":85,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ntoggle_fullscreen={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194342,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194309,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_colorpicker_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":79,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_colorpicker_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":79,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nshift={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194325,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nctrl={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194326,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\npan={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":32,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventMouseButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"button_mask\":0,\"position\":Vector2(0, 0),\"global_position\":Vector2(0, 0),\"factor\":1.0,\"button_index\":3,\"canceled\":false,\"pressed\":false,\"double_click\":false,\"script\":null)\n]\n}\nnew_file={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":78,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nopen_file={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":79,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nsave_file={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":83,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nsave_file_as={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":true,\"pressed\":false,\"keycode\":83,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nexport_file={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":69,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nexport_file_as={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":true,\"pressed\":false,\"keycode\":69,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nquit={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":81,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nundo={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":90,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventMouseButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"button_mask\":0,\"position\":Vector2(0, 0),\"global_position\":Vector2(0, 0),\"factor\":1.0,\"button_index\":8,\"canceled\":false,\"pressed\":false,\"double_click\":false,\"script\":null)\n]\n}\nredo={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":89,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":true,\"pressed\":false,\"keycode\":90,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventMouseButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"button_mask\":0,\"position\":Vector2(138, 9),\"global_position\":Vector2(147, 55),\"factor\":1.0,\"button_index\":9,\"canceled\":false,\"pressed\":true,\"double_click\":false,\"script\":null)\n]\n}\nshow_grid={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":71,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nshow_rulers={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":82,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nshow_guides={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":70,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_zoom_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":90,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_zoom_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":90,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nswitch_colors={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":88,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ngo_to_first_frame={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":4194317,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ngo_to_last_frame={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":4194318,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ngo_to_previous_frame={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":4194319,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ngo_to_next_frame={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":4194321,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nplay_backwards={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194335,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nplay_forward={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194336,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nzen_mode={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194341,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nopen_docs={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194332,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nmirror_view={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":true,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":77,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_pan_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":65,\"physical_keycode\":0,\"key_label\":0,\"unicode\":97,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_pan_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":65,\"physical_keycode\":0,\"key_label\":0,\"unicode\":97,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nswap_tools={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":true,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":88,\"physical_keycode\":0,\"key_label\":0,\"unicode\":88,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nshow_pixel_grid={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":72,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nclear_selection={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":68,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nselect_cel_area={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":84,\"physical_keycode\":0,\"key_label\":0,\"unicode\":116,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_rectangletool_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":83,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_rectangletool_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":83,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_ellipsetool_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":67,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_ellipsetool_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":67,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_move_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":77,\"physical_keycode\":0,\"key_label\":0,\"unicode\":109,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_move_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":77,\"physical_keycode\":0,\"key_label\":0,\"unicode\":109,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nselect_all={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":65,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ninvert_selection={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":73,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_color_select_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":87,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_color_select_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":87,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_magic_wand_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":81,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_magic_wand_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":81,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ntransformation_confirm={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194309,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194310,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ntransformation_cancel={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194305,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_linetool_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":76,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_linetool_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":76,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_ellipse_select_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":89,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_ellipse_select_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":89,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_lasso_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":70,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_lasso_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":70,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_polygon_select_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":75,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_polygon_select_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":75,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nnew_brush={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":66,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nmoveable_panels={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194340,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nchange_tool_mode={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194326,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ndraw_create_line={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194325,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ndraw_snap_angle={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194326,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nshape_perfect={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194325,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nshape_center={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194326,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nshape_displace={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194328,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nselection_add={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194325,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nselection_subtract={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194326,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nselection_intersect={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":true,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194326,\"physical_keycode\":4194326,\"key_label\":4194326,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":4194325,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ntransform_snap_axis={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194325,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ntransform_snap_grid={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194326,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ntransform_move_selection_only={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194328,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ntransform_copy_selection_content={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":4194328,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194326,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ndraw_color_picker={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194328,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ncamera_left={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194319,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventJoypadMotion,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"axis\":2,\"axis_value\":-1.0,\"script\":null)\n]\n}\ncamera_right={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194321,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventJoypadMotion,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"axis\":2,\"axis_value\":1.0,\"script\":null)\n]\n}\ncamera_up={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194320,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventJoypadMotion,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"axis\":3,\"axis_value\":-1.0,\"script\":null)\n]\n}\ncamera_down={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194322,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventJoypadMotion,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"axis\":3,\"axis_value\":1.0,\"script\":null)\n]\n}\nmove_mouse_left={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194442,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventJoypadButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"button_index\":13,\"pressure\":0.0,\"pressed\":false,\"script\":null)\n, Object(InputEventJoypadMotion,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"axis\":0,\"axis_value\":-1.0,\"script\":null)\n]\n}\nmove_mouse_right={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194444,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventJoypadButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"button_index\":14,\"pressure\":0.0,\"pressed\":false,\"script\":null)\n, Object(InputEventJoypadMotion,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"axis\":0,\"axis_value\":1.0,\"script\":null)\n]\n}\nmove_mouse_up={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194446,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventJoypadButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"button_index\":11,\"pressure\":0.0,\"pressed\":false,\"script\":null)\n, Object(InputEventJoypadMotion,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"axis\":1,\"axis_value\":-1.0,\"script\":null)\n]\n}\nmove_mouse_down={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194440,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventJoypadButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"button_index\":12,\"pressure\":0.0,\"pressed\":false,\"script\":null)\n, Object(InputEventJoypadMotion,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"axis\":1,\"axis_value\":1.0,\"script\":null)\n]\n}\nactivate_left_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventMouseButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"button_mask\":0,\"position\":Vector2(0, 0),\"global_position\":Vector2(0, 0),\"factor\":1.0,\"button_index\":1,\"canceled\":false,\"pressed\":false,\"double_click\":false,\"script\":null)\n, Object(InputEventJoypadButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"button_index\":9,\"pressure\":0.0,\"pressed\":false,\"script\":null)\n]\n}\nactivate_right_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventMouseButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"button_mask\":0,\"position\":Vector2(0, 0),\"global_position\":Vector2(0, 0),\"factor\":1.0,\"button_index\":2,\"canceled\":false,\"pressed\":false,\"double_click\":false,\"script\":null)\n, Object(InputEventJoypadButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"button_index\":10,\"pressure\":0.0,\"pressed\":false,\"script\":null)\n]\n}\nopen_last_project={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":true,\"pressed\":false,\"keycode\":84,\"physical_keycode\":0,\"key_label\":0,\"unicode\":84,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\npreferences={\n\"deadzone\": 0.5,\n\"events\": []\n}\nresize_canvas={\n\"deadzone\": 0.5,\n\"events\": []\n}\nreapply_last_effect={\n\"deadzone\": 0.2,\n\"events\": []\n}\noffset_image={\n\"deadzone\": 0.5,\n\"events\": []\n}\nscale_image={\n\"deadzone\": 0.5,\n\"events\": []\n}\ncrop_to_selection={\n\"deadzone\": 0.5,\n\"events\": []\n}\ncrop_to_content={\n\"deadzone\": 0.5,\n\"events\": []\n}\nmirror_image={\n\"deadzone\": 0.5,\n\"events\": []\n}\nrotate_image={\n\"deadzone\": 0.5,\n\"events\": []\n}\ninvert_colors={\n\"deadzone\": 0.5,\n\"events\": []\n}\ndesaturation={\n\"deadzone\": 0.5,\n\"events\": []\n}\noutline={\n\"deadzone\": 0.5,\n\"events\": []\n}\ndrop_shadow={\n\"deadzone\": 0.5,\n\"events\": []\n}\nadjust_hsv={\n\"deadzone\": 0.5,\n\"events\": []\n}\nadjust_brightness_contrast={\n\"deadzone\": 0.5,\n\"events\": []\n}\ncolor_curves={\n\"deadzone\": 0.5,\n\"events\": []\n}\ngradient={\n\"deadzone\": 0.5,\n\"events\": []\n}\ngradient_map={\n\"deadzone\": 0.5,\n\"events\": []\n}\nposterize={\n\"deadzone\": 0.5,\n\"events\": []\n}\ndisplay_layer_effects={\n\"deadzone\": 0.5,\n\"events\": []\n}\nview_splash_screen={\n\"deadzone\": 0.5,\n\"events\": []\n}\nissue_tracker={\n\"deadzone\": 0.5,\n\"events\": []\n}\nopen_editor_data_folder={\n\"deadzone\": 0.5,\n\"events\": []\n}\nchangelog={\n\"deadzone\": 0.5,\n\"events\": []\n}\nabout_pixelorama={\n\"deadzone\": 0.5,\n\"events\": []\n}\nleft_paint_selection_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":73,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_paint_selection_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":73,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nbrush_size_increment={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventMouseButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"button_mask\":0,\"position\":Vector2(0, 0),\"global_position\":Vector2(0, 0),\"factor\":1.0,\"button_index\":4,\"canceled\":false,\"pressed\":false,\"double_click\":false,\"script\":null)\n]\n}\nbrush_size_decrement={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventMouseButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"button_mask\":16,\"position\":Vector2(83, 19),\"global_position\":Vector2(87, 62),\"factor\":1.0,\"button_index\":5,\"canceled\":false,\"pressed\":true,\"double_click\":false,\"script\":null)\n]\n}\nnew_layer={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194311,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nremove_layer={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":true,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":4194312,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nmove_layer_up={\n\"deadzone\": 0.5,\n\"events\": []\n}\nmove_layer_down={\n\"deadzone\": 0.5,\n\"events\": []\n}\nclone_layer={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":4194311,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nmerge_down_layer={\n\"deadzone\": 0.5,\n\"events\": []\n}\nadd_frame={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":true,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":4194311,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nremove_frame={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":true,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":4194312,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nclone_frame={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":true,\"pressed\":false,\"keycode\":4194311,\"physical_keycode\":0,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nmove_frame_left={\n\"deadzone\": 0.5,\n\"events\": []\n}\nmove_frame_right={\n\"deadzone\": 0.5,\n\"events\": []\n}\nreset_colors_default={\n\"deadzone\": 0.5,\n\"events\": []\n}\nhorizontal_mirror={\n\"deadzone\": 0.5,\n\"events\": []\n}\nvertical_mirror={\n\"deadzone\": 0.5,\n\"events\": []\n}\npixel_perfect={\n\"deadzone\": 0.5,\n\"events\": []\n}\nnew_palette={\n\"deadzone\": 0.5,\n\"events\": []\n}\nedit_palette={\n\"deadzone\": 0.5,\n\"events\": []\n}\nonion_skinning_toggle={\n\"deadzone\": 0.5,\n\"events\": []\n}\nloop_toggle={\n\"deadzone\": 0.5,\n\"events\": []\n}\nonion_skinning_settings={\n\"deadzone\": 0.5,\n\"events\": []\n}\nreference_rotate={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":4194326,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nreference_scale={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":4194328,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nreference_quick_menu={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":true,\"ctrl_pressed\":true,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":82,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ncancel_reference_transform={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":4194305,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nproject_properties={\n\"deadzone\": 0.5,\n\"events\": []\n}\npalettize={\n\"deadzone\": 0.5,\n\"events\": []\n}\npixelize={\n\"deadzone\": 0.5,\n\"events\": []\n}\ngo_to_previous_frame_with_same_tag={\n\"deadzone\": 0.2,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":44,\"key_label\":0,\"unicode\":44,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ngo_to_previous_layer={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":4194322,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ngo_to_next_frame_with_same_tag={\n\"deadzone\": 0.2,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":46,\"key_label\":0,\"unicode\":46,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ngo_to_next_layer={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"command_or_control_autoremap\":true,\"alt_pressed\":false,\"shift_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":4194320,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_curvetool_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":74,\"physical_keycode\":0,\"key_label\":0,\"unicode\":106,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_curvetool_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":74,\"physical_keycode\":0,\"key_label\":0,\"unicode\":106,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nalpha_lock={\n\"deadzone\": 0.5,\n\"events\": []\n}\nchange_layer_automatically={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":true,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":4194328,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":4194326,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ngaussian_blur={\n\"deadzone\": 0.5,\n\"events\": []\n}\nnext_project={\n\"deadzone\": 0.5,\n\"events\": [null, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":true,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":4194306,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nprevious_project={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":true,\"ctrl_pressed\":true,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":4194306,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ncenter_canvas={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":true,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":66,\"physical_keycode\":0,\"key_label\":0,\"unicode\":66,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_text_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":84,\"physical_keycode\":0,\"key_label\":0,\"unicode\":116,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_text_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":84,\"physical_keycode\":0,\"key_label\":0,\"unicode\":116,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nshow_pixel_indices={\n\"deadzone\": 0.5,\n\"events\": []\n}\ntoggle_draw_tiles_mode={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":true,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":96,\"key_label\":0,\"unicode\":126,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ntile_edit_mode_manual={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":true,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":49,\"key_label\":0,\"unicode\":33,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ntile_edit_mode_auto={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":true,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":50,\"key_label\":0,\"unicode\":64,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ntile_edit_mode_stack={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":true,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":51,\"key_label\":0,\"unicode\":35,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ntile_rotate_left={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":true,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":90,\"key_label\":0,\"unicode\":90,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ntile_rotate_right={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":true,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":88,\"key_label\":0,\"unicode\":88,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ntile_flip_horizontal={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":true,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":67,\"key_label\":0,\"unicode\":67,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\ntile_flip_vertical={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":true,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":86,\"key_label\":0,\"unicode\":86,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nleft_crop_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":86,\"physical_keycode\":0,\"key_label\":0,\"unicode\":118,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nright_crop_tool={\n\"deadzone\": 0.5,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":true,\"shift_pressed\":false,\"ctrl_pressed\":false,\"meta_pressed\":false,\"pressed\":false,\"keycode\":86,\"physical_keycode\":0,\"key_label\":0,\"unicode\":118,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nshow_reference_images={\n\"deadzone\": 0.5,\n\"events\": []\n}\nleft_isometricboxtool_tool={\n\"deadzone\": 0.2,\n\"events\": []\n}\nright_isometricboxtool_tool={\n\"deadzone\": 0.2,\n\"events\": []\n}\nlayer_visibility={\n\"deadzone\": 0.2,\n\"events\": []\n}\nlayer_lock={\n\"deadzone\": 0.2,\n\"events\": []\n}\ndiagonal_xy_mirror={\n\"deadzone\": 0.2,\n\"events\": []\n}\ndiagonal_x_minus_y_mirror={\n\"deadzone\": 0.2,\n\"events\": []\n}\nundo_history={\n\"deadzone\": 0.2,\n\"events\": []\n}\nmm_change_brush_size={\n\"deadzone\": 0.2,\n\"events\": [Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":-1,\"window_id\":0,\"alt_pressed\":false,\"shift_pressed\":false,\"ctrl_pressed\":true,\"meta_pressed\":false,\"pressed\":false,\"keycode\":0,\"physical_keycode\":4194325,\"key_label\":0,\"unicode\":0,\"location\":0,\"echo\":false,\"script\":null)\n]\n}\nmm_color_change_hue={\n\"deadzone\": 0.2,\n\"events\": []\n}\nmm_color_change_saturation={\n\"deadzone\": 0.2,\n\"events\": []\n}\nmm_color_change_value={\n\"deadzone\": 0.2,\n\"events\": []\n}\nmm_color_change_alpha={\n\"deadzone\": 0.2,\n\"events\": []\n}\ngrayscale_view={\n\"deadzone\": 0.5,\n\"events\": []\n}\n\n[input_devices]\n\npointing/android/enable_long_press_as_right_click=true\npointing/android/enable_pan_and_scale_gestures=true\n\n[internationalization]\n\nlocale/translations=PackedStringArray(\"res://Translations/en_US.po\")\n\n[rendering]\n\ntextures/canvas_textures/default_texture_filter=0\nrenderer/rendering_method=\"gl_compatibility\"\nrenderer/rendering_method.mobile=\"gl_compatibility\"\ntextures/vram_compression/import_etc2_astc=true\n\n[steam]\n\ninitialization/initialize_on_startup=false\ninitialization/embed_callbacks=false\ninitialization/app_id=2779170\n"
  },
  {
    "path": "src/Autoload/DrawingAlgos.gd",
    "content": "extends Node\n\nenum RotationAlgorithm { ROTXEL_SMEAR, CLEANEDGE, OMNISCALE, NNS, NN, ROTXEL, URD }\nenum GradientDirection { TOP, BOTTOM, LEFT, RIGHT }\n## Continuation from Image.Interpolation\nenum Interpolation { SCALE3X = 5, CLEANEDGE = 6, OMNISCALE = 7 }\n\nconst DUMMY_PRE_MUL_ALPHA_SHADER := preload(\"res://src/Shaders/DummyPreMulAlpha.gdshader\")\n\nvar blend_layers_shader := preload(\"res://src/Shaders/BlendLayers.gdshader\")\nvar clean_edge_shader: Shader:\n\tget:\n\t\tif clean_edge_shader == null:\n\t\t\tclean_edge_shader = load(\"res://src/Shaders/Effects/Rotation/cleanEdge.gdshader\")\n\t\treturn clean_edge_shader\nvar omniscale_shader: Shader:\n\tget:\n\t\tif omniscale_shader == null:\n\t\t\tomniscale_shader = load(\"res://src/Shaders/Effects/Rotation/OmniScale.gdshader\")\n\t\treturn omniscale_shader\nvar clean_edge_shader_premul_alpha: Shader:\n\tget:\n\t\tif clean_edge_shader_premul_alpha == null:\n\t\t\tclean_edge_shader_premul_alpha = clean_edge_shader.duplicate()\n\t\t\tclean_edge_shader_premul_alpha.code = clean_edge_shader.code.replace(\n\t\t\t\t\"unshaded\", \"unshaded, blend_premul_alpha\"\n\t\t\t)\n\t\treturn clean_edge_shader_premul_alpha\nvar omniscale_shader_premul_alpha: Shader:\n\tget:\n\t\tif omniscale_shader_premul_alpha == null:\n\t\t\tomniscale_shader_premul_alpha = omniscale_shader.duplicate()\n\t\t\tomniscale_shader_premul_alpha.code = omniscale_shader.code.replace(\n\t\t\t\t\"unshaded\", \"unshaded, blend_premul_alpha\"\n\t\t\t)\n\t\treturn omniscale_shader_premul_alpha\nvar rotxel_shader := preload(\"res://src/Shaders/Effects/Rotation/SmearRotxel.gdshader\")\nvar nn_shader := preload(\"res://src/Shaders/Effects/Rotation/NearestNeighbour.gdshader\")\nvar isometric_tile_cache := {}\n\n\n## Blends canvas layers into passed image starting from the origin position\nfunc blend_layers(\n\timage: Image,\n\tframe: Frame,\n\torigin := Vector2i.ZERO,\n\tproject := Global.current_project,\n\tonly_selected_cels := false,\n\tonly_selected_layers := false,\n) -> void:\n\tvar frame_index := project.frames.find(frame)\n\tvar previous_ordered_layers: Array[int] = project.ordered_layers\n\tproject.order_layers(frame_index)\n\tvar textures: Array[Image] = []\n\t# Nx4 texture, where N is the number of layers and the first row are the blend modes,\n\t# the second are the opacities, the third are the origins and the fourth are the\n\t# clipping mask booleans.\n\tvar metadata_image := Image.create(project.layers.size(), 4, false, Image.FORMAT_R8)\n\tfor i in project.layers.size():\n\t\tvar ordered_index := project.ordered_layers[i]\n\t\tvar layer := project.layers[ordered_index]\n\t\tvar include := true if layer.is_visible_in_hierarchy() else false\n\t\tif only_selected_cels and include:\n\t\t\tvar test_array := [frame_index, i]\n\t\t\tif not test_array in project.selected_cels:\n\t\t\t\tinclude = false\n\t\tif only_selected_layers and include:\n\t\t\tvar layer_is_selected := false\n\t\t\tfor selected_cel in project.selected_cels:\n\t\t\t\tif i == selected_cel[1]:\n\t\t\t\t\tlayer_is_selected = true\n\t\t\t\t\tbreak\n\t\t\tif not layer_is_selected:\n\t\t\t\tinclude = false\n\t\tvar cel := frame.cels[ordered_index]\n\t\tif DisplayServer.get_name() == \"headless\":\n\t\t\tif include:\n\t\t\t\tblend_layers_headless(image, project, layer, cel, origin)\n\t\telse:\n\t\t\tif layer.is_blender():\n\t\t\t\tvar cel_image := (layer as GroupLayer).blend_children(frame)\n\t\t\t\ttextures.append(cel_image)\n\t\t\telse:\n\t\t\t\tvar cel_image := layer.display_effects(cel)\n\t\t\t\ttextures.append(cel_image)\n\t\t\tif (\n\t\t\t\tlayer.is_blended_by_ancestor()\n\t\t\t\tand not only_selected_cels\n\t\t\t\tand not only_selected_layers\n\t\t\t):\n\t\t\t\tinclude = false\n\t\t\tset_layer_metadata_image(layer, cel, metadata_image, ordered_index, include)\n\tif DisplayServer.get_name() != \"headless\":\n\t\tvar texture_array := Texture2DArray.new()\n\t\ttexture_array.create_from_images(textures)\n\t\tvar params := {\n\t\t\t\"layers\": texture_array,\n\t\t\t\"metadata\": ImageTexture.create_from_image(metadata_image),\n\t\t}\n\t\tvar blended := Image.create(project.size.x, project.size.y, false, image.get_format())\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(blended, blend_layers_shader, params, project.size)\n\t\timage.blend_rect(blended, Rect2i(Vector2i.ZERO, project.size), origin)\n\t# Re-order the layers again to ensure correct canvas drawing\n\tproject.ordered_layers = previous_ordered_layers\n\n\nfunc set_layer_metadata_image(\n\tlayer: BaseLayer, cel: BaseCel, image: Image, index: int, include := true\n) -> void:\n\t# Store the blend mode\n\timage.set_pixel(index, 0, Color(layer.blend_mode / 255.0, 0.0, 0.0, 0.0))\n\t# Store the opacity\n\tif layer.is_visible_in_hierarchy() and include:\n\t\tvar opacity := cel.get_final_opacity(layer)\n\t\timage.set_pixel(index, 1, Color(opacity, 0.0, 0.0, 0.0))\n\telse:\n\t\timage.set_pixel(index, 1, Color())\n\t# Store the clipping mask boolean\n\tif layer.clipping_mask:\n\t\timage.set_pixel(index, 3, Color.RED)\n\telse:\n\t\timage.set_pixel(index, 3, Color.BLACK)\n\tif not include:\n\t\t# Store a small red value as a way to indicate that this layer should be skipped\n\t\t# Used for layers such as child layers of a group, so that the group layer itself can\n\t\t# successfully be used as a clipping mask with the layer below it.\n\t\timage.set_pixel(index, 3, Color(0.2, 0.0, 0.0, 0.0))\n\n\nfunc blend_layers_headless(\n\timage: Image, project: Project, layer: BaseLayer, cel: BaseCel, origin: Vector2i\n) -> void:\n\tvar opacity := cel.get_final_opacity(layer)\n\tvar cel_image := Image.new()\n\tcel_image.copy_from(cel.get_image())\n\tif opacity < 1.0:  # If we have cel or layer transparency\n\t\tfor xx in cel_image.get_size().x:\n\t\t\tfor yy in cel_image.get_size().y:\n\t\t\t\tvar pixel_color := cel_image.get_pixel(xx, yy)\n\t\t\t\tpixel_color.a *= opacity\n\t\t\t\tcel_image.set_pixel(xx, yy, pixel_color)\n\timage.blend_rect(cel_image, Rect2i(Vector2i.ZERO, project.size), origin)\n\n\n## Algorithm based on http://members.chello.at/easyfilter/bresenham.html\nfunc get_ellipse_points(pos: Vector2i, size: Vector2i) -> Array[Vector2i]:\n\tvar array: Array[Vector2i] = []\n\tvar x0 := pos.x\n\tvar x1 := pos.x + (size.x - 1)\n\tvar y0 := pos.y\n\tvar y1 := pos.y + (size.y - 1)\n\tvar a := absi(x1 - x0)\n\tvar b := absi(y1 - y0)\n\tvar b1 := b & 1\n\tvar dx := 4 * (1 - a) * b * b\n\tvar dy := 4 * (b1 + 1) * a * a\n\tvar err := dx + dy + b1 * a * a\n\tvar e2 := 0\n\n\tif x0 > x1:\n\t\tx0 = x1\n\t\tx1 += a\n\n\tif y0 > y1:\n\t\ty0 = y1\n\n\ty0 += (b + 1) / 2\n\ty1 = y0 - b1\n\ta *= 8 * a\n\tb1 = 8 * b * b\n\n\twhile x0 <= x1:\n\t\tvar v1 := Vector2i(x1, y0)\n\t\tvar v2 := Vector2i(x0, y0)\n\t\tvar v3 := Vector2i(x0, y1)\n\t\tvar v4 := Vector2i(x1, y1)\n\t\tarray.append(v1)\n\t\tarray.append(v2)\n\t\tarray.append(v3)\n\t\tarray.append(v4)\n\n\t\te2 = 2 * err\n\t\tif e2 <= dy:\n\t\t\ty0 += 1\n\t\t\ty1 -= 1\n\t\t\tdy += a\n\t\t\terr += dy\n\n\t\tif e2 >= dx || 2 * err > dy:\n\t\t\tx0 += 1\n\t\t\tx1 -= 1\n\t\t\tdx += b1\n\t\t\terr += dx\n\n\twhile y0 - y1 < b:\n\t\tvar v1 := Vector2i(x0 - 1, y0)\n\t\tvar v2 := Vector2i(x1 + 1, y0)\n\t\tvar v3 := Vector2i(x0 - 1, y1)\n\t\tvar v4 := Vector2i(x1 + 1, y1)\n\t\tarray.append(v1)\n\t\tarray.append(v2)\n\t\tarray.append(v3)\n\t\tarray.append(v4)\n\t\ty0 += 1\n\t\ty1 -= 1\n\n\treturn array\n\n\nfunc get_ellipse_points_filled(pos: Vector2i, size: Vector2i, thickness := 1) -> Array[Vector2i]:\n\tvar offsetted_size := size + Vector2i.ONE * (thickness - 1)\n\tvar border := get_ellipse_points(pos, offsetted_size)\n\tvar filling: Array[Vector2i] = []\n\n\tfor x in range(1, ceili(offsetted_size.x / 2.0)):\n\t\tvar fill := false\n\t\tvar prev_is_true := false\n\t\tfor y in range(0, ceili(offsetted_size.y / 2.0)):\n\t\t\tvar top_l_p := Vector2i(x, y)\n\t\t\tvar bit := border.has(pos + top_l_p)\n\n\t\t\tif bit and not fill:\n\t\t\t\tprev_is_true = true\n\t\t\t\tcontinue\n\n\t\t\tif not bit and (fill or prev_is_true):\n\t\t\t\tfilling.append(pos + top_l_p)\n\t\t\t\tfilling.append(pos + Vector2i(x, offsetted_size.y - y - 1))\n\t\t\t\tfilling.append(pos + Vector2i(offsetted_size.x - x - 1, y))\n\t\t\t\tfilling.append(pos + Vector2i(offsetted_size.x - x - 1, offsetted_size.y - y - 1))\n\n\t\t\t\tif prev_is_true:\n\t\t\t\t\tfill = true\n\t\t\t\t\tprev_is_true = false\n\t\t\telif bit and fill:\n\t\t\t\tbreak\n\n\treturn border + filling\n\n\nfunc scale_3x(sprite: Image, tol := 0.196078) -> Image:\n\tvar scaled := Image.create(\n\t\tsprite.get_width() * 3, sprite.get_height() * 3, sprite.has_mipmaps(), sprite.get_format()\n\t)\n\tvar width_minus_one := sprite.get_width() - 1\n\tvar height_minus_one := sprite.get_height() - 1\n\tfor x in range(0, sprite.get_width()):\n\t\tfor y in range(0, sprite.get_height()):\n\t\t\tvar xs := 3 * x\n\t\t\tvar ys := 3 * y\n\n\t\t\tvar a := sprite.get_pixel(maxi(x - 1, 0), maxi(y - 1, 0))\n\t\t\tvar b := sprite.get_pixel(mini(x, width_minus_one), maxi(y - 1, 0))\n\t\t\tvar c := sprite.get_pixel(mini(x + 1, width_minus_one), maxi(y - 1, 0))\n\t\t\tvar d := sprite.get_pixel(maxi(x - 1, 0), mini(y, height_minus_one))\n\t\t\tvar e := sprite.get_pixel(mini(x, width_minus_one), mini(y, height_minus_one))\n\t\t\tvar f := sprite.get_pixel(mini(x + 1, width_minus_one), mini(y, height_minus_one))\n\t\t\tvar g := sprite.get_pixel(maxi(x - 1, 0), mini(y + 1, height_minus_one))\n\t\t\tvar h := sprite.get_pixel(mini(x, width_minus_one), mini(y + 1, height_minus_one))\n\t\t\tvar i := sprite.get_pixel(mini(x + 1, width_minus_one), mini(y + 1, height_minus_one))\n\n\t\t\tvar db: bool = similar_colors(d, b, tol)\n\t\t\tvar dh: bool = similar_colors(d, h, tol)\n\t\t\tvar bf: bool = similar_colors(f, b, tol)\n\t\t\tvar ec: bool = similar_colors(e, c, tol)\n\t\t\tvar ea: bool = similar_colors(e, a, tol)\n\t\t\tvar fh: bool = similar_colors(f, h, tol)\n\t\t\tvar eg: bool = similar_colors(e, g, tol)\n\t\t\tvar ei: bool = similar_colors(e, i, tol)\n\n\t\t\tscaled.set_pixel(maxi(xs - 1, 0), maxi(ys - 1, 0), d if (db and !dh and !bf) else e)\n\t\t\tscaled.set_pixel(\n\t\t\t\txs,\n\t\t\t\tmaxi(ys - 1, 0),\n\t\t\t\tb if (db and !dh and !bf and !ec) or (bf and !db and !fh and !ea) else e\n\t\t\t)\n\t\t\tscaled.set_pixel(xs + 1, maxi(ys - 1, 0), f if (bf and !db and !fh) else e)\n\t\t\tscaled.set_pixel(\n\t\t\t\tmaxi(xs - 1, 0),\n\t\t\t\tys,\n\t\t\t\td if (dh and !fh and !db and !ea) or (db and !dh and !bf and !eg) else e\n\t\t\t)\n\t\t\tscaled.set_pixel(xs, ys, e)\n\t\t\tscaled.set_pixel(\n\t\t\t\txs + 1, ys, f if (bf and !db and !fh and !ei) or (fh and !bf and !dh and !ec) else e\n\t\t\t)\n\t\t\tscaled.set_pixel(maxi(xs - 1, 0), ys + 1, d if (dh and !fh and !db) else e)\n\t\t\tscaled.set_pixel(\n\t\t\t\txs, ys + 1, h if (fh and !bf and !dh and !eg) or (dh and !fh and !db and !ei) else e\n\t\t\t)\n\t\t\tscaled.set_pixel(xs + 1, ys + 1, f if (fh and !bf and !dh) else e)\n\n\treturn scaled\n\n\nfunc transform_image_with_algorithm(\n\timage: Image, params: Dictionary, algorithm: RotationAlgorithm, used_rect := Rect2i()\n) -> void:\n\tvar transformation_matrix: Transform2D = params.get(\"transformation_matrix\", Transform2D())\n\tvar new_image_size := used_rect.size\n\tif new_image_size == Vector2i.ZERO:\n\t\tnew_image_size = image.get_size()\n\tvar pivot: Vector2 = params.get(\"pivot\", image.get_size() / 2)\n\tif type_is_shader(algorithm):\n\t\ttransformation_matrix = transform_remove_scale(transformation_matrix)\n\t\tparams[\"transformation_matrix\"] = transformation_matrix\n\t\tparams[\"pivot\"] = pivot / Vector2(image.get_size())\n\t\tvar shader := rotxel_shader\n\t\tmatch algorithm:\n\t\t\tRotationAlgorithm.CLEANEDGE:\n\t\t\t\tshader = clean_edge_shader\n\t\t\tRotationAlgorithm.OMNISCALE:\n\t\t\t\tshader = omniscale_shader\n\t\t\tRotationAlgorithm.NNS:\n\t\t\t\tshader = nn_shader\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(image, shader, params, new_image_size)\n\telse:\n\t\tvar angle := transformation_matrix.get_rotation()\n\t\tmatch algorithm:\n\t\t\tRotationAlgorithm.ROTXEL:\n\t\t\t\trotxel(image, angle, pivot)\n\t\t\tRotationAlgorithm.NN:\n\t\t\t\tnn_rotate(image, angle, pivot)\n\t\t\tRotationAlgorithm.URD:\n\t\t\t\tfake_rotsprite(image, angle, pivot)\n\tif image is ImageExtended:\n\t\timage.convert_rgb_to_indexed()\n\n\nfunc transform_image_with_viewport(\n\toriginal_image: Image,\n\ttransform_matrix: Transform2D,\n\tpivot: Vector2,\n\talgorithm: RotationAlgorithm,\n\tused_rect := Rect2i()\n) -> void:\n\t# Compute the transformation with pivot support\n\t# translate pivot to origin\n\tvar move_to_origin := Transform2D(Vector2(1, 0), Vector2(0, 1), -pivot)\n\tvar move_back := Transform2D(Vector2(1, 0), Vector2(0, 1), pivot)  # move pivot back\n\tvar full_transform := move_back * transform_matrix * move_to_origin\n\n\t# Estimate new bounding box\n\tvar bounds := get_transformed_bounds(original_image.get_size(), full_transform)\n\tif bounds.size.x == 0 or bounds.size.y == 0:\n\t\treturn\n\tvar viewport_size := bounds.size.ceil() as Vector2i\n\tif viewport_size.x == 1:\n\t\tviewport_size.x = 2\n\tif viewport_size.y == 1:\n\t\tviewport_size.y = 2\n\n\t# Create viewport and canvas\n\tvar vp := RenderingServer.viewport_create()\n\tvar canvas := RenderingServer.canvas_create()\n\tRenderingServer.viewport_attach_canvas(vp, canvas)\n\tRenderingServer.viewport_set_size(vp, viewport_size.x, viewport_size.y)\n\tRenderingServer.viewport_set_disable_3d(vp, true)\n\tRenderingServer.viewport_set_active(vp, true)\n\tRenderingServer.viewport_set_transparent_background(vp, true)\n\tRenderingServer.viewport_set_default_canvas_item_texture_filter(\n\t\tvp, RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_NEAREST\n\t)\n\n\t# Apply transform offset to align within new bounding box\n\tvar ci_rid := RenderingServer.canvas_item_create()\n\tvar offset_transform := full_transform.translated(-bounds.position)\n\tRenderingServer.viewport_set_canvas_transform(vp, canvas, offset_transform)\n\tRenderingServer.canvas_item_set_parent(ci_rid, canvas)\n\n\t# Draw the texture\n\tvar texture := RenderingServer.texture_2d_create(original_image)\n\tRenderingServer.canvas_item_add_texture_rect(\n\t\tci_rid, Rect2(Vector2.ZERO, original_image.get_size()), texture\n\t)\n\tvar mat_rid := RenderingServer.material_create()\n\tvar shader: Shader = null\n\tmatch algorithm:\n\t\tRotationAlgorithm.CLEANEDGE:\n\t\t\tshader = clean_edge_shader_premul_alpha\n\t\tRotationAlgorithm.OMNISCALE:\n\t\t\tshader = omniscale_shader_premul_alpha\n\t\tRotationAlgorithm.NNS:\n\t\t\tshader = nn_shader\n\t\t_:\n\t\t\tshader = DUMMY_PRE_MUL_ALPHA_SHADER\n\tif is_instance_valid(shader):\n\t\tRenderingServer.material_set_shader(mat_rid, shader.get_rid())\n\tRenderingServer.canvas_item_set_material(ci_rid, mat_rid)\n\n\t# Render once\n\tRenderingServer.viewport_set_update_mode(vp, RenderingServer.VIEWPORT_UPDATE_ONCE)\n\tRenderingServer.force_draw(false)\n\tvar viewport_texture := RenderingServer.texture_2d_get(RenderingServer.viewport_get_texture(vp))\n\n\t# Clean up\n\tRenderingServer.free_rid(vp)\n\tRenderingServer.free_rid(canvas)\n\tRenderingServer.free_rid(ci_rid)\n\tRenderingServer.free_rid(mat_rid)\n\tRenderingServer.free_rid(texture)\n\n\t# Copy result\n\tif not is_instance_valid(viewport_texture):\n\t\treturn\n\tviewport_texture.convert(original_image.get_format())\n\tvar region := viewport_texture.get_used_rect() if used_rect == Rect2i() else used_rect\n\toriginal_image.copy_from(viewport_texture.get_region(region))\n\n\tif original_image is ImageExtended:\n\t\toriginal_image.convert_rgb_to_indexed()\n\n\nfunc type_is_shader(algorithm: RotationAlgorithm) -> bool:\n\treturn algorithm <= RotationAlgorithm.NNS\n\n\nfunc get_transformed_bounds(image_size: Vector2i, transform: Transform2D) -> Rect2:\n\tvar corners: Array[Vector2] = [\n\t\ttransform * (Vector2(0, 0)),\n\t\ttransform * (Vector2(image_size.x, 0)),\n\t\ttransform * (Vector2(0, image_size.y)),\n\t\ttransform * (Vector2(image_size.x, image_size.y))\n\t]\n\tvar min_corner := corners[0]\n\tvar max_corner := corners[0]\n\tfor corner in corners:\n\t\tmin_corner = min_corner.min(corner)\n\t\tmax_corner = max_corner.max(corner)\n\treturn Rect2(min_corner, max_corner - min_corner)\n\n\nfunc transform_remove_scale(t: Transform2D) -> Transform2D:\n\tvar x := t.x.normalized()\n\tvar y := t.y.normalized()\n\treturn Transform2D(x, y, Vector2.ZERO)\n\n\nfunc rotxel(sprite: Image, angle: float, pivot: Vector2) -> void:\n\tif is_zero_approx(angle) or is_equal_approx(angle, TAU):\n\t\treturn\n\tif is_equal_approx(angle, PI / 2.0) or is_equal_approx(angle, 3.0 * PI / 2.0):\n\t\tnn_rotate(sprite, angle, pivot)\n\t\treturn\n\tif is_equal_approx(angle, PI):\n\t\tsprite.rotate_180()\n\t\treturn\n\n\tvar aux := Image.new()\n\taux.copy_from(sprite)\n\tvar ox: int\n\tvar oy: int\n\tfor x in sprite.get_size().x:\n\t\tfor y in sprite.get_size().y:\n\t\t\tvar dx := 3 * (x - pivot.x)\n\t\t\tvar dy := 3 * (y - pivot.y)\n\t\t\tvar found_pixel := false\n\t\t\tfor k in range(9):\n\t\t\t\tvar modk := -1 + k % 3\n\t\t\t\tvar divk := -1 + int(k / 3)\n\t\t\t\tvar dir := atan2(dy + divk, dx + modk)\n\t\t\t\tvar mag := sqrt(pow(dx + modk, 2) + pow(dy + divk, 2))\n\t\t\t\tdir += angle\n\t\t\t\tox = roundi(pivot.x * 3 + 1 + mag * cos(dir))\n\t\t\t\toy = roundi(pivot.y * 3 + 1 + mag * sin(dir))\n\n\t\t\t\tif sprite.get_width() % 2 != 0:\n\t\t\t\t\tox += 1\n\t\t\t\t\toy += 1\n\n\t\t\t\tif (\n\t\t\t\t\tox >= 0\n\t\t\t\t\t&& ox < sprite.get_width() * 3\n\t\t\t\t\t&& oy >= 0\n\t\t\t\t\t&& oy < sprite.get_height() * 3\n\t\t\t\t):\n\t\t\t\t\tfound_pixel = true\n\t\t\t\t\tbreak\n\n\t\t\tif !found_pixel:\n\t\t\t\tsprite.set_pixel(x, y, Color(0, 0, 0, 0))\n\t\t\t\tcontinue\n\n\t\t\tvar fil: int = oy % 3\n\t\t\tvar col: int = ox % 3\n\t\t\tvar index: int = col + 3 * fil\n\n\t\t\tox = roundi((ox - 1) / 3.0)\n\t\t\toy = roundi((oy - 1) / 3.0)\n\t\t\tvar p: Color\n\t\t\tif ox == 0 || ox == sprite.get_width() - 1 || oy == 0 || oy == sprite.get_height() - 1:\n\t\t\t\tp = aux.get_pixel(ox, oy)\n\t\t\telse:\n\t\t\t\tvar a := aux.get_pixel(ox - 1, oy - 1)\n\t\t\t\tvar b := aux.get_pixel(ox, oy - 1)\n\t\t\t\tvar c := aux.get_pixel(ox + 1, oy - 1)\n\t\t\t\tvar d := aux.get_pixel(ox - 1, oy)\n\t\t\t\tvar e := aux.get_pixel(ox, oy)\n\t\t\t\tvar f := aux.get_pixel(ox + 1, oy)\n\t\t\t\tvar g := aux.get_pixel(ox - 1, oy + 1)\n\t\t\t\tvar h := aux.get_pixel(ox, oy + 1)\n\t\t\t\tvar i := aux.get_pixel(ox + 1, oy + 1)\n\n\t\t\t\tmatch index:\n\t\t\t\t\t0:\n\t\t\t\t\t\tp = (\n\t\t\t\t\t\t\td\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tsimilar_colors(d, b)\n\t\t\t\t\t\t\t\t&& !similar_colors(d, h)\n\t\t\t\t\t\t\t\t&& !similar_colors(b, f)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\telse e\n\t\t\t\t\t\t)\n\t\t\t\t\t1:\n\t\t\t\t\t\tp = (\n\t\t\t\t\t\t\tb\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\tsimilar_colors(d, b)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(d, h)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(b, f)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(e, c)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t|| (\n\t\t\t\t\t\t\t\t\tsimilar_colors(b, f)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(d, b)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(f, h)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(e, a)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\telse e\n\t\t\t\t\t\t)\n\t\t\t\t\t2:\n\t\t\t\t\t\tp = (\n\t\t\t\t\t\t\tf\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tsimilar_colors(b, f)\n\t\t\t\t\t\t\t\t&& !similar_colors(d, b)\n\t\t\t\t\t\t\t\t&& !similar_colors(f, h)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\telse e\n\t\t\t\t\t\t)\n\t\t\t\t\t3:\n\t\t\t\t\t\tp = (\n\t\t\t\t\t\t\td\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\tsimilar_colors(d, h)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(f, h)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(d, b)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(e, a)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t|| (\n\t\t\t\t\t\t\t\t\tsimilar_colors(d, b)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(d, h)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(b, f)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(e, g)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\telse e\n\t\t\t\t\t\t)\n\t\t\t\t\t4:\n\t\t\t\t\t\tp = e\n\t\t\t\t\t5:\n\t\t\t\t\t\tp = (\n\t\t\t\t\t\t\tf\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\tsimilar_colors(b, f)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(d, b)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(f, h)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(e, i)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t|| (\n\t\t\t\t\t\t\t\t\tsimilar_colors(f, h)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(b, f)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(d, h)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(e, c)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\telse e\n\t\t\t\t\t\t)\n\t\t\t\t\t6:\n\t\t\t\t\t\tp = (\n\t\t\t\t\t\t\td\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tsimilar_colors(d, h)\n\t\t\t\t\t\t\t\t&& !similar_colors(f, h)\n\t\t\t\t\t\t\t\t&& !similar_colors(d, b)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\telse e\n\t\t\t\t\t\t)\n\t\t\t\t\t7:\n\t\t\t\t\t\tp = (\n\t\t\t\t\t\t\th\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\tsimilar_colors(f, h)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(f, b)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(d, h)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(e, g)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t|| (\n\t\t\t\t\t\t\t\t\tsimilar_colors(d, h)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(f, h)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(d, b)\n\t\t\t\t\t\t\t\t\t&& !similar_colors(e, i)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\telse e\n\t\t\t\t\t\t)\n\t\t\t\t\t8:\n\t\t\t\t\t\tp = (\n\t\t\t\t\t\t\tf\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tsimilar_colors(f, h)\n\t\t\t\t\t\t\t\t&& !similar_colors(f, b)\n\t\t\t\t\t\t\t\t&& !similar_colors(d, h)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\telse e\n\t\t\t\t\t\t)\n\t\t\tsprite.set_pixel(x, y, p)\n\n\nfunc fake_rotsprite(sprite: Image, angle: float, pivot: Vector2) -> void:\n\tif is_zero_approx(angle) or is_equal_approx(angle, TAU):\n\t\treturn\n\tif is_equal_approx(angle, PI / 2.0) or is_equal_approx(angle, 3.0 * PI / 2.0):\n\t\tnn_rotate(sprite, angle, pivot)\n\t\treturn\n\tif is_equal_approx(angle, PI):\n\t\tsprite.rotate_180()\n\t\treturn\n\tvar selected_sprite := scale_3x(sprite)\n\tnn_rotate(selected_sprite, angle, pivot * 3)\n\tselected_sprite.resize(\n\t\tselected_sprite.get_width() / 3, selected_sprite.get_height() / 3, Image.INTERPOLATE_NEAREST\n\t)\n\tsprite.blit_rect(selected_sprite, Rect2(Vector2.ZERO, selected_sprite.get_size()), Vector2.ZERO)\n\n\nfunc nn_rotate(sprite: Image, angle: float, pivot: Vector2) -> void:\n\tif is_zero_approx(angle) or is_equal_approx(angle, TAU):\n\t\treturn\n\tif is_equal_approx(angle, PI):\n\t\tsprite.rotate_180()\n\t\treturn\n\tvar aux := Image.new()\n\taux.copy_from(sprite)\n\tvar angle_sin := sin(angle)\n\tvar angle_cos := cos(angle)\n\tfor x in range(sprite.get_width()):\n\t\tfor y in range(sprite.get_height()):\n\t\t\tvar ox := (x - pivot.x) * angle_cos - (y - pivot.y) * angle_sin + pivot.x\n\t\t\tvar oy := (x - pivot.x) * angle_sin + (y - pivot.y) * angle_cos + pivot.y\n\t\t\tif ox >= 0 && ox < sprite.get_width() && oy >= 0 && oy < sprite.get_height():\n\t\t\t\tsprite.set_pixel(x, y, aux.get_pixel(ox, oy))\n\t\t\telse:\n\t\t\t\tsprite.set_pixel(x, y, Color(0, 0, 0, 0))\n\n\n## Compares two colors, and returns [code]true[/code] if the difference of these colors is\n## less or equal to the tolerance [param tol]. [param tol] is in the range of 0-1.\nfunc similar_colors(c1: Color, c2: Color, tol := 0.392157) -> bool:\n\tif c1.is_equal_approx(c2):  # Optimization\n\t\treturn true\n\tif tol == 0.0:  # if it skipped the above check then it's obviously false\n\t\treturn false\n\treturn (\n\t\tabsf(c1.r - c2.r) <= tol\n\t\t&& absf(c1.g - c2.g) <= tol\n\t\t&& absf(c1.b - c2.b) <= tol\n\t\t&& absf(c1.a - c2.a) <= tol\n\t)\n\n\nfunc generate_isometric_rectangle(image: Image, is_gap_tile: bool) -> void:\n\tif isometric_tile_cache.has(image.get_size()):\n\t\tif isometric_tile_cache[image.get_size()].has(is_gap_tile):\n\t\t\tvar cache_img: Image = isometric_tile_cache[image.get_size()][is_gap_tile]\n\t\t\timage.blit_rect(cache_img, Rect2i(Vector2i.ZERO, cache_img.get_size()), Vector2i.ZERO)\n\t\t\treturn\n\t\tisometric_tile_cache.clear()\n\tvar half_size := ((Vector2(image.get_size()) - Vector2.ONE) / 2).floor()\n\tvar even_check = image.get_size() % 2\n\tvar even_offset = Vector2i(even_check.x == 0, even_check.y == 0)\n\tvar up := Vector2i(half_size.x + even_offset.x, 0)\n\tvar right := Vector2i(image.get_size().x - 1, half_size.y)\n\tif is_gap_tile:\n\t\tvar test := Geometry2D.bresenham_line(up, right)\n\t\tvar a: Vector2i\n\t\tvar b := test[-1] + Vector2i.UP\n\t\tvar line_r := []\n\t\tvar sub_position_x := []\n\t\tvar sub_position_y := []\n\t\tvar scan_dir := [Vector2i.RIGHT]\n\t\tfor i in test.size():\n\t\t\tif up.y == test[i].y:\n\t\t\t\ta = test[i] + Vector2i.RIGHT\n\t\t\tvar pt: Vector2i = test[i]\n\t\t\tif i == test.size() - 1:\n\t\t\t\tscan_dir.erase(Vector2i.RIGHT)\n\t\t\tfor dir in scan_dir:\n\t\t\t\tif (\n\t\t\t\t\tRect2i(Vector2i.ZERO, image.get_size()).has_point(test[i] + dir)\n\t\t\t\t\tand !line_r.has(\n\t\t\t\t\t\tVector2i((test[i] + dir).x, image.get_size().y - 1 - (test[i] + dir).y)\n\t\t\t\t\t)\n\t\t\t\t\tand !test.has(test[i] + dir)\n\t\t\t\t):\n\t\t\t\t\tvar small_point = test[i] + dir\n\t\t\t\t\tline_r.push_front(\n\t\t\t\t\t\tVector2i(small_point.x, image.get_size().y - 1 - small_point.y)\n\t\t\t\t\t)\n\t\t\t\t\tsub_position_x.append(small_point.x)\n\t\t\t\t\tsub_position_y.append(image.get_size().y - 1 - small_point.y)\n\t\t\tif not pt + Vector2i.RIGHT in test and not scan_dir.has(Vector2i.UP):\n\t\t\t\tscan_dir.push_front(Vector2i.UP)\n\t\tvar pos := Vector2i(sub_position_x.min(), sub_position_y.min())\n\t\tvar sub_size_x := (b.x - a.x + 1) * 2\n\t\tvar sub_size_y := (b.y - a.y + 1) * 2\n\t\tvar offset_x := floori((sub_size_x - image.get_size().x) / 2.0)\n\t\tvar offset_y := floori((sub_size_y - image.get_size().y) / 2.0)\n\t\tvar offset := Vector2i(-offset_x, -offset_y)\n\t\tfor i in line_r.size():\n\t\t\tvar val_local = line_r[i] - pos\n\t\t\tline_r[i] = Vector2i(sub_size_x - 1 - val_local.x, val_local.y)\n\t\tfor pixel in line_r:\n\t\t\timage.set_pixelv(pixel + offset, Color.WHITE)\n\t\t\tvar left := Vector2i(sub_size_x - 1 - pixel.x, pixel.y)\n\t\t\tfor j in range(pixel.x, left.x - 1, -1):\n\t\t\t\timage.set_pixel(j + offset.x, pixel.y + offset.y, Color.WHITE)\n\t\t\t\tvar mirror_y := Vector2i(j, sub_size_y - 1 - pixel.y)\n\t\t\t\tfor k in range(pixel.y, mirror_y.y + 1):\n\t\t\t\t\timage.set_pixel(j + offset.x, k + offset.y, Color.WHITE)\n\t\t\tvar mirror_right := Vector2i(pixel.x, sub_size_y - 1 - pixel.y)\n\t\t\timage.set_pixelv(mirror_right + offset, Color.WHITE)\n\t\t\tisometric_tile_cache.get_or_add(image.get_size(), {})[is_gap_tile] = image.duplicate()\n\t\treturn\n\n\tvar up_right := Geometry2D.bresenham_line(up, right)\n\tfor pixel in up_right:\n\t\timage.set_pixelv(pixel, Color.WHITE)\n\t\tvar left := Vector2i(image.get_size().x - 1 - pixel.x, pixel.y)\n\t\tfor j in range(pixel.x, left.x - 1, -1):\n\t\t\timage.set_pixel(j, pixel.y, Color.WHITE)\n\t\t\tvar mirror_y := Vector2i(j, image.get_size().y - 1 - pixel.y)\n\t\t\tfor k in range(pixel.y, mirror_y.y + 1):\n\t\t\t\timage.set_pixel(j, k, Color.WHITE)\n\t\tvar mirror_right := Vector2i(pixel.x, image.get_size().y - 1 - pixel.y)\n\t\timage.set_pixelv(mirror_right, Color.WHITE)\n\t\tisometric_tile_cache.get_or_add(image.get_size(), {})[is_gap_tile] = image.duplicate()\n\n\nfunc generate_hexagonal_pointy_top(image: Image) -> void:\n\tvar half_size := image.get_size() / 2\n\tvar quarter_size := image.get_size() / 4\n\tvar three_quarters_size := (image.get_size() * 3) / 4\n\tvar up := Vector2i(half_size.x, 0)\n\tvar quarter := Vector2i(image.get_size().x - 1, quarter_size.y)\n\tvar line := Geometry2D.bresenham_line(up, quarter)\n\tfor pixel in line:\n\t\timage.set_pixelv(pixel, Color.WHITE)\n\t\tvar mirror := Vector2i(image.get_size().x - 1 - pixel.x, pixel.y)\n\t\tfor j in range(pixel.x, mirror.x - 1, -1):\n\t\t\timage.set_pixel(j, pixel.y, Color.WHITE)\n\tvar three_quarters := Vector2i(image.get_size().x - 1, three_quarters_size.y - 1)\n\tline = Geometry2D.bresenham_line(quarter, three_quarters)\n\tfor pixel in line:\n\t\timage.set_pixelv(pixel, Color.WHITE)\n\t\tvar mirror := Vector2i(image.get_size().x - 1 - pixel.x, pixel.y)\n\t\tfor j in range(pixel.x, mirror.x - 1, -1):\n\t\t\timage.set_pixel(j, pixel.y, Color.WHITE)\n\tvar down := Vector2i(half_size.x, image.get_size().y - 1)\n\tline = Geometry2D.bresenham_line(three_quarters, down)\n\tfor pixel in line:\n\t\timage.set_pixelv(pixel, Color.WHITE)\n\t\tvar mirror := Vector2i(image.get_size().x - 1 - pixel.x, pixel.y)\n\t\tfor j in range(pixel.x, mirror.x - 1, -1):\n\t\t\timage.set_pixel(j, pixel.y, Color.WHITE)\n\n\nfunc generate_hexagonal_flat_top(image: Image) -> void:\n\tvar half_size := image.get_size() / 2\n\tvar quarter_size := image.get_size() / 4\n\tvar three_quarters_size := (image.get_size() * 3) / 4\n\tvar left := Vector2i(0, half_size.y)\n\tvar quarter := Vector2i(quarter_size.x, image.get_size().y - 1)\n\tvar line := Geometry2D.bresenham_line(left, quarter)\n\tfor pixel in line:\n\t\timage.set_pixelv(pixel, Color.WHITE)\n\t\tvar mirror := Vector2i(pixel.x, image.get_size().y - 1 - pixel.y)\n\t\tfor j in range(pixel.y, mirror.y - 1, -1):\n\t\t\timage.set_pixel(pixel.x, j, Color.WHITE)\n\tvar three_quarters := Vector2i(three_quarters_size.x - 1, image.get_size().y - 1)\n\tline = Geometry2D.bresenham_line(quarter, three_quarters)\n\tfor pixel in line:\n\t\timage.set_pixelv(pixel, Color.WHITE)\n\t\tvar mirror := Vector2i(pixel.x, image.get_size().y - 1 - pixel.y)\n\t\tfor j in range(pixel.y, mirror.y - 1, -1):\n\t\t\timage.set_pixel(pixel.x, j, Color.WHITE)\n\tvar down := Vector2i(image.get_size().x - 1, half_size.y)\n\tline = Geometry2D.bresenham_line(three_quarters, down)\n\tfor pixel in line:\n\t\timage.set_pixelv(pixel, Color.WHITE)\n\t\tvar mirror := Vector2i(pixel.x, image.get_size().y - 1 - pixel.y)\n\t\tfor j in range(pixel.y, mirror.y - 1, -1):\n\t\t\timage.set_pixel(pixel.x, j, Color.WHITE)\n\n\n# Image effects\nfunc center(indices: Array) -> void:\n\tvar project := Global.current_project\n\tGlobal.canvas.selection.transform_content_confirm()\n\tvar redo_data := {}\n\tvar undo_data := {}\n\tproject.undo_redo.create_action(\"Center Frames\")\n\tfor frame in indices:\n\t\t# Find used rect of the current frame (across all of the layers)\n\t\tvar used_rect := Rect2i()\n\t\tfor cel in project.frames[frame].cels:\n\t\t\tif not cel is PixelCel:\n\t\t\t\tcontinue\n\t\t\tvar cel_rect := cel.get_image().get_used_rect()\n\t\t\tif cel_rect.has_area():\n\t\t\t\tused_rect = used_rect.merge(cel_rect) if used_rect.has_area() else cel_rect\n\t\tif not used_rect.has_area():\n\t\t\tcontinue\n\n\t\t# Now apply centering\n\t\tvar offset: Vector2i = (0.5 * (project.size - used_rect.size)).floor()\n\t\tfor cel in project.frames[frame].cels:\n\t\t\tif not cel is PixelCel:\n\t\t\t\tcontinue\n\t\t\tvar cel_image := (cel as PixelCel).get_image()\n\t\t\tvar tmp_centered := project.new_empty_image()\n\t\t\ttmp_centered.blend_rect(cel_image, used_rect, offset)\n\t\t\tvar centered := ImageExtended.new()\n\t\t\tcentered.copy_from_custom(tmp_centered, cel_image.is_indexed)\n\t\t\tif cel is CelTileMap:\n\t\t\t\tvar tilemap_cel := cel as CelTileMap\n\t\t\t\tvar tilemap_offset := (offset - used_rect.position) % tilemap_cel.get_tile_size()\n\t\t\t\ttilemap_cel.serialize_undo_data_source_image(\n\t\t\t\t\tcentered, redo_data, undo_data, tilemap_offset\n\t\t\t\t)\n\t\t\tcentered.add_data_to_dictionary(redo_data, cel_image)\n\t\t\tcel_image.add_data_to_dictionary(undo_data)\n\tproject.deserialize_cel_undo_data(redo_data, undo_data)\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.commit_action()\n\n\nfunc scale_project(width: int, height: int, interpolation: int) -> void:\n\tvar redo_data := {}\n\tvar undo_data := {}\n\tvar tilesets: Array[TileSetCustom] = []\n\tfor cel in Global.current_project.get_all_pixel_cels():\n\t\tif not cel is PixelCel:\n\t\t\tcontinue\n\t\tvar cel_image := (cel as PixelCel).get_image()\n\t\tvar sprite := resize_image(cel_image, width, height, interpolation) as ImageExtended\n\t\tif cel is CelTileMap:\n\t\t\tvar tilemap_cel := cel as CelTileMap\n\t\t\tvar skip_tileset_undo := not tilesets.has(tilemap_cel.tileset)\n\t\t\ttilemap_cel.serialize_undo_data_source_image(\n\t\t\t\tsprite, redo_data, undo_data, Vector2i.ZERO, skip_tileset_undo, interpolation\n\t\t\t)\n\t\t\ttilesets.append(tilemap_cel.tileset)\n\t\tsprite.add_data_to_dictionary(redo_data, cel_image)\n\t\tcel_image.add_data_to_dictionary(undo_data)\n\n\tgeneral_do_and_undo_scale(width, height, redo_data, undo_data)\n\n\nfunc resize_image(\n\timage: Image, width: int, height: int, interpolation: Image.Interpolation\n) -> Image:\n\tvar new_image: Image\n\tif image is ImageExtended:\n\t\tnew_image = ImageExtended.new()\n\t\tnew_image.is_indexed = image.is_indexed\n\t\tnew_image.copy_from(image)\n\t\tnew_image.select_palette(\"\", false)\n\telse:\n\t\tnew_image = Image.new()\n\t\tnew_image.copy_from(image)\n\tif interpolation == Interpolation.SCALE3X:\n\t\tvar times := Vector2i(\n\t\t\tceili(width / (3.0 * new_image.get_width())),\n\t\t\tceili(height / (3.0 * new_image.get_height()))\n\t\t)\n\t\tfor _j in range(maxi(times.x, times.y)):\n\t\t\tnew_image.copy_from(scale_3x(new_image))\n\t\tnew_image.resize(width, height, Image.INTERPOLATE_NEAREST)\n\telif interpolation == Interpolation.CLEANEDGE:\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(new_image, clean_edge_shader, {}, Vector2i(width, height), false)\n\telif interpolation == Interpolation.OMNISCALE and omniscale_shader:\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(new_image, omniscale_shader, {}, Vector2i(width, height), false)\n\telse:\n\t\tnew_image.resize(width, height, interpolation)\n\tif new_image is ImageExtended:\n\t\tnew_image.on_size_changed()\n\treturn new_image\n\n\n## Sets the size of the project to be the same as the size of the active selection.\nfunc crop_to_selection() -> void:\n\tif not Global.current_project.has_selection:\n\t\treturn\n\tGlobal.canvas.selection.transform_content_confirm()\n\tvar redo_data := {}\n\tvar undo_data := {}\n\tvar rect := Global.current_project.selection_map.get_selection_rect(Global.current_project)\n\t# Loop through all the cels to crop them\n\tfor cel in Global.current_project.get_all_pixel_cels():\n\t\tvar cel_image := cel.get_image()\n\t\tvar tmp_cropped := cel_image.get_region(rect)\n\t\tvar cropped := ImageExtended.new()\n\t\tcropped.copy_from_custom(tmp_cropped, cel_image.is_indexed)\n\t\tif cel is CelTileMap:\n\t\t\tvar tilemap_cel := cel as CelTileMap\n\t\t\tvar offset := rect.position\n\t\t\ttilemap_cel.serialize_undo_data_source_image(cropped, redo_data, undo_data, -offset)\n\t\tcropped.add_data_to_dictionary(redo_data, cel_image)\n\t\tcel_image.add_data_to_dictionary(undo_data)\n\n\tgeneral_do_and_undo_scale(rect.size.x, rect.size.y, redo_data, undo_data)\n\n\n## Automatically makes the project smaller by looping through all of the cels and\n## trimming out the pixels that are transparent in all cels.\nfunc crop_to_content() -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tvar used_rect := Rect2i()\n\tfor cel in Global.current_project.get_all_pixel_cels():\n\t\tif not cel is PixelCel:\n\t\t\tcontinue\n\t\tvar cel_used_rect := cel.get_image().get_used_rect()\n\t\tif cel_used_rect == Rect2i(0, 0, 0, 0):  # If the cel has no content\n\t\t\tcontinue\n\n\t\tif used_rect == Rect2i(0, 0, 0, 0):  # If we still haven't found the first cel with content\n\t\t\tused_rect = cel_used_rect\n\t\telse:\n\t\t\tused_rect = used_rect.merge(cel_used_rect)\n\n\t# If no layer has any content, just return\n\tif used_rect == Rect2i(0, 0, 0, 0):\n\t\treturn\n\n\tvar width := used_rect.size.x\n\tvar height := used_rect.size.y\n\tvar redo_data := {}\n\tvar undo_data := {}\n\t# Loop through all the cels to trim them\n\tfor cel in Global.current_project.get_all_pixel_cels():\n\t\tvar cel_image := cel.get_image()\n\t\tvar tmp_cropped := cel_image.get_region(used_rect)\n\t\tvar cropped := ImageExtended.new()\n\t\tcropped.copy_from_custom(tmp_cropped, cel_image.is_indexed)\n\t\tif cel is CelTileMap:\n\t\t\tvar tilemap_cel := cel as CelTileMap\n\t\t\tvar offset := used_rect.position\n\t\t\ttilemap_cel.serialize_undo_data_source_image(cropped, redo_data, undo_data, -offset)\n\t\tcropped.add_data_to_dictionary(redo_data, cel_image)\n\t\tcel_image.add_data_to_dictionary(undo_data)\n\n\tgeneral_do_and_undo_scale(width, height, redo_data, undo_data)\n\n\nfunc resize_canvas(width: int, height: int, offset_x: int, offset_y: int) -> void:\n\tvar redo_data := {}\n\tvar undo_data := {}\n\tfor cel in Global.current_project.get_all_pixel_cels():\n\t\tvar cel_image := cel.get_image()\n\t\tvar resized := ImageExtended.create_custom(\n\t\t\twidth, height, cel_image.has_mipmaps(), cel_image.get_format(), cel_image.is_indexed\n\t\t)\n\t\tresized.blend_rect(\n\t\t\tcel_image, Rect2i(Vector2i.ZERO, cel_image.get_size()), Vector2i(offset_x, offset_y)\n\t\t)\n\t\tresized.convert_rgb_to_indexed()\n\t\tif cel is CelTileMap:\n\t\t\tvar tilemap_cel := cel as CelTileMap\n\t\t\tvar offset := Vector2i(offset_x, offset_y)\n\t\t\ttilemap_cel.serialize_undo_data_source_image(resized, redo_data, undo_data, offset)\n\t\tresized.add_data_to_dictionary(redo_data, cel_image)\n\t\tcel_image.add_data_to_dictionary(undo_data)\n\n\tgeneral_do_and_undo_scale(width, height, redo_data, undo_data)\n\n\nfunc general_do_and_undo_scale(\n\twidth: int, height: int, redo_data: Dictionary, undo_data: Dictionary\n) -> void:\n\tvar project := Global.current_project\n\tvar size := Vector2i(width, height)\n\tvar x_ratio := float(project.size.x) / width\n\tvar y_ratio := float(project.size.y) / height\n\n\tvar selection_map_copy := SelectionMap.new()\n\tselection_map_copy.copy_from(project.selection_map)\n\tselection_map_copy.crop(size.x, size.y)\n\tredo_data[project.selection_map] = selection_map_copy.data\n\tundo_data[project.selection_map] = project.selection_map.data\n\n\tvar new_x_symmetry_point := project.x_symmetry_point / x_ratio\n\tvar new_y_symmetry_point := project.y_symmetry_point / y_ratio\n\tvar new_x_symmetry_axis_points := project.x_symmetry_axis.points\n\tvar new_y_symmetry_axis_points := project.y_symmetry_axis.points\n\tnew_x_symmetry_axis_points[0].y /= y_ratio\n\tnew_x_symmetry_axis_points[1].y /= y_ratio\n\tnew_y_symmetry_axis_points[0].x /= x_ratio\n\tnew_y_symmetry_axis_points[1].x /= x_ratio\n\n\tproject.undo_redo.create_action(\"Scale\")\n\tproject.undo_redo.add_do_property(project, \"size\", size)\n\tproject.undo_redo.add_do_property(project, \"x_symmetry_point\", new_x_symmetry_point)\n\tproject.undo_redo.add_do_property(project, \"y_symmetry_point\", new_y_symmetry_point)\n\tproject.undo_redo.add_do_property(project.x_symmetry_axis, \"points\", new_x_symmetry_axis_points)\n\tproject.undo_redo.add_do_property(project.y_symmetry_axis, \"points\", new_y_symmetry_axis_points)\n\tproject.deserialize_cel_undo_data(redo_data, undo_data)\n\tproject.undo_redo.add_undo_property(project, \"size\", project.size)\n\tproject.undo_redo.add_undo_property(project, \"x_symmetry_point\", project.x_symmetry_point)\n\tproject.undo_redo.add_undo_property(project, \"y_symmetry_point\", project.y_symmetry_point)\n\tproject.undo_redo.add_undo_property(\n\t\tproject.x_symmetry_axis, \"points\", project.x_symmetry_axis.points\n\t)\n\tproject.undo_redo.add_undo_property(\n\t\tproject.y_symmetry_axis, \"points\", project.y_symmetry_axis.points\n\t)\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.commit_action()\n"
  },
  {
    "path": "src/Autoload/DrawingAlgos.gd.uid",
    "content": "uid://xx26ujdy2ow6\n"
  },
  {
    "path": "src/Autoload/Export.gd",
    "content": "extends Node\n\nenum ExportTab { IMAGE, SPRITESHEET }\nenum Orientation { COLUMNS, ROWS, TAGS_BY_ROW, TAGS_BY_COLUMN }\nenum AnimationDirection { FORWARD, BACKWARDS, PING_PONG }\n## See file_format_string, file_format_description, and ExportDialog.gd\nenum FileFormat { PNG, WEBP, JPEG, EXR, GIF, APNG, MP4, AVI, OGV, MKV, WEBM }\nenum { VISIBLE_LAYERS, SELECTED_LAYERS }\nenum ExportFrames { ALL_FRAMES, SELECTED_FRAMES }\n\n## This path is used to temporarily store png files that FFMPEG uses to convert them to video\nvar temp_path := OS.get_temp_dir().path_join(\"pixelorama_tmp\")\n\n## List of animated formats\nvar animated_formats := [\n\tFileFormat.GIF,\n\tFileFormat.APNG,\n\tFileFormat.MP4,\n\tFileFormat.AVI,\n\tFileFormat.OGV,\n\tFileFormat.MKV,\n\tFileFormat.WEBM\n]\n\nvar ffmpeg_formats := [\n\tFileFormat.MP4, FileFormat.AVI, FileFormat.OGV, FileFormat.MKV, FileFormat.WEBM\n]\n## A dictionary of [enum FileFormat] enums and their file extensions and short descriptions.\nvar file_format_dictionary: Dictionary[FileFormat, Array] = {\n\tFileFormat.PNG: [\".png\", \"PNG Image\"],\n\tFileFormat.WEBP: [\".webp\", \"WebP Image\"],\n\tFileFormat.JPEG: [\".jpg\", \"JPG Image\"],\n\tFileFormat.EXR: [\".exr\", \"EXR Image\"],\n\tFileFormat.GIF: [\".gif\", \"GIF Image\"],\n\tFileFormat.APNG: [\".apng\", \"APNG Image\"],\n\tFileFormat.MP4: [\".mp4\", \"MPEG-4 Video\"],\n\tFileFormat.AVI: [\".avi\", \"AVI Video\"],\n\tFileFormat.OGV: [\".ogv\", \"OGV Video\"],\n\tFileFormat.MKV: [\".mkv\", \"Matroska Video\"],\n\tFileFormat.WEBM: [\".webm\", \"WebM Video\"],\n}\n\n## A dictionary of custom exporter generators (received from extensions)\nvar custom_file_formats := {}\nvar custom_exporter_generators := {}\n\nvar current_tab := ExportTab.IMAGE\n## All frames and their layers processed/blended into images\nvar processed_images: Array[ProcessedImage] = []\n## A dictionary that contains all of the blended frames.\n## Changes when [method cache_blended_frames] is called.\nvar blended_frames: Dictionary[Frame, Image] = {}\nvar export_json := false\nvar split_layers := false\nvar sheet_layers_as_separate_files := false\nvar trim_images := false\nvar erase_unselected_area := false\nvar overwrite_asked := false\n\n# Spritesheet options\nvar orientation := Orientation.COLUMNS\nvar lines_count := 1  ## How many rows/columns before new line is added\n\n# General options\nvar frame_current_tag := 0  ## Export only current frame tag\nvar export_layers := 0\nvar number_of_frames := 1\nvar direction := AnimationDirection.FORWARD\nvar resize := 100\nvar save_quality := 0.75  ## Used when saving jpg and webp images. Goes from 0 to 1.\nvar interpolation := Image.INTERPOLATE_NEAREST\nvar include_tag_in_filename := false\nvar new_dir_for_each_frame_tag := false  ## We don't need to store this after export\nvar number_of_digits := 4\nvar separator_character := \"_\"\nvar stop_export := false  ## Export coroutine signal\n\nvar file_exists_alert := \"The following files already exist. Do you wish to overwrite them?\\n%s\"\n\n# Export progress variables\nvar export_progress_fraction := 0.0\nvar export_progress := 0.0\n@onready var gif_export_thread := Thread.new()\n\n\nclass ProcessedImage:\n\tvar image: Image\n\tvar frame_index: int\n\tvar duration: float\n\n\tfunc _init(_image: Image, _frame_index: int, _duration := 1.0) -> void:\n\t\timage = _image\n\t\tframe_index = _frame_index\n\t\tduration = _duration\n\n\nfunc _exit_tree() -> void:\n\tif gif_export_thread.is_started():\n\t\tgif_export_thread.wait_to_finish()\n\n\nfunc _multithreading_enabled() -> bool:\n\treturn ProjectSettings.get_setting(\"rendering/driver/threads/thread_model\") == 2\n\n\nfunc add_custom_file_format(\n\tformat_name: String, extension: String, exporter_generator: Object, tab: int, is_animated: bool\n) -> int:\n\t# Obtain a unique id\n\tvar id := Export.FileFormat.size()  # Start with the least possible id for custom exporter\n\tfor i in Export.custom_file_formats.size():\n\t\t# Increment ids by 1 till we find one that isn't in use\n\t\tvar format_id = id + i + 1\n\t\tif !Export.custom_file_formats.values().has(i):\n\t\t\tid = format_id\n\t# Add to custom_file_formats\n\tcustom_file_formats.merge({format_name: id})\n\tcustom_exporter_generators.merge({id: [exporter_generator, extension]})\n\tif is_animated:\n\t\tExport.animated_formats.append(id)\n\t# Add to export dialog\n\tmatch tab:\n\t\tExportTab.IMAGE:\n\t\t\tGlobal.export_dialog.image_exports.append(id)\n\t\tExportTab.SPRITESHEET:\n\t\t\tGlobal.export_dialog.spritesheet_exports.append(id)\n\t\t_:  # Both\n\t\t\tGlobal.export_dialog.image_exports.append(id)\n\t\t\tGlobal.export_dialog.spritesheet_exports.append(id)\n\treturn id\n\n\nfunc remove_custom_file_format(id: int) -> void:\n\tfor key in custom_file_formats.keys():\n\t\tif custom_file_formats[key] == id:\n\t\t\tcustom_file_formats.erase(key)\n\t\t\t# remove exporter generator\n\t\t\tExport.custom_exporter_generators.erase(id)\n\t\t\t#  remove from animated (if it is present there)\n\t\t\tExport.animated_formats.erase(id)\n\t\t\t#  remove from export dialog\n\t\t\tGlobal.export_dialog.image_exports.erase(id)\n\t\t\tGlobal.export_dialog.spritesheet_exports.erase(id)\n\t\t\treturn\n\n\nfunc external_export(project := Global.current_project) -> void:\n\tcache_blended_frames(project)\n\tprocess_data(project)\n\texport_processed_images(true, Global.export_dialog, project)\n\n\nfunc process_data(project := Global.current_project) -> void:\n\tvar frames := _calculate_frames(project)\n\tif frames.size() > blended_frames.size():\n\t\tcache_blended_frames(project)\n\tmatch current_tab:\n\t\tExportTab.IMAGE:\n\t\t\tprocess_animation(project)\n\t\tExportTab.SPRITESHEET:\n\t\t\tprocess_spritesheet(project)\n\n\nfunc cache_blended_frames(project := Global.current_project) -> void:\n\tblended_frames.clear()\n\tvar frames := _calculate_frames(project)\n\tfor frame in frames:\n\t\tvar image := project.new_empty_image()\n\t\t_blend_layers(image, frame)\n\t\tblended_frames[frame] = image\n\n\nfunc process_spritesheet(project := Global.current_project) -> void:\n\tprocessed_images.clear()\n\t# Range of frames determined by tags\n\tvar frames := _calculate_frames(project)\n\t# Then store the size of frames for other functions\n\tnumber_of_frames = frames.size()\n\t# Used when the orientation is based off the animation tags\n\tvar tag_origins := {0: 0}\n\tvar frames_without_tag := number_of_frames\n\tvar spritesheet_columns := 1\n\tvar spritesheet_rows := 1\n\t# If rows mode selected calculate columns count and vice versa\n\tif orientation == Orientation.COLUMNS:\n\t\tspritesheet_columns = frames_divided_by_spritesheet_lines()\n\t\tspritesheet_rows = lines_count\n\telif orientation == Orientation.ROWS:\n\t\tspritesheet_columns = lines_count\n\t\tspritesheet_rows = frames_divided_by_spritesheet_lines()\n\telse:\n\t\tspritesheet_rows = project.animation_tags.size() + 1\n\t\tif spritesheet_rows == 1:\n\t\t\tspritesheet_columns = number_of_frames\n\t\telse:\n\t\t\tvar max_tag_size := 1\n\t\t\tfor tag in project.animation_tags:\n\t\t\t\ttag_origins[tag] = 0\n\t\t\t\tframes_without_tag -= tag.get_size()\n\t\t\t\tif tag.get_size() > max_tag_size:\n\t\t\t\t\tmax_tag_size = tag.get_size()\n\t\t\tif frames_without_tag > max_tag_size:\n\t\t\t\tmax_tag_size = frames_without_tag\n\t\t\tspritesheet_columns = max_tag_size\n\t\tif frames_without_tag == 0:\n\t\t\t# If all frames have a tag, remove the first row\n\t\t\tspritesheet_rows -= 1\n\t\tif orientation == Orientation.TAGS_BY_COLUMN:\n\t\t\t# Switch rows and columns\n\t\t\tvar temp := spritesheet_rows\n\t\t\tspritesheet_rows = spritesheet_columns\n\t\t\tspritesheet_columns = temp\n\tvar width := project.size.x * spritesheet_columns\n\tvar height := project.size.y * spritesheet_rows\n\tvar splitter_array = project.layers if split_layers else []\n\tvar sprite_sheets: Array[Image]  # Array of all apritesheets\n\t# This is an imitation of a do-while loop. The loop ends early if split_layers is empty\n\tfor split_l in splitter_array.size() + 1:\n\t\tvar origin := Vector2i.ZERO\n\t\tvar layer_tag_origins = tag_origins.duplicate()\n\t\tvar hh := 0\n\t\tvar vv := 0\n\t\tvar sheet_image := Image.create_empty(width, height, false, project.get_image_format())\n\t\tvar sheet_is_valid := false\n\t\tfor frame in frames:\n\t\t\tif orientation == Orientation.ROWS:\n\t\t\t\tif vv < spritesheet_columns:\n\t\t\t\t\torigin.x = project.size.x * vv\n\t\t\t\t\tvv += 1\n\t\t\t\telse:\n\t\t\t\t\thh += 1\n\t\t\t\t\torigin.x = 0\n\t\t\t\t\tvv = 1\n\t\t\t\t\torigin.y = project.size.y * hh\n\t\t\telif orientation == Orientation.COLUMNS:\n\t\t\t\tif hh < spritesheet_rows:\n\t\t\t\t\torigin.y = project.size.y * hh\n\t\t\t\t\thh += 1\n\t\t\t\telse:\n\t\t\t\t\tvv += 1\n\t\t\t\t\torigin.y = 0\n\t\t\t\t\thh = 1\n\t\t\t\t\torigin.x = project.size.x * vv\n\t\t\telif orientation == Orientation.TAGS_BY_ROW:\n\t\t\t\tvar frame_index := project.frames.find(frame)\n\t\t\t\tvar frame_has_tag := false\n\t\t\t\tfor i in project.animation_tags.size():\n\t\t\t\t\tvar tag := project.animation_tags[i]\n\t\t\t\t\tif tag.has_frame(frame_index):\n\t\t\t\t\t\torigin.x = project.size.x * layer_tag_origins[tag]\n\t\t\t\t\t\tif frames_without_tag == 0:\n\t\t\t\t\t\t\t# If all frames have a tag, remove the first row\n\t\t\t\t\t\t\torigin.y = project.size.y * i\n\t\t\t\t\t\telse:\n\t\t\t\t\t\t\torigin.y = project.size.y * (i + 1)\n\t\t\t\t\t\tlayer_tag_origins[tag] += 1\n\t\t\t\t\t\tframe_has_tag = true\n\t\t\t\t\t\tbreak\n\t\t\t\tif not frame_has_tag:\n\t\t\t\t\torigin.x = project.size.x * layer_tag_origins[0]\n\t\t\t\t\torigin.y = 0\n\t\t\t\t\tlayer_tag_origins[0] += 1\n\t\t\telif orientation == Orientation.TAGS_BY_COLUMN:\n\t\t\t\tvar frame_index := project.frames.find(frame)\n\t\t\t\tvar frame_has_tag := false\n\t\t\t\tfor i in project.animation_tags.size():\n\t\t\t\t\tvar tag := project.animation_tags[i]\n\t\t\t\t\tif tag.has_frame(frame_index):\n\t\t\t\t\t\torigin.y = project.size.y * layer_tag_origins[tag]\n\t\t\t\t\t\tif frames_without_tag == 0:\n\t\t\t\t\t\t\t# If all frames have a tag, remove the first row\n\t\t\t\t\t\t\torigin.x = project.size.x * i\n\t\t\t\t\t\telse:\n\t\t\t\t\t\t\torigin.x = project.size.x * (i + 1)\n\t\t\t\t\t\tlayer_tag_origins[tag] += 1\n\t\t\t\t\t\tframe_has_tag = true\n\t\t\t\t\t\tbreak\n\t\t\t\tif not frame_has_tag:\n\t\t\t\t\torigin.y = project.size.y * layer_tag_origins[0]\n\t\t\t\t\torigin.x = 0\n\t\t\t\t\tlayer_tag_origins[0] += 1\n\t\t\tif not split_layers:\n\t\t\t\tsheet_image.blend_rect(\n\t\t\t\t\tblended_frames[frame], Rect2i(Vector2i.ZERO, project.size), origin\n\t\t\t\t)\n\t\t\t\tsheet_is_valid = true\n\t\t\telif split_l < splitter_array.size():\n\t\t\t\tvar layer: BaseLayer = splitter_array[split_l]\n\t\t\t\tsheet_image.blend_rect(\n\t\t\t\t\tlayer.display_effects(frame.cels[layer.index]),\n\t\t\t\t\tRect2i(Vector2i.ZERO, project.size),\n\t\t\t\t\torigin\n\t\t\t\t)\n\t\t\t\tsheet_is_valid = true\n\t\tif sheet_is_valid:\n\t\t\tsprite_sheets.append(sheet_image)\n\t\tif splitter_array.is_empty():\n\t\t\tbreak\n\tif not sheet_layers_as_separate_files and sprite_sheets.size() > 1:\n\t\tvar big_image := Image.create(\n\t\t\twidth, height * sprite_sheets.size(), false, project.get_image_format()\n\t\t)\n\t\tfor i in sprite_sheets.size():\n\t\t\tbig_image.blend_rect(\n\t\t\t\tsprite_sheets[i],\n\t\t\t\tRect2i(Vector2i.ZERO, Vector2i(width, height)),\n\t\t\t\tVector2i(0, height * (sprite_sheets.size() - i - 1))\n\t\t\t)\n\t\t# Remove old sheets and add the stacked image\n\t\tsprite_sheets = [big_image]\n\tfor sheet: Image in sprite_sheets:\n\t\tprocessed_images.append(ProcessedImage.new(sheet, 0))\n\n\nfunc process_animation(project := Global.current_project) -> void:\n\tprocessed_images.clear()\n\tvar frames := _calculate_frames(project)\n\tfor frame in frames:\n\t\tif split_layers:\n\t\t\tfor i in frame.cels.size():\n\t\t\t\tvar cel := frame.cels[i]\n\t\t\t\tvar layer := project.layers[i]\n\t\t\t\tvar image := Image.new()\n\t\t\t\timage.copy_from(layer.display_effects(cel))\n\t\t\t\tvar duration := frame.get_duration_in_seconds(project.fps)\n\t\t\t\tprocessed_images.append(\n\t\t\t\t\tProcessedImage.new(image, project.frames.find(frame), duration)\n\t\t\t\t)\n\t\telse:\n\t\t\tvar image := project.new_empty_image()\n\t\t\timage.copy_from(blended_frames[frame])\n\t\t\tif erase_unselected_area and project.has_selection:\n\t\t\t\tvar crop := project.new_empty_image()\n\t\t\t\tvar selection_image := project.selection_map.return_cropped_copy(\n\t\t\t\t\tproject, project.size\n\t\t\t\t)\n\t\t\t\tcrop.blit_rect_mask(\n\t\t\t\t\timage, selection_image, Rect2i(Vector2i.ZERO, image.get_size()), Vector2i.ZERO\n\t\t\t\t)\n\t\t\t\timage.copy_from(crop)\n\t\t\tif trim_images:\n\t\t\t\timage = image.get_region(image.get_used_rect())\n\t\t\tvar duration := frame.get_duration_in_seconds(project.fps)\n\t\t\tprocessed_images.append(ProcessedImage.new(image, project.frames.find(frame), duration))\n\n\nfunc _calculate_frames(project := Global.current_project) -> Array[Frame]:\n\tvar tag_index := frame_current_tag - ExportFrames.size()\n\tif tag_index >= project.animation_tags.size():\n\t\tframe_current_tag = ExportFrames.ALL_FRAMES\n\tvar frames: Array[Frame] = []\n\tif frame_current_tag >= ExportFrames.size():  # Export a specific tag\n\t\tvar frame_start: int = project.animation_tags[tag_index].from\n\t\tvar frame_end: int = project.animation_tags[tag_index].to\n\t\tframes = project.frames.slice(frame_start - 1, frame_end, 1, true)\n\telif frame_current_tag == ExportFrames.SELECTED_FRAMES:\n\t\tfor cel in project.selected_cels:\n\t\t\tvar frame := project.frames[cel[0]]\n\t\t\tif not frames.has(frame):\n\t\t\t\tframes.append(frame)\n\telse:  # All frames\n\t\tframes = project.frames.duplicate()\n\n\tif direction == AnimationDirection.BACKWARDS:\n\t\tframes.reverse()\n\telif direction == AnimationDirection.PING_PONG:\n\t\tvar inverted_frames := frames.duplicate()\n\t\tinverted_frames.reverse()\n\t\tinverted_frames.remove_at(0)\n\t\tif inverted_frames.size() > 0:\n\t\t\tinverted_frames.remove_at(inverted_frames.size() - 1)\n\t\tframes.append_array(inverted_frames)\n\treturn frames\n\n\nfunc export_processed_images(\n\tignore_overwrites: bool, export_dialog: ConfirmationDialog, project := Global.current_project\n) -> bool:\n\t# Stop export if directory path or file name are not valid\n\tvar dir_exists := DirAccess.dir_exists_absolute(project.export_directory_path)\n\tvar is_valid_filename := project.file_name.is_valid_filename()\n\tif project.export_directory_path.begins_with(\"content://\"):\n\t\tdir_exists = true\n\t\tis_valid_filename = true\n\tif not dir_exists:\n\t\tif is_valid_filename:  # Directory path not valid, file name is valid\n\t\t\texport_dialog.open_path_validation_alert_popup(0)\n\t\telse:  # Both directory path and file name are invalid\n\t\t\texport_dialog.open_path_validation_alert_popup()\n\t\treturn false\n\tif not is_valid_filename:  # Directory path is valid, file name is invalid\n\t\texport_dialog.open_path_validation_alert_popup(1)\n\t\treturn false\n\n\tvar multiple_files := false\n\tif not is_single_file_format(project):\n\t\tmultiple_files = true if processed_images.size() > 1 else false\n\tif OS.get_name() == \"Android\":\n\t\tmultiple_files = false\n\t# Check export paths\n\tvar export_paths: PackedStringArray = []\n\tvar paths_of_existing_files := \"\"\n\tfor i in processed_images.size():\n\t\tstop_export = false\n\t\tvar frame_index := i + 1\n\t\tvar layer_index := -1\n\t\tvar actual_frame_index := processed_images[i].frame_index\n\t\tif split_layers:\n\t\t\t@warning_ignore(\"integer_division\")\n\t\t\tframe_index = i / project.layers.size() + 1\n\t\t\tlayer_index = posmod(i, project.layers.size())\n\t\tvar export_path := _create_export_path(\n\t\t\tmultiple_files, project, frame_index, layer_index, actual_frame_index\n\t\t)\n\t\t# If the user wants to create a new directory for each animation tag then check\n\t\t# if directories exist, and create them if not\n\t\tif (\n\t\t\tmultiple_files\n\t\t\tand new_dir_for_each_frame_tag\n\t\t\tand not current_tab == ExportTab.SPRITESHEET\n\t\t):\n\t\t\tvar frame_tag_directory := DirAccess.open(export_path.get_base_dir())\n\t\t\tif not DirAccess.dir_exists_absolute(export_path.get_base_dir()):\n\t\t\t\tframe_tag_directory = DirAccess.open(project.export_directory_path)\n\t\t\t\tframe_tag_directory.make_dir(export_path.get_base_dir().get_file())\n\n\t\tif not ignore_overwrites:  # Check if the files already exist\n\t\t\tif FileAccess.file_exists(export_path):\n\t\t\t\tif not paths_of_existing_files.is_empty():\n\t\t\t\t\tpaths_of_existing_files += \"\\n\"\n\t\t\t\tpaths_of_existing_files += export_path\n\t\texport_paths.append(export_path)\n\t\t# Only get one export path if single file animated image is exported\n\t\tif is_single_file_format(project) or OS.get_name() == \"Android\":\n\t\t\tbreak\n\n\tif not paths_of_existing_files.is_empty() and not overwrite_asked:  # If files already exist\n\t\t# Ask user if they want to overwrite the files\n\t\texport_dialog.open_file_exists_alert_popup(tr(file_exists_alert) % paths_of_existing_files)\n\t\t# Stops the function until the user decides if they want to overwrite\n\t\tawait export_dialog.resume_export_function\n\t\tif stop_export:  # User decided to stop export\n\t\t\treturn false\n\n\t_scale_processed_images()\n\tif export_json:\n\t\tvar json := JSON.stringify(project.serialize())\n\t\tvar json_file_name := project.name + \".json\"\n\t\tif OS.has_feature(\"web\"):\n\t\t\tvar json_buffer := json.to_utf8_buffer()\n\t\t\tJavaScriptBridge.download_buffer(json_buffer, json_file_name, \"application/json\")\n\t\telse:\n\t\t\tvar json_path := project.export_directory_path.path_join(json_file_name)\n\t\t\tvar json_file := FileAccess.open(json_path, FileAccess.WRITE)\n\t\t\tjson_file.store_string(json)\n\t# override if a custom export is chosen\n\tif project.file_format in custom_exporter_generators.keys():\n\t\t# Divert the path to the custom exporter instead\n\t\tvar custom_exporter: Object = custom_exporter_generators[project.file_format][0]\n\t\tif custom_exporter.has_method(\"override_export\"):\n\t\t\tvar result := true\n\t\t\tvar details := {\n\t\t\t\t\"processed_images\": processed_images,\n\t\t\t\t\"export_dialog\": export_dialog,\n\t\t\t\t\"export_paths\": export_paths,\n\t\t\t\t\"project\": project\n\t\t\t}\n\t\t\tif _multithreading_enabled() and is_single_file_format(project):\n\t\t\t\tif gif_export_thread.is_started():\n\t\t\t\t\tgif_export_thread.wait_to_finish()\n\t\t\t\tvar error = gif_export_thread.start(\n\t\t\t\t\tCallable(custom_exporter, \"override_export\").bind(details)\n\t\t\t\t)\n\t\t\t\tif error == OK:\n\t\t\t\t\tresult = gif_export_thread.wait_to_finish()\n\t\t\telse:\n\t\t\t\tresult = custom_exporter.call(\"override_export\", details)\n\t\t\treturn result\n\n\tif is_single_file_format(project):\n\t\tif is_using_ffmpeg(project.file_format):\n\t\t\tvar video_exported := export_video(export_paths, project)\n\t\t\tif not video_exported:\n\t\t\t\tGlobal.popup_error(\n\t\t\t\t\ttr(\"Video failed to export. Ensure that FFMPEG is installed correctly.\")\n\t\t\t\t)\n\t\t\t\treturn false\n\t\telse:\n\t\t\tvar exporter: AImgIOBaseExporter\n\t\t\tif project.file_format == FileFormat.APNG:\n\t\t\t\texporter = AImgIOAPNGExporter.new()\n\t\t\telse:\n\t\t\t\texporter = GIFAnimationExporter.new()\n\t\t\tvar details := {\n\t\t\t\t\"exporter\": exporter,\n\t\t\t\t\"export_dialog\": export_dialog,\n\t\t\t\t\"export_paths\": export_paths,\n\t\t\t\t\"project\": project\n\t\t\t}\n\t\t\tif not _multithreading_enabled():\n\t\t\t\texport_animated(details)\n\t\t\telse:\n\t\t\t\tif gif_export_thread.is_started():\n\t\t\t\t\tgif_export_thread.wait_to_finish()\n\t\t\t\tgif_export_thread.start(export_animated.bind(details))\n\telse:\n\t\tfor i in range(processed_images.size()):\n\t\t\tif OS.has_feature(\"web\"):\n\t\t\t\tif project.file_format == FileFormat.WEBP:\n\t\t\t\t\tJavaScriptBridge.download_buffer(\n\t\t\t\t\t\tprocessed_images[i].image.save_webp_to_buffer(),\n\t\t\t\t\t\texport_paths[i].get_file(),\n\t\t\t\t\t\t\"image/webp\"\n\t\t\t\t\t)\n\t\t\t\telif project.file_format == FileFormat.JPEG:\n\t\t\t\t\tJavaScriptBridge.download_buffer(\n\t\t\t\t\t\tprocessed_images[i].image.save_jpg_to_buffer(save_quality),\n\t\t\t\t\t\texport_paths[i].get_file(),\n\t\t\t\t\t\t\"image/jpeg\"\n\t\t\t\t\t)\n\t\t\t\telse:\n\t\t\t\t\tJavaScriptBridge.download_buffer(\n\t\t\t\t\t\tprocessed_images[i].image.save_png_to_buffer(),\n\t\t\t\t\t\texport_paths[i].get_file(),\n\t\t\t\t\t\t\"image/png\"\n\t\t\t\t\t)\n\n\t\t\telse:\n\t\t\t\tvar err: Error\n\t\t\t\tif project.file_format == FileFormat.PNG:\n\t\t\t\t\terr = processed_images[i].image.save_png(export_paths[i])\n\t\t\t\telif project.file_format == FileFormat.WEBP:\n\t\t\t\t\terr = processed_images[i].image.save_webp(export_paths[i])\n\t\t\t\telif project.file_format == FileFormat.JPEG:\n\t\t\t\t\terr = processed_images[i].image.save_jpg(export_paths[i], save_quality)\n\t\t\t\telif project.file_format == FileFormat.EXR:\n\t\t\t\t\terr = processed_images[i].image.save_exr(export_paths[i])\n\t\t\t\tif err != OK:\n\t\t\t\t\tGlobal.popup_error(\n\t\t\t\t\t\ttr(\"File failed to save. Error code %s (%s)\") % [err, error_string(err)]\n\t\t\t\t\t)\n\t\t\t\t\treturn false\n\t\t\tif OS.get_name() == \"Android\":\n\t\t\t\tbreak\n\n\tGlobal.notification_label(\"File(s) exported\")\n\t# Store settings for quick export and when the dialog is opened again\n\tvar file_name_with_ext := project.file_name + file_format_string(project.file_format)\n\tproject.was_exported = true\n\tif project.export_overwrite:\n\t\tGlobal.top_menu_container.file_menu.set_item_text(\n\t\t\tGlobal.FileMenu.EXPORT, tr(\"Overwrite\") + \" %s\" % file_name_with_ext\n\t\t)\n\telse:\n\t\tGlobal.top_menu_container.file_menu.set_item_text(\n\t\t\tGlobal.FileMenu.EXPORT, tr(\"Export\") + \" %s\" % file_name_with_ext\n\t\t)\n\tproject.export_directory_path = export_paths[0].get_base_dir()\n\tGlobal.config_cache.set_value(\"data\", \"current_dir\", project.export_directory_path)\n\treturn true\n\n\n## Uses FFMPEG to export a video\nfunc export_video(export_paths: PackedStringArray, project: Project) -> bool:\n\tDirAccess.make_dir_absolute(temp_path)\n\tvar video_duration := 0\n\tvar input_file_path := temp_path.path_join(\"input.txt\")\n\tvar input_file := FileAccess.open(input_file_path, FileAccess.WRITE)\n\tfor i in range(processed_images.size()):\n\t\tvar temp_file_name := str(i + 1).pad_zeros(number_of_digits) + \".png\"\n\t\tvar temp_file_path := temp_path.path_join(temp_file_name)\n\t\tprocessed_images[i].image.save_png(temp_file_path)\n\t\tinput_file.store_line(\"file '\" + temp_file_name + \"'\")\n\t\tinput_file.store_line(\"duration %s\" % processed_images[i].duration)\n\t\tif i == processed_images.size() - 1:\n\t\t\t# The last frame needs to be stored again after the duration line\n\t\t\t# in order for it not to be skipped.\n\t\t\tinput_file.store_line(\"file '\" + temp_file_name + \"'\")\n\t\tvideo_duration += processed_images[i].duration\n\tinput_file.close()\n\n\tvar ffmpeg_execute: PackedStringArray = [\n\t\t\"-y\",\n\t\t\"-f\",\n\t\t\"concat\",\n\t\t\"-safe\",\n\t\t\"0\",\n\t\t\"-i\",\n\t\tinput_file_path,\n\t\t\"-fps_mode\",\n\t\t\"passthrough\",\n\t\texport_paths[0]\n\t]\n\tvar success := OS.execute(Global.ffmpeg_path, ffmpeg_execute, [], true)\n\tif success < 0 or success > 1:\n\t\tvar fail_text := \"\"\"Video failed to export. Make sure you have FFMPEG installed\n\t\t\tand have set the correct path in the preferences.\"\"\"\n\t\tGlobal.popup_error(tr(fail_text))\n\t\t_clear_temp_folder()\n\t\treturn false\n\t# Find audio layers\n\tvar ffmpeg_combine_audio: PackedStringArray = [\"-y\"]\n\tvar audio_layer_count := 0\n\tvar max_audio_duration := 0\n\tvar adelay_string := \"\"\n\tfor layer in project.get_all_audio_layers():\n\t\tif layer.audio is AudioStreamMP3 or layer.audio is AudioStreamWAV:\n\t\t\tvar temp_file_name := str(audio_layer_count + 1).pad_zeros(number_of_digits)\n\t\t\tif layer.audio is AudioStreamMP3:\n\t\t\t\ttemp_file_name += \".mp3\"\n\t\t\telif layer.audio is AudioStreamWAV:\n\t\t\t\ttemp_file_name += \".wav\"\n\t\t\tvar temp_file_path := temp_path.path_join(temp_file_name)\n\t\t\tif layer.audio is AudioStreamMP3:\n\t\t\t\tvar temp_audio_file := FileAccess.open(temp_file_path, FileAccess.WRITE)\n\t\t\t\ttemp_audio_file.store_buffer(layer.audio.data)\n\t\t\telif layer.audio is AudioStreamWAV:\n\t\t\t\tlayer.audio.save_to_wav(temp_file_path)\n\t\t\tffmpeg_combine_audio.append(\"-i\")\n\t\t\tffmpeg_combine_audio.append(temp_file_path)\n\t\t\tvar delay := floori(layer.playback_position * 1000)\n\t\t\t# [n]adelay=delay_in_ms:all=1[na]\n\t\t\tadelay_string += (\n\t\t\t\t\"[%s]adelay=%s:all=1[%sa];\" % [audio_layer_count, delay, audio_layer_count]\n\t\t\t)\n\t\t\taudio_layer_count += 1\n\t\t\tif layer.get_audio_length() >= max_audio_duration:\n\t\t\t\tmax_audio_duration = layer.get_audio_length()\n\tif audio_layer_count > 0:\n\t\t# If we have audio layers, merge them all into one file.\n\t\tfor i in audio_layer_count:\n\t\t\tadelay_string += \"[%sa]\" % i\n\t\tvar amix_inputs_string := \"amix=inputs=%s[a]\" % audio_layer_count\n\t\tvar final_filter_string := adelay_string + amix_inputs_string\n\t\tvar audio_file_path := temp_path.path_join(\"audio.mp3\")\n\t\tffmpeg_combine_audio.append_array(\n\t\t\tPackedStringArray(\n\t\t\t\t[\"-filter_complex\", final_filter_string, \"-map\", '\"[a]\"', audio_file_path]\n\t\t\t)\n\t\t)\n\t\t# ffmpeg -i input1 -i input2 ... -i inputn -filter_complex amix=inputs=n output_path\n\t\tvar combined_audio_success := OS.execute(Global.ffmpeg_path, ffmpeg_combine_audio, [], true)\n\t\tif combined_audio_success == 0 or combined_audio_success == 1:\n\t\t\tvar copied_video := temp_path.path_join(\"video.\" + export_paths[0].get_extension())\n\t\t\t# Then mix the audio file with the video.\n\t\t\tDirAccess.copy_absolute(export_paths[0], copied_video)\n\t\t\t# ffmpeg -y -i video_file -i input_audio -c:v copy -map 0:v:0 -map 1:a:0 video_file\n\t\t\tvar ffmpeg_final_video: PackedStringArray = [\n\t\t\t\t\"-y\", \"-i\", copied_video, \"-i\", audio_file_path\n\t\t\t]\n\t\t\tif max_audio_duration > video_duration:\n\t\t\t\tffmpeg_final_video.append(\"-shortest\")\n\t\t\tffmpeg_final_video.append_array(\n\t\t\t\t[\"-c:v\", \"copy\", \"-map\", \"0:v:0\", \"-map\", \"1:a:0\", export_paths[0]]\n\t\t\t)\n\t\t\tOS.execute(Global.ffmpeg_path, ffmpeg_final_video, [], true)\n\t_clear_temp_folder()\n\treturn true\n\n\nfunc _clear_temp_folder() -> void:\n\tvar temp_dir := DirAccess.open(temp_path)\n\tfor file in temp_dir.get_files():\n\t\ttemp_dir.remove(file)\n\tDirAccess.remove_absolute(temp_path)\n\n\nfunc export_animated(args: Dictionary) -> void:\n\tvar project: Project = args[\"project\"]\n\tvar exporter: AImgIOBaseExporter = args[\"exporter\"]\n\t# This is an ExportDialog (which refers back here).\n\tvar export_dialog: ConfirmationDialog = args[\"export_dialog\"]\n\n\t# Export progress popup\n\t# One fraction per each frame, one fraction for write to disk\n\texport_progress_fraction = 100.0 / processed_images.size()\n\texport_progress = 0.0\n\texport_dialog.set_export_progress_bar(export_progress)\n\texport_dialog.toggle_export_progress_popup(true)\n\n\t# Transform into AImgIO form\n\tvar frames := []\n\tfor i in range(processed_images.size()):\n\t\tvar frame: AImgIOFrame = AImgIOFrame.new()\n\t\tframe.content = processed_images[i].image\n\t\tframe.duration = processed_images[i].duration\n\t\tframes.push_back(frame)\n\n\t# Export and save GIF/APNG\n\n\tif OS.has_feature(\"web\"):\n\t\tvar file_data := await exporter.export_animation(\n\t\t\tframes, project.fps, self, \"_increase_export_progress\", [export_dialog]\n\t\t)\n\t\tJavaScriptBridge.download_buffer(file_data, args[\"export_paths\"][0], exporter.mime_type)\n\telse:\n\t\t# Open the file for export\n\t\tvar file := FileAccess.open(args[\"export_paths\"][0], FileAccess.WRITE)\n\t\tif FileAccess.get_open_error() == OK:\n\t\t\tvar buffer_data := await exporter.export_animation(\n\t\t\t\tframes, project.fps, self, \"_increase_export_progress\", [export_dialog], file\n\t\t\t)\n\t\t\t# In order to save memory, some exporters (like GIF) auto saves the data to file as\n\t\t\t# soon as it is processed (usually, frame by frame). If the exporter does not have this\n\t\t\t# feature, then the buffer_data will not be empty and we have to save it manually after\n\t\t\t# all frames are processed.\n\t\t\tif not buffer_data.is_empty():\n\t\t\t\tfile.store_buffer(buffer_data)\n\t\t\tfile.close()\n\texport_dialog.toggle_export_progress_popup(false)\n\tGlobal.notification_label(\"File(s) exported\")\n\n\nfunc _increase_export_progress(export_dialog: Node) -> void:\n\texport_progress += export_progress_fraction\n\texport_dialog.set_export_progress_bar(export_progress)\n\n\nfunc _scale_processed_images() -> void:\n\tvar resize_f := resize / 100.0\n\tfor processed_image in processed_images:\n\t\tif is_equal_approx(resize, 1.0):\n\t\t\tcontinue\n\t\tvar image := processed_image.image\n\t\timage.resize(image.get_size().x * resize_f, image.get_size().y * resize_f, interpolation)\n\n\nfunc file_format_string(format_enum: int) -> String:\n\tif file_format_dictionary.has(format_enum):\n\t\treturn file_format_dictionary[format_enum][0]\n\t# If a file format description is not found, try generating one\n\tif custom_exporter_generators.has(format_enum):\n\t\treturn custom_exporter_generators[format_enum][1]\n\treturn \"\"\n\n\nfunc file_format_description(format_enum: int) -> String:\n\tif file_format_dictionary.has(format_enum):\n\t\treturn file_format_dictionary[format_enum][1]\n\t# If a file format description is not found, try generating one\n\tfor key in custom_file_formats.keys():\n\t\tif custom_file_formats[key] == format_enum:\n\t\t\treturn str(key.capitalize())\n\treturn \"\"\n\n\nfunc get_file_format_from_extension(file_extension: String) -> FileFormat:\n\tif not file_extension.begins_with(\".\"):\n\t\tfile_extension = \".\" + file_extension\n\tfor format: FileFormat in file_format_dictionary:\n\t\tvar extension: String = file_format_dictionary[format][0]\n\t\tif file_extension.to_lower() == extension:\n\t\t\treturn format\n\treturn FileFormat.PNG\n\n\n## True when exporting to .gif, .apng and video\n## False when exporting to .png, .jpg and static .webp\nfunc is_single_file_format(project := Global.current_project) -> bool:\n\treturn animated_formats.has(project.file_format)\n\n\nfunc is_using_ffmpeg(format: FileFormat) -> bool:\n\treturn ffmpeg_formats.has(format)\n\n\nfunc is_ffmpeg_installed() -> bool:\n\tif Global.ffmpeg_path.is_empty():\n\t\treturn false\n\tvar ffmpeg_executed := OS.execute(Global.ffmpeg_path, [])\n\tif ffmpeg_executed == 0 or ffmpeg_executed == 1:\n\t\treturn true\n\treturn false\n\n\nfunc _create_export_path(\n\tmultifile: bool, project: Project, frame := 0, layer := -1, actual_frame_index := 0\n) -> String:\n\tvar path := project.file_name\n\tif path.contains(\"{name}\"):\n\t\tpath = path.replace(\"{name}\", project.name)\n\tvar path_extras := \"\"\n\t# Only append frame number when there are multiple files exported\n\tif multifile:\n\t\tif layer > -1:\n\t\t\tvar layer_name := project.layers[layer].name\n\t\t\tpath_extras += \"(%s) \" % layer_name\n\t\tvar counter: String = (\n\t\t\tstr(layer).pad_zeros(number_of_digits)\n\t\t\tif current_tab == ExportTab.SPRITESHEET\n\t\t\telse str(str(frame).pad_zeros(number_of_digits))\n\t\t)\n\t\tpath_extras += separator_character + counter\n\tvar frame_tag_and_start_id := _get_processed_image_tag_name_and_start_id(\n\t\tproject, actual_frame_index\n\t)\n\t# Check if exported frame is in frame tag\n\tif not frame_tag_and_start_id.is_empty():\n\t\tvar frame_tag: String = frame_tag_and_start_id[0]\n\t\tvar start_id: int = frame_tag_and_start_id[1]\n\t\t# Remove unallowed characters in frame tag directory\n\t\tvar regex := RegEx.new()\n\t\tregex.compile(\"[^a-zA-Z0-9_]+\")\n\t\tvar frame_tag_dir := regex.sub(frame_tag, \"\", true)\n\t\tif include_tag_in_filename:\n\t\t\t# (actual_frame_index - start_id + 2) makes frames id to start from 1\n\t\t\tvar tag_frame_number := str(actual_frame_index - start_id + 2).pad_zeros(\n\t\t\t\tnumber_of_digits\n\t\t\t)\n\t\t\tpath_extras = (\n\t\t\t\tseparator_character + frame_tag_dir + separator_character + tag_frame_number\n\t\t\t)\n\t\tif new_dir_for_each_frame_tag:\n\t\t\tpath += path_extras\n\t\t\treturn project.export_directory_path.path_join(frame_tag_dir).path_join(\n\t\t\t\tpath + file_format_string(project.file_format)\n\t\t\t)\n\tpath += path_extras\n\n\treturn project.export_directory_path.path_join(path + file_format_string(project.file_format))\n\n\nfunc _get_processed_image_tag_name_and_start_id(project: Project, processed_image_id: int) -> Array:\n\tvar result_animation_tag_and_start_id := []\n\tfor animation_tag in project.animation_tags:\n\t\t# Check if processed image is in frame tag and assign frame tag and start id if yes\n\t\t# Then stop\n\t\tif animation_tag.has_frame(processed_image_id):\n\t\t\tresult_animation_tag_and_start_id = [animation_tag.name, animation_tag.from]\n\t\t\tbreak\n\treturn result_animation_tag_and_start_id\n\n\nfunc _blend_layers(\n\timage: Image, frame: Frame, origin := Vector2i.ZERO, project := Global.current_project\n) -> void:\n\tif export_layers - 2 >= project.layers.size():\n\t\texport_layers = VISIBLE_LAYERS\n\tif export_layers == VISIBLE_LAYERS:\n\t\tvar load_result_from_pxo := not project.save_path.is_empty() and not project.has_changed\n\t\tif load_result_from_pxo:\n\t\t\t# Attempt to read the image data directly from the pxo file, without having to blend\n\t\t\t# This is mostly useful for when running Pixelorama in headless mode\n\t\t\t# To handle exporting from a CLI\n\t\t\tvar zip_reader := ZIPReader.new()\n\t\t\tvar err := zip_reader.open(project.save_path)\n\t\t\tif err == OK:\n\t\t\t\tvar frame_index := project.frames.find(frame) + 1\n\t\t\t\tvar image_path := \"image_data/final_images/%s\" % frame_index\n\t\t\t\tif zip_reader.file_exists(image_path):\n\t\t\t\t\t# \"Include blended\" must be toggled on when saving the pxo file\n\t\t\t\t\t# in order for this to work.\n\t\t\t\t\tvar image_data := zip_reader.read_file(image_path)\n\t\t\t\t\tvar loaded_image := Image.create_from_data(\n\t\t\t\t\t\tproject.size.x,\n\t\t\t\t\t\tproject.size.y,\n\t\t\t\t\t\timage.has_mipmaps(),\n\t\t\t\t\t\timage.get_format(),\n\t\t\t\t\t\timage_data\n\t\t\t\t\t)\n\t\t\t\t\timage.blend_rect(loaded_image, Rect2i(Vector2i.ZERO, project.size), origin)\n\t\t\t\telse:\n\t\t\t\t\tload_result_from_pxo = false\n\t\t\t\tzip_reader.close()\n\t\t\telse:\n\t\t\t\tload_result_from_pxo = false\n\t\tif not load_result_from_pxo:\n\t\t\tDrawingAlgos.blend_layers(image, frame, origin, project)\n\telif export_layers == SELECTED_LAYERS:\n\t\tDrawingAlgos.blend_layers(image, frame, origin, project, false, true)\n\telse:\n\t\tvar layer := project.layers[export_layers - 2]\n\t\tvar layer_image := Image.new()\n\t\tif layer is GroupLayer:\n\t\t\tlayer_image.copy_from(layer.blend_children(frame, Vector2i.ZERO))\n\t\telse:\n\t\t\tlayer_image.copy_from(layer.display_effects(frame.cels[export_layers - 2]))\n\t\timage.blend_rect(layer_image, Rect2i(Vector2i.ZERO, project.size), origin)\n\n\nfunc frames_divided_by_spritesheet_lines() -> int:\n\treturn ceili(number_of_frames / float(lines_count))\n"
  },
  {
    "path": "src/Autoload/Export.gd.uid",
    "content": "uid://dwe6oxkf6xwgt\n"
  },
  {
    "path": "src/Autoload/ExtensionsApi.gd",
    "content": "extends Node\n# NOTE: Goto File-->Save then type \"ExtensionsApi\" in \"Search Help\" to read the\n# curated documentation of the Api.\n# If it still doesn't show try again after doing Project-->Reload current project\n\n## The Official ExtensionsAPI for pixelorama.\n##\n## This Api gives you the essentials to develop a working extension for Pixelorama.[br]\n## The Api consists of many smaller Apis, each giving access to different areas of the Software.\n## [br][br]\n## Keep in mind that this API is targeted towards users who are not fully familiar with Pixelorama's\n## source code. If you need to do something more complicated and more low-level, you would need to\n## interact directly with the source code.\n## [br][br]\n## To access this anywhere in the extension use [code]get_node_or_null(\"/root/ExtensionsApi\")[/code]\n##\n## @tutorial(Add Tutorial here):            https://the/tutorial1/url.com\n\n## Gives access to the general, app related functions of pixelorama\n## such as Autoloads, Software Version, Config file etc...\nvar general := GeneralAPI.new()\nvar menu := MenuAPI.new()  ## Gives ability to add/remove items from menus in the top bar.\nvar dialog := DialogAPI.new()  ## Gives access to Dialog related functions.\nvar panel := PanelAPI.new()  ## Gives access to Tabs and Dockable Container related functions.\nvar theme := ThemeAPI.new()  ## Gives access to theme related functions.\nvar tools := ToolAPI.new()  ## Gives ability to add/remove tools.\nvar selection := SelectionAPI.new()  ## Gives access to pixelorama's selection system.\nvar project := ProjectAPI.new()  ## Gives access to project manipulation.\nvar export := ExportAPI.new()  ## Gives access to adding custom exporters.\nvar import := ImportAPI.new()  ## Gives access to adding custom import options.\nvar palette := PaletteAPI.new()  ## Gives access to palettes.\nvar signals := SignalsAPI.new()  ## Gives access to the basic commonly used signals.\n\n## This fail-safe below is designed to work ONLY if Pixelorama is launched in Godot Editor\nvar _action_history: Dictionary = {}\n\n\n## [code]This function is used internally and not meant to be used by extensions.[/code]\nfunc check_sanity(extension_name: String) -> void:\n\tif extension_name in _action_history.keys():\n\t\tvar extension_history: Array = _action_history[extension_name]\n\t\tif extension_history != []:\n\t\t\tvar error_msg := str(\n\t\t\t\t\"Extension: \",\n\t\t\t\textension_name,\n\t\t\t\t\" contains actons: \",\n\t\t\t\textension_history,\n\t\t\t\t\" which are not removed properly\"\n\t\t\t)\n\t\t\tpush_warning(error_msg)\n\n\n## [code]This function is used internally and not meant to be used by extensions.[/code]\nfunc clear_history(extension_name: String) -> void:\n\tif extension_name in _action_history.keys():\n\t\t_action_history.erase(extension_name)\n\n\n## [code]This function is used internally and not meant to be used by extensions.[/code]\nfunc add_action(section: String, key: String) -> void:\n\tvar action := str(section, \"/\", key)\n\tvar extension_name := _get_caller_extension_name()\n\tif extension_name != \"Unknown\":\n\t\tif extension_name in _action_history.keys():\n\t\t\tvar extension_history: Array = _action_history[extension_name]\n\t\t\textension_history.append(action)\n\t\telse:  # If the extension history doesn't exist yet, create it\n\t\t\t_action_history[extension_name] = [action]\n\n\n## [code]This function is used internally and not meant to be used by extensions.[/code]\nfunc remove_action(section: String, key: String) -> void:\n\tvar action := str(section, \"/\", key)\n\tvar extension_name := _get_caller_extension_name()\n\tif extension_name != \"Unknown\":\n\t\tif extension_name in _action_history.keys():\n\t\t\t_action_history[extension_name].erase(action)\n\n\n## [code]This function is used internally and not meant to be used by extensions.[/code]\nfunc wait_frame() -> void:  # Await is not available to classes below, so this is the solution\n\t# use by {await ExtensionsApi.wait_frame()}\n\tawait get_tree().process_frame\n\tawait get_tree().process_frame\n\n\nfunc _get_caller_extension_name() -> String:\n\tvar stack := get_stack()\n\tfor trace in stack:\n\t\t# Get extension name that called the action\n\t\tvar arr: Array = trace[\"source\"].split(\"/\")\n\t\tvar idx = arr.find(\"Extensions\")\n\t\tif idx != -1:\n\t\t\treturn arr[idx + 1]\n\treturn \"Unknown\"\n\n\nfunc _exit_tree() -> void:\n\tfor keys in _action_history.keys():\n\t\tcheck_sanity(keys)\n\n\n# The API Methods Start Here\n## Returns the version of the ExtensionsApi.\nfunc get_api_version() -> int:\n\treturn ProjectSettings.get_setting(\"application/config/ExtensionsAPI_Version\")\n\n\n## Returns the initial nodes of an extension named [param extension_name].\n## initial nodes are the nodes whose paths are in the [code]nodes[/code] key of an\n## extension.json file.\nfunc get_main_nodes(extension_name: StringName) -> Array[Node]:\n\tvar extensions_node = Global.control.get_node(\"Extensions\")\n\tvar nodes: Array[Node] = []\n\tfor child: Node in extensions_node.get_children():\n\t\tif child.is_in_group(extension_name):\n\t\t\tnodes.append(child)\n\treturn nodes\n\n\n## Gives Access to the general stuff.\n##\n## This part of Api provides stuff like commonly used Autoloads, App's version info etc\n## the most basic (but important) stuff.\nclass GeneralAPI:\n\t## Returns the current version of pixelorama.\n\tfunc get_pixelorama_version() -> String:\n\t\treturn ProjectSettings.get_setting(\"application/config/version\")\n\n\t## Returns the [ConfigFile] contains all the settings (Brushes, sizes, preferences, etc...).\n\tfunc get_config_file() -> ConfigFile:\n\t\treturn Global.config_cache\n\n\t## Returns the Global autoload used by Pixelorama.[br]\n\t## Contains references to almost all UI Elements, Variables that indicate different\n\t## settings etc..., In short it is the most important autoload of Pixelorama.\n\tfunc get_global() -> Global:\n\t\treturn Global\n\n\t## Returns the DrawingAlgos autoload, contains different drawing algorithms used by Pixelorama.\n\tfunc get_drawing_algos() -> DrawingAlgos:\n\t\treturn DrawingAlgos\n\n\t## Gives you a new ShaderImageEffect class. this class can apply shader to an image.[br]\n\t## It contains method:\n\t## [code]generate_image(img: Image, shader: Shader, params: Dictionary, size: Vector2)[/code]\n\t## [br]Whose parameters are identified as:\n\t## [br][param img] --> image that the shader will be pasted to (Empty Image of size same as\n\t## project).\n\t## [br][param shader] --> preload of the shader.\n\t## [br][param params] --> a dictionary of params used by the shader.\n\t## [br][param size] --> It is the project's size.\n\tfunc get_new_shader_image_effect() -> ShaderImageEffect:\n\t\treturn ShaderImageEffect.new()\n\n\t## Returns parent of the nodes listed in extension.json -> \"nodes\".\n\tfunc get_extensions_node() -> Node:\n\t\treturn Global.control.get_node(\"Extensions\")\n\n\t## Returns the main [code]Canvas[/code] node,\n\t## normally used to add a custom preview to the canvas.\n\tfunc get_canvas() -> Canvas:\n\t\treturn Global.canvas\n\n\t## Returns a new ValueSlider. Useful for editing floating values\n\tfunc create_value_slider() -> ValueSlider:\n\t\treturn ValueSlider.new()\n\n\t## Returns a new ValueSliderV2. Useful for editing 2D vectors.\n\tfunc create_value_slider_v2() -> ValueSliderV2:\n\t\treturn preload(\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\").instantiate()\n\n\t## Returns a new ValueSliderV3. Useful for editing 3D vectors.\n\tfunc create_value_slider_v3() -> ValueSliderV3:\n\t\treturn preload(\"res://src/UI/Nodes/Sliders/ValueSliderV3.tscn\").instantiate()\n\n\n## Gives ability to add/remove items from menus in the top bar.\nclass MenuAPI:\n\tenum { FILE, EDIT, SELECT, PROJECT, EFFECTS, VIEW, WINDOW, HELP }\n\n\t# Menu methods\n\tfunc _get_popup_menu(menu_type: int) -> PopupMenu:\n\t\tmatch menu_type:\n\t\t\tFILE:\n\t\t\t\treturn Global.top_menu_container.file_menu\n\t\t\tEDIT:\n\t\t\t\treturn Global.top_menu_container.edit_menu\n\t\t\tSELECT:\n\t\t\t\treturn Global.top_menu_container.select_menu\n\t\t\tPROJECT:\n\t\t\t\treturn Global.top_menu_container.project_menu\n\t\t\tEFFECTS:\n\t\t\t\treturn Global.top_menu_container.effects_menu\n\t\t\tVIEW:\n\t\t\t\treturn Global.top_menu_container.view_menu\n\t\t\tWINDOW:\n\t\t\t\treturn Global.top_menu_container.window_menu\n\t\t\tHELP:\n\t\t\t\treturn Global.top_menu_container.help_menu\n\t\treturn null\n\n\t## Adds a menu item of title [param item_name] to the [param menu_type] defined by\n\t## [enum @unnamed_enums].\n\t## [br][param item_metadata] is usually a window node you want to appear when you click the\n\t## [param item_name]. That window node should also have a [param menu_item_clicked]\n\t## function inside its script.[br]\n\t## Index of the added item is returned (which can be used to remove menu item later on).\n\tfunc add_menu_item(menu_type: int, item_name: String, item_metadata, item_id := -1) -> int:\n\t\tvar popup_menu := _get_popup_menu(menu_type)\n\t\tif not popup_menu:\n\t\t\tpush_error(\"Menu of type: \", menu_type, \" does not exist.\")\n\t\t\treturn -1\n\t\tpopup_menu.add_item(item_name, item_id)\n\t\tvar true_id := item_id\n\t\tif true_id == -1:\n\t\t\ttrue_id = popup_menu.get_item_count() - 1\n\t\tpopup_menu.set_item_metadata(true_id, item_metadata)\n\t\tExtensionsApi.add_action(\"MenuAPI\", \"add_menu\")\n\t\treturn true_id\n\n\t## Removes a menu item at index [param item_idx] from the [param menu_type] defined by\n\t## [enum @unnamed_enums].\n\tfunc remove_menu_item(menu_type: int, item_id: int) -> void:\n\t\tvar popup_menu := _get_popup_menu(menu_type)\n\t\tif not popup_menu:\n\t\t\tpush_error(\"Menu of type: \", menu_type, \" does not exist.\")\n\t\t\treturn\n\t\t# Ensure the index is correct by matching it with id\n\t\tpopup_menu.remove_item(popup_menu.get_item_index(item_id))\n\t\tExtensionsApi.remove_action(\"MenuAPI\", \"add_menu\")\n\n\n## Gives access to common dialog related functions.\nclass DialogAPI:\n\t## Shows an alert dialog with the given [param text].\n\t## Useful for displaying messages like \"Incompatible API\" etc...\n\tfunc show_error(text: String) -> void:\n\t\tGlobal.popup_error(text)\n\n\t## Returns the node that is the parent of dialogs used in pixelorama.\n\tfunc get_dialogs_parent_node() -> Node:\n\t\treturn Global.control.get_node(\"Dialogs\")\n\n\t## Informs Pixelorama that some dialog is about to open or close.\n\tfunc dialog_open(open: bool) -> void:\n\t\tGlobal.dialog_open(open)\n\n\n## Gives access to Tabs and Dockable Container related functions.\nclass PanelAPI:\n\t## Sets the visibility of dockable tabs.\n\tvar tabs_visible: bool:\n\t\tset(value):\n\t\t\tvar dockable := _get_dockable_container_ui()\n\t\t\tdockable.tabs_visible = value\n\t\tget:\n\t\t\tvar dockable := _get_dockable_container_ui()\n\t\t\treturn dockable.tabs_visible\n\n\t## Adds the [param node] as a tab. Initially it's placed on the same panel as the tools tab,\n\t## but it's position can be changed through editing a layout.\n\tfunc add_node_as_tab(node: Node) -> void:\n\t\tvar dockable := _get_dockable_container_ui()\n\t\tvar top_menu_container := Global.top_menu_container\n\t\tvar panels_submenu: PopupMenu = top_menu_container.panels_submenu\n\t\t# adding the node to the first tab we find, it'll be re-ordered by layout anyway\n\t\tvar tabs := _get_tabs_in_root(dockable.layout.root)\n\t\tif tabs.size() != 0:\n\t\t\tdockable.add_child(node)\n\t\t\ttabs[0].insert_node(0, node)  # Insert at the beginning\n\t\telse:\n\t\t\tpush_error(\"No suitable tab found for node placement.\")\n\t\t\treturn\n\t\ttop_menu_container.ui_elements.append(node)\n\t\t# refreshing Panels submenu\n\t\tvar new_elements = top_menu_container.ui_elements\n\t\tpanels_submenu.clear()\n\t\tfor element in new_elements:\n\t\t\tpanels_submenu.add_check_item(element.name)\n\t\t\tvar is_hidden := dockable.is_control_hidden(element)\n\t\t\tpanels_submenu.set_item_checked(new_elements.find(element), !is_hidden)\n\t\t# re-assigning layout\n\t\ttop_menu_container.set_layout(top_menu_container.selected_layout)\n\t\t# we must make tabs_visible = true for a few moments if it is false\n\t\tif dockable.tabs_visible == false:\n\t\t\tdockable.tabs_visible = true\n\t\t\tawait ExtensionsApi.wait_frame()\n\t\t\tdockable.tabs_visible = false\n\t\tExtensionsApi.add_action(\"PanelAPI\", \"add_tab\")\n\n\t## Removes the [param node] from the DockableContainer.\n\tfunc remove_node_from_tab(node: Node) -> void:\n\t\tvar top_menu_container := Global.top_menu_container\n\t\tvar dockable := _get_dockable_container_ui()\n\t\tvar panels_submenu: PopupMenu = top_menu_container.panels_submenu\n\t\t# find the tab that contains the node\n\t\tif node == null:\n\t\t\treturn\n\t\tvar tab := _find_tab_with_node(node.name, dockable)\n\t\tif not tab:\n\t\t\tpush_error(\"Tab not found\")\n\t\t\treturn\n\t\t# remove node from that tab\n\t\ttab.remove_node(node)\n\t\tnode.get_parent().remove_child(node)\n\t\ttop_menu_container.ui_elements.erase(node)\n\t\tnode.queue_free()\n\t\t# refreshing Panels submenu\n\t\tvar new_elements = top_menu_container.ui_elements\n\t\tpanels_submenu.clear()\n\t\tfor element in new_elements:\n\t\t\tpanels_submenu.add_check_item(element.name)\n\t\t\tvar is_hidden: bool = dockable.is_control_hidden(element)\n\t\t\tpanels_submenu.set_item_checked(new_elements.find(element), !is_hidden)\n\t\t# we must make tabs_visible = true for a few moments if it is false\n\t\tif dockable.tabs_visible == false:\n\t\t\tdockable.tabs_visible = true\n\t\t\tawait ExtensionsApi.wait_frame()\n\t\t\tdockable.tabs_visible = false\n\t\tExtensionsApi.remove_action(\"PanelAPI\", \"add_tab\")\n\n\t# PRIVATE METHODS\n\tfunc _get_dockable_container_ui() -> DockableContainer:\n\t\treturn Global.control.find_child(\"DockableContainer\")\n\n\tfunc _find_tab_with_node(\n\t\tnode_name: String, dockable_container: DockableContainer\n\t) -> DockableLayoutPanel:\n\t\tvar root := dockable_container.layout.root\n\t\tvar tabs := _get_tabs_in_root(root)\n\t\tfor tab in tabs:\n\t\t\tvar idx := tab.find_name(node_name)\n\t\t\tif idx != -1:\n\t\t\t\treturn tab\n\t\tpush_error(\"Tab containing node: %s not found\" % node_name)\n\t\treturn null\n\n\tfunc _get_tabs_in_root(parent_resource: DockableLayoutNode) -> Array[DockableLayoutPanel]:\n\t\tvar parents := []  # Resources have no get_parent_resource() so this is an alternative\n\t\tvar scanned := []  # To keep track of already discovered layout_split resources\n\t\tvar child_number := 0\n\t\tparents.append(parent_resource)\n\t\tvar scan_target := parent_resource\n\t\tvar tabs: Array[DockableLayoutPanel] = []\n\t\t# Get children in the parent, the initial parent is the node we entered as \"parent\"\n\t\twhile child_number < 2:\n\t\t\t# If parent isn't a (layout_split) resource then there is no point\n\t\t\t# in continuing (this is just a sanity check and should always pass)\n\t\t\tif !scan_target is DockableLayoutSplit:\n\t\t\t\tbreak\n\n\t\t\tvar child_resource: DockableLayoutNode\n\t\t\tif child_number == 0:\n\t\t\t\tchild_resource = (scan_target as DockableLayoutSplit).get_first()  # First child\n\t\t\telif child_number == 1:\n\t\t\t\tchild_resource = (scan_target as DockableLayoutSplit).get_second()  # Second child\n\n\t\t\t# If the child resource is a tab and it wasn't discovered before, add it to \"paths\"\n\t\t\tif child_resource is DockableLayoutPanel:\n\t\t\t\tif !tabs.has(child_resource):\n\t\t\t\t\ttabs.append(child_resource)\n\t\t\t# If \"child_resource\" is another layout_split resource then we need to scan it too\n\t\t\telif child_resource is DockableLayoutSplit and !scanned.has(child_resource):\n\t\t\t\tscanned.append(child_resource)\n\t\t\t\tparents.append(child_resource)\n\t\t\t\tscan_target = parents[-1]  # Set this as the next scan target\n\t\t\t\t# Reset child_number by setting it to -1, because later it will\n\t\t\t\t# get added by \"child_number += 1\" to make it 0\n\t\t\t\tchild_number = -1\n\t\t\tchild_number += 1\n\t\t\t# If we have reached the bottom, then make the child's parent as\n\t\t\t# the next parent and move on to the next child in the parent\n\t\t\tif child_number == 2:\n\t\t\t\tscan_target = parents.pop_back()\n\t\t\t\tchild_number = 0\n\t\t\t\t# If there is no parent left to get scanned\n\t\t\t\tif scan_target == null:\n\t\t\t\t\treturn tabs\n\t\treturn tabs\n\n\n## Gives access to theme related functions.\nclass ThemeAPI:\n\t## Returns the Themes autoload. Allows interacting with themes on a more deeper level.\n\tfunc autoload() -> Themes:\n\t\treturn Themes\n\n\t## Returns the colors used by the given [param theme] as a [Dictionary]. This includes\n\t## [StyleBox] colors. For use in script use it with JSON.stringify() for more friendly format.\n\t## [br]To set colors, see [method set_theme_colors].\n\tfunc get_theme_colors(theme: Theme) -> Dictionary[String, String]:\n\t\tvar colors: Dictionary[String, String] = {}\n\t\tvar color_theme_type_list := theme.get_color_type_list()\n\t\tif color_theme_type_list.size() > 0:\n\t\t\tfor color_theme_type: String in color_theme_type_list:\n\t\t\t\tvar color_list = theme.get_color_list(color_theme_type)\n\t\t\t\tif color_list.size() > 0:\n\t\t\t\t\tfor color_title in color_list:\n\t\t\t\t\t\tvar color: Color = theme.get_color(color_title, color_theme_type)\n\t\t\t\t\t\tcolors[str(color_title, \":\", color_theme_type)] = color.to_html()\n\t\t# Detect colors that are part of styleboxes\n\t\tvar s_box_theme_type_list := theme.get_stylebox_type_list()\n\t\tif s_box_theme_type_list.size() > 0:\n\t\t\tfor s_box_theme_type: String in s_box_theme_type_list:\n\t\t\t\tvar s_box_list = theme.get_stylebox_list(s_box_theme_type)\n\t\t\t\tif s_box_list.size() > 0:\n\t\t\t\t\tfor s_box_title in s_box_list:\n\t\t\t\t\t\tvar s_box: StyleBox = theme.get_stylebox(s_box_title, s_box_theme_type)\n\t\t\t\t\t\tvar main_key := str(s_box_title, \":\", s_box_theme_type, \":%s\")\n\t\t\t\t\t\tif s_box is StyleBoxFlat:\n\t\t\t\t\t\t\tvar bg_color_key := main_key % \"background_color\"\n\t\t\t\t\t\t\tcolors[bg_color_key] = s_box.bg_color.to_html()\n\t\t\t\t\t\t\tvar border_color_key := main_key % \"border_color\"\n\t\t\t\t\t\t\tcolors[border_color_key] = s_box.border_color.to_html()\n\t\t\t\t\t\t\tvar shadow_color_key := main_key % \"shadow_color\"\n\t\t\t\t\t\t\tcolors[shadow_color_key] = s_box.shadow_color.to_html()\n\t\t\t\t\t\telif s_box is StyleBoxLine:\n\t\t\t\t\t\t\tvar color_key := main_key % \"color\"\n\t\t\t\t\t\t\tcolors[color_key] = s_box.color.to_html()\n\t\treturn colors\n\n\t## Changes the colors of the given [param theme] according to the given [param data]. Only the\n\t## colors specified by [param data] are changed and the rest remain the same as original.\n\t## Make sure you don't set call this method using currently active (otherwise it will be slow).\n\t## The parameter [param debug_mode] is for debug purpose to let the developer know about the\n\t## changes that are to be done in order for colors to be properly visible.\n\tfunc set_theme_colors(theme: Theme, data: Dictionary[String, String], debug_mode := false):\n\t\tfor key: String in data.keys():\n\t\t\tvar name_and_theme_type := key.split(\":\", false)\n\t\t\tif name_and_theme_type.size() == 2:\n\t\t\t\tvar color_html := data[key]\n\t\t\t\tif Color.html_is_valid(color_html):\n\t\t\t\t\ttheme.set_color(\n\t\t\t\t\t\tname_and_theme_type[0], name_and_theme_type[1], Color.html(color_html)\n\t\t\t\t\t)\n\t\t\tif name_and_theme_type.size() == 3:  # Stylebox (in this case there's an extra param)\n\t\t\t\tvar s_box := theme.get_stylebox(name_and_theme_type[0], name_and_theme_type[1])\n\t\t\t\tvar color_html := data[key]\n\t\t\t\tif Color.html_is_valid(color_html):\n\t\t\t\t\tvar color = Color.html(data[key])\n\t\t\t\t\tif s_box is StyleBoxFlat:\n\t\t\t\t\t\tmatch name_and_theme_type[2]:\n\t\t\t\t\t\t\t\"background_color\":\n\t\t\t\t\t\t\t\tif !s_box.draw_center and debug_mode:\n\t\t\t\t\t\t\t\t\tdata.erase(key)\n\t\t\t\t\t\t\t\t\tprint(\"Warning: Set draw_center of stylebox -> %s \" % key)\n\t\t\t\t\t\t\t\ts_box.bg_color = color\n\t\t\t\t\t\t\t\"border_color\":\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\ts_box.border_width_left == 0\n\t\t\t\t\t\t\t\t\tand s_box.border_width_right == 0\n\t\t\t\t\t\t\t\t\tand s_box.border_width_top == 0\n\t\t\t\t\t\t\t\t\tand s_box.border_width_bottom == 0\n\t\t\t\t\t\t\t\t\tand debug_mode\n\t\t\t\t\t\t\t\t):\n\t\t\t\t\t\t\t\t\tdata.erase(key)\n\t\t\t\t\t\t\t\t\tprint(\"Warning: Set border widths of stylebox -> %s \" % key)\n\t\t\t\t\t\t\t\ts_box.border_color = color\n\t\t\t\t\t\t\t\"shadow_color\":\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\ts_box.shadow_size == 0\n\t\t\t\t\t\t\t\t\tand s_box.shadow_offset == Vector2.ZERO\n\t\t\t\t\t\t\t\t\tand debug_mode\n\t\t\t\t\t\t\t\t):\n\t\t\t\t\t\t\t\t\tdata.erase(key)\n\t\t\t\t\t\t\t\t\tprint(\n\t\t\t\t\t\t\t\t\t\t\"Warning: Set Shadow size/offset of stylebox -> %s \" % key\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\ts_box.shadow_color = color\n\t\t\t\t\telif s_box is StyleBoxLine:\n\t\t\t\t\t\tmatch name_and_theme_type[2]:\n\t\t\t\t\t\t\t\"color\":\n\t\t\t\t\t\t\t\ts_box.color = color\n\t\tif debug_mode:\n\t\t\tprint(\"clean data: \", JSON.stringify(data, \"\\t\"))\n\n\t## Adds the [param theme] to [code]Edit -> Preferences -> Interface -> Themes[/code].\n\tfunc add_theme(theme: Theme) -> void:\n\t\tThemes.add_theme(theme)\n\t\tExtensionsApi.add_action(\"ThemeAPI\", \"add_theme\")\n\n\t## Returns index of the [param theme] in preferences.\n\tfunc find_theme_index(theme: Theme) -> int:\n\t\treturn Themes.themes.find(theme)\n\n\t## Returns the current theme resource.\n\tfunc get_theme() -> Theme:\n\t\treturn Global.control.theme\n\n\t## Sets a theme located at a given [param idx] in preferences. If theme set successfully then\n\t## return [code]true[/code], else [code]false[/code].\n\tfunc set_theme(idx: int) -> bool:\n\t\tif idx >= 0 and idx < Themes.themes.size():\n\t\t\tThemes.change_theme(idx)\n\t\t\treturn true\n\t\telse:\n\t\t\tpush_error(\"No theme found at index: \", idx)\n\t\t\treturn false\n\n\t## Removes the [param theme] from preferences.\n\tfunc remove_theme(theme: Theme) -> void:\n\t\tThemes.remove_theme(theme)\n\t\tExtensionsApi.remove_action(\"ThemeAPI\", \"add_theme\")\n\n\t## Adds a new font.\n\tfunc add_font(font: Font) -> void:\n\t\tGlobal.loaded_fonts.append(font)\n\t\tGlobal.font_loaded.emit()\n\n\t## Removes a loaded font.\n\t## If that font is the current one of the interface, set it back to Roboto.\n\tfunc remove_font(font: Font) -> void:\n\t\tvar font_index := Global.loaded_fonts.find(font)\n\t\tif font_index == -1:\n\t\t\treturn\n\t\tif Global.theme_font_index == font_index:\n\t\t\tGlobal.theme_font_index = 1\n\t\tGlobal.loaded_fonts.remove_at(font_index)\n\t\tGlobal.font_loaded.emit()\n\n\t## Sets a font as the current one for the interface. The font must have been\n\t## added beforehand by [method add_font].\n\tfunc set_font(font: Font) -> void:\n\t\tvar font_index := Global.loaded_fonts.find(font)\n\t\tif font_index > -1:\n\t\t\tGlobal.theme_font_index = font_index\n\n\n## Gives ability to add/remove tools.\nclass ToolAPI:\n\t# gdlint: ignore=constant-name\n\tconst LayerTypes := Global.LayerTypes\n\n\t## Returns the Tools autoload. Allows interacting with tools on a more deeper level.\n\tfunc autoload() -> Tools:\n\t\treturn Tools\n\n\t## Adds a tool to pixelorama with name [param tool_name] (without spaces),\n\t## display name [param display_name], tool scene [param scene], layers that the tool works\n\t## on [param layer_types] defined by [constant LayerTypes],\n\t## [param extra_hint] (text that appears when mouse havers tool icon), primary shortcut\n\t## name [param shortcut] and any extra shortcuts [param extra_shortcuts].\n\t## [br][br]At the moment extensions can't make their own shortcuts so you can leave\n\t## [param shortcut] and [param extra_shortcuts] as [code][][/code].\n\t## [br] To determine the position of tool in tool list, use [param insert_point]\n\t## (if you leave it empty then the added tool will be placed at bottom)\n\tfunc add_tool(\n\t\ttool_name: String,\n\t\tdisplay_name: String,\n\t\tscene: String,\n\t\tlayer_types: PackedInt32Array = [],\n\t\textra_hint := \"\",\n\t\tshortcut: String = \"\",\n\t\textra_shortcuts: PackedStringArray = [],\n\t\tinsert_point := -1\n\t) -> void:\n\t\tvar tool_class := Tools.Tool.new(\n\t\t\ttool_name, display_name, shortcut, scene, layer_types, extra_hint, extra_shortcuts\n\t\t)\n\t\tTools.tools[tool_name] = tool_class\n\t\tTools.add_tool_button(tool_class, insert_point)\n\t\tExtensionsApi.add_action(\"ToolAPI\", \"add_tool\")\n\n\t## Removes a tool with name [param tool_name]\n\t## and assign Pencil as left tool, Eraser as right tool.\n\tfunc remove_tool(tool_name: String) -> void:\n\t\t# Re-assigning the tools in case the tool to be removed is also active\n\t\tTools.assign_tool(\"Pencil\", MOUSE_BUTTON_LEFT)\n\t\tTools.assign_tool(\"Eraser\", MOUSE_BUTTON_RIGHT)\n\t\tvar tool_class: Tools.Tool = Tools.tools[tool_name]\n\t\tif tool_class:\n\t\t\tTools.remove_tool(tool_class)\n\t\tExtensionsApi.remove_action(\"ToolAPI\", \"add_tool\")\n\n\n## Gives access to pixelorama's selection system.\nclass SelectionAPI:\n\t## Clears the selection.\n\tfunc clear_selection() -> void:\n\t\tGlobal.canvas.selection.clear_selection(true)\n\n\t## Select the entire region of current cel.\n\tfunc select_all() -> void:\n\t\tGlobal.canvas.selection.select_all()\n\n\t## Selects a portion defined by [param rect] of the current cel.\n\t## [param operation] influences it's behaviour with previous selection rects\n\t## (0 for adding, 1 for subtracting, 2 for intersection).\n\tfunc select_rect(rect: Rect2i, operation := 0) -> void:\n\t\tGlobal.canvas.selection.transform_content_confirm()\n\t\tvar undo_data_tmp := Global.canvas.selection.get_undo_data(false)\n\t\tGlobal.canvas.selection.select_rect(rect, operation)\n\t\tGlobal.canvas.selection.commit_undo(\"Select\", undo_data_tmp)\n\n\t## Moves a selection to [param destination],\n\t## with content if [param with_content] is [code]true[/code].\n\t## If [param transform_standby] is [code]true[/code] then the transformation will not be\n\t## applied immediately unless [kbd]Enter[/kbd] is pressed.\n\tfunc move_selection(\n\t\tdestination: Vector2i, with_content := true, transform_standby := false\n\t) -> void:\n\t\tvar selection_node := Global.canvas.selection\n\t\tselection_node.transform_content_confirm()\n\t\tselection_node.transformation_handles.begin_transform(\n\t\t\tnull, Global.current_project, false, not with_content\n\t\t)\n\t\tvar selection_rectangle := DrawingAlgos.get_transformed_bounds(\n\t\t\tselection_node.transformation_handles.transformed_selection_map.get_size(),\n\t\t\tselection_node.transformation_handles.preview_transform\n\t\t)\n\t\tvar rel_direction := destination - (selection_rectangle.position as Vector2i)\n\t\tselection_node.transformation_handles.move_transform(rel_direction)\n\t\tif not transform_standby:\n\t\t\tselection_node.transform_content_confirm()\n\n\t## Resizes the selection to [param new_size],\n\t## with content if [param with_content] is [code]true[/code].\n\t## If [param transform_standby] is [code]true[/code] then the transformation will not be\n\t## applied immediately unless [kbd]Enter[/kbd] is pressed.\n\tfunc resize_selection(\n\t\tnew_size: Vector2i, with_content := true, transform_standby := false\n\t) -> void:\n\t\tvar selection_node := Global.canvas.selection\n\t\tselection_node.transform_content_confirm()\n\t\tselection_node.transformation_handles.begin_transform(\n\t\t\tnull, Global.current_project, false, not with_content\n\t\t)\n\t\tvar image_size := selection_node.preview_selection_map.get_used_rect().size\n\t\tvar delta := new_size - image_size\n\t\tselection_node.transformation_handles.resize_transform(delta)\n\t\tif not transform_standby:\n\t\t\tGlobal.canvas.selection.transform_content_confirm()\n\n\t## Inverts the selection.\n\tfunc invert() -> void:\n\t\tGlobal.canvas.selection.invert()\n\n\t## Makes a project brush out of the current selection's content.\n\tfunc make_brush() -> void:\n\t\tGlobal.canvas.selection.new_brush()\n\n\t## Returns the portion of current cel's image enclosed by the selection.\n\t## It's similar to [method make_brush] but it returns the image instead.\n\tfunc get_enclosed_image() -> Image:\n\t\treturn Global.canvas.selection.get_enclosed_image()\n\n\t## Copies the selection content (works in or between pixelorama instances only).\n\tfunc copy() -> void:\n\t\tGlobal.canvas.selection.copy()\n\n\t## Pastes the selection content.\n\tfunc paste(in_place := false) -> void:\n\t\tGlobal.canvas.selection.paste(in_place)\n\n\t## Erases the drawing on current cel enclosed within the selection's area.\n\tfunc delete_content(selected_cels := true) -> void:\n\t\tGlobal.canvas.selection.delete(selected_cels)\n\n\n## Gives access to basic project manipulation functions.\nclass ProjectAPI:\n\t## The project currently in focus.\n\tvar current_project: Project:\n\t\tset(value):\n\t\t\tGlobal.tabs.current_tab = Global.projects.find(value)\n\t\tget:\n\t\t\treturn Global.current_project\n\n\t## Creates a new project in a new tab with one starting layer and frame,\n\t## name [param name], size [param size], fill color [param fill_color] and\n\t## frames [param frames]. The created project also gets returned.[br][br]\n\t## [param frames] is an [Array] of type [Frame]. Usually it can be left as [code][][/code].\n\t## If [param is_resource] is [code]true[/code] then a [ResourceProject] is created.\n\tfunc new_project(\n\t\tframes: Array[Frame] = [],\n\t\tname := tr(\"untitled\"),\n\t\tsize := Vector2(64, 64),\n\t\tfill_color := Color.TRANSPARENT,\n\t\tis_resource := false\n\t) -> Project:\n\t\tif !name.is_valid_filename():\n\t\t\tname = tr(\"untitled\")\n\t\tif size.x <= 0 or size.y <= 0:\n\t\t\tsize.x = 1\n\t\t\tsize.y = 1\n\t\tvar new_proj: Project\n\t\tif is_resource:\n\t\t\tnew_proj = ResourceProject.new(frames, name, size.floor())\n\t\telse:\n\t\t\tnew_proj = Project.new(frames, name, size.floor())\n\t\tnew_proj.layers.append(PixelLayer.new(new_proj))\n\t\tnew_proj.fill_color = fill_color\n\t\tnew_proj.frames.append(new_proj.new_empty_frame())\n\t\tGlobal.projects.append(new_proj)\n\t\treturn new_proj\n\n\tfunc new_image_extended(\n\t\twidth: int,\n\t\theight: int,\n\t\tmipmaps: bool,\n\t\tformat: Image.Format,\n\t\tis_indexed := false,\n\t\tfrom_data := PackedByteArray()\n\t) -> ImageExtended:\n\t\tif not from_data.is_empty():\n\t\t\tvar tmp_image := Image.create_from_data(width, height, mipmaps, format, from_data)\n\t\t\tvar new_image := ImageExtended.new()\n\t\t\tnew_image.copy_from_custom(tmp_image, is_indexed)\n\t\t\treturn new_image\n\t\treturn ImageExtended.create_custom(width, height, mipmaps, format, is_indexed)\n\n\t## Creates and returns a new [Project] in a new tab, with an optional [param name].\n\t## Unlike [method new_project], no starting frame/layer gets created.\n\t## Useful if you want to deserialize project data.\n\t## If [param is_resource] is [code]true[/code] then a [ResourceProject] is created.\n\tfunc new_empty_project(name := tr(\"untitled\"), is_resource := false) -> Project:\n\t\tvar new_proj: Project\n\t\tif is_resource:\n\t\t\tnew_proj = ResourceProject.new([], name)\n\t\telse:\n\t\t\tnew_proj = Project.new([], name)\n\t\tGlobal.projects.append(new_proj)\n\t\treturn new_proj\n\n\t## Returns a dictionary containing all the project information.\n\tfunc get_project_info(project: Project) -> Dictionary:\n\t\treturn project.serialize()\n\n\t## Selects the cels and makes the last entry of [param selected_array] as the current cel.\n\t## [param selected_array] is an [Array] of [Arrays] of 2 integers (frame & layer respectively).\n\t## [br]Frames are counted from left to right, layers are counted from bottom to top.\n\t## Frames/layers start at \"0\" and end at [param project.frames.size() - 1] and\n\t## [param project.layers.size() - 1] respectively.\n\tfunc select_cels(selected_array := [[0, 0]]) -> void:\n\t\tvar project := Global.current_project\n\t\tproject.selected_cels.clear()\n\t\tfor cel_position in selected_array:\n\t\t\tif typeof(cel_position) == TYPE_ARRAY and cel_position.size() == 2:\n\t\t\t\tvar frame := clampi(cel_position[0], 0, project.frames.size() - 1)\n\t\t\t\tvar layer := clampi(cel_position[1], 0, project.layers.size() - 1)\n\t\t\t\tif not [frame, layer] in project.selected_cels:\n\t\t\t\t\tproject.selected_cels.append([frame, layer])\n\t\tproject.change_cel(project.selected_cels[-1][0], project.selected_cels[-1][1])\n\n\t## Returns the current cel.\n\t## Cel type can be checked using function [method get_class_name] inside the cel\n\t## type can be GroupCel, PixelCel, Cel3D, CelTileMap, AudioCel or BaseCel.\n\tfunc get_current_cel() -> BaseCel:\n\t\treturn current_project.get_current_cel()\n\n\t## Frames are counted from left to right, layers are counted from bottom to top.\n\t## Frames/layers start at \"0\" and end at [param project.frames.size() - 1] and\n\t## [param project.layers.size() - 1] respectively.\n\tfunc get_cel_at(project: Project, frame: int, layer: int) -> BaseCel:\n\t\tframe = clampi(frame, 0, project.frames.size() - 1)\n\t\tlayer = clampi(layer, 0, project.layers.size() - 1)\n\t\treturn project.frames[frame].cels[layer]\n\n\t## Sets an [param image] at [param frame] and [param layer] on the current project.\n\t## Frames are counted from left to right, layers are counted from bottom to top.\n\tfunc set_pixelcel_image(image: Image, frame: int, layer: int) -> void:\n\t\tif get_cel_at(current_project, frame, layer).get_class_name() == \"PixelCel\":\n\t\t\tOpenSave.open_image_at_cel(image, layer, frame)\n\t\telse:\n\t\t\tpush_error(\"cel at frame \", frame, \", layer \", layer, \" is not a PixelCel\")\n\n\t## Adds a new frame in the current project after frame [param after_frame].\n\tfunc add_new_frame(after_frame: int) -> void:\n\t\tvar project := Global.current_project\n\t\tif after_frame < project.frames.size() and after_frame >= 0:\n\t\t\tvar old_current := project.current_frame\n\t\t\tproject.current_frame = after_frame  # temporary assignment\n\t\t\tGlobal.animation_timeline.add_frame()\n\t\t\tproject.current_frame = old_current\n\t\telse:\n\t\t\tpush_error(\"invalid (after_frame): \", after_frame)\n\n\t## Adds a new Layer of name [param name] in the current project above layer [param above_layer]\n\t## ([param above_layer] = 0 is the bottom-most layer and so on).\n\t## [br][param type] = 0 --> PixelLayer,\n\t## [br][param type] = 1 --> GroupLayer,\n\t## [br][param type] = 2 --> 3DLayer\n\tfunc add_new_layer(above_layer: int, name := \"\", type := Global.LayerTypes.PIXEL) -> void:\n\t\tvar project := ExtensionsApi.project.current_project\n\t\tif above_layer < project.layers.size() and above_layer >= 0:\n\t\t\tvar old_current := project.current_layer\n\t\t\tproject.current_layer = above_layer  # temporary assignment\n\t\t\tif type >= 0 and type < Global.LayerTypes.size():\n\t\t\t\tGlobal.animation_timeline.on_add_layer_list_id_pressed(type)\n\t\t\t\tvar layer_vbox := Global.animation_timeline.layer_vbox as VBoxContainer\n\t\t\t\tif name != \"\":\n\t\t\t\t\tproject.layers[above_layer + 1].name = name\n\t\t\t\t\tvar l_idx := layer_vbox.get_child_count() - (above_layer + 2)\n\t\t\t\t\tlayer_vbox.get_child(l_idx).label.text = name\n\t\t\t\tproject.current_layer = old_current\n\t\t\telse:\n\t\t\t\tpush_error(\"invalid (type): \", type)\n\t\telse:\n\t\t\tpush_error(\"invalid (above_layer) \", above_layer)\n\n\n## Gives access to adding custom exporters.\nclass ExportAPI:\n\t# gdlint: ignore=constant-name\n\tconst ExportTab := Export.ExportTab\n\n\t## Returns the Export autoload.\n\t## Allows interacting with the export workflow on a more deeper level.\n\tfunc autoload() -> Export:\n\t\treturn Export\n\n\t## [param format_info] has keys: [code]extension[/code] and [code]description[/code]\n\t## whose values are of type [String] e.g:[codeblock]\n\t## format_info = {\"extension\": \".gif\", \"description\": \"GIF Image\"}\n\t## [/codeblock]\n\t## [param exporter_generator] is a node with a script containing the method\n\t## [method override_export] which takes 1 argument of type Dictionary which is automatically\n\t## passed to [method override_export] at time of export and contains\n\t## keys: [code]processed_images[/code], [code]export_dialog[/code],\n\t## [code]export_paths[/code], [code]project[/code][br]\n\t## (Note: [code]processed_images[/code] is an array of ProcessedImage resource which further\n\t## has parameters [param image] and [param duration])[br]\n\t## If the value of [param tab] is not in [constant ExportTab] then the format will be added to\n\t## both tabs.\n\t## [br]Returns the index of exporter, which can be used to remove exporter later.\n\tfunc add_export_option(\n\t\tformat_info: Dictionary,\n\t\texporter_generator: Object,\n\t\ttab := ExportTab.IMAGE,\n\t\tis_animated := true\n\t) -> int:\n\t\t# Separate enum name and file name\n\t\tvar extension := \"\"\n\t\tvar format_name := \"\"\n\t\tif format_info.has(\"extension\"):\n\t\t\textension = format_info[\"extension\"]\n\t\tif format_info.has(\"description\"):\n\t\t\tformat_name = format_info[\"description\"].strip_edges().to_upper().replace(\" \", \"_\")\n\t\t# Change format name if another one uses the same name\n\t\tvar existing_format_names := Export.FileFormat.keys() + Export.custom_file_formats.keys()\n\t\tfor i in range(existing_format_names.size()):\n\t\t\tvar test_name := format_name\n\t\t\tif i != 0:\n\t\t\t\ttest_name = str(test_name, \"_\", i)\n\t\t\tif !existing_format_names.has(test_name):\n\t\t\t\tformat_name = test_name\n\t\t\t\tbreak\n\t\t# Setup complete, add the exporter\n\t\tvar id := Export.add_custom_file_format(\n\t\t\tformat_name, extension, exporter_generator, tab, is_animated\n\t\t)\n\t\tExtensionsApi.add_action(\"ExportAPI\", \"add_exporter\")\n\t\treturn id\n\n\t## Removes the exporter with [param id] from Pixelorama.\n\tfunc remove_export_option(id: int) -> void:\n\t\tif Export.custom_exporter_generators.has(id):\n\t\t\tExport.remove_custom_file_format(id)\n\t\t\tExtensionsApi.remove_action(\"ExportAPI\", \"add_exporter\")\n\n\n## Gives access to adding custom import options.\nclass ImportAPI:\n\t## Returns the OpenSave autoload. Contains code to handle file loading.\n\t## It also contains code to handle project saving (.pxo)\n\tfunc open_save_autoload() -> OpenSave:\n\t\treturn OpenSave\n\n\t## Returns the Import autoload. Manages import of brushes and patterns.\n\tfunc import_autoload() -> Import:\n\t\treturn Import\n\n\t## [param import_scene] is a scene preload that will be instanced and added to \"import options\"\n\t## section of pixelorama's import dialogs and will appear whenever [param import_name] is\n\t## chosen from import menu.\n\t## [br]\n\t## [param import_scene] must have a script containing:[br]\n\t## 1. An optional variable named [code]import_preview_dialog[/code] of type [ConfirmationDialog],\n\t## If present, it will automatically be assigned a reference to the relevant import dialog's\n\t## [code]ImportPreviewDialog[/code] class so that you can easily access variables and\n\t## methods of that class. (This variable is meant to be read-only)[br]\n\t## 2. The method [method initiate_import], which takes 2 arguments: [code]path[/code],\n\t## [code]image[/code]. Values will automatically be passed to these arguments at the\n\t## time of import.[br]Returns the id of the importer.\n\tfunc add_import_option(import_name: StringName, import_scene_preload: PackedScene) -> int:\n\t\tvar id := OpenSave.add_import_option(import_name, import_scene_preload)\n\t\tExtensionsApi.add_action(\"ImportAPI\", \"add_import_option\")\n\t\treturn id\n\n\t## Removes the import option with [param id] from Pixelorama.\n\tfunc remove_import_option(id: int) -> void:\n\t\tvar import_name = OpenSave.custom_import_names.find_key(id)\n\t\tOpenSave.custom_import_names.erase(import_name)\n\t\tOpenSave.custom_importer_scenes.erase(id)\n\t\tExtensionsApi.remove_action(\"ImportAPI\", \"add_import_option\")\n\n\n## Gives access to palette related stuff.\nclass PaletteAPI:\n\t## Returns the Palettes autoload. Allows interacting with palettes on a more deeper level.\n\tfunc autoload() -> Palettes:\n\t\treturn Palettes\n\n\t## Creates and adds a new [Palette] with name [param palette_name] containing [param data].\n\t## [param data] is a [Dictionary] containing the palette information.\n\t## An example of [code]data[/code] will be:[codeblock]\n\t## {\n\t## \"colors\": [\n\t##  {\n\t##   \"color\": \"(0, 0, 0, 1)\",\n\t##   \"index\": 0\n\t##  },\n\t##  {\n\t##   \"color\": \"(0.1294, 0.1216, 0.2039, 1)\",\n\t##   \"index\": 1\n\t##  },\n\t##  {\n\t##   \"color\": \"(0.2667, 0.1569, 0.2314, 1)\",\n\t##   \"index\": 2\n\t##  }\n\t## ],\n\t## \"comment\": \"Place comment here\",\n\t## \"height\": 4,\n\t## \"width\": 8\n\t## }\n\t## [/codeblock]\n\tfunc create_palette_from_data(\n\t\tpalette_name: String, data: Dictionary, is_global := true\n\t) -> void:\n\t\t# There may be a case where a Global palette has same name as project palette\n\t\tvar palette := Palette.new(Palettes.get_valid_name(palette_name))\n\t\tpalette.deserialize_from_dictionary(data)\n\t\tif is_global:\n\t\t\tPalettes.save_palette(palette)\n\t\t\tPalettes.palettes[palette.name] = palette\n\t\telse:\n\t\t\tpalette.is_project_palette = true\n\t\t\tGlobal.current_project.palettes[palette.name] = palette\n\t\tPalettes.select_palette(palette.name)\n\t\tPalettes.new_palette_created.emit()\n\n\n## Gives access to the basic commonly used signals.\n##\n## Gives access to the basic commonly used signals.\n## Some less common signals are not mentioned in Api but could be accessed through source directly.\nclass SignalsAPI:\n\t# system to auto-adjust texture_changed to the \"current cel\"\n\t## This signal is not meant to be used directly.\n\t## Use [method signal_current_cel_texture_changed] instead\n\tsignal texture_changed\n\tvar _last_cel: BaseCel\n\n\tfunc _init() -> void:\n\t\tGlobal.project_switched.connect(_update_texture_signal)\n\t\tGlobal.cel_switched.connect(_update_texture_signal)\n\n\tfunc _update_texture_signal() -> void:\n\t\tif _last_cel:\n\t\t\t_last_cel.texture_changed.disconnect(_on_texture_changed)\n\t\tif Global.current_project:\n\t\t\t_last_cel = Global.current_project.get_current_cel()\n\t\t\t_last_cel.texture_changed.connect(_on_texture_changed)\n\n\tfunc _on_texture_changed() -> void:\n\t\ttexture_changed.emit()\n\n\tfunc _connect_disconnect(\n\t\tsignal_class: Signal, callable: Callable, is_disconnecting := false\n\t) -> void:\n\t\tif !is_disconnecting:\n\t\t\tif not signal_class.is_connected(callable):\n\t\t\t\tsignal_class.connect(callable)\n\t\t\t\tExtensionsApi.add_action(\"SignalsAPI\", signal_class.get_name())\n\t\telse:\n\t\t\tif signal_class.is_connected(callable):\n\t\t\t\tsignal_class.disconnect(callable)\n\t\t\t\tExtensionsApi.remove_action(\"SignalsAPI\", signal_class.get_name())\n\n\t# APP RELATED SIGNALS\n\t## Connects/disconnects a signal to [param callable], that emits\n\t## when pixelorama is just opened.\n\tfunc signal_pixelorama_opened(callable: Callable, is_disconnecting := false) -> void:\n\t\t_connect_disconnect(Global.pixelorama_opened, callable, is_disconnecting)\n\n\t## Connects/disconnects a signal to [param callable], that emits\n\t## when pixelorama is about to close.\n\tfunc signal_pixelorama_about_to_close(callable: Callable, is_disconnecting := false) -> void:\n\t\t_connect_disconnect(Global.pixelorama_about_to_close, callable, is_disconnecting)\n\n\t# PROJECT RELATED SIGNALS\n\t## Connects/disconnects a signal to [param callable], that emits\n\t## whenever a new project is created.[br]\n\t## [b]Binds: [/b]It has one bind of type [code]Project[/code] which is the newly\n\t## created project.\n\tfunc signal_project_created(callable: Callable, is_disconnecting := false) -> void:\n\t\t_connect_disconnect(Global.project_created, callable, is_disconnecting)\n\n\t## Connects/disconnects a signal to [param callable], that emits\n\t## after a project is saved.\n\tfunc signal_project_saved(callable: Callable, is_disconnecting := false) -> void:\n\t\t_connect_disconnect(OpenSave.project_saved, callable, is_disconnecting)\n\n\t## Connects/disconnects a signal to [param callable], that emits\n\t## whenever you switch to some other project.\n\tfunc signal_project_switched(callable: Callable, is_disconnecting := false) -> void:\n\t\t_connect_disconnect(Global.project_switched, callable, is_disconnecting)\n\n\t## Connects/disconnects a signal to [param callable], that emits\n\t## whenever you select a different cel.\n\tfunc signal_cel_switched(callable: Callable, is_disconnecting := false) -> void:\n\t\t_connect_disconnect(Global.cel_switched, callable, is_disconnecting)\n\n\t## Connects/disconnects a signal to [param callable], that emits\n\t## whenever the project data are being modified.\n\tfunc signal_project_data_changed(callable: Callable, is_disconnecting := false) -> void:\n\t\t_connect_disconnect(Global.project_data_changed, callable, is_disconnecting)\n\n\t# TOOL RELATED SIGNALS\n\t## Connects/disconnects a signal to [param callable], that emits\n\t## whenever a tool changes color.[br]\n\t## [b]Binds: [/b] It has two bind of type [Color] (a dictionary with keys \"color\" and \"index\")\n\t## and [int] (Indicating button that tool is assigned to, see [enum @GlobalScope.MouseButton])\n\tfunc signal_tool_color_changed(callable: Callable, is_disconnecting := false) -> void:\n\t\t_connect_disconnect(Tools.color_changed, callable, is_disconnecting)\n\n\t# TIMELINE RELATED SIGNALS\n\t## Connects/disconnects a signal to [param callable], that emits\n\t## whenever timeline animation starts.[br]\n\t## [b]Binds: [/b] It has one bind of type [bool] which indicated if animation is in\n\t## forward direction ([code]true[/code]) or backward direction ([code]false[/code])\n\tfunc signal_timeline_animation_started(callable: Callable, is_disconnecting := false) -> void:\n\t\t_connect_disconnect(Global.animation_timeline.animation_started, callable, is_disconnecting)\n\n\t## Connects/disconnects a signal to [param callable], that emits\n\t## whenever timeline animation stops.\n\tfunc signal_timeline_animation_finished(callable: Callable, is_disconnecting := false) -> void:\n\t\t_connect_disconnect(\n\t\t\tGlobal.animation_timeline.animation_finished, callable, is_disconnecting\n\t\t)\n\n\t# UPDATER SIGNALS\n\t## Connects/disconnects a signal to [param callable], that emits\n\t## whenever texture of the currently focused cel changes.\n\tfunc signal_current_cel_texture_changed(callable: Callable, is_disconnecting := false) -> void:\n\t\t_connect_disconnect(texture_changed, callable, is_disconnecting)\n\n\t## Connects/disconnects a signal to [param callable], that emits\n\t## whenever preview is about to be drawn.[br]\n\t## [b]Binds: [/b]It has one bind of type [Dictionary] with keys: [code]exporter_id[/code],\n\t## [code]export_tab[/code], [code]preview_images[/code], [code]durations[/code].[br]\n\t## Use this if you plan on changing preview of export.\n\tfunc signal_export_about_to_preview(callable: Callable, is_disconnecting := false) -> void:\n\t\t_connect_disconnect(Global.export_dialog.about_to_preview, callable, is_disconnecting)\n"
  },
  {
    "path": "src/Autoload/ExtensionsApi.gd.uid",
    "content": "uid://nutpsm57qk45\n"
  },
  {
    "path": "src/Autoload/Global.gd",
    "content": "extends Node\n\n## The Global autoload of Pixelorama.\n##\n## This Autoload contains signals, enums, constants, variables and\n## references to many UI elements used within Pixelorama.\n\n#region signals\n@warning_ignore(\"unused_signal\")\nsignal pixelorama_opened  ## Emitted as soon as Pixelorama fully opens up.\n@warning_ignore(\"unused_signal\")\nsignal pixelorama_about_to_close  ## Emitted just before Pixelorama is about to close.\n@warning_ignore(\"unused_signal\")\nsignal project_created(project: Project)  ## Emitted when a new project class is initialized.\nsignal project_about_to_switch  ## Emitted before a project is about to be switched\nsignal project_switched  ## Emitted whenever you switch to some other project tab.\nsignal cel_switched  ## Emitted whenever you select a different cel.\n@warning_ignore(\"unused_signal\")\nsignal project_data_changed(project: Project)  ## Emitted when project data is modified.\n@warning_ignore(\"unused_signal\")\nsignal font_loaded  ## Emitted when a new font has been loaded, or an old one gets unloaded.\nsignal collapse_main_menu_changed  ## Emitted when [member collapse_main_menu] changes.\nsignal single_tool_mode_changed(mode: bool)  ## Emitted when [member single_tool_mode] changes.\n## Emitted when [member share_options_between_tools] changes.\nsignal share_options_between_tools_changed(mode: bool)\n@warning_ignore(\"unused_signal\")\nsignal on_cursor_position_text_changed(text: String)\n@warning_ignore(\"unused_signal\")\nsignal dynamics_changed\n#endregion\n\nenum LayerTypes { PIXEL, GROUP, THREE_D, TILEMAP, AUDIO }\nenum GridTypes { CARTESIAN, ISOMETRIC, HEXAGONAL_POINTY_TOP, HEXAGONAL_FLAT_TOP }\n## ## Used to tell whether a color is being taken from the current theme,\n## or if it is a custom color.\nenum ColorFrom { THEME, CUSTOM }\nenum ButtonSize { SMALL, BIG }\nenum MeasurementMode { NONE, DISPLAY_RECT, MOVE }\n\n## Enumeration of items present in the File Menu.\nenum FileMenu { NEW, OPEN, OPEN_LAST_PROJECT, RECENT, SAVE, SAVE_AS, EXPORT, EXPORT_AS, QUIT }\n## Enumeration of items present in the Edit Menu.\nenum EditMenu {\n\tUNDO,\n\tREDO,\n\tUNDO_HISTORY,\n\tCOPY,\n\tCUT,\n\tPASTE,\n\tPASTE_IN_PLACE,\n\tPASTE_FROM_CLIPBOARD,\n\tDELETE,\n\tNEW_BRUSH,\n\tPREFERENCES\n}\n## Enumeration of items present in the View Menu.\nenum ViewMenu {\n\tCENTER_CANVAS,\n\tTILE_MODE,\n\tTILE_MODE_OFFSETS,\n\tGREYSCALE_VIEW,\n\tMIRROR_VIEW,\n\tSHOW_GRID,\n\tSHOW_PIXEL_GRID,\n\tSHOW_PIXEL_INDICES,\n\tSHOW_RULERS,\n\tSHOW_GUIDES,\n\tSHOW_MOUSE_GUIDES,\n\tSHOW_REFERENCE_IMAGES,\n\tDISPLAY_LAYER_EFFECTS,\n\tSNAP_TO,\n}\n## Enumeration of items present in the Window Menu.\nenum WindowMenu { WINDOW_OPACITY, PANELS, LAYOUTS, MOVABLE_PANELS, ZEN_MODE, FULLSCREEN_MODE }\n## Enumeration of items present in the Image Menu.\nenum ProjectMenu {\n\tPROJECT_PROPERTIES,\n\tCOLOR_MODE,\n\tRESIZE_CANVAS,\n\tSCALE_IMAGE,\n\tCROP_TO_SELECTION,\n\tCROP_TO_CONTENT,\n}\n## Enumeration of items present in the Select Menu.\nenum SelectMenu { SELECT_ALL, CLEAR_SELECTION, INVERT, SELECT_CEL_AREA, WRAP_STROKES, MODIFY }\n## Enumeration of items present in the Help Menu.\nenum HelpMenu {\n\tVIEW_SPLASH_SCREEN,\n\tONLINE_DOCS,\n\tISSUE_TRACKER,\n\tRESTORE_BACKUP,\n\tOPEN_EDITOR_DATA_FOLDER,\n\tCHANGELOG,\n\tABOUT_PIXELORAMA,\n\tSUPPORT_PIXELORAMA\n}\n\nconst LANGUAGES_DICT := {\n\t\"en_US\": [\"English\", \"English\"],\n\t\"cs_CZ\": [\"Czech\", \"Czech\"],\n\t\"ar_SA\": [\"العربيّة\", \"Arabic\"],\n\t\"da_DK\": [\"Dansk\", \"Danish\"],\n\t\"de_DE\": [\"Deutsch\", \"German\"],\n\t\"el_GR\": [\"Ελληνικά\", \"Greek\"],\n\t\"eo_UY\": [\"Esperanto\", \"Esperanto\"],\n\t\"es_ES\": [\"Español\", \"Spanish\"],\n\t\"fr_FR\": [\"Français\", \"French\"],\n\t\"id_ID\": [\"Indonesian\", \"Indonesian\"],\n\t\"it_IT\": [\"Italiano\", \"Italian\"],\n\t\"lv_LV\": [\"Latvian\", \"Latvian\"],\n\t\"pl_PL\": [\"Polski\", \"Polish\"],\n\t\"pt_BR\": [\"Português Brasileiro\", \"Brazilian Portuguese\"],\n\t\"pt_PT\": [\"Português\", \"Portuguese\"],\n\t\"ru_RU\": [\"Русский\", \"Russian\"],\n\t\"zh_CN\": [\"简体中文\", \"Chinese Simplified\"],\n\t\"zh_TW\": [\"繁體中文\", \"Chinese Traditional\"],\n\t\"nb_NO\": [\"Norsk Bokmål\", \"Norwegian Bokmål\"],\n\t\"hu_HU\": [\"Magyar\", \"Hungarian\"],\n\t\"ro_RO\": [\"Română\", \"Romanian\"],\n\t\"ko_KR\": [\"한국어\", \"Korean\"],\n\t\"tr_TR\": [\"Türkçe\", \"Turkish\"],\n\t\"ja_JP\": [\"日本語\", \"Japanese\"],\n\t\"uk_UA\": [\"Українська\", \"Ukrainian\"],\n}\nconst SUPPORTED_IMAGE_TYPES: PackedStringArray = [\n\t\"png\", \"bmp\", \"hdr\", \"jpg\", \"jpeg\", \"svg\", \"tga\", \"webp\", \"exr\"\n]\n## The file path used for the [member config_cache] file.\nconst CONFIG_PATH := \"user://config.ini\"\n## The file used to save preferences that use [method _save_to_override_file].\nconst OVERRIDE_FILE := \"user://override.cfg\"\n## The name of folder containing Pixelorama preferences.\nconst HOME_SUBDIR_NAME := \"pixelorama\"\n## The name of folder that contains subdirectories for users to place brushes, palettes, patterns.\nconst CONFIG_SUBDIR_NAME := \"pixelorama_data\"\n## The path of the directory where the UI layouts are being stored.\nconst LAYOUT_DIR := \"user://layouts\"\n## The path of the ditectory where users can load custom fonts.\nconst FONTS_DIR_PATH := \"user://fonts\"\n\n## It is path to the executable's base drectory.\nvar root_directory := \".\"\n## The path where preferences and other subdirectories for stuff like layouts, extensions, logs etc.\n## will get stored by Pixelorama.\nvar home_data_directory := OS.get_data_dir().path_join(HOME_SUBDIR_NAME)\n## Only read from these directories. This is an [Array] of directories potentially containing\n## stuff such as Brushes, Palettes and Patterns in sub-directories.[br]\n## ([member home_data_directory] and [member root_directory] are also included in this array).\nvar data_directories: PackedStringArray = [home_data_directory]\n## The config file used to get/set preferences, tool settings etc.\nvar config_cache := ConfigFile.new()\nvar loaded_locales: PackedStringArray = LANGUAGES_DICT.keys()\n\nvar projects: Array[Project] = []  ## Array of currently open projects.\nvar current_project: Project:  ## The project that currently in focus.\n\tset(value):\n\t\tcurrent_project = value\n\t\tif top_menu_container.file_menu:\n\t\t\tif current_project is ResourceProject:\n\t\t\t\ttop_menu_container.file_menu.set_item_disabled(FileMenu.SAVE_AS, true)\n\t\t\t\ttop_menu_container.file_menu.set_item_disabled(FileMenu.EXPORT, true)\n\t\t\t\ttop_menu_container.file_menu.set_item_disabled(FileMenu.EXPORT_AS, true)\n\t\t\telse:\n\t\t\t\ttop_menu_container.file_menu.set_item_disabled(FileMenu.SAVE_AS, false)\n\t\t\t\ttop_menu_container.file_menu.set_item_disabled(FileMenu.EXPORT, false)\n\t\t\t\ttop_menu_container.file_menu.set_item_disabled(FileMenu.EXPORT_AS, false)\n## The index of project that is currently in focus.\nvar current_project_index := 0:\n\tset(value):\n\t\tif value >= projects.size():\n\t\t\treturn\n\t\tcanvas.selection.transform_content_confirm()\n\t\tproject_about_to_switch.emit()\n\t\tcurrent_project_index = value\n\t\tcurrent_project = projects[value]\n\t\tproject_switched.connect(current_project.change_project)\n\t\tproject_switched.emit()\n\t\tproject_switched.disconnect(current_project.change_project)\n\t\tcel_switched.emit()\nvar default_layouts: Array[DockableLayout] = [\n\tpreload(\"res://assets/layouts/Default.tres\"),\n\tpreload(\"res://assets/layouts/Tallscreen.tres\"),\n]\nvar layouts: Array[DockableLayout] = []\nvar loaded_fonts: Array[Font] = [\n\tThemeDB.fallback_font, preload(\"res://assets/fonts/Roboto-Regular.ttf\")\n]\n\n# Canvas related stuff\n## Tells if the user allowed to draw on the canvas. Usually it is temporarily set to\n## [code]false[/code] when we are moving some gizmo and don't want the current tool to accidentally\n## start drawing.[br](This does not depend on layer invisibility or lock/unlock status).\nvar can_draw := true\n## (Intended to be used as getter only) Tells if the user allowed to move the guide while on canvas.\nvar move_guides_on_canvas := true\n\nvar play_only_tags := true  ## If [code]true[/code], animation plays only on frames of the same tag.\n## If true, the x symmetry guide ( -- ) is visible.\nvar show_x_symmetry_axis := false\n## If true, the y symmetry guide ( | ) is visible.\nvar show_y_symmetry_axis := false\n## If true, the x=y symmetry guide ( / ) is visible.\nvar show_xy_symmetry_axis := false\n## If true, the x=-y symmetry guide ( \\ ) is visible.\nvar show_x_minus_y_symmetry_axis := false\n\n#region Preferences\n## Found in Preferences. If [code]true[/code], the last saved project will open on startup.\nvar open_last_project := false\n## Found in Preferences. If [code]true[/code], asks for permission to quit on exit.\nvar quit_confirmation := false\n## Found in Preferences. Refers to the ffmpeg location path.\nvar ffmpeg_path := \"\"\n## Found in Preferences. If [code]true[/code], the zoom is smooth.\nvar smooth_zoom := true\n## Found in Preferences. If [code]true[/code], the zoom is restricted to integral multiples of 100%.\nvar integer_zoom := false:\n\tset(value):\n\t\tif value == integer_zoom:\n\t\t\treturn\n\t\tinteger_zoom = value\n\t\tvar zoom_slider: ValueSlider = top_menu_container.get_node(\"%ZoomSlider\")\n\t\tif value:\n\t\t\tzoom_slider.min_value = 100\n\t\t\tzoom_slider.snap_step = 100\n\t\t\tzoom_slider.step = 100\n\t\telse:\n\t\t\tzoom_slider.min_value = 1\n\t\t\tzoom_slider.snap_step = 1\n\t\t\tzoom_slider.step = 1\n\t\tzoom_slider.value = zoom_slider.value  # to trigger signal emission\n\n## Found in Preferences. The scale of the interface.\nvar shrink := 1.0\n## The default value of the scale of the interface.\nvar auto_content_scale_factor := 1.0\nvar theme_font := loaded_fonts[theme_font_index]:\n\tset(value):\n\t\ttheme_font = value\n\t\tif is_instance_valid(control) and is_instance_valid(control.theme):\n\t\t\tcontrol.theme.default_font = theme_font\n## Found in Preferences. The index of the font used by the interface.\nvar theme_font_index := 1:\n\tset(value):\n\t\ttheme_font_index = value\n\t\tif theme_font_index < loaded_fonts.size():\n\t\t\ttheme_font = loaded_fonts[theme_font_index]\n\t\telse:\n\t\t\tvar available_font_names := get_available_font_names()\n\t\t\tif theme_font_index < available_font_names.size():\n\t\t\t\tvar font_name := available_font_names[theme_font_index]\n\t\t\t\ttheme_font = find_font_from_name(font_name)\n\t\t\telse:\n\t\t\t\ttheme_font = loaded_fonts[1]  # Fall back to Roboto if out of bounds\n## Found in Preferences. The font size used by the interface.\nvar font_size := 16\n## Found in Preferences. The orientation of the screen, used by mobile devices.\nvar screen_orientation := DisplayServer.SCREEN_SENSOR:\n\tset(value):\n\t\tscreen_orientation = value\n\t\tDisplayServer.screen_set_orientation(screen_orientation)\n\t\tcontrol.set_mobile_fullscreen_safe_area()\n## Found in Preferences. If [code]true[/code], the interface dims on popups.\nvar dim_on_popup := true\n## Found in Preferences. If [code]true[/code], notification labels appear.\nvar show_notification_label := true\n## Found in Preferences. If [code]true[/code], the native file dialogs of the\n## operating system are being used, instead of Godot's FileDialog node.\nvar use_native_file_dialogs := false:\n\tset(value):\n\t\tif value == use_native_file_dialogs:\n\t\t\treturn\n\t\tuse_native_file_dialogs = value\n\t\tif not is_inside_tree():\n\t\t\tawait tree_entered\n\t\t\tawait get_tree().process_frame\n\t\tget_tree().set_group(&\"FileDialogs\", \"use_native_dialog\", value)\nvar collapse_main_menu := OS.has_feature(\"mobile\"):\n\tset(value):\n\t\tif value == collapse_main_menu:\n\t\t\treturn\n\t\tcollapse_main_menu = value\n\t\tcollapse_main_menu_changed.emit()\n## Found in Preferences. If [code]true[/code], subwindows are embedded in the main window.\nvar single_window_mode := true:\n\tset(value):\n\t\tif value == single_window_mode:\n\t\t\treturn\n\t\tsingle_window_mode = value\n\t\t_save_to_override_file()\n## Found in Preferences. The modulation color (or simply color) of icons.\nvar modulate_icon_color := Color.GRAY\n## Found in Preferences. Determines if [member modulate_icon_color] uses custom or theme color.\nvar icon_color_from := ColorFrom.THEME:\n\tset(value):\n\t\tif value == icon_color_from:\n\t\t\treturn\n\t\ticon_color_from = value\n\t\tif icon_color_from == ColorFrom.THEME:\n\t\t\tvar current_theme := Themes.themes[Themes.theme_index]\n\t\t\tmodulate_icon_color = current_theme.get_color(\"modulate_color\", \"Icons\")\n\t\telse:\n\t\t\tmodulate_icon_color = custom_icon_color\n\t\tThemes.change_icon_colors()\n## Found in Preferences. Color of icons when [member icon_color_from] is set to use custom colors.\nvar custom_icon_color := Color.GRAY:\n\tset(value):\n\t\tif value == custom_icon_color:\n\t\t\treturn\n\t\tcustom_icon_color = value\n\t\tif icon_color_from == ColorFrom.CUSTOM:\n\t\t\tmodulate_icon_color = custom_icon_color\n\t\t\tThemes.change_icon_colors()\n## Found in Preferences. The modulation color (or simply color) of canvas background\n## (aside from checker background).\nvar modulate_clear_color := Color.GRAY:\n\tset(value):\n\t\tif value == modulate_clear_color:\n\t\t\treturn\n\t\tmodulate_clear_color = value\n\t\tThemes.change_clear_color()\n## Found in Preferences. Determines if [member modulate_clear_color] uses custom or theme color.\nvar clear_color_from := ColorFrom.THEME:\n\tset(value):\n\t\tif value == clear_color_from:\n\t\t\treturn\n\t\tclear_color_from = value\n\t\tThemes.change_clear_color()\n## Found in Preferences. The selected size mode of tool buttons using [enum ButtonSize] enum.\nvar tool_button_size := ButtonSize.SMALL:\n\tset(value):\n\t\tif value == tool_button_size:\n\t\t\treturn\n\t\ttool_button_size = value\n\t\tTools.set_button_size(tool_button_size)\n## Found in Preferences. Determines behavior of the swap_tools action.\nvar reset_swap_on_shortcut_release := false\n## Found in Preferences. Determines if color should swap on tool swap.\nvar swap_color_on_tool_swap := false\n## Found in Preferences.\n## If enabled, the right mouse button is always mapped to the same tool as the left button.\nvar single_tool_mode := DisplayServer.is_touchscreen_available():\n\tset(value):\n\t\tsingle_tool_mode = value\n\t\tsingle_tool_mode_changed.emit(single_tool_mode)\n## Found in Preferences.\nvar share_options_between_tools := false:\n\tset(value):\n\t\tshare_options_between_tools = value\n\t\tshare_options_between_tools_changed.emit(share_options_between_tools)\n\t\tTools.attempt_config_share(MOUSE_BUTTON_LEFT)\n## Found in Preferences. The left tool color.\nvar left_tool_color := Color(\"0086cf\"):\n\tset(value):\n\t\tif value == left_tool_color:\n\t\t\treturn\n\t\tleft_tool_color = value\n\t\tif not is_instance_valid(Tools._tool_buttons):\n\t\t\tawait get_tree().process_frame\n\t\tfor child in Tools._tool_buttons.get_children():\n\t\t\tvar background: NinePatchRect = child.get_node(\"BackgroundLeft\")\n\t\t\tbackground.modulate = value\n\t\tTools._slots[MOUSE_BUTTON_LEFT].tool_node.color_rect.color = value\n## Found in Preferences. The right tool color.\nvar right_tool_color := Color(\"fd6d14\"):\n\tset(value):\n\t\tif value == right_tool_color:\n\t\t\treturn\n\t\tright_tool_color = value\n\t\tif not is_instance_valid(Tools._tool_buttons):\n\t\t\tawait get_tree().process_frame\n\t\tfor child in Tools._tool_buttons.get_children():\n\t\t\tvar background: NinePatchRect = child.get_node(\"BackgroundRight\")\n\t\t\tbackground.modulate = value\n\t\tTools._slots[MOUSE_BUTTON_RIGHT].tool_node.color_rect.color = value\n\nvar default_width := 64  ## Found in Preferences. The default width of startup project.\nvar default_height := 64  ## Found in Preferences. The default height of startup project.\n## Found in Preferences. The fill color of startup project.\nvar default_fill_color := Color(0, 0, 0, 0)\n## Found in Preferences. The distance to the guide or grig below which cursor snapping activates.\nvar snapping_distance := 32.0\n## Contains dictionaries of individual grids.\nvar grids: Array[Grid] = []\n## Found in Preferences. The minimum zoom after which pixel grid gets drawn if enabled.\nvar pixel_grid_show_at_zoom := 1500.0:  # percentage\n\tset(value):\n\t\tif value == pixel_grid_show_at_zoom:\n\t\t\treturn\n\t\tpixel_grid_show_at_zoom = value\n\t\tif is_instance_valid(canvas.pixel_grid):\n\t\t\tcanvas.pixel_grid.queue_redraw()\n## Found in Preferences. The color of pixel grid.\nvar pixel_grid_color := Color(\"21212191\"):\n\tset(value):\n\t\tif value == pixel_grid_color:\n\t\t\treturn\n\t\tpixel_grid_color = value\n\t\tif is_instance_valid(canvas.pixel_grid):\n\t\t\tcanvas.pixel_grid.queue_redraw()\n## Found in Preferences. The color of guides.\nvar guide_color := Color.PURPLE:\n\tset(value):\n\t\tif value == guide_color:\n\t\t\treturn\n\t\tguide_color = value\n\t\tfor guide in canvas.get_children():\n\t\t\tif guide is Guide:\n\t\t\t\tguide.set_color(guide_color)\n## Found in Preferences. The size of checkers in the checker background.\nvar checker_size := 10:\n\tset(value):\n\t\tif value == checker_size:\n\t\t\treturn\n\t\tchecker_size = value\n\t\ttransparent_checker.update_rect()\n## Found in Preferences. The color of first checker.\nvar checker_color_1 := Color(0.47, 0.47, 0.47, 1):\n\tset(value):\n\t\tif value == checker_color_1:\n\t\t\treturn\n\t\tchecker_color_1 = value\n\t\ttransparent_checker.update_rect()\n## Found in Preferences. The color of second checker.\nvar checker_color_2 := Color(0.34, 0.35, 0.34, 1):\n\tset(value):\n\t\tif value == checker_color_2:\n\t\t\treturn\n\t\tchecker_color_2 = value\n\t\ttransparent_checker.update_rect()\n## Found in Preferences. The color of second checker.\nvar checker_follow_movement := false:\n\tset(value):\n\t\tif value == checker_follow_movement:\n\t\t\treturn\n\t\tchecker_follow_movement = value\n\t\ttransparent_checker.update_rect()\n## Found in Preferences. If [code]true[/code], the checker follows zoom.\nvar checker_follow_scale := false:\n\tset(value):\n\t\tif value == checker_follow_scale:\n\t\t\treturn\n\t\tchecker_follow_scale = value\n\t\ttransparent_checker.update_rect()\n## Found in Preferences. Opacity of the sprites rendered on the extended area of tile-mode.\nvar tilemode_opacity := 1.0:\n\tset(value):\n\t\tif value == tilemode_opacity:\n\t\t\treturn\n\t\ttilemode_opacity = value\n\t\tif is_instance_valid(canvas.tile_mode):\n\t\t\tcanvas.tile_mode.queue_redraw()\n\n## Found in Preferences. If [code]true[/code], layers get selected when their buttons are pressed.\nvar select_layer_on_button_click := false\n## Found in Preferences. The onion color of past frames.\nvar onion_skinning_past_color := Color.RED:\n\tset(value):\n\t\tif value == onion_skinning_past_color:\n\t\t\treturn\n\t\tonion_skinning_past_color = value\n\t\tif is_instance_valid(canvas.onion_past):\n\t\t\tcanvas.onion_past.blue_red_color = value\n\t\t\tcanvas.onion_past.queue_redraw()\n## Found in Preferences. The onion color of future frames.\nvar onion_skinning_future_color := Color.BLUE:\n\tset(value):\n\t\tif value == onion_skinning_future_color:\n\t\t\treturn\n\t\tonion_skinning_future_color = value\n\t\tif is_instance_valid(canvas.onion_future):\n\t\t\tcanvas.onion_future.blue_red_color = value\n\t\t\tcanvas.onion_future.queue_redraw()\n\n## Found in Preferences. If [code]true[/code], the selection rect has animated borders.\nvar selection_animated_borders := true:\n\tset(value):\n\t\tif value == selection_animated_borders:\n\t\t\treturn\n\t\tselection_animated_borders = value\n\t\tif is_instance_valid(canvas.selection):\n\t\t\tvar marching_ants: Sprite2D = canvas.selection.marching_ants_outline\n\t\t\tmarching_ants.material.set_shader_parameter(\"animated\", selection_animated_borders)\n## Found in Preferences. The first color of the selection borders.\nvar selection_border_color_1 := Color.WHITE:\n\tset(value):\n\t\tif value == selection_border_color_1:\n\t\t\treturn\n\t\tselection_border_color_1 = value\n\t\tif is_instance_valid(canvas.selection):\n\t\t\tvar marching_ants: Sprite2D = canvas.selection.marching_ants_outline\n\t\t\tmarching_ants.material.set_shader_parameter(\"first_color\", selection_border_color_1)\n\t\t\tcanvas.selection.queue_redraw()\n## Found in Preferences. The second color of the selection borders.\nvar selection_border_color_2 := Color.BLACK:\n\tset(value):\n\t\tif value == selection_border_color_2:\n\t\t\treturn\n\t\tselection_border_color_2 = value\n\t\tif is_instance_valid(canvas.selection):\n\t\t\tvar marching_ants: Sprite2D = canvas.selection.marching_ants_outline\n\t\t\tmarching_ants.material.set_shader_parameter(\"second_color\", selection_border_color_2)\n\t\t\tcanvas.selection.queue_redraw()\n## Found in Preferences. The second color of the selection borders.\nvar transformation_preview_alpha := 0.5:\n\tset(value):\n\t\tif value == transformation_preview_alpha:\n\t\t\treturn\n\t\ttransformation_preview_alpha = value\n\t\tif is_instance_valid(canvas.selection):\n\t\t\tcanvas.selection.queue_redraw()\n\n## Found in Preferences. If [code]true[/code], Pixelorama pauses when unfocused to save CPU usage.\nvar pause_when_unfocused := true\n## Found in Preferences. The maximum FPS value Pixelorama can reach. 0 means no limit.\nvar fps_limit := 0:\n\tset(value):\n\t\tif value == fps_limit:\n\t\t\treturn\n\t\tfps_limit = value\n\t\tEngine.max_fps = fps_limit\n## Found in Preferences. The maximum amount of undo steps projects can use. 0 means no limit.\nvar max_undo_steps := 0:\n\tset(value):\n\t\tif value == max_undo_steps:\n\t\t\treturn\n\t\tmax_undo_steps = value\n\t\tfor project in projects:\n\t\t\tproject.undo_redo.max_steps = max_undo_steps\n## Found in Preferences. Affects the per_pixel_transparency project setting.\n## If [code]true[/code], it allows for the window to be transparent.\n## This affects performance, so keep it [code]false[/code] if you don't need it.\nvar update_continuously := false:\n\tset(value):\n\t\tupdate_continuously = value\n\t\tOS.low_processor_usage_mode = !value\nvar window_transparency := false:\n\tset(value):\n\t\tif value == window_transparency:\n\t\t\treturn\n\t\twindow_transparency = value\n\t\t_save_to_override_file()\nvar dummy_audio_driver := false:\n\tset(value):\n\t\tif value != dummy_audio_driver:\n\t\t\tdummy_audio_driver = value\n\t\t\t_save_to_override_file()\n\n## Found in Preferences. The maximum limit of recent sessions that can be stored as backup.\nvar max_backed_sessions := 20.0:\n\tset(value):\n\t\tif value == max_backed_sessions:\n\t\t\treturn\n\t\tmax_backed_sessions = value\n\t\tOpenSave.enforce_backed_sessions_limit()\n## Found in Preferences. The time (in minutes) after which backup is created (if enabled).\nvar autosave_interval := 1.0:\n\tset(value):\n\t\tif value == autosave_interval:\n\t\t\treturn\n\t\tautosave_interval = value\n\t\tOpenSave.update_autosave()\n## Found in Preferences. If [code]true[/code], generation of backups get enabled.\nvar enable_autosave := true:\n\tset(value):\n\t\tif value == enable_autosave:\n\t\t\treturn\n\t\tenable_autosave = value\n\t\tOpenSave.update_autosave()\n## Found in Preferences. The index of tablet driver used by Pixelorama.\nvar tablet_driver := 0:\n\tset(value):\n\t\tif value == tablet_driver:\n\t\t\treturn\n\t\ttablet_driver = value\n\t\tvar tablet_driver_name := DisplayServer.tablet_get_driver_name(tablet_driver)\n\t\tDisplayServer.tablet_set_current_driver(tablet_driver_name)\n\n# Tools & options\n## Found in Preferences. If [code]true[/code], the cursor's left tool icon is visible.\nvar show_left_tool_icon := true\n## Found in Preferences. If [code]true[/code], the cursor's right tool icon is visible.\nvar show_right_tool_icon := true\n## Found in Preferences. If [code]true[/code], the left tool's brush indicator is visible.\nvar left_square_indicator_visible := true\n## Found in Preferences. If [code]true[/code], the right tool's brush indicator is visible.\nvar right_square_indicator_visible := true\n## Found in Preferences. If [code]true[/code], native cursors are used instead of default cursors.\nvar native_cursors := false:\n\tset(value):\n\t\tif value == native_cursors:\n\t\t\treturn\n\t\tif DisplayServer.get_name() == \"headless\":\n\t\t\treturn\n\t\tnative_cursors = value\n\t\tif native_cursors:\n\t\t\tInput.set_custom_mouse_cursor(null, Input.CURSOR_CROSS, Vector2(15, 15))\n\t\telse:\n\t\t\tcontrol.set_custom_cursor()\n## Found in Preferences. If [code]true[/code], cursor becomes cross shaped when hovering the canvas.\nvar cross_cursor := true\n#endregion\n\n#region View menu options\n## If [code]true[/code], the canvas is in greyscale.\nvar greyscale_view := false\n## If [code]true[/code], the content of canvas is flipped.\nvar mirror_view := false\n## If [code]true[/code], the grid is visible.\nvar draw_grid := false\n## If [code]true[/code], the pixel grid is visible.\nvar draw_pixel_grid := false\n## If [code]true[/code], the rulers are visible.\nvar show_rulers := true:\n\tset(value):\n\t\tshow_rulers = value\n\t\tget_tree().set_group(&\"CanvasRulers\", \"visible\", value)\n## If [code]true[/code], the guides are visible.\nvar show_guides := true\n## If [code]true[/code], the mouse guides are visible.\nvar show_mouse_guides := false\n## If [code]true[/code], the indices of color are shown.\nvar show_pixel_indices := false:\n\tset(value):\n\t\tshow_pixel_indices = value\n\t\tif is_instance_valid(canvas.color_index):\n\t\t\tcanvas.color_index.enabled = value\nvar show_reference_images := true:\n\tset(value):\n\t\tshow_reference_images = value\n\t\tif is_instance_valid(canvas.reference_image_container):\n\t\t\tcanvas.reference_image_container.visible = show_reference_images\nvar display_layer_effects := true:\n\tset(value):\n\t\tif value == display_layer_effects:\n\t\t\treturn\n\t\tdisplay_layer_effects = value\n\t\tif is_instance_valid(top_menu_container):\n\t\t\ttop_menu_container.view_menu.set_item_checked(ViewMenu.DISPLAY_LAYER_EFFECTS, value)\n\t\t\tcanvas.update_all_layers = true\n\t\t\tcanvas.queue_redraw()\n## If [code]true[/code], cursor snaps to the boundary of rectangular grid boxes.\nvar snap_to_rectangular_grid_boundary := false\n## If [code]true[/code], cursor snaps to the center of rectangular grid boxes.\nvar snap_to_rectangular_grid_center := false\n## If [code]true[/code], cursor snaps to regular guides.\nvar snap_to_guides := false\n## If [code]true[/code], cursor snaps to perspective guides.\nvar snap_to_perspective_guides := false\n#endregion\n\n# Onion skinning options\nvar onion_skinning := false  ## If [code]true[/code], onion skinning is enabled.\nvar onion_skinning_past_rate := 1  ## Number of past frames shown when onion skinning is enabled.\n## Number of future frames shown when onion skinning is enabled.\nvar onion_skinning_future_rate := 1\nvar onion_skinning_blue_red := false  ## If [code]true[/code], then blue-red mode is enabled.\n\n## The current version of pixelorama\nvar current_version: String = ProjectSettings.get_setting(\"application/config/version\")\n\n# Nodes\n## The [PackedScene] of the button used by layers in the timeline.\nvar layer_button_node := preload(\"res://src/UI/Timeline/LayerButton.tscn\")\n## The [PackedScene] of the button used by cels in the timeline.\nvar cel_button_scene: PackedScene = load(\"res://src/UI/Timeline/CelButton.tscn\")\n\n## The control node (aka Main node). It has the [param Main.gd] script attached.\n@onready var control := get_tree().current_scene as Control\n## The project tabs bar. It has the [param Tabs.gd] script attached.\n@onready var tabs: TabBar = control.find_child(\"TabBar\")\n## Contains viewport of the main canvas. It has the [param ViewportContainer.gd] script attached.\n@onready var main_viewport: SubViewportContainer = control.find_child(\"SubViewportContainer\")\n## The main canvas node. It has the [param Canvas.gd] script attached.\n@onready var canvas: Canvas = main_viewport.find_child(\"Canvas\")\n## Camera of the main canvas.\n@onready var camera: CanvasCamera = main_viewport.find_child(\"Camera2D\")\n## Transparent checker of the main canvas. It has the [param TransparentChecker.gd] script attached.\n@onready var transparent_checker: ColorRect = control.find_child(\"TransparentChecker\")\n## The top menu container. It has the [param TopMenuContainer.gd] script attached.\n@onready var top_menu_container: Panel = control.find_child(\"TopMenuContainer\")\n## The animation timeline. It has the [param AnimationTimeline.gd] script attached.\n@onready var animation_timeline: Panel = control.find_child(\"Animation Timeline\")\n## The palette panel. It has the [param PalettePanel.gd] script attached.\n@onready var palette_panel: PalettePanel = control.find_child(\"Palettes\")\n## Popup dialog that displays brushes. It has the [param BrushesPopup.gd] script attached.\n@onready var brushes_popup: Popup = control.find_child(\"BrushesPopup\")\n## Popup dialog that displays patterns. It has the [param PatternsPopup.gd] script attached.\n@onready var patterns_popup: Popup = control.find_child(\"PatternsPopup\")\n## Dialog used to export images. It has the [param ExportDialog.gd] script attached.\n@onready var export_dialog: AcceptDialog = control.find_child(\"ExportDialog\")\n## An error dialog to show errors.\n@onready var error_dialog: AcceptDialog = control.find_child(\"ErrorDialog\")\n\n\nclass Grid:\n\tvar grid_type := GridTypes.CARTESIAN:\n\t\tset(value):\n\t\t\tif value == grid_type:\n\t\t\t\treturn\n\t\t\tgrid_type = value\n\t\t\tif is_instance_valid(Global.canvas.grid):\n\t\t\t\tGlobal.canvas.grid.queue_redraw()\n\t## Found in Preferences. The size of the grid.\n\tvar grid_size := Vector2i(2, 2):\n\t\tset(value):\n\t\t\tif value == grid_size:\n\t\t\t\treturn\n\t\t\tgrid_size = value\n\t\t\tif is_instance_valid(Global.canvas.grid):\n\t\t\t\tGlobal.canvas.grid.queue_redraw()\n\t## Found in Preferences. The grid offset from top-left corner of the canvas.\n\tvar grid_offset := Vector2i.ZERO:\n\t\tset(value):\n\t\t\tif value == grid_offset:\n\t\t\t\treturn\n\t\t\tgrid_offset = value\n\t\t\tif is_instance_valid(Global.canvas.grid):\n\t\t\t\tGlobal.canvas.grid.queue_redraw()\n\t## Found in Preferences. If [code]true[/code], The grid draws over the area extended by\n\t## tile-mode as well.\n\tvar grid_draw_over_tile_mode := false:\n\t\tset(value):\n\t\t\tif value == grid_draw_over_tile_mode:\n\t\t\t\treturn\n\t\t\tgrid_draw_over_tile_mode = value\n\t\t\tif is_instance_valid(Global.canvas.grid):\n\t\t\t\tGlobal.canvas.grid.queue_redraw()\n\t## Found in Preferences. The color of grid.\n\tvar grid_color := Color.BLACK:\n\t\tset(value):\n\t\t\tif value == grid_color:\n\t\t\t\treturn\n\t\t\tgrid_color = value\n\t\t\tif is_instance_valid(Global.canvas.grid):\n\t\t\t\tGlobal.canvas.grid.queue_redraw()\n\t## Found in Preferences. The enables/disables pixelation mode of grid.\n\tvar is_pixelated := false:\n\t\tset(value):\n\t\t\tif value == is_pixelated:\n\t\t\t\treturn\n\t\t\tis_pixelated = value\n\t\t\tif is_instance_valid(Global.canvas.grid):\n\t\t\t\tGlobal.canvas.grid.queue_redraw()\n\t## Found in Preferences. contains special keywords that may not be common among grids.\n\tvar special_flags := PackedStringArray():\n\t\tset(value):\n\t\t\tif value == special_flags:\n\t\t\t\treturn\n\t\t\tspecial_flags = value\n\t\t\tif is_instance_valid(Global.canvas.grid):\n\t\t\t\tGlobal.canvas.grid.queue_redraw()\n\n\tfunc _init(properties := {}) -> void:\n\t\tGlobal.grids.append(self)\n\t\tfor prop in properties.keys():\n\t\t\tif !get(prop) and typeof(properties[prop]) == TYPE_BOOL:\n\t\t\t\tif properties[prop]:\n\t\t\t\t\tspecial_flags.append(prop)\n\t\t\tset(prop, properties[prop])\n\n\nfunc _init() -> void:\n\t# Load settings from the config file\n\tconfig_cache.load(CONFIG_PATH)\n\tloaded_locales.sort()  # Make sure locales are always sorted\n\tvar saved_locale := OS.get_locale()\n\t# Load language\n\tif config_cache.has_section_key(\"preferences\", \"locale\"):\n\t\tsaved_locale = config_cache.get_value(\"preferences\", \"locale\")\n\tset_locale(saved_locale, false)  # If no language is saved, OS' locale is used\n\t# Set Data Directories\n\tif OS.has_feature(\"template\"):\n\t\troot_directory = OS.get_executable_path().get_base_dir()\n\tif OS.get_name() == \"macOS\":\n\t\tdata_directories.append(\n\t\t\troot_directory.path_join(\"../Resources\").path_join(CONFIG_SUBDIR_NAME)\n\t\t)\n\tdata_directories.append(root_directory.path_join(CONFIG_SUBDIR_NAME))\n\tif OS.get_name() in [\"Linux\", \"FreeBSD\", \"NetBSD\", \"OpenBSD\", \"BSD\"]:\n\t\t# Checks the list of files var, and processes them.\n\t\tif OS.has_environment(\"XDG_DATA_DIRS\"):\n\t\t\tvar raw_env_var := OS.get_environment(\"XDG_DATA_DIRS\")  # includes empties.\n\t\t\tvar unappended_subdirs := raw_env_var.split(\":\", true)\n\t\t\tfor unapp_subdir in unappended_subdirs:\n\t\t\t\tdata_directories.append(unapp_subdir.path_join(HOME_SUBDIR_NAME))\n\t\telse:\n\t\t\t# Create defaults\n\t\t\tfor default_loc in [\"/usr/local/share\", \"/usr/share\"]:\n\t\t\t\tdata_directories.append(default_loc.path_join(HOME_SUBDIR_NAME))\n\t# Set Favourites list in File dialogs\n\tif config_cache.has_section_key(\"FileDialog\", \"favourite_paths\"):\n\t\tFileDialog.set_favorite_list(\n\t\t\tconfig_cache.get_value(\"FileDialog\", \"favourite_paths\", PackedStringArray())\n\t\t)\n\tif config_cache.has_section_key(\"FileDialog\", \"recent_paths\"):\n\t\tFileDialog.set_recent_list(\n\t\t\tconfig_cache.get_value(\"FileDialog\", \"recent_paths\", PackedStringArray())\n\t\t)\n\t# Load overridden project settings\n\tif ProjectSettings.get_setting(\"display/window/tablet_driver\") == \"winink\":\n\t\ttablet_driver = 1\n\tsingle_window_mode = ProjectSettings.get_setting(\"display/window/subwindows/embed_subwindows\")\n\twindow_transparency = ProjectSettings.get_setting(\n\t\t\"display/window/per_pixel_transparency/allowed\"\n\t)\n\tdummy_audio_driver = ProjectSettings.get_setting(\"audio/driver/driver\") == \"Dummy\"\n\n\nfunc _ready() -> void:\n\tif DirAccess.dir_exists_absolute(FONTS_DIR_PATH):\n\t\tvar fonts_dir := DirAccess.open(FONTS_DIR_PATH)\n\t\tvar files := fonts_dir.get_files()\n\t\tfor file in files:\n\t\t\tvar font_file := OpenSave.open_font_file(FONTS_DIR_PATH.path_join(file))\n\t\t\tif not font_file.data.is_empty():\n\t\t\t\tloaded_fonts.append(font_file)\n\t# Initialize Grid\n\tGrid.new()  # gets auto added to grids array\n\t_initialize_keychain()\n\tdefault_width = config_cache.get_value(\"preferences\", \"default_width\", default_width)\n\tdefault_height = config_cache.get_value(\"preferences\", \"default_height\", default_height)\n\tdefault_fill_color = config_cache.get_value(\n\t\t\"preferences\", \"default_fill_color\", default_fill_color\n\t)\n\tvar proj_size := Vector2i(default_width, default_height)\n\tprojects.append(Project.new([], tr(\"untitled\"), proj_size))\n\tcurrent_project = projects[0]\n\tcurrent_project.fill_color = default_fill_color\n\n\t# Load preferences from the config file\n\tif config_cache.has_section(\"preferences\"):\n\t\tfor pref in config_cache.get_section_keys(\"preferences\"):\n\t\t\tif get(pref) == null:\n\t\t\t\tcontinue\n\t\t\tvar value = config_cache.get_value(\"preferences\", pref)\n\t\t\tif pref == \"grids\":\n\t\t\t\tif value:\n\t\t\t\t\tupdate_grids(value)\n\t\t\telse:\n\t\t\t\tset(pref, value)\n\tif OS.is_sandboxed() or OS.has_feature(\"mobile\"):\n\t\tGlobal.use_native_file_dialogs = true\n\tawait get_tree().process_frame\n\tproject_switched.emit()\n\tcanvas.color_index.enabled = show_pixel_indices  # Initialize color index preview\n\n\nfunc update_grids(grids_data: Dictionary):\n\t# Remove old grids\n\tgrids.clear()\n\tif is_instance_valid(Global.canvas.grid):\n\t\tGlobal.canvas.grid.queue_redraw()\n\t# ADD new ones\n\tfor grid_idx in grids_data.size():\n\t\tGrid.new(grids_data[grid_idx])  # gets auto added to grids array\n\n\nfunc _initialize_keychain() -> void:\n\tKeychain.config_file = config_cache\n\tKeychain.actions = {\n\t\t&\"new_file\": Keychain.InputAction.new(\"\", \"File menu\", true),\n\t\t&\"open_file\": Keychain.InputAction.new(\"\", \"File menu\", true),\n\t\t&\"open_last_project\": Keychain.InputAction.new(\"\", \"File menu\", true),\n\t\t&\"save_file\": Keychain.InputAction.new(\"\", \"File menu\", true),\n\t\t&\"save_file_as\": Keychain.InputAction.new(\"\", \"File menu\", true),\n\t\t&\"export_file\": Keychain.InputAction.new(\"\", \"File menu\", true),\n\t\t&\"export_file_as\": Keychain.InputAction.new(\"\", \"File menu\", true),\n\t\t&\"quit\": Keychain.InputAction.new(\"\", \"File menu\", true),\n\t\t&\"redo\": Keychain.InputAction.new(\"\", \"Edit menu\", true),\n\t\t&\"undo\": Keychain.InputAction.new(\"\", \"Edit menu\", true),\n\t\t&\"undo_history\": Keychain.InputAction.new(\"\", \"Edit menu\", true),\n\t\t&\"cut\": Keychain.InputAction.new(\"\", \"Edit menu\", true),\n\t\t&\"copy\": Keychain.InputAction.new(\"\", \"Edit menu\", true),\n\t\t&\"paste\": Keychain.InputAction.new(\"\", \"Edit menu\", true),\n\t\t&\"paste_in_place\": Keychain.InputAction.new(\"\", \"Edit menu\", true),\n\t\t&\"paste_from_clipboard\": Keychain.InputAction.new(\"\", \"Edit menu\", true),\n\t\t&\"delete\": Keychain.InputAction.new(\"\", \"Edit menu\", true),\n\t\t&\"new_brush\": Keychain.InputAction.new(\"\", \"Edit menu\", true),\n\t\t&\"preferences\": Keychain.InputAction.new(\"\", \"Edit menu\", true),\n\t\t&\"project_properties\": Keychain.InputAction.new(\"\", \"Image menu\", true),\n\t\t&\"scale_image\": Keychain.InputAction.new(\"\", \"Image menu\", true),\n\t\t&\"crop_to_selection\": Keychain.InputAction.new(\"\", \"Image menu\", true),\n\t\t&\"crop_to_content\": Keychain.InputAction.new(\"\", \"Image menu\", true),\n\t\t&\"resize_canvas\": Keychain.InputAction.new(\"\", \"Image menu\", true),\n\t\t&\"reapply_last_effect\": Keychain.InputAction.new(\"\", \"Effects menu\", true),\n\t\t&\"offset_image\": Keychain.InputAction.new(\"\", \"Effects menu\", true),\n\t\t&\"mirror_image\": Keychain.InputAction.new(\"\", \"Effects menu\", true),\n\t\t&\"rotate_image\": Keychain.InputAction.new(\"\", \"Effects menu\", true),\n\t\t&\"invert_colors\": Keychain.InputAction.new(\"\", \"Effects menu\", true),\n\t\t&\"desaturation\": Keychain.InputAction.new(\"\", \"Effects menu\", true),\n\t\t&\"outline\": Keychain.InputAction.new(\"\", \"Effects menu\", true),\n\t\t&\"drop_shadow\": Keychain.InputAction.new(\"\", \"Effects menu\", true),\n\t\t&\"adjust_hsv\": Keychain.InputAction.new(\"\", \"Effects menu\", true),\n\t\t&\"adjust_brightness_contrast\": Keychain.InputAction.new(\"\", \"Effects menu\", true),\n\t\t&\"color_curves\": Keychain.InputAction.new(\"\", \"Effects menu\", true),\n\t\t&\"gaussian_blur\": Keychain.InputAction.new(\"\", \"Effects menu\", true),\n\t\t&\"gradient\": Keychain.InputAction.new(\"\", \"Effects menu\", true),\n\t\t&\"gradient_map\": Keychain.InputAction.new(\"\", \"Effects menu\", true),\n\t\t&\"palettize\": Keychain.InputAction.new(\"\", \"Effects menu\", true),\n\t\t&\"pixelize\": Keychain.InputAction.new(\"\", \"Effects menu\", true),\n\t\t&\"posterize\": Keychain.InputAction.new(\"\", \"Effects menu\", true),\n\t\t&\"center_canvas\": Keychain.InputAction.new(\"\", \"View menu\", true),\n\t\t&\"grayscale_view\": Keychain.InputAction.new(\"\", \"View menu\", true),\n\t\t&\"mirror_view\": Keychain.InputAction.new(\"\", \"View menu\", true),\n\t\t&\"show_grid\": Keychain.InputAction.new(\"\", \"View menu\", true),\n\t\t&\"show_pixel_grid\": Keychain.InputAction.new(\"\", \"View menu\", true),\n\t\t&\"show_pixel_indices\": Keychain.InputAction.new(\"\", \"View menu\", true),\n\t\t&\"show_guides\": Keychain.InputAction.new(\"\", \"View menu\", true),\n\t\t&\"show_rulers\": Keychain.InputAction.new(\"\", \"View menu\", true),\n\t\t&\"show_reference_images\": Keychain.InputAction.new(\"\", \"View menu\", true),\n\t\t&\"display_layer_effects\": Keychain.InputAction.new(\"\", \"View menu\", true),\n\t\t&\"moveable_panels\": Keychain.InputAction.new(\"\", \"Window menu\", true),\n\t\t&\"zen_mode\": Keychain.InputAction.new(\"\", \"Window menu\", true),\n\t\t&\"toggle_fullscreen\": Keychain.InputAction.new(\"\", \"Window menu\", true),\n\t\t&\"clear_selection\": Keychain.InputAction.new(\"\", \"Select menu\", true),\n\t\t&\"select_all\": Keychain.InputAction.new(\"\", \"Select menu\", true),\n\t\t&\"invert_selection\": Keychain.InputAction.new(\"\", \"Select menu\", true),\n\t\t&\"select_cel_area\": Keychain.InputAction.new(\"\", \"Select menu\", true),\n\t\t&\"view_splash_screen\": Keychain.InputAction.new(\"\", \"Help menu\", true),\n\t\t&\"open_docs\": Keychain.InputAction.new(\"\", \"Help menu\", true),\n\t\t&\"issue_tracker\": Keychain.InputAction.new(\"\", \"Help menu\", true),\n\t\t&\"open_editor_data_folder\": Keychain.InputAction.new(\"\", \"Help menu\", true),\n\t\t&\"changelog\": Keychain.InputAction.new(\"\", \"Help menu\", true),\n\t\t&\"about_pixelorama\": Keychain.InputAction.new(\"\", \"Help menu\", true),\n\t\t&\"previous_project\": Keychain.InputAction.new(\"\", \"Canvas\"),\n\t\t&\"next_project\": Keychain.InputAction.new(\"\", \"Canvas\"),\n\t\t&\"zoom_in\": Keychain.InputAction.new(\"\", \"Canvas\"),\n\t\t&\"zoom_out\": Keychain.InputAction.new(\"\", \"Canvas\"),\n\t\t&\"rotate_left\": Keychain.InputAction.new(\"\", \"Canvas\"),\n\t\t&\"rotate_right\": Keychain.InputAction.new(\"\", \"Canvas\"),\n\t\t&\"camera_left\": Keychain.InputAction.new(\"\", \"Canvas\"),\n\t\t&\"camera_right\": Keychain.InputAction.new(\"\", \"Canvas\"),\n\t\t&\"camera_up\": Keychain.InputAction.new(\"\", \"Canvas\"),\n\t\t&\"camera_down\": Keychain.InputAction.new(\"\", \"Canvas\"),\n\t\t&\"pan\": Keychain.InputAction.new(\"\", \"Canvas\"),\n\t\t&\"activate_left_tool\": Keychain.InputAction.new(\"\", \"Canvas\"),\n\t\t&\"activate_right_tool\": Keychain.InputAction.new(\"\", \"Canvas\"),\n\t\t&\"move_mouse_left\": Keychain.InputAction.new(\"\", \"Cursor movement\"),\n\t\t&\"move_mouse_right\": Keychain.InputAction.new(\"\", \"Cursor movement\"),\n\t\t&\"move_mouse_up\": Keychain.InputAction.new(\"\", \"Cursor movement\"),\n\t\t&\"move_mouse_down\": Keychain.InputAction.new(\"\", \"Cursor movement\"),\n\t\t&\"reset_colors_default\": Keychain.InputAction.new(\"\", \"Global tool options\"),\n\t\t&\"switch_colors\": Keychain.InputAction.new(\"\", \"Global tool options\"),\n\t\t&\"horizontal_mirror\": Keychain.InputAction.new(\"\", \"Global tool options\"),\n\t\t&\"vertical_mirror\": Keychain.InputAction.new(\"\", \"Global tool options\"),\n\t\t&\"diagonal_xy_mirror\": Keychain.InputAction.new(\"\", \"Global tool options\"),\n\t\t&\"diagonal_x_minus_y_mirror\": Keychain.InputAction.new(\"\", \"Global tool options\"),\n\t\t&\"pixel_perfect\": Keychain.InputAction.new(\"\", \"Global tool options\"),\n\t\t&\"alpha_lock\": Keychain.InputAction.new(\"\", \"Global tool options\"),\n\t\t&\"new_layer\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"remove_layer\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"move_layer_up\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"move_layer_down\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"clone_layer\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"merge_down_layer\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"add_frame\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"remove_frame\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"clone_frame\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"move_frame_left\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"move_frame_right\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"go_to_first_frame\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"go_to_last_frame\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"go_to_previous_frame\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"go_to_previous_frame_with_same_tag\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"go_to_next_frame\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"go_to_next_frame_with_same_tag\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"go_to_previous_layer\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"go_to_next_layer\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"play_backwards\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"play_forward\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"onion_skinning_toggle\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"loop_toggle\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"onion_skinning_settings\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"layer_visibility\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"layer_lock\": Keychain.InputAction.new(\"\", \"Timeline\"),\n\t\t&\"new_palette\": Keychain.InputAction.new(\"\", \"Palettes\"),\n\t\t&\"edit_palette\": Keychain.InputAction.new(\"\", \"Palettes\"),\n\t\t&\"brush_size_increment\": Keychain.InputAction.new(\"\", \"Tool modifiers\"),\n\t\t&\"brush_size_decrement\": Keychain.InputAction.new(\"\", \"Tool modifiers\"),\n\t\t&\"change_tool_mode\": Keychain.InputAction.new(\"\", \"Tool modifiers\", false),\n\t\t&\"swap_tools\": Keychain.InputAction.new(\"\", \"Tool modifiers\"),\n\t\t&\"draw_create_line\": Keychain.InputAction.new(\"\", \"Draw tools\", false),\n\t\t&\"draw_snap_angle\": Keychain.InputAction.new(\"\", \"Draw tools\", false),\n\t\t&\"draw_color_picker\": Keychain.InputAction.new(\"Quick color picker\", \"Draw tools\", false),\n\t\t&\"change_layer_automatically\": Keychain.InputAction.new(\"\", \"Tools\", false),\n\t\t&\"shape_perfect\": Keychain.InputAction.new(\"\", \"Shape tools\", false),\n\t\t&\"shape_center\": Keychain.InputAction.new(\"\", \"Shape tools\", false),\n\t\t&\"shape_displace\": Keychain.InputAction.new(\"\", \"Shape tools\", false),\n\t\t&\"selection_add\": Keychain.InputAction.new(\"\", \"Selection tools\", false),\n\t\t&\"selection_subtract\": Keychain.InputAction.new(\"\", \"Selection tools\", false),\n\t\t&\"selection_intersect\": Keychain.InputAction.new(\"\", \"Selection tools\", false),\n\t\t&\"transformation_confirm\": Keychain.InputAction.new(\"\", \"Transformation tools\", false),\n\t\t&\"transformation_cancel\": Keychain.InputAction.new(\"\", \"Transformation tools\", false),\n\t\t&\"transform_snap_axis\": Keychain.InputAction.new(\"\", \"Transformation tools\", false),\n\t\t&\"transform_snap_grid\": Keychain.InputAction.new(\"\", \"Transformation tools\", false),\n\t\t&\"transform_move_selection_only\":\n\t\tKeychain.InputAction.new(\"\", \"Transformation tools\", false),\n\t\t&\"transform_copy_selection_content\":\n\t\tKeychain.InputAction.new(\"\", \"Transformation tools\", false),\n\t\t&\"reference_rotate\": Keychain.InputAction.new(\"\", \"Reference images\", false),\n\t\t&\"reference_scale\": Keychain.InputAction.new(\"\", \"Reference images\", false),\n\t\t&\"reference_quick_menu\": Keychain.InputAction.new(\"\", \"Reference images\", false),\n\t\t&\"cancel_reference_transform\": Keychain.InputAction.new(\"\", \"Reference images\", false),\n\t\t&\"toggle_draw_tiles_mode\": Keychain.InputAction.new(\"\", \"Tileset panel\", false),\n\t\t&\"tile_edit_mode_manual\": Keychain.InputAction.new(\"\", \"Tileset panel\", false),\n\t\t&\"tile_edit_mode_auto\": Keychain.InputAction.new(\"\", \"Tileset panel\", false),\n\t\t&\"tile_edit_mode_stack\": Keychain.InputAction.new(\"\", \"Tileset panel\", false),\n\t\t&\"tile_rotate_left\": Keychain.InputAction.new(\"\", \"Tileset panel\", false),\n\t\t&\"tile_rotate_right\": Keychain.InputAction.new(\"\", \"Tileset panel\", false),\n\t\t&\"tile_flip_horizontal\": Keychain.InputAction.new(\"\", \"Tileset panel\", false),\n\t\t&\"tile_flip_vertical\": Keychain.InputAction.new(\"\", \"Tileset panel\", false),\n\t\t&\"mm_change_brush_size\":\n\t\tKeychain.MouseMovementInputAction.new(\n\t\t\t\"Change brush size\", \"Mouse drag\", false, &\"mm_change_brush_size\"\n\t\t),\n\t\t&\"mm_color_change_hue\":\n\t\tKeychain.MouseMovementInputAction.new(\n\t\t\t\"Color change hue\", \"Mouse drag\", false, &\"mm_color_change_hue\", Vector2.DOWN, 0.001\n\t\t),\n\t\t&\"mm_color_change_saturation\":\n\t\tKeychain.MouseMovementInputAction.new(\n\t\t\t\"Color change saturation\",\n\t\t\t\"Mouse drag\",\n\t\t\tfalse,\n\t\t\t&\"mm_color_change_saturation\",\n\t\t\tVector2.RIGHT,\n\t\t\t0.001\n\t\t),\n\t\t&\"mm_color_change_value\":\n\t\tKeychain.MouseMovementInputAction.new(\n\t\t\t\"Color change value\", \"Mouse drag\", false, &\"mm_color_change_value\", Vector2.DOWN, 0.001\n\t\t),\n\t\t&\"mm_color_change_alpha\":\n\t\tKeychain.MouseMovementInputAction.new(\n\t\t\t\"Color change alpha\",\n\t\t\t\"Mouse drag\",\n\t\t\tfalse,\n\t\t\t&\"mm_color_change_alpha\",\n\t\t\tVector2.RIGHT,\n\t\t\t0.001\n\t\t),\n\t}\n\n\tKeychain.groups = {\n\t\t\"Canvas\": Keychain.InputGroup.new(\"\", false),\n\t\t\"Cursor movement\": Keychain.InputGroup.new(\"Canvas\"),\n\t\t\"Reference images\": Keychain.InputGroup.new(\"Canvas\"),\n\t\t\"Timeline\": Keychain.InputGroup.new(),\n\t\t\"Global tool options\": Keychain.InputGroup.new(),\n\t\t\"Palettes\": Keychain.InputGroup.new(),\n\t\t\"Tools\": Keychain.InputGroup.new(),\n\t\t\"Left\": Keychain.InputGroup.new(\"Tools\"),\n\t\t\"Right\": Keychain.InputGroup.new(\"Tools\"),\n\t\t\"Menu\": Keychain.InputGroup.new(),\n\t\t\"File menu\": Keychain.InputGroup.new(\"Menu\"),\n\t\t\"Edit menu\": Keychain.InputGroup.new(\"Menu\"),\n\t\t\"View menu\": Keychain.InputGroup.new(\"Menu\"),\n\t\t\"Select menu\": Keychain.InputGroup.new(\"Menu\"),\n\t\t\"Image menu\": Keychain.InputGroup.new(\"Menu\"),\n\t\t\"Effects menu\": Keychain.InputGroup.new(\"Menu\"),\n\t\t\"Window menu\": Keychain.InputGroup.new(\"Menu\"),\n\t\t\"Help menu\": Keychain.InputGroup.new(\"Menu\"),\n\t\t\"Tool modifiers\": Keychain.InputGroup.new(),\n\t\t\"Draw tools\": Keychain.InputGroup.new(\"Tool modifiers\"),\n\t\t\"Shape tools\": Keychain.InputGroup.new(\"Tool modifiers\"),\n\t\t\"Selection tools\": Keychain.InputGroup.new(\"Tool modifiers\"),\n\t\t\"Transformation tools\": Keychain.InputGroup.new(\"Tool modifiers\"),\n\t\t\"Tileset panel\": Keychain.InputGroup.new(),\n\t\t\"Mouse drag\": Keychain.InputGroup.new(),\n\t}\n\tKeychain.ignore_actions = [\"left_mouse\", \"right_mouse\", \"middle_mouse\", \"shift\", \"ctrl\"]\n\n\n## Generates an animated notification label showing [param text].\nfunc notification_label(text: String) -> void:\n\tif not show_notification_label:\n\t\treturn\n\tvar notif := NotificationLabel.new()\n\tnotif.text = tr(text)\n\tnotif.position = main_viewport.global_position\n\tnotif.position.y += main_viewport.size.y\n\tcontrol.add_child(notif)\n\n\n## Performs the general, bare minimum stuff needed after an undo is done.\nfunc general_undo(project := current_project) -> void:\n\tvar action_name := project.undo_redo.get_current_action_name()\n\tnotification_label(\"Undo: %s\" % action_name)\n\n\n## Performs the general, bare minimum stuff needed after a redo is done.\nfunc general_redo(project := current_project) -> void:\n\tif control.redone:\n\t\tvar action_name := project.undo_redo.get_current_action_name()\n\t\tnotification_label(\"Redo: %s\" % action_name)\n\n\n## Performs actions done after an undo or redo is done. this takes [member general_undo] and\n## [member general_redo] a step further. Does further work if the current action requires it\n## like refreshing textures, redraw UI elements etc...[br]\n## [param frame_index] and [param layer_index] are there for optimization. if the undo or redo\n## happens only in one cel then the cel's frame and layer should be passed to [param frame_index]\n## and [param layer_index] respectively, otherwise the entire timeline will be refreshed.\nfunc undo_or_redo(\n\tundo: bool, frame_index := -1, layer_index := -1, project := current_project\n) -> void:\n\tif undo:\n\t\tgeneral_undo(project)\n\telse:\n\t\tgeneral_redo(project)\n\tvar action_name := project.undo_redo.get_current_action_name()\n\tif (\n\t\taction_name\n\t\tin [\n\t\t\t\"Draw\",\n\t\t\t\"Draw Shape\",\n\t\t\t\"Select\",\n\t\t\t\"Move Selection\",\n\t\t\t\"Scale\",\n\t\t\t\"Center Frames\",\n\t\t\t\"Merge Layer\",\n\t\t\t\"Link Cel\",\n\t\t\t\"Unlink Cel\"\n\t\t]\n\t):\n\t\tif layer_index > -1 and frame_index > -1:\n\t\t\tvar cel := project.frames[frame_index].cels[layer_index]\n\t\t\tif action_name == \"Scale\":\n\t\t\t\tcel.size_changed(project.size)\n\t\t\tcanvas.update_texture(layer_index, frame_index, project, undo)\n\t\telse:\n\t\t\tfor i in project.frames.size():\n\t\t\t\tfor j in project.layers.size():\n\t\t\t\t\tvar cel := project.frames[i].cels[j]\n\t\t\t\t\tif action_name == \"Scale\":\n\t\t\t\t\t\tcel.size_changed(project.size)\n\t\t\t\t\tcanvas.update_texture(j, i, project, undo)\n\n\t\tcanvas.selection.queue_redraw()\n\t\tif action_name == \"Scale\":\n\t\t\tfor i in project.frames.size():\n\t\t\t\tfor j in project.layers.size():\n\t\t\t\t\tvar current_cel := project.frames[i].cels[j]\n\t\t\t\t\tif current_cel is not Cel3D:\n\t\t\t\t\t\tcurrent_cel.image_texture.set_image(current_cel.get_image())\n\t\t\tcanvas.camera_zoom()\n\t\t\tcanvas.grid.queue_redraw()\n\t\t\tcanvas.pixel_grid.queue_redraw()\n\t\t\tproject.selection_map_changed()\n\n\tawait RenderingServer.frame_post_draw\n\tcanvas.queue_redraw()\n\tfor canvas_preview in get_tree().get_nodes_in_group(\"CanvasPreviews\"):\n\t\tcanvas_preview.queue_redraw()\n\tif !project.has_changed:\n\t\tif project == current_project:\n\t\t\tget_window().title = get_window().title + \"(*)\"\n\tproject.has_changed = true\n\n\n## Use this to prepare Pixelorama before opening a dialog.\nfunc dialog_open(open: bool, is_file_dialog := false) -> void:\n\tif is_file_dialog and use_native_file_dialogs:\n\t\treturn\n\tvar dim_color := Color.WHITE\n\tif open:\n\t\tif dim_on_popup:\n\t\t\tdim_color = Color(0.5, 0.5, 0.5)\n\n\tvar tween := create_tween().set_trans(Tween.TRANS_LINEAR).set_ease(Tween.EASE_OUT)\n\ttween.tween_property(control, \"modulate\", dim_color, 0.1)\n\n\nfunc popup_error(text: String) -> void:\n\terror_dialog.set_text(text)\n\terror_dialog.popup_centered_clamped()\n\tdialog_open(true)\n\n\n## sets the [member BaseButton.disabled] property of the [param button] to [param disable],\n## changes the cursor shape for it accordingly, and dims/brightens any textures it may have.\nfunc disable_button(button: BaseButton, disable: bool) -> void:\n\tbutton.disabled = disable\n\tif disable:\n\t\tbutton.mouse_default_cursor_shape = Control.CURSOR_FORBIDDEN\n\telse:\n\t\tbutton.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\n\tif button is Button:\n\t\tfor c in button.get_children():\n\t\t\tif c is TextureRect:\n\t\t\t\tc.modulate.a = 0.5 if disable else 1.0\n\t\t\t\tbreak\n\n\n## Changes the texture of the [param texture_rect] to another texture of name [param new_file_name]\n## present in the same directory as the old one.\nfunc change_button_texturerect(texture_rect: TextureRect, new_file_name: String) -> void:\n\tif !texture_rect.texture:\n\t\treturn\n\tvar file_name := texture_rect.texture.resource_path.get_basename().get_file()\n\tvar directory_path := texture_rect.texture.resource_path.get_basename().replace(file_name, \"\")\n\ttexture_rect.texture = load(directory_path.path_join(new_file_name))\n\n\n## Joins each [String] path in [param basepaths] with [param subpath] using\n## [method String.path_join]\nfunc path_join_array(basepaths: PackedStringArray, subpath: String) -> PackedStringArray:\n\tvar res := PackedStringArray()\n\tfor _path in basepaths:\n\t\tres.append(_path.path_join(subpath))\n\treturn res\n\n\nfunc set_locale(locale: String, load_keychain := true) -> void:\n\tlocale = find_nearest_locale(locale)\n\tif not locale in TranslationServer.get_loaded_locales():\n\t\tvar translation := load(\"res://Translations/%s.po\" % locale)\n\t\tif is_instance_valid(translation) and translation is Translation:\n\t\t\tTranslationServer.add_translation(translation)\n\t\telse:\n\t\t\tprinterr(\"Translation %s for locale %s failed to load.\" % [translation, locale])\n\t\t\treturn\n\t\tif load_keychain:\n\t\t\tKeychain.load_translation(locale)\n\tTranslationServer.set_locale(locale)\n\n\nfunc find_nearest_locale(locale: String) -> String:\n\tif locale in loaded_locales:\n\t\treturn locale\n\tvar max_similarity_score := 0\n\tvar closest_locale := \"en_US\"\n\tfor loaded_locale in loaded_locales:\n\t\tvar compared := TranslationServer.compare_locales(locale, loaded_locale)\n\t\tif compared > max_similarity_score:\n\t\t\tmax_similarity_score = compared\n\t\t\tclosest_locale = loaded_locale\n\treturn closest_locale\n\n\nfunc get_available_font_names() -> PackedStringArray:\n\tvar font_names := PackedStringArray()\n\tfor font in loaded_fonts:\n\t\tvar font_name := font.get_font_name()\n\t\tif font_name in font_names:\n\t\t\tcontinue\n\t\tfont_names.append(font_name)\n\tvar system_fonts := OS.get_system_fonts()\n\tsystem_fonts.sort()\n\tfor system_font_name in system_fonts:\n\t\tif system_font_name in font_names:\n\t\t\tcontinue\n\t\tfont_names.append(system_font_name)\n\treturn font_names\n\n\nfunc find_font_from_name(font_name: String) -> Font:\n\tfor font in loaded_fonts:\n\t\tif font.get_font_name() == font_name:\n\t\t\treturn font.duplicate()\n\tfor system_font_name in OS.get_system_fonts():\n\t\tif system_font_name == font_name:\n\t\t\tvar system_font := SystemFont.new()\n\t\t\tsystem_font.font_names = [font_name]\n\t\t\treturn system_font\n\treturn ThemeDB.fallback_font\n\n\n## Used by undo/redo operations to store compressed images in memory.\n## [param redo_data] and [param undo_data] are Dictionaries,\n## with keys of type [Image] and [Dictionary] values, coming from [member Image.data].\nfunc undo_redo_compress_images(\n\tredo_data: Dictionary, undo_data: Dictionary, project := current_project\n) -> void:\n\tfor image in redo_data:\n\t\tif not image is Image:\n\t\t\tcontinue\n\t\tvar new_image: Dictionary = redo_data[image]\n\t\tvar new_size := Vector2i(new_image[\"width\"], new_image[\"height\"])\n\t\tvar buffer_size: int = new_image[\"data\"].size()\n\t\tvar compressed_data: PackedByteArray = new_image[\"data\"].compress()\n\t\tproject.undo_redo.add_do_method(\n\t\t\tundo_redo_draw_op.bind(image, new_size, compressed_data, buffer_size)\n\t\t)\n\tfor image in undo_data:\n\t\tif not image is Image:\n\t\t\tcontinue\n\t\tvar new_image: Dictionary = undo_data[image]\n\t\tvar new_size := Vector2i(new_image[\"width\"], new_image[\"height\"])\n\t\tvar buffer_size: int = new_image[\"data\"].size()\n\t\tvar compressed_data: PackedByteArray = new_image[\"data\"].compress()\n\t\tproject.undo_redo.add_undo_method(\n\t\t\tundo_redo_draw_op.bind(image, new_size, compressed_data, buffer_size)\n\t\t)\n\n\n## Decompresses the [param compressed_image_data] with [param buffer_size] to the [param image]\n## This is a memory optimization method used while performing undo/redo drawing operations.\nfunc undo_redo_draw_op(\n\timage: Image, new_size: Vector2i, compressed_image_data: PackedByteArray, buffer_size: int\n) -> void:\n\tif image is ImageExtended and image.is_indexed:\n\t\t# If using indexed mode,\n\t\t# just convert the indices to RGB instead of setting the image data directly.\n\t\tif image.get_size() != new_size:\n\t\t\timage.crop(new_size.x, new_size.y)\n\t\timage.convert_indexed_to_rgb()\n\telse:\n\t\tvar decompressed := compressed_image_data.decompress(buffer_size)\n\t\timage.set_data(\n\t\t\tnew_size.x, new_size.y, image.has_mipmaps(), image.get_format(), decompressed\n\t\t)\n\n\n## This method is used to write project setting overrides to the override.cfg file, located\n## in the same directory as the executable.\n## We use this method instead of [method ProjectSettings.save_custom] because that copies\n## the entire project.godot file into override.cfg, which causes issues\n## because software updates will not be able to make changes to the project settings for\n## users who have already saved an override.cfg file, leading into confusion.\n## To avoid this issue, we just write the lines we want to the override.cfg file.\nfunc _save_to_override_file() -> void:\n\tvar file := FileAccess.open(OVERRIDE_FILE, FileAccess.WRITE)\n\tfile.store_line(\"[display]\\n\")\n\tfile.store_line(\"window/subwindows/embed_subwindows=%s\" % single_window_mode)\n\tfile.store_line(\"window/per_pixel_transparency/allowed=%s\" % window_transparency)\n\tif dummy_audio_driver:\n\t\tfile.store_line(\"[audio]\\n\")\n\t\tfile.store_line('driver/driver=\"Dummy\"')\n"
  },
  {
    "path": "src/Autoload/Global.gd.uid",
    "content": "uid://c61v16bx0rapv\n"
  },
  {
    "path": "src/Autoload/HTML5FileExchange.gd",
    "content": "extends Node\n## Code taken and modified from https://github.com/Pukkah/HTML5-File-Exchange-for-Godot\n## Thanks to Pukkah from GitHub for providing the original code\n\nsignal in_focus\nsignal image_loaded  ## Emits a signal for returning loaded image info\n\n\nfunc _ready() -> void:\n\tif OS.has_feature(\"web\"):\n\t\t_define_js()\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_WM_WINDOW_FOCUS_IN:\n\t\tin_focus.emit()\n\n\nfunc _define_js() -> void:\n\t(\n\t\tJavaScriptBridge\n\t\t. eval(\n\t\t\t\"\"\"\n\tvar hasUnsavedChanges = false;\n\tfunction setUnsavedChanges(value) {\n\t\thasUnsavedChanges = value;\n\t}\n\n\twindow.addEventListener(\"beforeunload\", function (e) {\n\t\tif (!hasUnsavedChanges) {\n\t\t\treturn;\n\t\t}\n\t\tvar confirmationMessage = \"You may have unsaved changes. Are you sure you want to leave?\";\n\n\t\t(e || window.event).returnValue = confirmationMessage; //Gecko + IE\n\t\treturn confirmationMessage;                            //Webkit, Safari, Chrome\n\t});\n\tvar fileData;\n\tvar fileType;\n\tvar fileName;\n\tvar canceled;\n\tfunction upload_image() {\n\t\tcanceled = true;\n\t\tvar input = document.createElement('INPUT');\n\t\tinput.setAttribute(\"type\", \"file\");\n\t\tinput.setAttribute(\n\t\t\t\"accept\", \".pxo, image/png, image/jpeg, image/webp, image/bmp, image/x-tga\"\n\t\t);\n\t\tinput.click();\n\t\tinput.addEventListener('change', event => {\n\t\t\tif (event.target.files.length > 0){\n\t\t\t\tcanceled = false;}\n\t\t\tvar file = event.target.files[0];\n\t\t\tvar reader = new FileReader();\n\t\t\tfileType = file.type;\n\t\t\tfileName = file.name;\n\t\t\treader.readAsArrayBuffer(file);\n\t\t\treader.onloadend = function (evt) {\n\t\t\t\tif (evt.target.readyState == FileReader.DONE) {\n\t\t\t\t\tfileData = evt.target.result;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tfunction upload_shader() {\n\t\tcanceled = true;\n\t\tvar input = document.createElement('INPUT');\n\t\tinput.setAttribute(\"type\", \"file\");\n\t\tinput.setAttribute(\"accept\", \".shader\");\n\t\tinput.click();\n\t\tinput.addEventListener('change', event => {\n\t\t\tif (event.target.files.length > 0){\n\t\t\t\tcanceled = false;}\n\t\t\tvar file = event.target.files[0];\n\t\t\tvar reader = new FileReader();\n\t\t\tfileType = file.type;\n\t\t\tfileName = file.name;\n\t\t\treader.readAsText(file);\n\t\t\treader.onloadend = function (evt) {\n\t\t\t\tif (evt.target.readyState == FileReader.DONE) {\n\t\t\t\t\tfileData = evt.target.result;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t\"\"\",\n\t\t\ttrue\n\t\t)\n\t)\n\n\n## If (load_directly = false) then image info (image and its name)\n## will not be directly forwarded it to OpenSave\nfunc load_image(load_directly := true) -> void:\n\tif !OS.has_feature(\"web\"):\n\t\treturn\n\t# Execute JS function\n\tJavaScriptBridge.eval(\"upload_image();\", true)  # Opens prompt for choosing file\n\tawait in_focus  # Wait until JS prompt is closed\n\tawait get_tree().create_timer(0.5).timeout  # Give some time for async JS data load\n\n\tif JavaScriptBridge.eval(\"canceled;\", true) == 1:  # If File Dialog closed w/o file\n\t\treturn\n\n\t# Use data from png data\n\tvar image_data: PackedByteArray\n\twhile true:\n\t\timage_data = JavaScriptBridge.eval(\"fileData;\", true)\n\t\tif image_data != null:\n\t\t\tbreak\n\t\tawait get_tree().create_timer(1.0).timeout  # Need more time to load data\n\n\tvar image_type: String = JavaScriptBridge.eval(\"fileType;\", true)\n\tvar image_name: String = JavaScriptBridge.eval(\"fileName;\", true)\n\n\tvar image := Image.new()\n\tvar image_error: Error\n\tvar image_info := {}\n\tmatch image_type:\n\t\t\"image/png\":\n\t\t\tif load_directly:\n\t\t\t\t# In this case we can afford to try APNG,\n\t\t\t\t# because we know we're sending it through OpenSave handling.\n\t\t\t\t# Otherwise we could end up passing something incompatible.\n\t\t\t\tvar res := AImgIOAPNGImporter.load_from_buffer(image_data)\n\t\t\t\tif res[0] == null:\n\t\t\t\t\t# Success, pass to OpenSave.\n\t\t\t\t\tOpenSave.handle_loading_aimg(image_name, res[1])\n\t\t\t\t\treturn\n\t\t\timage_error = image.load_png_from_buffer(image_data)\n\t\t\"image/jpeg\":\n\t\t\timage_error = image.load_jpg_from_buffer(image_data)\n\t\t\"image/webp\":\n\t\t\timage_error = image.load_webp_from_buffer(image_data)\n\t\t\"image/bmp\":\n\t\t\timage_error = image.load_bmp_from_buffer(image_data)\n\t\t\"image/x-tga\":\n\t\t\timage_error = image.load_tga_from_buffer(image_data)\n\t\tvar invalid_type:\n\t\t\tif image_name.get_extension().to_lower() == \"pxo\":\n\t\t\t\tvar temp_file_path := \"user://%s\" % image_name\n\t\t\t\tvar temp_file := FileAccess.open(temp_file_path, FileAccess.WRITE)\n\t\t\t\ttemp_file.store_buffer(image_data)\n\t\t\t\ttemp_file.close()\n\t\t\t\tOpenSave.open_pxo_file(temp_file_path)\n\t\t\t\tDirAccess.remove_absolute(temp_file_path)\n\t\t\t\treturn\n\t\t\tprint(\"Invalid type: \" + invalid_type)\n\t\t\treturn\n\tif image_error:\n\t\tprint(\"An error occurred while trying to display the image.\")\n\t\treturn\n\telse:\n\t\timage_info = {\"image\": image, \"name\": image_name}\n\t\tif load_directly:\n\t\t\tOpenSave.handle_loading_image(image_name, image)\n\timage_loaded.emit(image_info)\n\n\nfunc load_shader() -> void:\n\tif !OS.has_feature(\"web\"):\n\t\treturn\n\n\t# Execute JS function\n\tJavaScriptBridge.eval(\"upload_shader();\", true)  # Opens prompt for choosing file\n\n\tawait in_focus  # Wait until JS prompt is closed\n\tawait get_tree().create_timer(0.5).timeout  # Give some time for async JS data load\n\n\tif JavaScriptBridge.eval(\"canceled;\", true):  # If File Dialog closed w/o file\n\t\treturn\n\n\t# Use data from png data\n\tvar file_data\n\twhile true:\n\t\tfile_data = JavaScriptBridge.eval(\"fileData;\", true)\n\t\tif file_data != null:\n\t\t\tbreak\n\t\tawait get_tree().create_timer(1.0).timeout  # Need more time to load data\n\n#\tvar file_type = JavaScriptBridge.eval(\"fileType;\", true)\n\tvar file_name = JavaScriptBridge.eval(\"fileName;\", true)\n\n\tvar shader := Shader.new()\n\tshader.code = file_data\n\n\tvar shader_effect_dialog = Global.control.get_node(\"Dialogs/ImageEffects/ShaderEffect\")\n\tif is_instance_valid(shader_effect_dialog):\n\t\tshader_effect_dialog.change_shader(shader, file_name.get_basename())\n"
  },
  {
    "path": "src/Autoload/HTML5FileExchange.gd.uid",
    "content": "uid://duc3un8okxooi\n"
  },
  {
    "path": "src/Autoload/Import.gd",
    "content": "extends Node\n\n\n# Get hold of the brushes, including random brushes (subdirectories and % files\n# in them, non % files get loaded independently.) nyaaa\n# Returns a list of [\n# [non random single png files in the root subdir],\n# {\n# map of subdirectories to lists of files for\n# the randomised brush - if a directory contains no\n# randomised files then it is not included in this.\n# },\n# {\n# map of subdirectories to lists of files inside of them\n# that are not for randomised brushes.\n# }\n# ]\n# The separation of nonrandomised and randomised files\n# in subdirectories allows different XDG_DATA_DIR overriding\n# for each nyaa.\n#\n# Returns null if the directory gave an error opening.\n#\nfunc get_brush_files_from_directory(directory: String):  # -> Array\n\tvar base_png_files := []  # list of files in the base directory\n\tvar subdirectories := []  # list of subdirectories to process.\n\n\tvar randomised_subdir_files_map: Dictionary = {}\n\tvar nonrandomised_subdir_files_map: Dictionary = {}\n\n\tvar main_directory := DirAccess.open(directory)\n\tif DirAccess.get_open_error() != OK:\n\t\treturn null\n\n\t# Build first the list of base png files and all subdirectories to\n\t# scan later (skip navigational . and ..)\n\tmain_directory.list_dir_begin()\n\tvar fname: String = main_directory.get_next()\n\twhile fname != \"\":\n\t\tif main_directory.current_is_dir():\n\t\t\tsubdirectories.append(fname)\n\t\telse:  # Filter for pngs\n\t\t\tif fname.get_extension().to_lower() == \"png\":\n\t\t\t\tbase_png_files.append(fname)\n\n\t\t# go to next\n\t\tfname = main_directory.get_next()\n\tmain_directory.list_dir_end()\n\n\t# Now we iterate over subdirectories!\n\tfor subdirectory in subdirectories:\n\t\t# Holds names of files that make this\n\t\t# a component of a randomised brush ^.^\n\t\tvar randomised_files := []\n\n\t\t# Non-randomise-indicated image files\n\t\tvar non_randomised_files := []\n\n\t\tvar the_directory := DirAccess.open(directory.path_join(subdirectory))\n\t\tthe_directory.include_navigational = true\n\t\tthe_directory.list_dir_begin()\n\t\tvar curr_file := the_directory.get_next()\n\n\t\twhile curr_file != \"\":\n\t\t\t# only do stuff if we are actually dealing with a file\n\t\t\t# and png one at that nya\n\t\t\tif !the_directory.current_is_dir() and curr_file.get_extension().to_lower() == \"png\":\n\t\t\t\t# if we are a random element, add\n\t\t\t\tif \"~\" in curr_file:\n\t\t\t\t\trandomised_files.append(curr_file)\n\t\t\t\telse:\n\t\t\t\t\tnon_randomised_files.append(curr_file)\n\t\t\tcurr_file = the_directory.get_next()\n\n\t\tthe_directory.list_dir_end()\n\n\t\t# Add these to the maps nyaa\n\t\tif len(randomised_files) > 0:\n\t\t\trandomised_subdir_files_map[subdirectory] = randomised_files\n\t\tif len(non_randomised_files) > 0:\n\t\t\tnonrandomised_subdir_files_map[subdirectory] = non_randomised_files\n\t# We are done generating the maps!\n\treturn [base_png_files, randomised_subdir_files_map, nonrandomised_subdir_files_map]\n\n\n# Add a randomised brush from the given list of files as a source.\n# The tooltip name is what shows up on the tooltip\n# and is probably in this case the name of the containing\n# randomised directory.\nfunc add_randomised_brush(fpaths: Array, tooltip_name: String) -> void:\n\t# Attempt to load the images from the file paths.\n\tvar loaded_images: Array = []\n\tfor file in fpaths:\n\t\tvar image := Image.new()\n\t\tvar err := image.load(file)\n\t\tif err == OK:\n\t\t\timage.convert(Image.FORMAT_RGBA8)\n\t\t\tloaded_images.append(image)\n\n\t# If any images were successfully loaded, then\n\t# we create the randomised brush button, copied\n\t# from find_brushes.\n\n\tif len(loaded_images) > 0:  # actually have images\n\t\t# to use.\n\t\tBrushes.add_file_brush(loaded_images, tooltip_name)\n\n\n# Add a plain brush from the given path to the list of brushes.\n# Taken, again, from find_brushes\nfunc add_plain_brush(path: String, tooltip_name: String) -> void:\n\tvar image := Image.new()\n\tvar err := image.load(path)\n\tif err != OK:\n\t\treturn\n\t# do the standard conversion thing...\n\timage.convert(Image.FORMAT_RGBA8)\n\tBrushes.add_file_brush([image], tooltip_name)\n\n\n# Import brushes, in priority order, from the paths in question in priority order\n# i.e. with an override system\n# We use a very particular override system here where, for randomised brushes\n# the directories containing them get overridden, but for nonrandomised files\n# (including in directories containing randomised components too), the override\n# is on a file-by-file basis nyaaaa ^.^\nfunc import_brushes(priority_ordered_search_path: Array) -> void:\n\t# Maps for files in the base directory (name : true)\n\tvar processed_basedir_paths: Dictionary = {}\n\tvar randomised_brush_subdirectories: Dictionary = {}\n\t# Map from a subdirectory to a map similar to processed_basedir_files\n\t# i.e. once a filename has been dealt with, set it to true.\n\tvar processed_subdir_paths: Dictionary = {}\n\n\t# Sets of results of get_brush_files_from_directory\n\tvar all_available_paths: Array = []\n\tfor directory in priority_ordered_search_path:\n\t\tall_available_paths.append(get_brush_files_from_directory(directory))\n\n\t# Now to process. Note these are in order of the\n\t# priority, as intended nyaa :)\n\tfor i in range(len(all_available_paths)):\n\t\tvar available_brush_file_information = all_available_paths[i]\n\t\tvar current_main_directory: String = priority_ordered_search_path[i]\n\t\tif available_brush_file_information != null:\n\t\t\t# The brush files in the main directory\n\t\t\tvar main_directory_file_paths: Array = available_brush_file_information[0]\n\t\t\t# The subdirectory/list-of-randomised-brush-files\n\t\t\t# map for this directory\n\t\t\tvar randomised_brush_subdirectory_map: Dictionary = available_brush_file_information[1]\n\t\t\t# Map for subdirectories to non-randomised-brush files nyaa\n\t\t\tvar nonrandomised_brush_subdir_map: Dictionary = available_brush_file_information[2]\n\n\t\t\t# Iterate over components and do stuff with them! nyaa\n\t\t\t# first for the main directory path...\n\t\t\tfor subfile in main_directory_file_paths:\n\t\t\t\tif not (subfile in processed_basedir_paths):\n\t\t\t\t\tadd_plain_brush(\n\t\t\t\t\t\tcurrent_main_directory.path_join(subfile), subfile.get_basename()\n\t\t\t\t\t)\n\t\t\t\t\tprocessed_basedir_paths[subfile] = true\n\n\t\t\t# Iterate over the randomised brush files nyaa\n\t\t\tfor randomised_subdir in randomised_brush_subdirectory_map:\n\t\t\t\tif not (randomised_subdir in randomised_brush_subdirectories):\n\t\t\t\t\tvar full_paths := []\n\t\t\t\t\t# glue the proper path onto the single file names in the\n\t\t\t\t\t# random brush directory data system, so they can be\n\t\t\t\t\t# opened nya\n\t\t\t\t\tfor non_extended_path in randomised_brush_subdirectory_map[randomised_subdir]:\n\t\t\t\t\t\tfull_paths.append(\n\t\t\t\t\t\t\tcurrent_main_directory.path_join(randomised_subdir).path_join(\n\t\t\t\t\t\t\t\tnon_extended_path\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t# Now load!\n\t\t\t\t\tadd_randomised_brush(full_paths, randomised_subdir)\n\t\t\t\t\t# and mark that we are done in the overall map ^.^\n\t\t\t\t\trandomised_brush_subdirectories[randomised_subdir] = true\n\t\t\t# Now to iterate over the nonrandom brush files inside directories\n\t\t\tfor nonrandomised_subdir in nonrandomised_brush_subdir_map:\n\t\t\t\t# initialise the set-map for this one if not already present :)\n\t\t\t\tif not (nonrandomised_subdir in processed_subdir_paths):\n\t\t\t\t\tprocessed_subdir_paths[nonrandomised_subdir] = {}\n\t\t\t\t# Get the paths within this subdirectory to check if they are\n\t\t\t\t# processed or not and if not, then process them.\n\t\t\t\tvar relpaths_of_nonrandom_brushes: Array = nonrandomised_brush_subdir_map[nonrandomised_subdir]\n\t\t\t\tfor relative_path in relpaths_of_nonrandom_brushes:\n\t\t\t\t\tif not (relative_path in processed_subdir_paths[nonrandomised_subdir]):\n\t\t\t\t\t\t# We are not yet processed\n\t\t\t\t\t\tvar full_path: String = (\n\t\t\t\t\t\t\tcurrent_main_directory\n\t\t\t\t\t\t\t. path_join(nonrandomised_subdir)\n\t\t\t\t\t\t\t. path_join(relative_path)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t# Add the path with the tooltip including the directory\n\t\t\t\t\t\tadd_plain_brush(\n\t\t\t\t\t\t\tfull_path, nonrandomised_subdir.path_join(relative_path).get_basename()\n\t\t\t\t\t\t)\n\t\t\t\t\t\t# Mark this as a processed relpath\n\t\t\t\t\t\tprocessed_subdir_paths[nonrandomised_subdir][relative_path] = true\n\n\nfunc import_patterns(priority_ordered_search_path: Array) -> void:\n\tfor path in priority_ordered_search_path:\n\t\tvar pattern_list := []\n\t\tvar dir := DirAccess.open(path)\n\t\tif not is_instance_valid(dir):\n\t\t\tcontinue\n\t\tdir.list_dir_begin()\n\t\tvar curr_file := dir.get_next()\n\t\twhile curr_file != \"\":\n\t\t\tif curr_file.get_extension().to_lower() == \"png\":\n\t\t\t\tpattern_list.append(curr_file)\n\t\t\tcurr_file = dir.get_next()\n\t\tdir.list_dir_end()\n\n\t\tfor pattern in pattern_list:\n\t\t\tvar image := Image.new()\n\t\t\tvar err := image.load(path.path_join(pattern))\n\t\t\tif err == OK:\n\t\t\t\timage.convert(Image.FORMAT_RGBA8)\n\t\t\t\tvar tooltip_name = pattern.get_basename()\n\t\t\t\tGlobal.patterns_popup.add(image, tooltip_name)\n"
  },
  {
    "path": "src/Autoload/Import.gd.uid",
    "content": "uid://ca8cd1hqh7cuv\n"
  },
  {
    "path": "src/Autoload/OpenSave.gd",
    "content": "# gdlint: ignore=max-public-methods\nextends Node\n\nsignal project_saved\nsignal reference_image_imported\nsignal shader_copied(file_path: String)\n\nconst BACKUPS_DIRECTORY := \"user://backups\"\nconst SHADERS_DIRECTORY := \"user://shaders\"\nconst FONT_FILE_EXTENSIONS: PackedStringArray = [\n\t\"ttf\", \"otf\", \"woff\", \"woff2\", \"pfb\", \"pfm\", \"fnt\", \"font\"\n]\nconst GifImporter := preload(\"uid://bml2q6e8rr82h\")\n\nvar current_session_backup := \"\"\nvar had_backups_on_startup := false\nvar preview_dialog_tscn := preload(\"res://src/UI/Dialogs/ImportPreviewDialog.tscn\")\nvar preview_dialogs := []  ## Array of preview dialogs\nvar last_dialog_option := 0\nvar autosave_timer: Timer\n\n# custom importer related dictionaries (received from extensions)\nvar custom_import_names := {}  ## Contains importer names as keys and ids as values\nvar custom_importer_scenes := {}  ## Contains ids keys and import option preloads as values\n\n\nfunc _ready() -> void:\n\tautosave_timer = Timer.new()\n\tautosave_timer.one_shot = false\n\tautosave_timer.timeout.connect(_on_Autosave_timeout)\n\tadd_child(autosave_timer)\n\tupdate_autosave()\n\t# Remove empty sessions\n\tfor session_folder in DirAccess.get_directories_at(BACKUPS_DIRECTORY):\n\t\tif DirAccess.get_files_at(BACKUPS_DIRECTORY.path_join(session_folder)).size() == 0:\n\t\t\tDirAccess.remove_absolute(BACKUPS_DIRECTORY.path_join(session_folder))\n\tvar backups := DirAccess.get_directories_at(OpenSave.BACKUPS_DIRECTORY)\n\thad_backups_on_startup = backups.size() > 0\n\t# Make folder for current session\n\tvar date_time: Dictionary = Time.get_datetime_dict_from_system()\n\tvar string_dict = {}\n\tfor key in date_time.keys():\n\t\tvar value = int(date_time[key])\n\t\tvar value_string = str(value)\n\t\tif value <= 9:\n\t\t\tvalue_string = str(\"0\", value_string)\n\t\tstring_dict[key] = value_string\n\tcurrent_session_backup = BACKUPS_DIRECTORY.path_join(\n\t\tstr(\n\t\t\tstring_dict.year,\n\t\t\t\"_\",\n\t\t\tstring_dict.month,\n\t\t\t\"_\",\n\t\t\tstring_dict.day,\n\t\t\t\"_\",\n\t\t\tstring_dict.hour,\n\t\t\t\"_\",\n\t\t\tstring_dict.minute,\n\t\t\t\"_\",\n\t\t\tstring_dict.second\n\t\t)\n\t)\n\tDirAccess.make_dir_recursive_absolute(current_session_backup)\n\tenforce_backed_sessions_limit()\n\n\nfunc handle_loading_file(file: String, force_import_dialog_on_images := false) -> void:\n\tfile = file.replace(\"\\\\\", \"/\")\n\tvar file_ext := file.get_extension().to_lower()\n\tif file_ext == \"pxo\":  # Pixelorama project file\n\t\topen_pxo_file(file)\n\n\telif file_ext == \"tres\":  # Godot resource file\n\t\tvar resource := load(file)\n\t\tif resource is VisualShader:\n\t\t\tvar new_path := SHADERS_DIRECTORY.path_join(file.uri_decode().get_file())\n\t\t\tDirAccess.copy_absolute(file, new_path)\n\t\t\tshader_copied.emit(new_path)\n\telif file_ext == \"tscn\":  # Godot scene file\n\t\treturn\n\n\telif file_ext == \"gpl\" or file_ext == \"pal\" or file_ext == \"json\":\n\t\tPalettes.import_palette_from_path(file, true)\n\n\telif file_ext in [\"pck\", \"zip\"]:  # Godot resource pack file\n\t\tGlobal.control.get_node(\"Extensions\").install_extension(file)\n\n\telif file_ext == \"gdshader\":  # Godot shader file\n\t\tvar shader := load(file)\n\t\tif not shader is Shader:\n\t\t\treturn\n\t\tvar new_path := SHADERS_DIRECTORY.path_join(file.uri_decode().get_file())\n\t\tDirAccess.copy_absolute(file, new_path)\n\t\tshader_copied.emit(new_path)\n\telif file_ext == \"mp3\" or file_ext == \"wav\":  # Audio file\n\t\topen_audio_file(file)\n\telif file_ext in FONT_FILE_EXTENSIONS:\n\t\tvar font_file := open_font_file(file)\n\t\tif font_file.data.is_empty():\n\t\t\treturn\n\t\tif not DirAccess.dir_exists_absolute(Global.FONTS_DIR_PATH):\n\t\t\tDirAccess.make_dir_absolute(Global.FONTS_DIR_PATH)\n\t\tvar new_path := Global.FONTS_DIR_PATH.path_join(file.uri_decode().get_file())\n\t\tDirAccess.copy_absolute(file, new_path)\n\t\tGlobal.loaded_fonts.append(font_file)\n\telif file_ext == \"gif\":\n\t\tif not open_gif_file(file):\n\t\t\thandle_loading_video(file)\n\telif file_ext == \"ora\":\n\t\topen_ora_file(file)\n\telif file_ext == \"kra\":\n\t\tKritaParser.open_kra_file(file)\n\telif file_ext == \"ase\" or file_ext == \"aseprite\":\n\t\tAsepriteParser.open_aseprite_file(file)\n\telif file_ext == \"psd\":\n\t\tPhotoshopParser.open_photoshop_file(file)\n\telif file_ext == \"piskel\":\n\t\topen_piskel_file(file)\n\telse:  # Image files\n\t\t# Attempt to load as APNG.\n\t\t# Note that the APNG importer will *only* succeed for *animated* PNGs.\n\t\t# This is intentional as still images should still act normally.\n\t\tvar apng_res := AImgIOAPNGImporter.load_from_file(file)\n\t\tif apng_res[0] == null:\n\t\t\t# No error - this is an APNG!\n\t\t\tif typeof(apng_res[1]) == TYPE_ARRAY:\n\t\t\t\thandle_loading_aimg(file, apng_res[1])\n\t\t\telif typeof(apng_res[1]) == TYPE_STRING:\n\t\t\t\tprint(apng_res[1])\n\t\t\treturn\n\t\t# Attempt to load as a regular image.\n\t\tvar image := Image.load_from_file(file)\n\t\tif not is_instance_valid(image):  # Failed to import as image\n\t\t\tif handle_loading_video(file):\n\t\t\t\treturn  # Succeeded in loading as video, so return early before the error appears\n\t\t\tvar file_name: String = file.uri_decode().get_file()\n\t\t\tGlobal.popup_error(tr(\"Can't load file '%s'.\") % [file_name])\n\t\t\treturn\n\t\thandle_loading_image(file, image, force_import_dialog_on_images)\n\n\nfunc add_import_option(import_name: StringName, import_scene: PackedScene) -> int:\n\t# Change format name if another one uses the same name\n\tvar existing_format_names := (\n\t\tImportPreviewDialog.ImageImportOptions.keys() + custom_import_names.keys()\n\t)\n\tfor i in range(existing_format_names.size()):\n\t\tvar test_name := import_name\n\t\tif i != 0:\n\t\t\ttest_name = str(test_name, \"_\", i)\n\t\tif !existing_format_names.has(test_name):\n\t\t\timport_name = test_name\n\t\t\tbreak\n\n\t# Obtain a unique id\n\t# Start with the least possible id for custom exporter\n\tvar id := ImportPreviewDialog.ImageImportOptions.size()\n\tfor i in custom_import_names.size():\n\t\t# Increment ids by 1 till we find one that isn't in use\n\t\tvar format_id := id + i + 1\n\t\tif !custom_import_names.values().has(i):\n\t\t\tid = format_id\n\t# Add to custom_file_formats\n\tcustom_import_names.merge({import_name: id})\n\tcustom_importer_scenes.merge({id: import_scene})\n\treturn id\n\n\n## Mostly used for downloading images from the Internet. Tries multiple file extensions\n## in case the extension of the file is wrong, which is common for images on the Internet.\nfunc load_image_from_buffer(buffer: PackedByteArray) -> Image:\n\tvar image := Image.new()\n\tvar err := image.load_png_from_buffer(buffer)\n\tif err != OK:\n\t\terr = image.load_jpg_from_buffer(buffer)\n\t\tif err != OK:\n\t\t\terr = image.load_webp_from_buffer(buffer)\n\t\t\tif err != OK:\n\t\t\t\terr = image.load_tga_from_buffer(buffer)\n\t\t\t\tif err != OK:\n\t\t\t\t\timage.load_bmp_from_buffer(buffer)\n\treturn image\n\n\nfunc handle_loading_image(file: String, image: Image, force_import_dialog := false) -> void:\n\tif (\n\t\tGlobal.projects.size() <= 1\n\t\tand Global.current_project.is_empty()\n\t\tand not force_import_dialog\n\t):\n\t\topen_image_as_new_tab(file, image)\n\t\treturn\n\tvar preview_dialog := preview_dialog_tscn.instantiate() as ImportPreviewDialog\n\t# add custom importers to preview dialog\n\tfor import_name in custom_import_names.keys():\n\t\tvar id = custom_import_names[import_name]\n\t\tvar new_import_option = custom_importer_scenes[id].instantiate()\n\t\tpreview_dialog.custom_importers[id] = new_import_option\n\tpreview_dialogs.append(preview_dialog)\n\tpreview_dialog.path = file\n\tpreview_dialog.image = image\n\tGlobal.control.add_child(preview_dialog)\n\tpreview_dialog.popup_centered_clamped()\n\tGlobal.dialog_open(true)\n\n\n## For loading the output of AImgIO as a project\nfunc handle_loading_aimg(path: String, frames: Array) -> void:\n\tvar project := Project.new([], path.uri_decode().get_file(), frames[0].content.get_size())\n\tproject.layers.append(PixelLayer.new(project))\n\tGlobal.projects.append(project)\n\n\t# Determine FPS as 1, unless all frames agree.\n\tproject.fps = 1\n\tvar first_duration: float = frames[0].duration\n\tvar frames_agree := true\n\tfor v in frames:\n\t\tvar aimg_frame: AImgIOFrame = v\n\t\tif aimg_frame.duration != first_duration:\n\t\t\tframes_agree = false\n\t\t\tbreak\n\tif frames_agree and (first_duration > 0.0):\n\t\tproject.fps = 1.0 / first_duration\n\t# Convert AImgIO frames to Pixelorama frames\n\tfor v in frames:\n\t\tvar aimg_frame: AImgIOFrame = v\n\t\tvar frame := Frame.new()\n\t\tif not frames_agree:\n\t\t\tframe.set_duration_in_seconds(aimg_frame.duration, project.fps)\n\t\tvar content := aimg_frame.content\n\t\tcontent.convert(project.get_image_format())\n\t\tvar image_extended := ImageExtended.new()\n\t\timage_extended.copy_from_custom(content)\n\t\tframe.cels.append(PixelCel.new(image_extended, 1))\n\t\tproject.frames.append(frame)\n\n\tset_new_imported_tab(project, path)\n\n\n## Uses FFMPEG to attempt to load a video file as a new project. Works by splitting the video file\n## to multiple png images for each of the video's frames,\n## and then it imports these images as frames of a new project.\n## TODO: Don't allow large files (how large?) to be imported, to avoid crashes due to lack of memory\n## TODO: Find the video's fps and use that for the new project.\nfunc handle_loading_video(file: String) -> bool:\n\tDirAccess.make_dir_absolute(Export.temp_path)\n\tvar temp_path_real := Export.temp_path\n\tvar output_file_path := temp_path_real.path_join(\"%04d.png\")\n\t# ffmpeg -y -i input_file %04d.png\n\tvar ffmpeg_execute: PackedStringArray = [\"-y\", \"-i\", file, output_file_path]\n\tvar success := OS.execute(Global.ffmpeg_path, ffmpeg_execute, [], true)\n\tif success < 0 or success > 1:  # FFMPEG is probably not installed correctly\n\t\tDirAccess.remove_absolute(Export.temp_path)\n\t\treturn false\n\tvar images_to_import: Array[Image] = []\n\tvar project_size := Vector2i.ZERO\n\tvar temp_dir := DirAccess.open(Export.temp_path)\n\tfor temp_file in temp_dir.get_files():\n\t\tvar temp_image := Image.load_from_file(Export.temp_path.path_join(temp_file))\n\t\ttemp_dir.remove(temp_file)\n\t\tif not is_instance_valid(temp_image):\n\t\t\tcontinue\n\t\timages_to_import.append(temp_image)\n\t\tif temp_image.get_width() > project_size.x:\n\t\t\tproject_size.x = temp_image.get_width()\n\t\tif temp_image.get_height() > project_size.y:\n\t\t\tproject_size.y = temp_image.get_height()\n\tif images_to_import.size() == 0 or project_size == Vector2i.ZERO:\n\t\tDirAccess.remove_absolute(Export.temp_path)\n\t\treturn false  # We didn't find any images, return\n\t# If we found images, create a new project out of them\n\tvar new_project := Project.new([], file.uri_decode().get_basename().get_file(), project_size)\n\tnew_project.layers.append(PixelLayer.new(new_project))\n\tfor temp_image in images_to_import:\n\t\topen_image_as_new_frame(temp_image, 0, new_project, false)\n\tGlobal.projects.append(new_project)\n\tGlobal.tabs.current_tab = Global.tabs.get_tab_count() - 1\n\tGlobal.canvas.camera_zoom()\n\tvar output_audio_file := temp_path_real.path_join(\"audio.mp3\")\n\t# ffmpeg -y -i input_file -vn audio.mp3\n\tvar ffmpeg_execute_audio: PackedStringArray = [\"-y\", \"-i\", file, \"-vn\", output_audio_file]\n\tOS.execute(Global.ffmpeg_path, ffmpeg_execute_audio, [], true)\n\tif FileAccess.file_exists(output_audio_file):\n\t\topen_audio_file(output_audio_file)\n\t\ttemp_dir.remove(\"audio.mp3\")\n\tDirAccess.remove_absolute(Export.temp_path)\n\treturn true\n\n\nfunc open_pxo_file(path: String, is_backup := false, replace_empty := true) -> void:\n\tvar empty_project := Global.current_project.is_empty() and replace_empty\n\tvar new_project: Project\n\tvar zip_reader := ZIPReader.new()\n\tvar err := zip_reader.open(path)\n\tif err == FAILED:\n\t\t# Most likely uses the old pxo format, load that\n\t\tnew_project = open_v0_pxo_file(path, empty_project)\n\t\tif not is_instance_valid(new_project):\n\t\t\treturn\n\telif err != OK:\n\t\tGlobal.popup_error(tr(\"File failed to open. Error code %s (%s)\") % [err, error_string(err)])\n\t\treturn\n\telse:  # Parse the ZIP file\n\t\tif empty_project:\n\t\t\tnew_project = Global.current_project\n\t\t\tnew_project.frames = []\n\t\t\tnew_project.layers = []\n\t\t\tnew_project.animation_tags.clear()\n\t\t\tnew_project.name = path.uri_decode().get_file().get_basename()\n\t\telse:\n\t\t\tnew_project = Project.new([], path.uri_decode().get_file().get_basename())\n\t\tvar data_json := zip_reader.read_file(\"data.json\").get_string_from_utf8()\n\t\tvar test_json_conv := JSON.new()\n\t\tvar error := test_json_conv.parse(data_json)\n\t\tif error != OK:\n\t\t\tprint(\"Error, corrupt pxo file. Error code %s (%s)\" % [error, error_string(error)])\n\t\t\tzip_reader.close()\n\t\t\treturn\n\t\tvar result = test_json_conv.get_data()\n\t\tif typeof(result) != TYPE_DICTIONARY:\n\t\t\tprint(\"Error, json parsed result is: %s\" % typeof(result))\n\t\t\tzip_reader.close()\n\t\t\treturn\n\n\t\tnew_project.deserialize(result, zip_reader)\n\t\tif result.has(\"brushes\"):\n\t\t\tvar brush_index := 0\n\t\t\tfor brush in result.brushes:\n\t\t\t\tvar b_width: int = brush.size_x\n\t\t\t\tvar b_height: int = brush.size_y\n\t\t\t\tvar image_data := zip_reader.read_file(\"image_data/brushes/brush_%s\" % brush_index)\n\t\t\t\tvar image := Image.create_from_data(\n\t\t\t\t\tb_width, b_height, false, Image.FORMAT_RGBA8, image_data\n\t\t\t\t)\n\t\t\t\tnew_project.brushes.append(image)\n\t\t\t\tBrushes.add_project_brush(image)\n\t\t\t\tbrush_index += 1\n\t\tif result.has(\"tile_mask\") and result.has(\"has_mask\"):\n\t\t\tif result.has_mask:\n\t\t\t\tvar t_width = result.tile_mask.size_x\n\t\t\t\tvar t_height = result.tile_mask.size_y\n\t\t\t\tvar image_data := zip_reader.read_file(\"image_data/tile_map\")\n\t\t\t\tvar image := Image.create_from_data(\n\t\t\t\t\tt_width, t_height, false, Image.FORMAT_RGBA8, image_data\n\t\t\t\t)\n\t\t\t\tnew_project.tiles.tile_mask = image\n\t\t\telse:\n\t\t\t\tnew_project.tiles.reset_mask()\n\t\tif result.has(\"tilesets\"):\n\t\t\tfor i in result.tilesets.size():\n\t\t\t\tvar tileset_dict: Dictionary = result.tilesets[i]\n\t\t\t\tvar tileset := new_project.tilesets[i]\n\t\t\t\tvar tile_size := tileset.tile_size\n\t\t\t\tvar tile_amount: int = tileset_dict.tile_amount\n\t\t\t\tfor j in tile_amount:\n\t\t\t\t\tvar image_data := zip_reader.read_file(\"tilesets/%s/%s\" % [i, j])\n\t\t\t\t\tvar image := Image.create_from_data(\n\t\t\t\t\t\ttile_size.x, tile_size.y, false, new_project.get_image_format(), image_data\n\t\t\t\t\t)\n\t\t\t\t\tif j > tileset.tiles.size() - 1:\n\t\t\t\t\t\ttileset.add_tile(image, null, 0)\n\t\t\t\t\telse:\n\t\t\t\t\t\ttileset.tiles[j].image = image\n\t\t\tfor cel in new_project.get_all_pixel_cels():\n\t\t\t\tif cel is CelTileMap:\n\t\t\t\t\tcel.find_times_used_of_tiles()\n\t\tzip_reader.close()\n\tif new_project.export_directory_path.is_empty():\n\t\tnew_project.export_directory_path = path.get_base_dir()\n\n\tif empty_project:\n\t\tnew_project.change_project()\n\t\tGlobal.project_switched.emit()\n\t\tGlobal.cel_switched.emit()\n\telse:\n\t\tGlobal.projects.append(new_project)\n\t\tGlobal.tabs.current_tab = Global.tabs.get_tab_count() - 1\n\tGlobal.canvas.camera_zoom()\n\n\tif is_backup:\n\t\tnew_project.backup_path = path\n\telse:\n\t\t# Loading a backup should not change window title and save path\n\t\tnew_project.save_path = path\n\t\tget_window().title = new_project.name + \" - Pixelorama \" + Global.current_version\n\t\t# Set last opened project path and save\n\t\tGlobal.config_cache.set_value(\"data\", \"current_dir\", path.get_base_dir())\n\t\tGlobal.config_cache.set_value(\"data\", \"last_project_path\", path)\n\t\tGlobal.config_cache.save(Global.CONFIG_PATH)\n\t\tif new_project.file_name.is_empty():\n\t\t\tnew_project.file_name = path.uri_decode().get_file().trim_suffix(\".pxo\")\n\t\tnew_project.was_exported = false\n\t\tGlobal.top_menu_container.file_menu.set_item_text(\n\t\t\tGlobal.FileMenu.SAVE, tr(\"Save\") + \" %s\" % path.uri_decode().get_file()\n\t\t)\n\t\tGlobal.top_menu_container.file_menu.set_item_text(Global.FileMenu.EXPORT, tr(\"Export\"))\n\n\tsave_project_to_recent_list(path)\n\n\nfunc open_v0_pxo_file(path: String, empty_project: bool) -> Project:\n\tvar file := FileAccess.open_compressed(path, FileAccess.READ, FileAccess.COMPRESSION_ZSTD)\n\tif FileAccess.get_open_error() == ERR_FILE_UNRECOGNIZED:\n\t\t# If the file is not compressed open it raw (pre-v0.7)\n\t\tfile = FileAccess.open(path, FileAccess.READ)\n\tvar err := FileAccess.get_open_error()\n\tif err != OK:\n\t\tGlobal.popup_error(tr(\"File failed to open. Error code %s (%s)\") % [err, error_string(err)])\n\t\treturn null\n\n\tvar first_line := file.get_line()\n\tvar test_json_conv := JSON.new()\n\tvar error := test_json_conv.parse(first_line)\n\tif error != OK:\n\t\tprint(\"Error, corrupt legacy pxo file. Error code %s (%s)\" % [error, error_string(error)])\n\t\tfile.close()\n\t\treturn null\n\n\tvar result = test_json_conv.get_data()\n\tif typeof(result) != TYPE_DICTIONARY:\n\t\tprint(\"Error, json parsed result is: %s\" % typeof(result))\n\t\tfile.close()\n\t\treturn null\n\n\tvar new_project: Project\n\tif empty_project:\n\t\tnew_project = Global.current_project\n\t\tnew_project.frames = []\n\t\tnew_project.layers = []\n\t\tnew_project.animation_tags.clear()\n\t\tnew_project.name = path.uri_decode().get_file().get_basename()\n\telse:\n\t\tnew_project = Project.new([], path.uri_decode().get_file().get_basename())\n\tnew_project.deserialize(result, null, file)\n\tif result.has(\"brushes\"):\n\t\tfor brush in result.brushes:\n\t\t\tvar b_width = brush.size_x\n\t\t\tvar b_height = brush.size_y\n\t\t\tvar buffer := file.get_buffer(b_width * b_height * 4)\n\t\t\tvar image := Image.create_from_data(\n\t\t\t\tb_width, b_height, false, Image.FORMAT_RGBA8, buffer\n\t\t\t)\n\t\t\tnew_project.brushes.append(image)\n\t\t\tBrushes.add_project_brush(image)\n\n\tif result.has(\"tile_mask\") and result.has(\"has_mask\"):\n\t\tif result.has_mask:\n\t\t\tvar t_width = result.tile_mask.size_x\n\t\t\tvar t_height = result.tile_mask.size_y\n\t\t\tvar buffer := file.get_buffer(t_width * t_height * 4)\n\t\t\tvar image := Image.create_from_data(\n\t\t\t\tt_width, t_height, false, Image.FORMAT_RGBA8, buffer\n\t\t\t)\n\t\t\tnew_project.tiles.tile_mask = image\n\t\telse:\n\t\t\tnew_project.tiles.reset_mask()\n\tfile.close()\n\treturn new_project\n\n\nfunc save_pxo_file(\n\tpath: String, autosave: bool, include_blended := false, project := Global.current_project\n) -> bool:\n\tif not autosave:\n\t\tproject.name = path.uri_decode().get_file().trim_suffix(\".pxo\")\n\tvar serialized_data := project.serialize()\n\tif not serialized_data:\n\t\tGlobal.popup_error(tr(\"File failed to save. Converting project data to dictionary failed.\"))\n\t\treturn false\n\tvar to_save := JSON.stringify(serialized_data)\n\tif not to_save:\n\t\tGlobal.popup_error(tr(\"File failed to save. Converting dictionary to JSON failed.\"))\n\t\treturn false\n\n\t# Check if a file with the same name exists. If it does, rename the new file temporarily.\n\t# Needed in case of a crash, so that the old file won't be replaced with an empty one.\n\t# NOTE: This cannot work in the case of Android, because SAF only allows a file\n\t# to be saved if it has the exact same path as the one the user defined.\n\tvar temp_path := path\n\tif FileAccess.file_exists(path) and not OS.get_name() == \"Android\":\n\t\ttemp_path = path + \"1\"\n\tvar zip_packer := ZIPPacker.new()\n\tvar err := zip_packer.open(temp_path)\n\tif err != OK:\n\t\tGlobal.popup_error(tr(\"File failed to save. Error code %s (%s)\") % [err, error_string(err)])\n\t\tif temp_path.is_valid_filename():\n\t\t\treturn false\n\t\tif zip_packer:  # this would be null if we attempt to save filenames such as \"//\\\\||.pxo\"\n\t\t\tzip_packer.close()\n\t\treturn false\n\tzip_packer.start_file(\"data.json\")\n\tzip_packer.write_file(to_save.to_utf8_buffer())\n\tzip_packer.close_file()\n\n\tzip_packer.start_file(\"mimetype\")\n\tzip_packer.write_file(\"application/x-pixelorama\".to_utf8_buffer())\n\tzip_packer.close_file()\n\n\tvar current_frame := project.frames[project.current_frame]\n\t# Generate a preview image of the current frame.\n\t# File managers can later use this as a thumbnail for pxo files.\n\tvar preview := project.new_empty_image()\n\tDrawingAlgos.blend_layers(preview, current_frame, Vector2i.ZERO, project)\n\tvar new_width := preview.get_width()\n\tvar new_height := preview.get_height()\n\tvar aspect_ratio := float(new_width) / float(new_height)\n\tif new_width > new_height:\n\t\tnew_width = 256\n\t\tnew_height = new_width / aspect_ratio\n\telse:\n\t\tnew_height = 256\n\t\tnew_width = new_height * aspect_ratio\n\tvar scaled_preview := Image.new()\n\tscaled_preview.copy_from(preview)\n\tscaled_preview.resize(new_width, new_height, Image.INTERPOLATE_NEAREST)\n\tzip_packer.start_file(\"preview.png\")\n\tzip_packer.write_file(scaled_preview.save_png_to_buffer())\n\tzip_packer.close_file()\n\n\tif not autosave:\n\t\tproject.save_path = path\n\n\tvar frame_index := 1\n\tfor frame in project.frames:\n\t\tif not autosave and include_blended:\n\t\t\tvar blended := project.new_empty_image()\n\t\t\tif frame == current_frame:\n\t\t\t\tblended = preview\n\t\t\telse:\n\t\t\t\tDrawingAlgos.blend_layers(blended, frame, Vector2i.ZERO, project)\n\t\t\tzip_packer.start_file(\"image_data/final_images/%s\" % frame_index)\n\t\t\tzip_packer.write_file(blended.get_data())\n\t\t\tzip_packer.close_file()\n\t\tvar cel_index := 1\n\t\tfor cel in frame.cels:\n\t\t\tvar cel_image := cel.get_image() as ImageExtended\n\t\t\tif is_instance_valid(cel_image) and cel is PixelCel:\n\t\t\t\tzip_packer.start_file(\"image_data/frames/%s/layer_%s\" % [frame_index, cel_index])\n\t\t\t\tzip_packer.write_file(cel_image.get_data())\n\t\t\t\tzip_packer.close_file()\n\t\t\t\tzip_packer.start_file(\n\t\t\t\t\t\"image_data/frames/%s/indices_layer_%s\" % [frame_index, cel_index]\n\t\t\t\t)\n\t\t\t\tzip_packer.write_file(cel_image.indices_image.get_data())\n\t\t\t\tzip_packer.close_file()\n\t\t\tcel_index += 1\n\t\tframe_index += 1\n\tvar brush_index := 0\n\tfor brush in project.brushes:\n\t\tzip_packer.start_file(\"image_data/brushes/brush_%s\" % brush_index)\n\t\tzip_packer.write_file(brush.get_data())\n\t\tzip_packer.close_file()\n\t\tbrush_index += 1\n\tif project.tiles.has_mask:\n\t\tzip_packer.start_file(\"image_data/tile_map\")\n\t\tzip_packer.write_file(project.tiles.tile_mask.get_data())\n\t\tzip_packer.close_file()\n\tfor i in project.tilesets.size():\n\t\tvar tileset := project.tilesets[i]\n\t\tvar tileset_path := \"tilesets/%s\" % i\n\t\tfor j in tileset.tiles.size():\n\t\t\tvar tile := tileset.tiles[j]\n\t\t\tzip_packer.start_file(tileset_path.path_join(str(j)))\n\t\t\tzip_packer.write_file(tile.image.get_data())\n\t\t\tzip_packer.close_file()\n\tvar audio_layers := project.get_all_audio_layers()\n\tfor i in audio_layers.size():\n\t\tvar layer := audio_layers[i]\n\t\tvar audio_path := \"audio/%s\" % i\n\t\tif layer.audio is AudioStreamMP3:\n\t\t\tzip_packer.start_file(audio_path)\n\t\t\tzip_packer.write_file(layer.audio.data)\n\t\t\tzip_packer.close_file()\n\t\telif layer.audio is AudioStreamWAV:\n\t\t\tvar tmp_wav := FileAccess.create_temp(FileAccess.READ, \"tmp\", \"wav\")\n\t\t\tlayer.audio.save_to_wav(tmp_wav.get_path())\n\t\t\tzip_packer.start_file(audio_path)\n\t\t\tzip_packer.write_file(tmp_wav.get_buffer(tmp_wav.get_length()))\n\t\t\tzip_packer.close_file()\n\tzip_packer.close()\n\n\tif temp_path != path:\n\t\t# Rename the new file to its proper name and remove the old file, if it exists.\n\t\tDirAccess.rename_absolute(temp_path, path)\n\n\tif OS.has_feature(\"web\") and not autosave:\n\t\tvar file := FileAccess.open(path, FileAccess.READ)\n\t\tif FileAccess.get_open_error() == OK:\n\t\t\tvar file_data := file.get_buffer(file.get_length())\n\t\t\tJavaScriptBridge.download_buffer(file_data, path.get_file())\n\t\tfile.close()\n\t\t# Remove the .pxo file from memory, as we don't need it anymore\n\t\tDirAccess.remove_absolute(path)\n\n\tif autosave:\n\t\tGlobal.notification_label(\"Backup saved\")\n\telse:\n\t\t# First remove backup then set current save path\n\t\tif project.has_changed:\n\t\t\tproject.has_changed = false\n\t\tGlobal.notification_label(\"File saved\")\n\t\tget_window().title = project.name + \" - Pixelorama \" + Global.current_version\n\n\t\t# Set last opened project path and save\n\t\tGlobal.config_cache.set_value(\"data\", \"current_dir\", path.get_base_dir())\n\t\tGlobal.config_cache.set_value(\"data\", \"last_project_path\", path)\n\t\tGlobal.config_cache.save(Global.CONFIG_PATH)\n\t\tif project.file_name.is_empty():\n\t\t\tproject.file_name = path.uri_decode().get_file().trim_suffix(\".pxo\")\n\t\tif project.export_directory_path.is_empty():\n\t\t\tproject.export_directory_path = path.get_base_dir()\n\t\tGlobal.top_menu_container.file_menu.set_item_text(\n\t\t\tGlobal.FileMenu.SAVE, tr(\"Save\") + \" %s\" % path.uri_decode().get_file()\n\t\t)\n\t\tproject_saved.emit()\n\t\tSteamManager.set_achievement(\"ACH_SAVE\")\n\t\tsave_project_to_recent_list(path)\n\treturn true\n\n\nfunc open_image_as_new_tab(path: String, image: Image) -> void:\n\tvar project := Project.new([], path.uri_decode().get_file(), image.get_size())\n\tvar layer := PixelLayer.new(project)\n\tproject.layers.append(layer)\n\tGlobal.projects.append(project)\n\n\tvar frame := Frame.new()\n\timage.convert(project.get_image_format())\n\tframe.cels.append(layer.new_cel_from_image(image))\n\n\tproject.frames.append(frame)\n\tset_new_imported_tab(project, path)\n\n\nfunc open_image_as_spritesheet_tab_smart(\n\tpath: String, image: Image, sliced_rects: Array[Rect2i], frame_size: Vector2i\n) -> void:\n\tif sliced_rects.size() == 0:  # Image is empty sprite (manually set data to be consistent)\n\t\tframe_size = image.get_size()\n\t\tsliced_rects.append(Rect2i(Vector2i.ZERO, frame_size))\n\tvar project := Project.new([], path.uri_decode().get_file(), frame_size)\n\tvar layer := PixelLayer.new(project)\n\tproject.layers.append(layer)\n\tGlobal.projects.append(project)\n\tfor rect in sliced_rects:\n\t\tvar offset: Vector2 = (0.5 * (frame_size - rect.size)).floor()\n\t\tvar frame := Frame.new()\n\t\tvar cropped_image := Image.create(\n\t\t\tframe_size.x, frame_size.y, false, project.get_image_format()\n\t\t)\n\t\timage.convert(project.get_image_format())\n\t\tcropped_image.blit_rect(image, rect, offset)\n\t\tframe.cels.append(layer.new_cel_from_image(cropped_image))\n\t\tproject.frames.append(frame)\n\tset_new_imported_tab(project, path)\n\n\nfunc open_image_as_spritesheet_tab(\n\tpath: String, image: Image, horiz: int, vert: int, detect_empty := true\n) -> void:\n\thoriz = mini(horiz, image.get_size().x)\n\tvert = mini(vert, image.get_size().y)\n\tvar frame_width := image.get_size().x / horiz\n\tvar frame_height := image.get_size().y / vert\n\tvar project := Project.new([], path.uri_decode().get_file(), Vector2(frame_width, frame_height))\n\tvar layer := PixelLayer.new(project)\n\tproject.layers.append(layer)\n\tGlobal.projects.append(project)\n\tfor yy in range(vert):\n\t\tfor xx in range(horiz):\n\t\t\tvar cropped_image := image.get_region(\n\t\t\t\tRect2i(frame_width * xx, frame_height * yy, frame_width, frame_height)\n\t\t\t)\n\t\t\tif not detect_empty:\n\t\t\t\tif cropped_image.get_used_rect().size == Vector2i.ZERO:\n\t\t\t\t\tcontinue  # We don't need this Frame\n\t\t\tvar frame := Frame.new()\n\t\t\tproject.size = cropped_image.get_size()\n\t\t\tcropped_image.convert(project.get_image_format())\n\t\t\tframe.cels.append(layer.new_cel_from_image(cropped_image))\n\t\t\tproject.frames.append(frame)\n\tset_new_imported_tab(project, path)\n\n\nfunc open_image_as_spritesheet_layer_smart(\n\t_path: String,\n\timage: Image,\n\tfile_name: String,\n\tsliced_rects: Array[Rect2i],\n\tstart_frame: int,\n\tframe_size: Vector2i\n) -> void:\n\t# Resize canvas to if \"frame_size.x\" or \"frame_size.y\" is too large\n\tvar project := Global.current_project\n\tvar project_width := maxi(frame_size.x, project.size.x)\n\tvar project_height := maxi(frame_size.y, project.size.y)\n\tif project.size < Vector2i(project_width, project_height):\n\t\tDrawingAlgos.resize_canvas(project_width, project_height, 0, 0)\n\n\t# Initialize undo mechanism\n\tproject.undo_redo.create_action(\"Add Spritesheet Layer\")\n\n\tvar max_frames_size := maxi(project.frames.size(), start_frame + sliced_rects.size())\n\tvar new_frames := []\n\tvar frame_indices := PackedInt32Array([])\n\t# Create new layer for spritesheet\n\tvar layer := PixelLayer.new(project, file_name)\n\tvar cels: Array[PixelCel] = []\n\tfor f in max_frames_size:\n\t\tif f >= start_frame and f < (start_frame + sliced_rects.size()):\n\t\t\t# Slice spritesheet\n\t\t\tvar offset: Vector2 = (0.5 * (frame_size - sliced_rects[f - start_frame].size)).floor()\n\t\t\timage.convert(project.get_image_format())\n\t\t\tvar cropped_image := Image.create(\n\t\t\t\tproject_width, project_height, false, project.get_image_format()\n\t\t\t)\n\t\t\tcropped_image.blit_rect(image, sliced_rects[f - start_frame], offset)\n\t\t\tcels.append(layer.new_cel_from_image(cropped_image))\n\t\telse:\n\t\t\tcels.append(layer.new_empty_cel())\n\t\t# If amount of cels exceede our project frames, then add new frame\n\t\tif cels.size() > project.frames.size():\n\t\t\tvar new_frame := Frame.new()\n\t\t\tfor l in range(project.layers.size()):  # Create as many cels as there are layers\n\t\t\t\tnew_frame.cels.append(project.layers[l].new_empty_cel())\n\t\t\t\tif project.layers[l].new_cels_linked:\n\t\t\t\t\tvar prev_cel := project.frames[project.current_frame].cels[l]\n\t\t\t\t\tif prev_cel.link_set == null:\n\t\t\t\t\t\tprev_cel.link_set = {}\n\t\t\t\t\t\tproject.undo_redo.add_do_method(\n\t\t\t\t\t\t\tproject.layers[l].link_cel.bind(prev_cel, prev_cel.link_set)\n\t\t\t\t\t\t)\n\t\t\t\t\t\tproject.undo_redo.add_undo_method(\n\t\t\t\t\t\t\tproject.layers[l].link_cel.bind(prev_cel, null)\n\t\t\t\t\t\t)\n\t\t\t\t\tnew_frame.cels[l].set_content(prev_cel.get_content(), prev_cel.image_texture)\n\t\t\t\t\tnew_frame.cels[l].link_set = prev_cel.link_set\n\t\t\tnew_frames.append(new_frame)\n\n\tif not new_frames.is_empty():  # if new frames got added\n\t\tframe_indices = range(project.frames.size(), project.frames.size() + new_frames.size())\n\t\tproject.undo_redo.add_do_method(project.add_frames.bind(new_frames, frame_indices))\n\t\tproject.undo_redo.add_undo_method(project.remove_frames.bind(frame_indices))\n\tproject.undo_redo.add_do_method(\n\t\tproject.add_layers.bind([layer], [project.layers.size()], [cels])\n\t)\n\tproject.undo_redo.add_do_method(project.change_cel.bind(cels.size() - 1, project.layers.size()))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\n\tproject.undo_redo.add_undo_method(project.remove_layers.bind([project.layers.size()]))\n\tproject.undo_redo.add_undo_method(\n\t\tproject.change_cel.bind(project.current_frame, project.current_layer)\n\t)\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.commit_action()\n\n\nfunc open_image_as_spritesheet_layer(\n\t_path: String,\n\timage: Image,\n\tfile_name: String,\n\thorizontal: int,\n\tvertical: int,\n\tstart_frame: int,\n\tdetect_empty := true\n) -> void:\n\t# Data needed to slice images\n\thorizontal = mini(horizontal, image.get_size().x)\n\tvertical = mini(vertical, image.get_size().y)\n\tvar frame_width := image.get_size().x / horizontal\n\tvar frame_height := image.get_size().y / vertical\n\n\t# Resize canvas to if \"frame_width\" or \"frame_height\" is too large\n\tvar project := Global.current_project\n\tvar project_width := maxi(frame_width, project.size.x)\n\tvar project_height := maxi(frame_height, project.size.y)\n\tif project.size < Vector2i(project_width, project_height):\n\t\tDrawingAlgos.resize_canvas(project_width, project_height, 0, 0)\n\n\t# Initialize undo mechanism\n\tproject.undo_redo.create_action(\"Add Spritesheet Layer\")\n\tvar max_frames_size := maxi(project.frames.size(), start_frame + (vertical * horizontal))\n\tvar new_frames := []\n\tvar frame_indices := PackedInt32Array([])\n\t# Create new layer for spritesheet\n\tvar layer := PixelLayer.new(project, file_name)\n\tvar cels := []\n\tvar tile_count := vertical * horizontal\n\tfor f in max_frames_size:\n\t\tif f >= start_frame and f < start_frame + tile_count:  # Entered region of spritesheet\n\t\t\t# Slice spritesheet\n\t\t\tvar tile_idx := f - start_frame\n\t\t\tvar xx := tile_idx % horizontal\n\t\t\tvar yy := tile_idx / horizontal\n\t\t\timage.convert(project.get_image_format())\n\t\t\tvar cropped_image := Image.create(\n\t\t\t\tproject_width, project_height, false, project.get_image_format()\n\t\t\t)\n\t\t\tcropped_image.blit_rect(\n\t\t\t\timage,\n\t\t\t\tRect2i(frame_width * xx, frame_height * yy, frame_width, frame_height),\n\t\t\t\tVector2i.ZERO\n\t\t\t)\n\t\t\tif not detect_empty:\n\t\t\t\tif cropped_image.get_used_rect().size == Vector2i.ZERO:\n\t\t\t\t\tcontinue  # We don't need this cel\n\t\t\tcels.append(layer.new_cel_from_image(cropped_image))\n\t\telse:\n\t\t\tcels.append(layer.new_empty_cel())\n\t\t# If amount of cels exceede our project frames, then add new frame\n\t\tif cels.size() > project.frames.size():\n\t\t\tvar new_frame := Frame.new()\n\t\t\tfor l in range(project.layers.size()):  # Create as many cels as there are layers\n\t\t\t\tnew_frame.cels.append(project.layers[l].new_empty_cel())\n\t\t\t\tif project.layers[l].new_cels_linked:\n\t\t\t\t\tvar prev_cel := project.frames[project.current_frame].cels[l]\n\t\t\t\t\tif prev_cel.link_set == null:\n\t\t\t\t\t\tprev_cel.link_set = {}\n\t\t\t\t\t\tproject.undo_redo.add_do_method(\n\t\t\t\t\t\t\tproject.layers[l].link_cel.bind(prev_cel, prev_cel.link_set)\n\t\t\t\t\t\t)\n\t\t\t\t\t\tproject.undo_redo.add_undo_method(\n\t\t\t\t\t\t\tproject.layers[l].link_cel.bind(prev_cel, null)\n\t\t\t\t\t\t)\n\t\t\t\t\tnew_frame.cels[l].set_content(prev_cel.get_content(), prev_cel.image_texture)\n\t\t\t\t\tnew_frame.cels[l].link_set = prev_cel.link_set\n\t\t\tnew_frames.append(new_frame)\n\n\tif not new_frames.is_empty():  # if new frames got added\n\t\tframe_indices = range(project.frames.size(), project.frames.size() + new_frames.size())\n\t\tproject.undo_redo.add_do_method(project.add_frames.bind(new_frames, frame_indices))\n\t\tproject.undo_redo.add_undo_method(project.remove_frames.bind(frame_indices))\n\tproject.undo_redo.add_do_method(\n\t\tproject.add_layers.bind([layer], [project.layers.size()], [cels])\n\t)\n\tproject.undo_redo.add_do_method(project.change_cel.bind(cels.size() - 1, project.layers.size()))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\n\tproject.undo_redo.add_undo_method(project.remove_layers.bind([project.layers.size()]))\n\tproject.undo_redo.add_undo_method(\n\t\tproject.change_cel.bind(project.current_frame, project.current_layer)\n\t)\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.commit_action()\n\n\nfunc open_image_at_cel(image: Image, layer_index := 0, frame_index := 0) -> void:\n\tvar project := Global.current_project\n\tvar project_width := maxi(image.get_width(), project.size.x)\n\tvar project_height := maxi(image.get_height(), project.size.y)\n\tif project.size < Vector2i(project_width, project_height):\n\t\tDrawingAlgos.resize_canvas(project_width, project_height, 0, 0)\n\tproject.undo_redo.create_action(\"Replaced Cel\")\n\n\tvar cel := project.frames[frame_index].cels[layer_index]\n\tif not cel is PixelCel:\n\t\treturn\n\timage.convert(project.get_image_format())\n\tvar cel_image := (cel as PixelCel).get_image()\n\tvar undo_data := {}\n\tif cel is CelTileMap:\n\t\tundo_data[cel] = (cel as CelTileMap).serialize_undo_data()\n\tcel_image.add_data_to_dictionary(undo_data)\n\tcel_image.blit_rect(image, Rect2i(Vector2i.ZERO, image.get_size()), Vector2i.ZERO)\n\tcel_image.convert_rgb_to_indexed()\n\tvar redo_data := {}\n\tif cel is CelTileMap:\n\t\t(cel as CelTileMap).update_tilemap()\n\t\tredo_data[cel] = (cel as CelTileMap).serialize_undo_data()\n\tcel_image.add_data_to_dictionary(redo_data)\n\tproject.deserialize_cel_undo_data(redo_data, undo_data)\n\tproject.undo_redo.add_do_property(project, \"selected_cels\", [])\n\tproject.undo_redo.add_do_method(project.change_cel.bind(frame_index, layer_index))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\n\tproject.undo_redo.add_undo_property(project, \"selected_cels\", [])\n\tproject.undo_redo.add_undo_method(\n\t\tproject.change_cel.bind(project.current_frame, project.current_layer)\n\t)\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.commit_action()\n\n\nfunc open_image_as_new_frame(\n\timage: Image, layer_index := 0, project := Global.current_project, undo := true\n) -> void:\n\tvar project_width := maxi(image.get_width(), project.size.x)\n\tvar project_height := maxi(image.get_height(), project.size.y)\n\tif project.size < Vector2i(project_width, project_height):\n\t\tDrawingAlgos.resize_canvas(project_width, project_height, 0, 0)\n\n\tvar frame := Frame.new()\n\tfor i in project.layers.size():\n\t\tvar layer := project.layers[i]\n\t\tif i == layer_index and layer is PixelLayer:\n\t\t\timage.convert(project.get_image_format())\n\t\t\tvar cel_image := Image.create(\n\t\t\t\tproject_width, project_height, false, project.get_image_format()\n\t\t\t)\n\t\t\tcel_image.blit_rect(image, Rect2i(Vector2i.ZERO, image.get_size()), Vector2i.ZERO)\n\t\t\tframe.cels.append(layer.new_cel_from_image(cel_image))\n\t\telse:\n\t\t\tframe.cels.append(project.layers[i].new_empty_cel())\n\tif not undo:\n\t\tproject.frames.append(frame)\n\t\treturn\n\tproject.undo_redo.create_action(\"Add Frame\")\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_do_method(project.add_frames.bind([frame], [project.frames.size()]))\n\tproject.undo_redo.add_do_method(project.change_cel.bind(project.frames.size(), layer_index))\n\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_undo_method(project.remove_frames.bind([project.frames.size()]))\n\tproject.undo_redo.add_undo_method(\n\t\tproject.change_cel.bind(project.current_frame, project.current_layer)\n\t)\n\tproject.undo_redo.commit_action()\n\n\nfunc open_image_as_new_layer(image: Image, file_name: String, frame_index := 0) -> void:\n\tvar project := Global.current_project\n\tvar project_width := maxi(image.get_width(), project.size.x)\n\tvar project_height := maxi(image.get_height(), project.size.y)\n\tif project.size < Vector2i(project_width, project_height):\n\t\tDrawingAlgos.resize_canvas(project_width, project_height, 0, 0)\n\tvar layer := PixelLayer.new(project, file_name)\n\tvar cels := []\n\n\tGlobal.current_project.undo_redo.create_action(\"Add Layer\")\n\tfor i in project.frames.size():\n\t\tif i == frame_index:\n\t\t\timage.convert(project.get_image_format())\n\t\t\tvar cel_image := Image.create(\n\t\t\t\tproject_width, project_height, false, project.get_image_format()\n\t\t\t)\n\t\t\tcel_image.blit_rect(image, Rect2i(Vector2i.ZERO, image.get_size()), Vector2i.ZERO)\n\t\t\tcels.append(layer.new_cel_from_image(cel_image))\n\t\telse:\n\t\t\tcels.append(layer.new_empty_cel())\n\n\tproject.undo_redo.add_do_method(\n\t\tproject.add_layers.bind([layer], [project.layers.size()], [cels])\n\t)\n\tproject.undo_redo.add_do_method(project.change_cel.bind(frame_index, project.layers.size()))\n\n\tproject.undo_redo.add_undo_method(project.remove_layers.bind([project.layers.size()]))\n\tproject.undo_redo.add_undo_method(\n\t\tproject.change_cel.bind(project.current_frame, project.current_layer)\n\t)\n\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.commit_action()\n\n\nfunc import_reference_image_from_path(path: String) -> void:\n\tvar project := Global.current_project\n\tvar ri := ReferenceImage.new()\n\tri.project = project\n\tri.deserialize({\"image_path\": path})\n\tGlobal.canvas.reference_image_container.add_child(ri)\n\treference_image_imported.emit()\n\n\n## Useful for Web\nfunc import_reference_image_from_image(image: Image) -> void:\n\tvar project := Global.current_project\n\tvar ri := ReferenceImage.new()\n\tri.project = project\n\tri.create_from_image(image)\n\tGlobal.canvas.reference_image_container.add_child(ri)\n\treference_image_imported.emit()\n\n\nfunc open_image_as_tileset(\n\tpath: String,\n\timage: Image,\n\thoriz: int,\n\tvert: int,\n\ttile_shape: TileSet.TileShape,\n\ttile_offset_axis: TileSet.TileOffsetAxis,\n\tproject := Global.current_project,\n\tdetect_empty := true\n) -> void:\n\timage.convert(project.get_image_format())\n\thoriz = mini(horiz, image.get_size().x)\n\tvert = mini(vert, image.get_size().y)\n\tvar frame_width := image.get_size().x / horiz\n\tvar frame_height := image.get_size().y / vert\n\tvar tile_size := Vector2i(frame_width, frame_height)\n\tvar tileset := TileSetCustom.new(\n\t\ttile_size, path.uri_decode().get_basename().get_file(), tile_shape\n\t)\n\ttileset.tile_offset_axis = tile_offset_axis\n\tfor yy in range(vert):\n\t\tfor xx in range(horiz):\n\t\t\tvar cropped_image := image.get_region(\n\t\t\t\tRect2i(frame_width * xx, frame_height * yy, frame_width, frame_height)\n\t\t\t)\n\t\t\tif not detect_empty:\n\t\t\t\tif cropped_image.get_used_rect().size == Vector2i.ZERO:\n\t\t\t\t\tcontinue  # We don't need this Frame\n\t\t\t@warning_ignore(\"int_as_enum_without_cast\")\n\t\t\ttileset.add_tile(cropped_image, null, 0)\n\tproject.tilesets.append(tileset)\n\n\nfunc open_image_as_tileset_smart(\n\tpath: String,\n\timage: Image,\n\tsliced_rects: Array[Rect2i],\n\ttile_size: Vector2i,\n\ttile_shape: TileSet.TileShape,\n\ttile_offset_axis: TileSet.TileOffsetAxis,\n\tproject := Global.current_project\n) -> void:\n\timage.convert(project.get_image_format())\n\tif sliced_rects.size() == 0:  # Image is empty sprite (manually set data to be consistent)\n\t\ttile_size = image.get_size()\n\t\tsliced_rects.append(Rect2i(Vector2i.ZERO, tile_size))\n\tvar tileset := TileSetCustom.new(\n\t\ttile_size, path.uri_decode().get_basename().get_file(), tile_shape\n\t)\n\ttileset.tile_offset_axis = tile_offset_axis\n\tfor rect in sliced_rects:\n\t\tvar offset: Vector2 = (0.5 * (tile_size - rect.size)).floor()\n\t\tvar cropped_image := Image.create(\n\t\t\ttile_size.x, tile_size.y, false, project.get_image_format()\n\t\t)\n\t\tcropped_image.blit_rect(image, rect, offset)\n\t\t@warning_ignore(\"int_as_enum_without_cast\")\n\t\ttileset.add_tile(cropped_image, null, 0)\n\tproject.tilesets.append(tileset)\n\n\nfunc set_new_imported_tab(project: Project, path: String) -> void:\n\tvar prev_project_empty := Global.current_project.is_empty()\n\tvar prev_project_pos := Global.current_project_index\n\n\tvar file_name := path.uri_decode().get_file()\n\tget_window().title = (\n\t\tfile_name + \" (\" + tr(\"imported\") + \") - Pixelorama \" + Global.current_version\n\t)\n\tif project.has_changed:\n\t\tget_window().title = get_window().title + \"(*)\"\n\tproject.export_directory_path = path.get_base_dir()\n\tproject.file_name = file_name.get_basename()\n\tproject.was_exported = true\n\tif path.get_extension().to_lower() == \"png\":\n\t\tproject.export_overwrite = true\n\n\tGlobal.tabs.current_tab = Global.tabs.get_tab_count() - 1\n\tGlobal.canvas.camera_zoom()\n\n\tif prev_project_empty:\n\t\tGlobal.tabs.delete_tab(prev_project_pos)\n\n\nfunc open_audio_file(path: String) -> void:\n\tvar audio_stream: AudioStream\n\tif path.get_extension().to_lower() == \"mp3\":\n\t\taudio_stream = AudioStreamMP3.load_from_file(path)\n\telif path.get_extension().to_lower() == \"wav\":\n\t\taudio_stream = AudioStreamWAV.load_from_file(path)\n\tif not is_instance_valid(audio_stream):\n\t\treturn\n\tvar project := Global.current_project\n\tfor layer in project.layers:\n\t\tif layer is AudioLayer and not is_instance_valid(layer.audio):\n\t\t\tlayer.audio = audio_stream\n\t\t\treturn\n\tvar new_layer := AudioLayer.new(project, path.uri_decode().get_basename().get_file())\n\tnew_layer.audio = audio_stream\n\tGlobal.animation_timeline.add_layer(new_layer, project)\n\n\nfunc open_font_file(path: String) -> FontFile:\n\tvar font_file := FontFile.new()\n\tif path.to_lower().get_extension() == \"fnt\" or path.to_lower().get_extension() == \"font\":\n\t\tfont_file.load_bitmap_font(path)\n\telse:\n\t\tfont_file.load_dynamic_font(path)\n\treturn font_file\n\n\nfunc open_gif_file(path: String) -> bool:\n\tvar file := FileAccess.open(path, FileAccess.READ)\n\tvar importer := GifImporter.new(file)\n\tvar result = importer.import()\n\tfile.close()\n\tif result != GifImporter.Error.OK:\n\t\tprinterr(\"An error has occurred while importing: %d\" % [result])\n\t\treturn false\n\tvar imported_frames := importer.frames\n\tif imported_frames.size() == 0:\n\t\tprinterr(\"An error has occurred while importing the gif\")\n\t\treturn false\n\tvar new_project := Project.new([], path.uri_decode().get_file().get_basename())\n\tvar size := Vector2i(importer.get_logical_screen_width(), importer.get_logical_screen_height())\n\tnew_project.size = size\n\tnew_project.fps = 1.0\n\tvar layer := PixelLayer.new(new_project)\n\tnew_project.layers.append(layer)\n\tfor gif_frame in imported_frames:\n\t\tvar frame_image := gif_frame.image\n\t\tframe_image.crop(new_project.size.x, new_project.size.y)\n\t\tvar cel := layer.new_cel_from_image(frame_image)\n\t\tvar delay := gif_frame.delay\n\t\tif delay <= 0.0:\n\t\t\tdelay = 0.1\n\t\tvar frame := Frame.new([cel], delay)\n\t\tnew_project.frames.append(frame)\n\tnew_project.save_path = path.get_basename() + \".pxo\"\n\tnew_project.file_name = new_project.name\n\tGlobal.projects.append(new_project)\n\tGlobal.tabs.current_tab = Global.tabs.get_tab_count() - 1\n\tGlobal.canvas.camera_zoom()\n\treturn true\n\n\n# Based on https://www.openraster.org/\nfunc open_ora_file(path: String) -> void:\n\tvar zip_reader := ZIPReader.new()\n\tvar err := zip_reader.open(path)\n\tif err != OK:\n\t\tprint(\"Error opening ora file: \", error_string(err))\n\t\treturn\n\tvar data_xml := zip_reader.read_file(\"stack.xml\")\n\tvar parser := XMLParser.new()\n\terr = parser.open_buffer(data_xml)\n\tif err != OK:\n\t\tprint(\"Error parsing XML from ora file: \", error_string(err))\n\t\tzip_reader.close()\n\t\treturn\n\tvar new_project := Project.new([Frame.new()], path.uri_decode().get_file().get_basename())\n\tvar selected_layer: BaseLayer\n\tvar stacks_found := 0\n\tvar current_stack: Array[GroupLayer] = []\n\twhile parser.read() != ERR_FILE_EOF:\n\t\tif parser.get_node_type() == XMLParser.NODE_ELEMENT:\n\t\t\tvar node_name := parser.get_node_name()\n\t\t\tif node_name == \"image\":\n\t\t\t\tvar width := parser.get_named_attribute_value_safe(\"w\")\n\t\t\t\tif not width.is_empty():\n\t\t\t\t\tnew_project.size.x = str_to_var(width)\n\t\t\t\tvar height := parser.get_named_attribute_value_safe(\"h\")\n\t\t\t\tif not height.is_empty():\n\t\t\t\t\tnew_project.size.y = str_to_var(height)\n\t\t\telif node_name == \"layer\" or node_name == \"stack\":\n\t\t\t\tfor prev_layer in new_project.layers:\n\t\t\t\t\tprev_layer.index += 1\n\t\t\t\tvar layer_name := parser.get_named_attribute_value_safe(\"name\")\n\t\t\t\tvar layer: BaseLayer\n\t\t\t\tif node_name == \"stack\":\n\t\t\t\t\tstacks_found += 1\n\t\t\t\t\tif stacks_found == 1:\n\t\t\t\t\t\tcontinue\n\t\t\t\t\tlayer = GroupLayer.new(new_project, layer_name)\n\t\t\t\t\tif current_stack.size() > 0:\n\t\t\t\t\t\tlayer.parent = current_stack[-1]\n\t\t\t\t\tcurrent_stack.append(layer)\n\t\t\t\telse:\n\t\t\t\t\tlayer = PixelLayer.new(new_project, layer_name)\n\t\t\t\t\tif current_stack.size() > 0:\n\t\t\t\t\t\tlayer.parent = current_stack[-1]\n\t\t\t\tnew_project.layers.insert(0, layer)\n\t\t\t\tif new_project.layers.size() == 1:\n\t\t\t\t\tselected_layer = layer\n\t\t\t\tlayer.index = 0\n\t\t\t\tlayer.opacity = float(parser.get_named_attribute_value_safe(\"opacity\"))\n\t\t\t\tif parser.get_named_attribute_value_safe(\"selected\") == \"true\":\n\t\t\t\t\tselected_layer = layer\n\t\t\t\tlayer.visible = parser.get_named_attribute_value_safe(\"visibility\") != \"hidden\"\n\t\t\t\tlayer.locked = parser.get_named_attribute_value_safe(\"edit-locked\") == \"true\"\n\t\t\t\tvar blend_mode := parser.get_named_attribute_value_safe(\"composite-op\")\n\t\t\t\tmatch blend_mode:\n\t\t\t\t\t\"svg:multiply\":\n\t\t\t\t\t\tlayer.blend_mode = BaseLayer.BlendModes.MULTIPLY\n\t\t\t\t\t\"svg:screen\":\n\t\t\t\t\t\tlayer.blend_mode = BaseLayer.BlendModes.SCREEN\n\t\t\t\t\t\"svg:overlay\":\n\t\t\t\t\t\tlayer.blend_mode = BaseLayer.BlendModes.OVERLAY\n\t\t\t\t\t\"svg:darken\":\n\t\t\t\t\t\tlayer.blend_mode = BaseLayer.BlendModes.DARKEN\n\t\t\t\t\t\"svg:lighten\":\n\t\t\t\t\t\tlayer.blend_mode = BaseLayer.BlendModes.LIGHTEN\n\t\t\t\t\t\"svg:color-dodge\":\n\t\t\t\t\t\tlayer.blend_mode = BaseLayer.BlendModes.COLOR_DODGE\n\t\t\t\t\t\"svg:hard-light\":\n\t\t\t\t\t\tlayer.blend_mode = BaseLayer.BlendModes.HARD_LIGHT\n\t\t\t\t\t\"svg:soft-light\":\n\t\t\t\t\t\tlayer.blend_mode = BaseLayer.BlendModes.SOFT_LIGHT\n\t\t\t\t\t\"svg:difference\":\n\t\t\t\t\t\tlayer.blend_mode = BaseLayer.BlendModes.DIFFERENCE\n\t\t\t\t\t\"svg:color\":\n\t\t\t\t\t\tlayer.blend_mode = BaseLayer.BlendModes.COLOR\n\t\t\t\t\t\"svg:luminosity\":\n\t\t\t\t\t\tlayer.blend_mode = BaseLayer.BlendModes.LUMINOSITY\n\t\t\t\t\t\"svg:hue\":\n\t\t\t\t\t\tlayer.blend_mode = BaseLayer.BlendModes.HUE\n\t\t\t\t\t\"svg:saturation\":\n\t\t\t\t\t\tlayer.blend_mode = BaseLayer.BlendModes.SATURATION\n\t\t\t\t\t\"svg:dst-out\":\n\t\t\t\t\t\tlayer.blend_mode = BaseLayer.BlendModes.ERASE\n\t\t\t\t\t_:\n\t\t\t\t\t\tif \"divide\" in blend_mode:  # For example, krita:divide\n\t\t\t\t\t\t\tlayer.blend_mode = BaseLayer.BlendModes.DIVIDE\n\t\t\t\t# Create cel\n\t\t\t\tvar cel := layer.new_empty_cel()\n\t\t\t\tif cel is PixelCel:\n\t\t\t\t\tvar image_path := parser.get_named_attribute_value_safe(\"src\")\n\t\t\t\t\tvar image_data := zip_reader.read_file(image_path)\n\t\t\t\t\tvar image := Image.new()\n\t\t\t\t\timage.load_png_from_buffer(image_data)\n\t\t\t\t\tvar image_rect := Rect2i(Vector2i.ZERO, image.get_size())\n\t\t\t\t\tvar image_x := int(parser.get_named_attribute_value(\"x\"))\n\t\t\t\t\tvar image_y := int(parser.get_named_attribute_value(\"y\"))\n\t\t\t\t\tcel.get_image().blit_rect(image, image_rect, Vector2i(image_x, image_y))\n\t\t\t\tnew_project.frames[0].cels.insert(0, cel)\n\t\telif parser.get_node_type() == XMLParser.NODE_ELEMENT_END:\n\t\t\tvar node_name := parser.get_node_name()\n\t\t\tif node_name == \"stack\":\n\t\t\t\tcurrent_stack.pop_back()\n\tzip_reader.close()\n\tnew_project.order_layers()\n\tnew_project.selected_cels.clear()\n\tnew_project.change_cel(0, new_project.layers.find(selected_layer))\n\tnew_project.save_path = path.get_basename() + \".pxo\"\n\tnew_project.file_name = new_project.name\n\tGlobal.projects.append(new_project)\n\tGlobal.tabs.current_tab = Global.tabs.get_tab_count() - 1\n\tGlobal.canvas.camera_zoom()\n\n\nfunc open_piskel_file(path: String) -> void:\n\tvar file_json = JSON.parse_string(FileAccess.get_file_as_string(path))\n\tif typeof(file_json) != TYPE_DICTIONARY:\n\t\treturn\n\tvar piskel: Dictionary = file_json.piskel\n\tvar project_name: String = piskel.get(\"name\", path.uri_decode().get_file().get_basename())\n\tvar new_project := Project.new([], project_name)\n\tnew_project.size = Vector2i(piskel.width, piskel.height)\n\tnew_project.fps = piskel.fps\n\tnew_project.save_path = path.get_basename() + \".pxo\"\n\tnew_project.file_name = new_project.name\n\tvar n_of_frames := 0\n\tfor i in piskel.layers.size():\n\t\tvar piskel_layer_str = piskel.layers[i]\n\t\tvar piskel_layer: Dictionary = JSON.parse_string(piskel_layer_str)\n\t\tvar layer := PixelLayer.new(new_project, piskel_layer.name)\n\t\tlayer.opacity = piskel_layer.opacity\n\t\tlayer.index = i\n\t\tif piskel_layer.frameCount > n_of_frames:\n\t\t\tfor j in range(n_of_frames, piskel_layer.frameCount):\n\t\t\t\tvar frame := Frame.new()\n\t\t\t\tnew_project.frames.append(frame)\n\t\t\tn_of_frames = piskel_layer.frameCount\n\t\tvar layer_image: Image = null\n\t\tfor chunk in piskel_layer.chunks:\n\t\t\tvar chunk_image := Image.new()\n\t\t\tvar base64_str: String = chunk.base64PNG.trim_prefix(\"data:image/png;base64,\")\n\t\t\tchunk_image.load_png_from_buffer(Marshalls.base64_to_raw(base64_str))\n\t\t\tif not is_instance_valid(layer_image):\n\t\t\t\tlayer_image = chunk_image\n\t\t\telse:\n\t\t\t\tvar src_rect := Rect2i(Vector2i.ZERO, chunk_image.get_size())\n\t\t\t\tlayer_image.blend_rect(chunk_image, src_rect, Vector2i.ZERO)\n\t\tfor j in new_project.frames.size():\n\t\t\tvar region := Rect2i(Vector2i(j * new_project.size.x, 0), new_project.size)\n\t\t\tvar cel_image := layer_image.get_region(region)\n\t\t\tvar cel := layer.new_cel_from_image(cel_image)\n\t\t\tnew_project.frames[j].cels.append(cel)\n\t\tnew_project.layers.append(layer)\n\tnew_project.order_layers()\n\tGlobal.projects.append(new_project)\n\tGlobal.tabs.current_tab = Global.tabs.get_tab_count() - 1\n\tGlobal.canvas.camera_zoom()\n\n\nfunc enforce_backed_sessions_limit() -> void:\n\t# Enforce session limit\n\tvar old_folders = DirAccess.get_directories_at(BACKUPS_DIRECTORY)\n\tif old_folders.size() > Global.max_backed_sessions:\n\t\tvar excess = old_folders.size() - Global.max_backed_sessions\n\t\tfor i in excess:\n\t\t\t# Remove oldest folder. The array is sorted alphabetically so the oldest folder\n\t\t\t# is the first in array\n\t\t\tvar oldest = BACKUPS_DIRECTORY.path_join(old_folders[0])\n\t\t\tfor file in DirAccess.get_files_at(oldest):\n\t\t\t\tDirAccess.remove_absolute(oldest.path_join(file))\n\t\t\tDirAccess.remove_absolute(oldest)\n\t\t\told_folders.remove_at(0)\n\n\nfunc update_autosave() -> void:\n\tif not is_instance_valid(autosave_timer):\n\t\treturn\n\tautosave_timer.stop()\n\t# Interval parameter is in minutes, wait_time is seconds\n\tautosave_timer.wait_time = Global.autosave_interval * 60\n\tif Global.enable_autosave:\n\t\tautosave_timer.start()\n\n\nfunc _on_Autosave_timeout() -> void:\n\tfor i in Global.projects.size():\n\t\tvar project := Global.projects[i]\n\t\tvar p_name: String = project.file_name\n\t\tif project.backup_path.is_empty():\n\t\t\tproject.backup_path = (current_session_backup.path_join(\n\t\t\t\t\"(\" + p_name + \" backup)-\" + str(Time.get_unix_time_from_system()) + \"-%s\" % i\n\t\t\t))\n\t\tif not DirAccess.dir_exists_absolute(current_session_backup):\n\t\t\tDirAccess.make_dir_recursive_absolute(current_session_backup)\n\t\tsave_pxo_file(project.backup_path, true, false, project)\n\n\nfunc save_project_to_recent_list(path: String) -> void:\n\tvar top_menu_container := Global.top_menu_container\n\tif path.get_file().substr(0, 7) == \"backup-\" or path == \"\":\n\t\treturn\n\n\tif top_menu_container.recent_projects.has(path):\n\t\ttop_menu_container.recent_projects.erase(path)\n\n\tif top_menu_container.recent_projects.size() >= 5:\n\t\ttop_menu_container.recent_projects.pop_front()\n\ttop_menu_container.recent_projects.push_back(path)\n\n\tGlobal.config_cache.set_value(\"data\", \"recent_projects\", top_menu_container.recent_projects)\n\n\ttop_menu_container.recent_projects_submenu.clear()\n\ttop_menu_container.update_recent_projects_submenu()\n"
  },
  {
    "path": "src/Autoload/OpenSave.gd.uid",
    "content": "uid://cc853sypyyen6\n"
  },
  {
    "path": "src/Autoload/Palettes.gd",
    "content": "extends Node\n\nsignal palette_selected(palette_name: String)\nsignal new_palette_created\nsignal palette_removed\nsignal new_palette_imported\n\nenum SortOptions {NEW_PALETTE, REVERSE, HUE, SATURATION, VALUE, LIGHTNESS, RED, GREEN, BLUE, ALPHA}\n## Presets for creating a new palette\nenum NewPalettePresetType {EMPTY, FROM_CURRENT_PALETTE, FROM_CURRENT_SPRITE, FROM_CURRENT_SELECTION}\n## Color options when user creates a new palette from current sprite or selection\nenum GetColorsFrom { CURRENT_FRAME, CURRENT_CEL, ALL_FRAMES }\nconst DEFAULT_PALETTE_NAME := \"Default\"\n## Maximum allowed width of imported palettes.\nconst MAX_IMPORT_PAL_WIDTH := 1 << 14\nvar palettes_write_path := Global.home_data_directory.path_join(\"Palettes\")\n## All available palettes\nvar palettes: Dictionary[String, Palette] = {}\n## Currently displayed palette\nvar current_palette: Palette = null\nvar auto_add_colors := false\n\n# Indexes of colors that are selected in palette\n# by left and right mouse button\nvar left_selected_color := -1\nvar right_selected_color := -1\n\n\nfunc _ready() -> void:\n\t_load_palettes()\n\n\nfunc does_palette_exist(palette_name: String, in_project := Global.current_project) -> bool:\n\tvar keys = palettes.keys()\n\tif in_project:\n\t\tkeys.append_array(in_project.palettes.keys())\n\tfor name_to_test: String in keys:\n\t\tif name_to_test == palette_name:\n\t\t\treturn true\n\treturn false\n\n\nfunc select_palette(palette_name: String) -> void:\n\tvar project: Project = Global.current_project\n\tproject.project_current_palette_name = \"\"\n\tcurrent_palette = null\n\tif palettes.has(palette_name):\n\t\tcurrent_palette = palettes.get(palette_name, null)\n\telif project.palettes.has(palette_name):\n\t\tcurrent_palette = project.palettes.get(palette_name, null)\n\t\tif current_palette:\n\t\t\tproject.project_current_palette_name = palette_name\n\telse:\n\t\t# Attempt to find the last used palette (select if it's a global palette)\n\t\tvar last_active_palette: String = Global.config_cache.get_value(\n\t\t\t\"data\", \"last_palette\", DEFAULT_PALETTE_NAME\n\t\t)\n\t\tcurrent_palette = palettes.get(last_active_palette, null)\n\t\tif !current_palette:  # Fallback to the palette that the last palette is derived from\n\t\t\tcurrent_palette = palettes.get(get_name_without_suffix(last_active_palette), null)\n\t\t\tif !current_palette:  # Fallback to default palette\n\t\t\t\tcurrent_palette = palettes.get(DEFAULT_PALETTE_NAME, null)\n\t\tif current_palette:\n\t\t\tpalette_name = current_palette.name\n\t_clear_selected_colors()\n\tif is_instance_valid(current_palette):\n\t\tGlobal.config_cache.set_value(\"data\", \"last_palette\", current_palette.name)\n\tpalette_selected.emit(palette_name)\n\n\nfunc is_any_palette_selected() -> bool:\n\tif is_instance_valid(current_palette):\n\t\treturn true\n\treturn false\n\n\nfunc _ensure_palette_directory_exists() -> void:\n\tvar dir := DirAccess.open(Global.home_data_directory)\n\tif is_instance_valid(dir) and not dir.dir_exists(palettes_write_path):\n\t\tdir.make_dir(palettes_write_path)\n\n\nfunc save_palette(palette: Palette = current_palette) -> void:\n\tif palette.is_project_palette:  # Failsafe\n\t\treturn\n\t_ensure_palette_directory_exists()\n\tif not is_instance_valid(palette):\n\t\treturn\n\tvar old_name := palette.path.get_basename().get_file()\n\t# If the palette's name has changed, remove the old palette file\n\tif old_name != palette.name:\n\t\tDirAccess.remove_absolute(palette.path)\n\t\tpalettes.erase(old_name)\n\n\t# Save palette\n\tvar save_path := palettes_write_path.path_join(palette.name) + \".json\"\n\tpalette.path = save_path\n\tvar err := palette.save_to_file()\n\tif err != OK:\n\t\tGlobal.popup_error(\"Failed to save palette. Error code %s (%s)\" % [err, error_string(err)])\n\n\n## Copies the current_palette and assigns it as the new current palette\nfunc copy_current_palette(\n\tnew_palette_name := current_palette.name, is_global := false, is_undoable := true\n) -> void:\n\tnew_palette_name = get_valid_name(new_palette_name)\n\tvar comment := current_palette.comment\n\t_create_new_palette_from_current_palette(new_palette_name, comment, is_global, is_undoable)\n\n\n## De-lists the palette from the project and global palette dictionaries\nfunc unparent_palette(palette: Palette):\n\tif palette.name in palettes:\n\t\tpalettes.erase(palette.name)\n\t\treturn\n\tif Global.current_project:\n\t\tif palette.name in Global.current_project.palettes:\n\t\t\tGlobal.current_project.palettes.erase(palette.name)\n\n\nfunc add_palette_as_project_palette(new_palette: Palette) -> void:\n\tnew_palette.is_project_palette = true\n\tnew_palette.name = get_valid_name(new_palette.name)\n\tGlobal.current_project.palettes[new_palette.name] = new_palette\n\tcurrent_palette = new_palette\n\tnew_palette_created.emit()\n\n\nfunc undo_redo_add_palette(new_palette: Palette):\n\tvar undo_redo := Global.current_project.undo_redo\n\tundo_redo.add_do_method(add_palette_as_project_palette.bind(new_palette))\n\tundo_redo.add_undo_method(palette_delete_and_reselect.bind(true, new_palette))\n\tif is_instance_valid(current_palette):\n\t\tundo_redo.add_undo_method(select_palette.bind(current_palette.name))\n\n\nfunc get_valid_name(initial_palette_name: String, project := Global.current_project) -> String:\n\tvar copies := 0\n\t# Remove any previous suffixes\n\tinitial_palette_name = get_name_without_suffix(initial_palette_name)\n\tvar palette_name := initial_palette_name\n\twhile does_palette_exist(palette_name, project):\n\t\tvar final_suffix = \" copy\" + (str(\" \", copies) if copies != 0 else \"\")\n\t\tpalette_name = initial_palette_name + final_suffix\n\t\tcopies += 1\n\treturn palette_name\n\n\nfunc get_name_without_suffix(palette_name: String, include_count := false) -> String:\n\t# Remove any previous suffixes\n\tvar result := palette_name\n\tif palette_name.contains(\"copy\") and palette_name != \"copy\":\n\t\tresult = palette_name.substr(0, palette_name.rfind(\"copy\")).strip_edges()\n\t\tif include_count:\n\t\t\tvar start = palette_name.rfind(\"copy\") + 4  # NOTE: (4 == \"copy\".length())\n\t\t\tvar length = palette_name.length() - start\n\t\t\tresult += \" \" + palette_name.substr(start, length).strip_edges()\n\treturn result\n\n\nfunc create_new_palette(\n\tpreset: int,\n\tpalette_name: String,\n\tcomment: String,\n\twidth: int,\n\theight: int,\n\tadd_alpha_colors: bool,\n\tget_colors_from: int,\n\tis_global: bool\n) -> void:\n\tif !is_global:\n\t\tGlobal.current_project.undo_redo.create_action(\"Create new palette\")\n\t_check_palette_settings_values(palette_name, width, height)\n\tmatch preset:\n\t\tNewPalettePresetType.EMPTY:\n\t\t\t_create_new_empty_palette(palette_name, comment, width, height, is_global)\n\t\tNewPalettePresetType.FROM_CURRENT_PALETTE:\n\t\t\t_create_new_palette_from_current_palette(palette_name, comment, is_global)\n\t\tNewPalettePresetType.FROM_CURRENT_SPRITE:\n\t\t\t_create_new_palette_from_current_sprite(\n\t\t\t\tpalette_name, comment, width, height, add_alpha_colors, get_colors_from, is_global\n\t\t\t)\n\t\tNewPalettePresetType.FROM_CURRENT_SELECTION:\n\t\t\t_create_new_palette_from_current_selection(\n\t\t\t\tpalette_name, comment, width, height, add_alpha_colors, get_colors_from, is_global\n\t\t\t)\n\tif !is_global:\n\t\tGlobal.current_project.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\t\tGlobal.current_project.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\tGlobal.current_project.undo_redo.commit_action()\n\telse:\n\t\tnew_palette_created.emit()\n\n\nfunc _create_new_empty_palette(\n\tpalette_name: String, comment: String, width: int, height: int, is_global: bool\n) -> void:\n\tvar new_palette := Palette.new(palette_name, width, height, comment)\n\tif is_global:\n\t\tsave_palette(new_palette)\n\t\tpalettes[palette_name] = new_palette\n\t\tselect_palette(palette_name)\n\telse:\n\t\tundo_redo_add_palette(new_palette)\n\n\nfunc _create_new_palette_from_current_palette(\n\tpalette_name: String, comment: String, is_global: bool, is_undoable := true\n) -> void:\n\tif !current_palette:\n\t\treturn\n\tvar new_palette := current_palette.duplicate()\n\tnew_palette.name = palette_name\n\tnew_palette.comment = comment\n\tnew_palette.is_project_palette = false\n\tnew_palette.path = palettes_write_path.path_join(new_palette.name) + \".json\"\n\tif is_global:\n\t\tsave_palette(new_palette)\n\t\tpalettes[palette_name] = new_palette\n\t\tselect_palette(palette_name)\n\telse:\n\t\tif is_undoable:\n\t\t\tundo_redo_add_palette(new_palette)\n\t\telse:\n\t\t\tadd_palette_as_project_palette(new_palette)\n\t\t\tselect_palette(palette_name)\n\n\nfunc _create_new_palette_from_current_selection(\n\tpalette_name: String,\n\tcomment: String,\n\twidth: int,\n\theight: int,\n\tadd_alpha_colors: bool,\n\tget_colors_from: int,\n\tis_global: bool\n) -> void:\n\tvar new_palette := Palette.new(palette_name, width, height, comment)\n\tvar current_project := Global.current_project\n\tvar pixels: Array[Vector2i] = []\n\tfor x in current_project.size.x:\n\t\tfor y in current_project.size.y:\n\t\t\tvar pos := Vector2i(x, y)\n\t\t\tif current_project.selection_map.is_pixel_selected(pos):\n\t\t\t\tpixels.append(pos)\n\t_fill_new_palette_with_colors(pixels, new_palette, add_alpha_colors, get_colors_from, is_global)\n\n\nfunc _create_new_palette_from_current_sprite(\n\tpalette_name: String,\n\tcomment: String,\n\twidth: int,\n\theight: int,\n\tadd_alpha_colors: bool,\n\tget_colors_from: int,\n\tis_global: bool\n) -> void:\n\tvar new_palette := Palette.new(palette_name, width, height, comment)\n\tvar current_project := Global.current_project\n\tvar pixels: Array[Vector2i] = []\n\tfor x in current_project.size.x:\n\t\tfor y in current_project.size.y:\n\t\t\tpixels.append(Vector2i(x, y))\n\t_fill_new_palette_with_colors(pixels, new_palette, add_alpha_colors, get_colors_from, is_global)\n\n\n## Fills [param new_palette] with the colors of the [param pixels] of the current sprite.\n## Used when creating a new palette from the UI.\nfunc _fill_new_palette_with_colors(\n\tpixels: Array[Vector2i],\n\tnew_palette: Palette,\n\tadd_alpha_colors: bool,\n\tget_colors_from: int,\n\tis_global: bool\n) -> void:\n\tvar current_project := Global.current_project\n\tvar cels: Array[BaseCel] = []\n\tmatch get_colors_from:\n\t\tGetColorsFrom.CURRENT_CEL:\n\t\t\tfor cel_index in current_project.selected_cels:\n\t\t\t\tvar cel := current_project.frames[cel_index[0]].cels[cel_index[1]]\n\t\t\t\tcels.append(cel)\n\t\tGetColorsFrom.CURRENT_FRAME:\n\t\t\tfor cel in current_project.frames[current_project.current_frame].cels:\n\t\t\t\tcels.append(cel)\n\t\tGetColorsFrom.ALL_FRAMES:\n\t\t\tfor frame in current_project.frames:\n\t\t\t\tfor cel in frame.cels:\n\t\t\t\t\tcels.append(cel)\n\n\tfor cel in cels:\n\t\tvar cel_image := Image.new()\n\t\tcel_image.copy_from(cel.get_image())\n\t\tif cel_image.is_invisible():\n\t\t\tcontinue\n\t\tfor i in pixels:\n\t\t\tvar color := cel_image.get_pixelv(i)\n\t\t\tif color.a > 0:\n\t\t\t\tif not add_alpha_colors:\n\t\t\t\t\tcolor.a = 1\n\t\t\t\tif not new_palette.has_theme_color(color):\n\t\t\t\t\tnew_palette.add_color(color)\n\tif is_global:\n\t\tsave_palette(new_palette)\n\t\tpalettes[new_palette.name] = new_palette\n\t\tselect_palette(new_palette.name)\n\telse:\n\t\tundo_redo_add_palette(new_palette)\n\n\nfunc current_palette_edit(\n\tpalette_name: String, comment: String, width: int, height: int, is_global: bool\n) -> void:\n\t_check_palette_settings_values(palette_name, width, height)\n\tif is_global:  # Create a global copy\n\t\tvar palette_to_edit := current_palette\n\t\tif current_palette.is_project_palette:  # Create a global copy of the local palette\n\t\t\tpalette_name = get_valid_name(palette_name)\n\t\t\tpalette_to_edit = current_palette.duplicate()\n\t\tpalette_to_edit.edit(palette_name, width, height, comment)\n\t\tsave_palette(palette_to_edit)\n\t\tpalettes[palette_name] = palette_to_edit\n\t\tselect_palette(palette_name)\n\telse:\n\t\t# track old data\n\t\tvar old_name = current_palette.name\n\t\tvar old_width = current_palette.width\n\t\tvar old_height = current_palette.height\n\t\tvar old_comment = current_palette.comment\n\t\tvar undo_redo := Global.current_project.undo_redo\n\t\tundo_redo.create_action(\"Edit Properties\")\n\t\t# track the palette to edit\n\t\tvar palette_to_edit := current_palette\n\t\tvar palette_just_added := false\n\t\tif not current_palette.is_project_palette:  # Create a local copy of the global palette\n\t\t\tpalette_to_edit = current_palette.duplicate()\n\t\t\tpalette_just_added = true\n\t\telse:\n\t\t\t# unparent palette so that it can be manipulated without consequences\n\t\t\tundo_redo.add_do_method(unparent_palette.bind(palette_to_edit))\n\t\t\tundo_redo.add_undo_method(unparent_palette.bind(palette_to_edit))\n\t\t# Edit the data and re-parent the palette. Note that the conflicts in name will be auto\n\t\t# resolved when [method add_palette_as_project_palette] is called.\n\t\tundo_redo.add_do_method(palette_to_edit.edit.bind(palette_name, width, height, comment))\n\t\tundo_redo_add_palette(palette_to_edit)\n\t\tif not palette_just_added:\n\t\t\t# if the palette was already existing then re-set old data. Note that the conflicts in\n\t\t\t# name will be auto resolved when [method add_palette_as_project_palette] is called.\n\t\t\tundo_redo.add_undo_method(\n\t\t\t\tpalette_to_edit.edit.bind(old_name, old_width, old_height, old_comment)\n\t\t\t)\n\t\t\tundo_redo.add_undo_method(add_palette_as_project_palette.bind(palette_to_edit))\n\t\tundo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\tundo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\t\tundo_redo.commit_action()\n\n\n## Deletes palette but does not reselect\nfunc _delete_palette(palette: Palette, permanent := true) -> void:\n\tif not palette.path.is_empty() and not palette.is_project_palette:\n\t\tif permanent:\n\t\t\tDirAccess.remove_absolute(palette.path)\n\t\telse:\n\t\t\tOS.move_to_trash(palette.path)\n\tunparent_palette(palette)\n\tpalette_removed.emit()\n\n\n## Deletes palette and reselects some other palette\nfunc palette_delete_and_reselect(permanent := true, palette := current_palette) -> void:\n\t# NOTE: The undo redo for deletion is handled in\n\t# [method _on_edit_palette_dialog_deleted] of PalettePanel.gd\n\t_delete_palette(palette, permanent)\n\tif palettes.size() > 0:\n\t\tselect_palette(palettes.keys()[0])\n\telse:\n\t\tif palette == current_palette:\n\t\t\tcurrent_palette = null\n\t\tselect_palette(\"\")\n\n\nfunc current_palette_add_color(mouse_button: int, start_index := 0) -> void:\n\tif (\n\t\tnot current_palette.is_full()\n\t\tand (mouse_button == MOUSE_BUTTON_LEFT or mouse_button == MOUSE_BUTTON_RIGHT)\n\t):\n\t\t# Get color on left or right tool\n\t\tvar color := Tools.get_assigned_color(mouse_button)\n\t\tcurrent_palette.add_color(color, start_index)\n\t\tsave_palette()\n\n\nfunc current_palette_get_color(index: int) -> Color:\n\treturn current_palette.get_color(index)\n\n\nfunc current_palette_set_color(index: int, color: Color) -> void:\n\tcurrent_palette.set_color(index, color)\n\tsave_palette()\n\n\nfunc current_palette_delete_color(index: int) -> void:\n\tcurrent_palette.remove_color(index)\n\tsave_palette()\n\n\nfunc sort_colors(id: SortOptions, palette := current_palette) -> void:\n\tif id == SortOptions.NEW_PALETTE:\n\t\treturn\n\tif id == SortOptions.REVERSE:\n\t\tpalette.reverse_colors()\n\telse:\n\t\tpalette.sort(id)\n\tsave_palette()\n\n\nfunc current_palette_swap_colors(source_index: int, target_index: int) -> void:\n\tcurrent_palette.swap_colors(source_index, target_index)\n\t_select_color(MOUSE_BUTTON_LEFT, target_index)\n\tsave_palette()\n\n\nfunc current_palette_copy_colors(from: int, to: int) -> void:\n\tcurrent_palette.copy_colors(from, to)\n\tsave_palette()\n\n\nfunc current_palette_insert_color(from: int, to: int) -> void:\n\tvar from_color: Palette.PaletteColor = current_palette.colors[from]\n\tcurrent_palette.remove_color(from)\n\tcurrent_palette.insert_color(to, from_color.color)\n\tsave_palette()\n\n\nfunc current_palette_get_selected_color_index(mouse_button: int) -> int:\n\tmatch mouse_button:\n\t\tMOUSE_BUTTON_LEFT:\n\t\t\treturn left_selected_color\n\t\tMOUSE_BUTTON_RIGHT:\n\t\t\treturn right_selected_color\n\t\t_:\n\t\t\treturn -1\n\n\nfunc current_palette_select_color(mouse_button: int, index: int) -> void:\n\tvar color := current_palette_get_color(index)\n\tif color == null:\n\t\treturn\n\n\t_select_color(mouse_button, index)\n\n\tmatch mouse_button:\n\t\tMOUSE_BUTTON_LEFT:\n\t\t\tTools.assign_color(color, mouse_button, true, left_selected_color)\n\t\tMOUSE_BUTTON_RIGHT:\n\t\t\tTools.assign_color(color, mouse_button, true, right_selected_color)\n\n\nfunc _select_color(mouse_button: int, index: int) -> void:\n\tmatch mouse_button:\n\t\tMOUSE_BUTTON_LEFT:\n\t\t\tleft_selected_color = index\n\t\tMOUSE_BUTTON_RIGHT:\n\t\t\tright_selected_color = index\n\n\nfunc _clear_selected_colors() -> void:\n\tleft_selected_color = -1\n\tright_selected_color = -1\n\n\nfunc _check_palette_settings_values(palette_name: String, width: int, height: int) -> bool:\n\t# Just in case. These values should be not allowed in gui.\n\tif palette_name.length() <= 0 or width <= 0 or height <= 0:\n\t\tprinterr(\"Palette width, height and name length must be greater than 0!\")\n\t\treturn false\n\treturn true\n\n\nfunc _load_palettes() -> void:\n\t_ensure_palette_directory_exists()\n\tvar search_locations := Global.path_join_array(Global.data_directories, \"Palettes\")\n\tvar priority_ordered_files := _get_palette_priority_file_map(search_locations)\n\n\t# Iterate backwards, so any palettes defined in default files\n\t# get overwritten by those of the same name in user files\n\tsearch_locations.reverse()\n\tpriority_ordered_files.reverse()\n\tfor i in range(search_locations.size()):\n\t\tvar base_directory := search_locations[i]\n\t\tvar palette_files := priority_ordered_files[i]\n\t\tfor file_name in palette_files:\n\t\t\tvar path := base_directory.path_join(file_name)\n\t\t\timport_palette_from_path(path, false, true)\n\n\tif not current_palette && palettes.size() > 0:\n\t\tselect_palette(palettes.keys()[0])\n\n\n## This returns an array of arrays, with priorities.\n## In particular, it takes an array of paths to look for\n## arrays in, in order of file and palette override priority\n## such that the files in the first directory override the second, third, etc.\n## It returns an array of arrays, where each output array\n## corresponds to the given input array at the same index, and\n## contains the (relative to the given directory) palette files\n## to load, excluding all ones already existing in higher-priority directories.\n## This also means you can run backwards on the result\n## so that palettes with the given palette name in the higher priority\n## directories override those set in lower priority directories.\nfunc _get_palette_priority_file_map(looking_paths: PackedStringArray) -> Array[PackedStringArray]:\n\tvar final_list: Array[PackedStringArray] = []\n\t# Holds pattern files already found\n\tvar working_file_set: Dictionary = {}\n\tfor search_directory in looking_paths:\n\t\tvar to_add_files: PackedStringArray = []\n\t\tvar files := _get_palette_files(search_directory)\n\t\t# files to check\n\t\tfor maybe_to_add in files:\n\t\t\tif not maybe_to_add in working_file_set:\n\t\t\t\tto_add_files.append(maybe_to_add)\n\t\t\t\tworking_file_set[maybe_to_add] = true\n\n\t\tfinal_list.append(to_add_files)\n\treturn final_list\n\n\n## Get the palette files in a single directory.\n## if it does not exist, return []\nfunc _get_palette_files(path: String) -> PackedStringArray:\n\tvar dir := DirAccess.open(path)\n\tvar results: PackedStringArray = []\n\n\tif !dir:\n\t\treturn []\n\tdir.list_dir_begin()\n\n\twhile true:\n\t\tvar file_name := dir.get_next()\n\t\tif file_name == \"\":\n\t\t\tbreak\n\t\telif (\n\t\t\t(not file_name.begins_with(\".\"))\n\t\t\t&& file_name.to_lower().ends_with(\"json\")\n\t\t\t&& not dir.current_is_dir()\n\t\t):\n\t\t\tresults.append(file_name)\n\n\tdir.list_dir_end()\n\treturn results\n\n\nfunc import_palette_from_path(path: String, make_copy := false, is_initialising := false) -> void:\n\tif does_palette_exist(path.get_basename().get_file()):\n\t\t# If there is a palette with same name ignore import for now\n\t\treturn\n\n\tvar palette: Palette = null\n\tif FileAccess.file_exists(path):\n\t\tvar palette_ext := path.to_lower().get_extension()\n\t\tif palette_ext in Global.SUPPORTED_IMAGE_TYPES:\n\t\t\tvar image := Image.new()\n\t\t\tvar err := image.load(path)\n\t\t\tif !err:\n\t\t\t\tpalette = _import_image_palette(path, image)\n\t\telif palette_ext == \"gpl\":\n\t\t\tvar text := FileAccess.open(path, FileAccess.READ).get_as_text()\n\t\t\tpalette = _import_gpl(path, text)\n\t\telif palette_ext == \"pal\":\n\t\t\tvar text := FileAccess.open(path, FileAccess.READ).get_as_text()\n\t\t\tpalette = _import_pal_palette(path, text)\n\t\telif palette_ext == \"json\":\n\t\t\tvar text := FileAccess.open(path, FileAccess.READ).get_as_text()\n\t\t\tpalette = Palette.new(path.get_basename().get_file())\n\t\t\tpalette.path = path\n\t\t\tpalette.deserialize(text)\n\n\tif is_instance_valid(palette):\n\t\tif make_copy:\n\t\t\tsave_palette(palette)  # Makes a copy of the palette\n\t\tpalettes[palette.name] = palette\n\t\tvar default_palette_name: String = Global.config_cache.get_value(\n\t\t\t\"data\", \"last_palette\", DEFAULT_PALETTE_NAME\n\t\t)\n\t\tif is_initialising:\n\t\t\t# Store index of the default palette\n\t\t\tif palette.name == default_palette_name:\n\t\t\t\tselect_palette(palette.name)\n\t\telse:\n\t\t\tnew_palette_imported.emit()\n\t\t\tselect_palette(palette.name)\n\telse:\n\t\tGlobal.popup_error(tr(\"Can't load file '%s'.\\nThis is not a valid palette file.\") % [path])\n\n\n## Refer to app/core/gimppalette-load.c of the GNU Image Manipulation Program for the \"living spec\"\nfunc _import_gpl(path: String, text: String) -> Palette:\n\tvar result: Palette = null\n\tvar lines := text.split(\"\\n\")\n\tvar line_number := 0\n\tvar palette_name := path.get_basename().get_file()\n\tvar comments := \"\"\n\tvar columns := 0\n\tvar colors := PackedColorArray()\n\n\tfor line in lines:\n\t\t# Check if the file is a valid palette\n\t\tif line_number == 0:\n\t\t\tif not \"GIMP Palette\" in line:\n\t\t\t\treturn result\n\n\t\t# Comments\n\t\tif line.begins_with(\"#\"):\n\t\t\tcomments += line.trim_prefix(\"#\") + \"\\n\"\n\t\t\t# Some programs output palette name in a comment for old format\n\t\t\tif line.begins_with(\"#Palette Name: \"):\n\t\t\t\tpalette_name = line.replace(\"#Palette Name: \", \"\").strip_edges()\n\t\telif line.begins_with(\"Name: \"):\n\t\t\tpalette_name = line.replace(\"Name: \", \"\").strip_edges()\n\t\telif line.begins_with(\"Columns: \"):\n\t\t\t# The width of the palette.\n\t\t\tline = line.trim_prefix(\"Columns: \").strip_edges()\n\t\t\tif !line.is_valid_int():\n\t\t\t\tcontinue\n\t\t\tcolumns = line.to_int()\n\t\telif line_number > 0 && line.length() >= 9:\n\t\t\tline = line.replace(\"\\t\", \" \")\n\t\t\tvar color_data: PackedStringArray = line.split(\" \", false, 4)\n\t\t\tvar red: float = color_data[0].to_float() / 255.0\n\t\t\tvar green: float = color_data[1].to_float() / 255.0\n\t\t\tvar blue: float = color_data[2].to_float() / 255.0\n\t\t\tvar color := Color(red, green, blue)\n\t\t\tif color_data.size() >= 4:\n\t\t\t\t# Ignore color name for now - result.add_color(color, color_data[3])\n\t\t\t\tcolors.append(color)\n\t\t\telse:\n\t\t\t\tcolors.append(color)\n\t\tline_number += 1\n\n\tif line_number > 0:\n\t\treturn fill_imported_palette_with_colors(palette_name, colors, comments, columns)\n\treturn result\n\n\nfunc _import_pal_palette(path: String, text: String) -> Palette:\n\tvar result: Palette = null\n\tvar colors := PackedColorArray()\n\tvar lines := text.split(\"\\n\")\n\n\tif not \"JASC-PAL\" in lines[0] or not \"0100\" in lines[1]:\n\t\treturn result\n\n\tvar num_colors := int(lines[2])\n\n\tfor i in range(3, num_colors + 3):\n\t\tvar color_data := lines[i].split(\" \")\n\t\tvar red := color_data[0].to_float() / 255.0\n\t\tvar green := color_data[1].to_float() / 255.0\n\t\tvar blue := color_data[2].to_float() / 255.0\n\n\t\tvar color := Color(red, green, blue)\n\t\tcolors.append(color)\n\n\treturn fill_imported_palette_with_colors(path.get_basename().get_file(), colors)\n\n\nfunc _import_image_palette(path: String, image: Image) -> Palette:\n\tvar colors: PackedColorArray = []\n\tvar height := image.get_height()\n\tvar width := image.get_width()\n\n\t# Iterate all pixels and store unique colors to palette\n\tfor y in range(0, height):\n\t\tfor x in range(0, width):\n\t\t\tvar color := image.get_pixel(x, y)\n\t\t\tif !colors.has(color):\n\t\t\t\tcolors.append(color)\n\n\treturn fill_imported_palette_with_colors(path.get_basename().get_file(), colors)\n\n\n## Fills a new [Palette] with colors. Used when importing files. Dimensions are\n## determined by taking colors as a one-dimensional array that is wrapped by\n## width.\nfunc fill_imported_palette_with_colors(\n\tpalette_name: String,\n\tcolors: PackedColorArray,\n\tcomment := \"\",\n\twidth := Palette.DEFAULT_WIDTH,\n) -> Palette:\n\tif width <= 0:\n\t\twidth = Palette.DEFAULT_WIDTH\n\twidth = clampi(width, 1, MAX_IMPORT_PAL_WIDTH)\n\tvar height := ceili(colors.size() / float(width))\n\tif height == 1:\n\t\twidth = colors.size()\n\tvar result := Palette.new(palette_name, width, height, comment)\n\tfor color in colors:\n\t\tresult.add_color(color)\n\n\treturn result\n\n\nfunc import_lospec_palette(url: String) -> void:\n\tvar palette_name := url.get_slice(\"://\", 1)\n\tvar api_url := \"https://lospec.com/palette-list/\" + palette_name + \".json\"\n\tprint(\"Importing palette:\", palette_name)\n\n\tvar http := HTTPRequest.new()\n\tadd_child(http)\n\thttp.request_completed.connect(_on_lospec_palette_downloaded.bind(http))\n\tvar err := http.request(api_url)\n\tif err != OK:\n\t\tpush_error(\"Failed to request palette: %s\" % palette_name)\n\n\nfunc _on_lospec_palette_downloaded(\n\tresult: int,\n\tresponse_code: int,\n\t_headers: PackedStringArray,\n\tbody: PackedByteArray,\n\thttp: HTTPRequest\n) -> void:\n\thttp.queue_free()\n\tif response_code != 200 or result != HTTPRequest.RESULT_SUCCESS:\n\t\tpush_error(\"Palette download failed: %s\" % response_code)\n\t\treturn\n\tvar data = JSON.parse_string(body.get_string_from_utf8())\n\tif not data or not typeof(data) == TYPE_DICTIONARY:\n\t\tpush_error(\"Palette download failed\")\n\tvar colors_hex = data.colors\n\tvar colors: PackedColorArray = []\n\tfor color_hex in colors_hex:\n\t\tvar color := Color(color_hex)\n\t\tcolors.append(color)\n\tvar palette := fill_imported_palette_with_colors(data[\"name\"], colors, data[\"author\"])\n\tsave_palette(palette)\n\tpalettes[palette.name] = palette\n\tselect_palette(palette.name)\n\tnew_palette_created.emit()\n"
  },
  {
    "path": "src/Autoload/Palettes.gd.uid",
    "content": "uid://doq8uff5if02l\n"
  },
  {
    "path": "src/Autoload/Themes.gd",
    "content": "extends Node\n\nsignal theme_added(theme: Theme)\nsignal theme_removed(theme: Theme)\n## Emitted when the theme is switched. Unlike [signal Control.theme_changed],\n## this doesn't get emitted when a stylebox of a control changes, only when the\n## main theme gets switched to another.\nsignal theme_switched\n\nvar theme_index := 0\nvar themes: Array[Theme] = [\n\tpreload(\"res://assets/themes/dark/theme.tres\"),\n\tpreload(\"res://assets/themes/gray/theme.tres\"),\n\tpreload(\"res://assets/themes/blue/theme.tres\"),\n\tpreload(\"res://assets/themes/caramel/theme.tres\"),\n\tpreload(\"res://assets/themes/light/theme.tres\"),\n\tpreload(\"res://assets/themes/purple/theme.tres\"),\n\tpreload(\"res://assets/themes/rose/theme.tres\"),\n]\n\n\nfunc _ready() -> void:\n\tvar theme_id: int = Global.config_cache.get_value(\"preferences\", \"theme\", 0)\n\t## Wait two frames so that extensions are loaded\n\tawait get_tree().process_frame\n\tawait get_tree().process_frame\n\tif theme_id >= themes.size():\n\t\ttheme_id = 0\n\tif theme_id != 0:\n\t\tchange_theme(theme_id)\n\telse:\n\t\tchange_clear_color()\n\t\tchange_icon_colors()\n\n\nfunc add_theme(theme: Theme) -> void:\n\tthemes.append(theme)\n\ttheme_added.emit(theme)\n\n\nfunc remove_theme(theme: Theme) -> void:\n\tthemes.erase(theme)\n\ttheme_removed.emit(theme)\n\n\nfunc change_theme(id: int) -> void:\n\ttheme_index = id\n\tvar theme := themes[id]\n\tGlobal.theme_font_index = Global.theme_font_index  # Trigger the setter\n\tif theme.default_font != Global.theme_font:\n\t\ttheme.default_font = Global.theme_font\n\ttheme.default_font_size = Global.font_size\n\ttheme.set_font_size(\"font_size\", \"HeaderSmall\", Global.font_size + 2)\n\tvar icon_color := theme.get_color(\"modulate_color\", \"Icons\")\n\tif Global.icon_color_from == Global.ColorFrom.THEME:\n\t\tGlobal.modulate_icon_color = icon_color\n\n\tGlobal.control.theme = theme\n\tchange_clear_color()\n\tchange_icon_colors()\n\tGlobal.config_cache.set_value(\"preferences\", \"theme\", id)\n\tGlobal.config_cache.save(Global.CONFIG_PATH)\n\ttheme_switched.emit()\n\n\nfunc change_clear_color() -> void:\n\tvar clear_color: Color = Global.control.theme.get_color(\"clear_color\", \"Misc\")\n\tif not clear_color:\n\t\tvar panel_stylebox: StyleBox = Global.control.theme.get_stylebox(\"panel\", \"PanelContainer\")\n\t\tif panel_stylebox is StyleBoxFlat:\n\t\t\tclear_color = panel_stylebox.bg_color\n\t\telse:\n\t\t\tclear_color = Color.GRAY\n\tif Global.clear_color_from == Global.ColorFrom.THEME:\n\t\tRenderingServer.set_default_clear_color(clear_color)\n\telse:\n\t\tRenderingServer.set_default_clear_color(Global.modulate_clear_color)\n\n\nfunc change_icon_colors() -> void:\n\tfor node in get_tree().get_nodes_in_group(\"UIButtons\"):\n\t\tif node is TextureRect or node is Sprite2D:\n\t\t\tnode.modulate = Global.modulate_icon_color\n\t\telif node is TextureButton:\n\t\t\tnode.modulate = Global.modulate_icon_color\n\t\t\tif node.disabled and not (\"RestoreDefaultButton\" in node.name):\n\t\t\t\tnode.modulate.a = 0.5\n\t\telif node is Button:\n\t\t\tvar texture: TextureRect\n\t\t\tfor child in node.get_children():\n\t\t\t\tif child is TextureRect and child.name != \"Background\":\n\t\t\t\t\ttexture = child\n\t\t\t\t\tbreak\n\t\t\tif is_instance_valid(texture):\n\t\t\t\ttexture.modulate = Global.modulate_icon_color\n\t\t\t\tif node.disabled:\n\t\t\t\t\ttexture.modulate.a = 0.5\n\n\nfunc get_font() -> Font:\n\tif Global.control.theme.has_default_font():\n\t\treturn Global.control.theme.default_font\n\treturn ThemeDB.fallback_font\n\n\nfunc get_font_size() -> int:\n\tif Global.control.theme.has_default_font_size():\n\t\treturn Global.control.theme.default_font_size\n\treturn ThemeDB.fallback_font_size\n"
  },
  {
    "path": "src/Autoload/Themes.gd.uid",
    "content": "uid://csvaorac4ie2q\n"
  },
  {
    "path": "src/Autoload/Tools.gd",
    "content": "# gdlint: ignore=max-public-methods\nextends Node\n\nsignal color_changed(color_info: Dictionary, button: int)\n@warning_ignore(\"unused_signal\")\nsignal selected_tile_index_changed(tile_index: int)\nsignal config_changed(slot_idx: int, config: Dictionary)\n@warning_ignore(\"unused_signal\")\nsignal flip_rotated(flip_x: bool, flip_y: bool, transposed: bool)\nsignal options_reset\n\nenum Dynamics { NONE, PRESSURE, VELOCITY }\n\nconst XY_LINE := Vector2(-0.70710677, 0.70710677)\nconst X_MINUS_Y_LINE := Vector2(0.70710677, 0.70710677)\n\nvar active_button := -1\nvar picking_color_for := MOUSE_BUTTON_LEFT\nvar horizontal_mirror := false\nvar vertical_mirror := false\nvar diagonal_xy_mirror := false\nvar diagonal_x_minus_y_mirror := false\nvar pixel_perfect := false\nvar alpha_locked := false\n\n# Dynamics\nvar stabilizer_enabled := false\nvar stabilizer_value := 16\nvar dynamics_alpha := Dynamics.NONE\nvar dynamics_size := Dynamics.NONE\nvar pen_pressure := 1.0\nvar pen_pressure_min := 0.2\nvar pen_pressure_max := 0.8\nvar pressure_buf := [0, 0]  # past pressure value buffer\nvar pen_inverted := false\nvar mouse_velocity := 0.0\nvar mouse_velocity_min_thres := 0.2\nvar mouse_velocity_max_thres := 0.8\nvar mouse_velocity_max := 1000.0\nvar alpha_min := 0.1\nvar alpha_max := 1.0\nvar brush_size_max_increment := 4\n\nvar tools: Dictionary[String, Tool] = {\n\t\"RectSelect\":\n\tTool.new(\n\t\t\"RectSelect\",\n\t\t\"Rectangular Selection\",\n\t\t\"rectangle_select\",\n\t\t\"res://src/Tools/SelectionTools/RectSelect.tscn\"\n\t),\n\t\"EllipseSelect\":\n\tTool.new(\n\t\t\"EllipseSelect\",\n\t\t\"Elliptical Selection\",\n\t\t\"ellipse_select\",\n\t\t\"res://src/Tools/SelectionTools/EllipseSelect.tscn\"\n\t),\n\t\"PolygonSelect\":\n\tTool.new(\n\t\t\"PolygonSelect\",\n\t\t\"Polygonal Selection\",\n\t\t\"polygon_select\",\n\t\t\"res://src/Tools/SelectionTools/PolygonSelect.tscn\",\n\t\t[],\n\t\t\"Double-click to connect the last point to the starting point\"\n\t),\n\t\"ColorSelect\":\n\tTool.new(\n\t\t\"ColorSelect\",\n\t\t\"Select By Color\",\n\t\t\"color_select\",\n\t\t\"res://src/Tools/SelectionTools/ColorSelect.tscn\"\n\t),\n\t\"MagicWand\":\n\tTool.new(\n\t\t\"MagicWand\", \"Magic Wand\", \"magic_wand\", \"res://src/Tools/SelectionTools/MagicWand.tscn\"\n\t),\n\t\"Lasso\":\n\tTool.new(\n\t\t\"Lasso\", \"Lasso / Free Select Tool\", \"lasso\", \"res://src/Tools/SelectionTools/Lasso.tscn\"\n\t),\n\t\"PaintSelect\":\n\tTool.new(\n\t\t\"PaintSelect\",\n\t\t\"Select by Drawing\",\n\t\t\"paint_selection\",\n\t\t\"res://src/Tools/SelectionTools/PaintSelect.tscn\"\n\t),\n\t\"Crop\":\n\tTool.new(\n\t\t\"Crop\",\n\t\t\"Crop\",\n\t\t\"crop\",\n\t\t\"res://src/Tools/UtilityTools/CropTool.tscn\",\n\t\t[],\n\t\t\"Resize the canvas\"\n\t),\n\t\"Move\":\n\tTool.new(\n\t\t\"Move\",\n\t\t\"Move\",\n\t\t\"move\",\n\t\t\"res://src/Tools/UtilityTools/Move.tscn\",\n\t\t[Global.LayerTypes.PIXEL, Global.LayerTypes.GROUP, Global.LayerTypes.TILEMAP]\n\t),\n\t\"Zoom\": Tool.new(\"Zoom\", \"Zoom\", \"zoom\", \"res://src/Tools/UtilityTools/Zoom.tscn\"),\n\t\"Pan\": Tool.new(\"Pan\", \"Pan\", \"pan\", \"res://src/Tools/UtilityTools/Pan.tscn\"),\n\t\"Text\":\n\tTool.new(\n\t\t\"Text\",\n\t\t\"Text\",\n\t\t\"text\",\n\t\t\"res://src/Tools/UtilityTools/Text.tscn\",\n\t\t[Global.LayerTypes.PIXEL, Global.LayerTypes.TILEMAP],\n\t\t\"\"\n\t),\n\t\"ColorPicker\":\n\tTool.new(\n\t\t\"ColorPicker\",\n\t\t\"Color Picker\",\n\t\t\"colorpicker\",\n\t\t\"res://src/Tools/UtilityTools/ColorPicker.tscn\",\n\t\t[],\n\t\t\"Select a color from a pixel of the sprite\"\n\t),\n\t\"Pencil\":\n\tTool.new(\n\t\t\"Pencil\",\n\t\t\"Pencil\",\n\t\t\"pencil\",\n\t\t\"res://src/Tools/DesignTools/Pencil.tscn\",\n\t\t[Global.LayerTypes.PIXEL, Global.LayerTypes.TILEMAP],\n\t\t\"Hold %s to make a line\",\n\t\t[\"draw_create_line\"]\n\t),\n\t\"Eraser\":\n\tTool.new(\n\t\t\"Eraser\",\n\t\t\"Eraser\",\n\t\t\"eraser\",\n\t\t\"res://src/Tools/DesignTools/Eraser.tscn\",\n\t\t[Global.LayerTypes.PIXEL, Global.LayerTypes.TILEMAP],\n\t\t\"Hold %s to make a line\",\n\t\t[\"draw_create_line\"]\n\t),\n\t\"Bucket\":\n\tTool.new(\n\t\t\"Bucket\",\n\t\t\"Bucket\",\n\t\t\"fill\",\n\t\t\"res://src/Tools/DesignTools/Bucket.tscn\",\n\t\t[Global.LayerTypes.PIXEL, Global.LayerTypes.TILEMAP]\n\t),\n\t\"Shading\":\n\tTool.new(\n\t\t\"Shading\",\n\t\t\"Shading Tool\",\n\t\t\"shading\",\n\t\t\"res://src/Tools/DesignTools/Shading.tscn\",\n\t\t[Global.LayerTypes.PIXEL, Global.LayerTypes.TILEMAP]\n\t),\n\t\"LineTool\":\n\t(\n\t\tTool\n\t\t. new(\n\t\t\t\"LineTool\",\n\t\t\t\"Line Tool\",\n\t\t\t\"linetool\",\n\t\t\t\"res://src/Tools/DesignTools/LineTool.tscn\",\n\t\t\t[Global.LayerTypes.PIXEL, Global.LayerTypes.TILEMAP],\n\t\t\t\"\"\"Hold %s to snap the angle of the line\nHold %s to center the shape on the click origin\nHold %s to displace the shape's origin\"\"\",\n\t\t\t[\"shape_perfect\", \"shape_center\", \"shape_displace\"]\n\t\t)\n\t),\n\t\"CurveTool\":\n\t(\n\t\tTool\n\t\t. new(\n\t\t\t\"CurveTool\",\n\t\t\t\"Curve Tool\",\n\t\t\t\"curvetool\",\n\t\t\t\"res://src/Tools/DesignTools/CurveTool.tscn\",\n\t\t\t[Global.LayerTypes.PIXEL, Global.LayerTypes.TILEMAP],\n\t\t\t\"\"\"Draws bezier curves\nPress %s/%s to add new points\nDouble-click to finish drawing the curve\nPress and drag to control the curvature\nPress %s to remove the last added point\"\"\",\n\t\t\t[\"activate_left_tool\", \"activate_right_tool\", \"change_tool_mode\"]\n\t\t)\n\t),\n\t\"RectangleTool\":\n\t(\n\t\tTool\n\t\t. new(\n\t\t\t\"RectangleTool\",\n\t\t\t\"Rectangle Tool\",\n\t\t\t\"rectangletool\",\n\t\t\t\"res://src/Tools/DesignTools/RectangleTool.tscn\",\n\t\t\t[Global.LayerTypes.PIXEL, Global.LayerTypes.TILEMAP],\n\t\t\t\"\"\"Hold %s to create a 1:1 shape\nHold %s to center the shape on the click origin\nHold %s to displace the shape's origin\"\"\",\n\t\t\t[\"shape_perfect\", \"shape_center\", \"shape_displace\"]\n\t\t)\n\t),\n\t\"EllipseTool\":\n\t(\n\t\tTool\n\t\t. new(\n\t\t\t\"EllipseTool\",\n\t\t\t\"Ellipse Tool\",\n\t\t\t\"ellipsetool\",\n\t\t\t\"res://src/Tools/DesignTools/EllipseTool.tscn\",\n\t\t\t[Global.LayerTypes.PIXEL, Global.LayerTypes.TILEMAP],\n\t\t\t\"\"\"Hold %s to create a 1:1 shape\nHold %s to center the shape on the click origin\nHold %s to displace the shape's origin\"\"\",\n\t\t\t[\"shape_perfect\", \"shape_center\", \"shape_displace\"]\n\t\t)\n\t),\n\t\"IsometricBoxTool\":\n\t(\n\t\tTool\n\t\t. new(\n\t\t\t\"IsometricBoxTool\",\n\t\t\t\"Isometric Box Tool\",\n\t\t\t\"isometricboxtool\",\n\t\t\t\"res://src/Tools/DesignTools/IsometricBoxTool.tscn\",\n\t\t\t[Global.LayerTypes.PIXEL, Global.LayerTypes.TILEMAP],\n\t\t\t\"\"\"Draws an isometric box\nPress %s/%s to add a basis point\nHold %s to snap the angle of the basis point\nHold %s to displace the shape's origin\nPress %s to edit the last added basis\"\"\",\n\t\t\t[\n\t\t\t\t\"activate_left_tool\",\n\t\t\t\t\"activate_right_tool\",\n\t\t\t\t\"shape_perfect\",\n\t\t\t\t\"shape_displace\",\n\t\t\t\t\"change_tool_mode\"\n\t\t\t]\n\t\t)\n\t),\n\t\"3DShapeEdit\":\n\tTool.new(\n\t\t\"3DShapeEdit\",\n\t\t\"3D Shape Edit\",\n\t\t\"3dshapeedit\",\n\t\t\"res://src/Tools/3DTools/3DShapeEdit.tscn\",\n\t\t[Global.LayerTypes.THREE_D]\n\t),\n}\n\nvar _tool_button_scene := preload(\"res://src/UI/ToolsPanel/ToolButton.tscn\")\nvar _slots: Dictionary[MouseButton, Slot] = {}\nvar _panels: Dictionary[MouseButton, Control] = {}\nvar _curr_layer_type := Global.LayerTypes.PIXEL\nvar _left_tools_per_layer_type := {\n\tGlobal.LayerTypes.PIXEL: \"Pencil\",\n\tGlobal.LayerTypes.TILEMAP: \"Pencil\",\n\tGlobal.LayerTypes.THREE_D: \"3DShapeEdit\",\n}\nvar _right_tools_per_layer_type := {\n\tGlobal.LayerTypes.PIXEL: \"Eraser\",\n\tGlobal.LayerTypes.TILEMAP: \"Eraser\",\n\tGlobal.LayerTypes.THREE_D: \"Pan\",\n}\nvar _tool_buttons: Node\nvar _last_position := Vector2i(Vector2.INF)\n\n\nclass Tool:\n\tvar name := \"\"\n\tvar display_name := \"\"\n\tvar scene_path: String\n\tvar scene: PackedScene\n\tvar icon: Texture2D\n\tvar cursor_icon: Texture2D\n\tvar shortcut := \"\"\n\tvar extra_hint := \"\"\n\tvar extra_shortcuts: PackedStringArray = []\n\tvar layer_types: PackedInt32Array = []\n\tvar button_node: BaseButton\n\n\tfunc _init(\n\t\t_name: String,\n\t\t_display_name: String,\n\t\t_shortcut: String,\n\t\t_scene_path: String,\n\t\t_layer_types: PackedInt32Array = [],\n\t\t_extra_hint := \"\",\n\t\t_extra_shortcuts: PackedStringArray = []\n\t) -> void:\n\t\tname = _name\n\t\tdisplay_name = _display_name\n\t\tshortcut = _shortcut\n\t\tscene_path = _scene_path\n\t\tlayer_types = _layer_types\n\t\textra_hint = _extra_hint\n\t\textra_shortcuts = _extra_shortcuts\n\t\ticon = load(\"res://assets/graphics/tools/%s.png\" % name.to_lower())\n\t\tcursor_icon = load(\"res://assets/graphics/tools/cursors/%s.png\" % name.to_lower())\n\n\tfunc instantiate_scene() -> Node:\n\t\tif not is_instance_valid(scene):\n\t\t\tscene = load(scene_path)\n\t\treturn scene.instantiate()\n\n\tfunc generate_hint_tooltip() -> String:\n\t\tvar hint := display_name\n\t\tvar shortcuts := []\n\t\tvar left_text := \"\"\n\t\tvar right_text := \"\"\n\t\tif InputMap.has_action(\"left_\" + shortcut + \"_tool\"):\n\t\t\tvar left_list := InputMap.action_get_events(\"left_\" + shortcut + \"_tool\")\n\t\t\tif left_list.size() > 0:\n\t\t\t\tvar left_shortcut: String = left_list[0].as_text()\n\t\t\t\tshortcuts.append(left_shortcut)\n\t\t\t\tleft_text = \"\\n%s for left mouse button\"\n\t\tif InputMap.has_action(\"right_\" + shortcut + \"_tool\"):\n\t\t\tvar right_list := InputMap.action_get_events(\"right_\" + shortcut + \"_tool\")\n\t\t\tif right_list.size() > 0:\n\t\t\t\tvar right_shortcut: String = right_list[0].as_text()\n\t\t\t\tshortcuts.append(right_shortcut)\n\t\t\t\tright_text = \"\\n%s for right mouse button\"\n\n\t\tif !shortcuts.is_empty():\n\t\t\thint += \"\\n\" + left_text + right_text\n\n\t\tif !extra_hint.is_empty():\n\t\t\thint += \"\\n\\n\" + extra_hint\n\n\t\tvar extra_shortcuts_mapped := []\n\t\tfor action in extra_shortcuts:\n\t\t\tvar key_string := \"None\"\n\t\t\tvar events := InputMap.action_get_events(action)\n\t\t\tif events.size() > 0:\n\t\t\t\tkey_string = events[0].as_text()\n\t\t\textra_shortcuts_mapped.append(key_string)\n\n\t\tshortcuts.append_array(extra_shortcuts_mapped)\n\n\t\tif shortcuts.is_empty():\n\t\t\thint = tr(hint)\n\t\telse:\n\t\t\thint = tr(hint) % shortcuts\n\t\treturn hint\n\n\nclass Slot:\n\tvar name: String\n\tvar kname: String\n\tvar tool_node: Node = null\n\tvar button: int\n\tvar color: Color\n\n\tfunc _init(slot_name: String) -> void:\n\t\tname = slot_name\n\t\tkname = name.replace(\" \", \"_\").to_lower()\n\n\nfunc _ready() -> void:\n\toptions_reset.connect(reset_options)\n\tGlobal.cel_switched.connect(_cel_switched)\n\tGlobal.single_tool_mode_changed.connect(_on_single_tool_mode_changed)\n\t_tool_buttons = Global.control.find_child(\"ToolButtons\")\n\tfor t in tools:\n\t\tadd_tool_button(tools[t])\n\t\tvar tool_shortcut: String = tools[t].shortcut\n\t\tvar left_tool_shortcut := \"left_%s_tool\" % tool_shortcut\n\t\tvar right_tool_shortcut := \"right_%s_tool\" % tool_shortcut\n\t\tKeychain.actions[left_tool_shortcut] = Keychain.InputAction.new(\"\", \"Left\")\n\t\tKeychain.actions[right_tool_shortcut] = Keychain.InputAction.new(\"\", \"Right\")\n\n\t_slots[MOUSE_BUTTON_LEFT] = Slot.new(\"Left tool\")\n\t_slots[MOUSE_BUTTON_RIGHT] = Slot.new(\"Right tool\")\n\t_panels[MOUSE_BUTTON_LEFT] = Global.control.find_child(\"LeftPanelContainer\", true, false)\n\t_panels[MOUSE_BUTTON_RIGHT] = Global.control.find_child(\"RightPanelContainer\", true, false)\n\n\tvar default_left_tool: String = _left_tools_per_layer_type[0]\n\tvar default_right_tool: String = _right_tools_per_layer_type[0]\n\tvar tool_name: String = Global.config_cache.get_value(\n\t\t_slots[MOUSE_BUTTON_LEFT].kname, \"tool\", default_left_tool\n\t)\n\tif not tool_name in tools or not _is_tool_available(Global.LayerTypes.PIXEL, tools[tool_name]):\n\t\ttool_name = default_left_tool\n\tset_tool(tool_name, MOUSE_BUTTON_LEFT)\n\ttool_name = Global.config_cache.get_value(\n\t\t_slots[MOUSE_BUTTON_RIGHT].kname, \"tool\", default_right_tool\n\t)\n\tif not tool_name in tools or not _is_tool_available(Global.LayerTypes.PIXEL, tools[tool_name]):\n\t\ttool_name = default_right_tool\n\tset_tool(tool_name, MOUSE_BUTTON_RIGHT)\n\tupdate_tool_buttons()\n\n\thorizontal_mirror = Global.config_cache.get_value(\"tools\", \"horizontal_mirror\", false)\n\tvertical_mirror = Global.config_cache.get_value(\"tools\", \"vertical_mirror\", false)\n\tpixel_perfect = Global.config_cache.get_value(\"tools\", \"pixel_perfect\", false)\n\talpha_locked = Global.config_cache.get_value(\"tools\", \"alpha_locked\", false)\n\n\t# Await is necessary for the color picker nodes to update their color values\n\tawait get_tree().process_frame\n\tvar color_value: Color = Global.config_cache.get_value(\n\t\t_slots[MOUSE_BUTTON_LEFT].kname, \"color\", Color.BLACK\n\t)\n\tassign_color(color_value, MOUSE_BUTTON_LEFT, false)\n\tcolor_value = Global.config_cache.get_value(\n\t\t_slots[MOUSE_BUTTON_RIGHT].kname, \"color\", Color.WHITE\n\t)\n\tassign_color(color_value, MOUSE_BUTTON_RIGHT, false)\n\tupdate_tool_cursors()\n\tvar layer: BaseLayer = Global.current_project.layers[Global.current_project.current_layer]\n\tvar layer_type := layer.get_layer_type()\n\n\t# Await is necessary to hide irrelevant tools added by extensions\n\tawait get_tree().process_frame\n\t_show_relevant_tools(layer_type)\n\n\nfunc _input(event: InputEvent) -> void:\n\tif event.is_action_pressed(\"swap_tools\"):\n\t\tswap_tools()\n\tif event.is_action_released(\"swap_tools\") and Global.reset_swap_on_shortcut_release:\n\t\tswap_tools()\n\n\n## Syncs the other tool using the config of tool located at [param from_idx].[br]\n## NOTE: For optimization, if there is already a ready made config available, then we will use that\n## instead of re-calculating the config, else we have no choice but to re-generate it\nfunc attempt_config_share(from_idx: int, config: Dictionary = {}) -> void:\n\tif not Global.share_options_between_tools and not Global.single_tool_mode:\n\t\treturn\n\tif _slots.is_empty():\n\t\treturn\n\tif config.is_empty() and _slots[from_idx]:\n\t\tvar from_slot: Slot = _slots.get(from_idx, null)\n\t\tif from_slot:\n\t\t\tvar from_tool = from_slot.tool_node\n\t\t\tif from_tool.has_method(\"get_config\"):\n\t\t\t\tconfig = from_tool.get_config()\n\tvar target_slot: Slot = _slots.get(MOUSE_BUTTON_LEFT, null)\n\tif from_idx == MOUSE_BUTTON_LEFT:\n\t\ttarget_slot = _slots.get(MOUSE_BUTTON_RIGHT, null)\n\tif is_instance_valid(target_slot):\n\t\tif (\n\t\t\ttarget_slot.tool_node.has_method(\"set_config\")\n\t\t\tand target_slot.tool_node.has_method(\"update_config\")\n\t\t):\n\t\t\ttarget_slot.tool_node.set(\"is_syncing\", true)\n\t\t\ttarget_slot.tool_node.set_config(config)\n\t\t\ttarget_slot.tool_node.update_config()\n\t\t\ttarget_slot.tool_node.set(\"is_syncing\", false)\n\n\nfunc reset_options() -> void:\n\tdefault_color()\n\tassign_tool(get_tool(MOUSE_BUTTON_LEFT).tool_node.name, MOUSE_BUTTON_LEFT, true)\n\tassign_tool(get_tool(MOUSE_BUTTON_RIGHT).tool_node.name, MOUSE_BUTTON_RIGHT, true)\n\n\nfunc add_tool_button(t: Tool, insert_pos := -1) -> void:\n\tvar tool_button: BaseButton = _tool_button_scene.instantiate()\n\ttool_button.name = t.name\n\ttool_button.get_node(\"BackgroundLeft\").modulate = Global.left_tool_color\n\ttool_button.get_node(\"BackgroundRight\").modulate = Global.right_tool_color\n\ttool_button.get_node(\"ToolIcon\").texture = t.icon\n\ttool_button.get_node(\"ToolIcon\").modulate = Global.modulate_icon_color\n\ttool_button.tooltip_text = t.generate_hint_tooltip()\n\tt.button_node = tool_button\n\t_tool_buttons.add_child(tool_button)\n\tif insert_pos > -1:\n\t\tinsert_pos = mini(insert_pos, _tool_buttons.get_child_count() - 1)\n\t\t_tool_buttons.move_child(tool_button, insert_pos)\n\ttool_button.pressed.connect(_tool_buttons._on_tool_pressed.bind(tool_button))\n\n\nfunc remove_tool(t: Tool) -> void:\n\tt.button_node.queue_free()\n\ttools.erase(t.name)\n\n\nfunc set_tool(tool_name: String, button: int) -> void:\n\t# To prevent any unintentional syncing, we will temporarily disconnect the signal\n\tif config_changed.is_connected(attempt_config_share):\n\t\tconfig_changed.disconnect(attempt_config_share)\n\tvar slot: Slot = _slots[button]\n\tvar panel: Node = _panels[button]\n\tvar node: Node = tools[tool_name].instantiate_scene()\n\tvar config_slot := MOUSE_BUTTON_LEFT if button == MOUSE_BUTTON_RIGHT else MOUSE_BUTTON_RIGHT\n\tif button == MOUSE_BUTTON_LEFT:  # As guides are only moved with left mouse\n\t\tif tool_name == \"Pan\":  # tool you want to give more access at guides\n\t\t\tGlobal.move_guides_on_canvas = true\n\t\telse:\n\t\t\tGlobal.move_guides_on_canvas = false\n\tnode.name = tool_name\n\tnode.tool_slot = slot\n\tslot.tool_node = node\n\tslot.button = button\n\tpanel.add_child(slot.tool_node)\n\n\tif _curr_layer_type == Global.LayerTypes.GROUP:\n\t\treturn\n\tif button == MOUSE_BUTTON_LEFT:\n\t\t_left_tools_per_layer_type[_curr_layer_type] = tool_name\n\telif button == MOUSE_BUTTON_RIGHT:\n\t\t_right_tools_per_layer_type[_curr_layer_type] = tool_name\n\n\t# Wait for config to get loaded, then re-connect and sync\n\tawait get_tree().process_frame\n\tif not config_changed.is_connected(attempt_config_share):\n\t\tconfig_changed.connect(attempt_config_share)\n\tattempt_config_share(config_slot)  # Sync it with the other tool\n\n\nfunc get_tool(button: int) -> Slot:\n\treturn _slots[button]\n\n\nfunc assign_tool(tool_name: String, button: int, allow_refresh := false) -> void:\n\tif Global.single_tool_mode and button == MOUSE_BUTTON_LEFT:\n\t\tassign_tool(tool_name, MOUSE_BUTTON_RIGHT, allow_refresh)\n\tvar slot: Slot = _slots[button]\n\tvar panel: Node = _panels[button]\n\n\tif slot.tool_node != null:\n\t\tif slot.tool_node.name == tool_name and not allow_refresh:\n\t\t\treturn\n\t\tpanel.remove_child(slot.tool_node)\n\t\tslot.tool_node.queue_free()\n\n\tset_tool(tool_name, button)\n\tupdate_tool_buttons()\n\tupdate_tool_cursors()\n\tGlobal.config_cache.set_value(slot.kname, \"tool\", tool_name)\n\n\nfunc default_color() -> void:\n\tassign_color(Color.BLACK, MOUSE_BUTTON_LEFT)\n\tassign_color(Color.WHITE, MOUSE_BUTTON_RIGHT)\n\n\nfunc swap_color() -> void:\n\tvar left = _slots[MOUSE_BUTTON_LEFT].color\n\tvar right = _slots[MOUSE_BUTTON_RIGHT].color\n\tassign_color(right, MOUSE_BUTTON_LEFT, false)\n\tassign_color(left, MOUSE_BUTTON_RIGHT, false)\n\n\nfunc swap_tools() -> void:\n\tif MOUSE_BUTTON_LEFT and MOUSE_BUTTON_RIGHT in _slots.keys():\n\t\tvar left_slot: Slot = _slots[MOUSE_BUTTON_LEFT]\n\t\tvar right_slot: Slot = _slots[MOUSE_BUTTON_RIGHT]\n\t\tif left_slot.tool_node:\n\t\t\tif (\n\t\t\t\tleft_slot.tool_node.has_method(\"get_config\")\n\t\t\t\tand right_slot.tool_node.has_method(\"get_config\")\n\t\t\t\tand left_slot.tool_node.has_method(\"set_config\")\n\t\t\t\tand right_slot.tool_node.has_method(\"set_config\")\n\t\t\t\tand left_slot.tool_node.has_method(\"update_config\")\n\t\t\t\tand right_slot.tool_node.has_method(\"update_config\")\n\t\t\t):\n\t\t\t\tvar left_name := left_slot.tool_node.name\n\t\t\t\tvar right_name := right_slot.tool_node.name\n\t\t\t\tvar left_config: Dictionary = left_slot.tool_node.get_config()\n\t\t\t\tvar right_config: Dictionary = right_slot.tool_node.get_config()\n\t\t\t\t# Now interchange tools\n\t\t\t\tassign_tool(left_name, MOUSE_BUTTON_RIGHT)\n\t\t\t\tassign_tool(right_name, MOUSE_BUTTON_LEFT)\n\t\t\t\t_slots[MOUSE_BUTTON_LEFT].tool_node.set_config(right_config)\n\t\t\t\t_slots[MOUSE_BUTTON_RIGHT].tool_node.set_config(left_config)\n\t\t\t\t_slots[MOUSE_BUTTON_LEFT].tool_node.update_config()\n\t\t\t\t_slots[MOUSE_BUTTON_RIGHT].tool_node.update_config()\n\t\t\t\tif Global.swap_color_on_tool_swap:\n\t\t\t\t\tTools.swap_color()\n\n\nfunc assign_color(color: Color, button: int, change_alpha := true, index: int = -1) -> void:\n\tvar c: Color = _slots[button].color\n\t# This was requested by Issue #54 on GitHub\n\tif color.a == 0 and change_alpha:\n\t\tif color.r != c.r or color.g != c.g or color.b != c.b:\n\t\t\tcolor.a = 1\n\t_slots[button].color = color\n\tGlobal.config_cache.set_value(_slots[button].kname, \"color\", color)\n\tvar color_info := {\"color\": color, \"index\": index}\n\tcolor_changed.emit(color_info, button)\n\n\nfunc get_assigned_color(button: int) -> Color:\n\tif !_slots.has(button):  # Failsafe\n\t\treturn Color(0, 0, 0, 0)\n\treturn _slots[button].color\n\n\nfunc get_mirrored_positions(\n\tpos: Vector2i, project := Global.current_project, offset := 0\n) -> Array[Vector2i]:\n\tvar positions: Array[Vector2i] = []\n\tif horizontal_mirror:\n\t\tvar mirror_x := calculate_mirror_horizontal(pos, project, offset)\n\t\tpositions.append(mirror_x)\n\t\tif vertical_mirror:\n\t\t\tpositions.append(calculate_mirror_vertical(mirror_x, project, offset))\n\t\telse:\n\t\t\tif diagonal_xy_mirror:\n\t\t\t\tpositions.append(calculate_mirror_diagonal(mirror_x, project))\n\t\t\tif diagonal_x_minus_y_mirror:\n\t\t\t\tpositions.append(calculate_mirror_diagonal(mirror_x, project, true))\n\tif vertical_mirror:\n\t\tvar mirror_y := calculate_mirror_vertical(pos, project, offset)\n\t\tpositions.append(mirror_y)\n\t\tif diagonal_xy_mirror:\n\t\t\tpositions.append(calculate_mirror_diagonal(mirror_y, project))\n\t\tif diagonal_x_minus_y_mirror:\n\t\t\tpositions.append(calculate_mirror_diagonal(mirror_y, project, true))\n\tif diagonal_xy_mirror:\n\t\tvar mirror_diagonal := calculate_mirror_diagonal(pos, project)\n\t\tpositions.append(mirror_diagonal)\n\t\tif not horizontal_mirror and not vertical_mirror and diagonal_x_minus_y_mirror:\n\t\t\tpositions.append(calculate_mirror_diagonal(mirror_diagonal, project, true))\n\tif diagonal_x_minus_y_mirror:\n\t\tpositions.append(calculate_mirror_diagonal(pos, project, true))\n\treturn positions\n\n\nfunc calculate_mirror_horizontal(pos: Vector2i, project: Project, offset := 0) -> Vector2i:\n\treturn Vector2i(project.x_symmetry_point - pos.x + offset, pos.y)\n\n\nfunc calculate_mirror_vertical(pos: Vector2i, project: Project, offset := 0) -> Vector2i:\n\treturn Vector2i(pos.x, project.y_symmetry_point - pos.y + offset)\n\n\nfunc calculate_mirror_diagonal(pos: Vector2i, project: Project, flipped := false) -> Vector2i:\n\tvar symmetry_point := project.x_minus_y_symmetry_point if flipped else project.xy_symmetry_point\n\tvar symmetry_line := X_MINUS_Y_LINE if flipped else XY_LINE\n\tvar offset := Vector2(0.5, 0.5)\n\tvar local_pos := Vector2(pos) + offset - symmetry_point\n\tvar reflected := local_pos.reflect(symmetry_line)\n\treturn (reflected + symmetry_point - offset).round()\n\n\nfunc is_placing_tiles() -> bool:\n\tif Global.current_project.frames.size() == 0 or Global.current_project.layers.size() == 0:\n\t\treturn false\n\treturn Global.current_project.get_current_cel() is CelTileMap and TileSetPanel.placing_tiles\n\n\nfunc _get_closest_point_to_grid(pos: Vector2, distance: float, grid_pos: Vector2) -> Vector2:\n\t# If the cursor is close to the start/origin of a grid cell, snap to that\n\tvar snap_distance := distance * Vector2.ONE\n\tvar closest_point := Vector2.INF\n\tvar rect := Rect2()\n\trect.position = pos - (snap_distance / 4.0)\n\trect.end = pos + (snap_distance / 4.0)\n\tif rect.has_point(grid_pos):\n\t\tclosest_point = grid_pos\n\t\treturn closest_point\n\t# If the cursor is far from the grid cell origin but still close to a grid line\n\t# Look for a point close to a horizontal grid line\n\tvar grid_start_hor := Vector2(0, grid_pos.y)\n\tvar grid_end_hor := Vector2(Global.current_project.size.x, grid_pos.y)\n\tvar closest_point_hor := get_closest_point_to_segment(\n\t\tpos, distance, grid_start_hor, grid_end_hor\n\t)\n\t# Look for a point close to a vertical grid line\n\tvar grid_start_ver := Vector2(grid_pos.x, 0)\n\tvar grid_end_ver := Vector2(grid_pos.x, Global.current_project.size.y)\n\tvar closest_point_ver := get_closest_point_to_segment(\n\t\tpos, distance, grid_start_ver, grid_end_ver\n\t)\n\t# Snap to the closest point to the closest grid line\n\tvar horizontal_distance := (closest_point_hor - pos).length()\n\tvar vertical_distance := (closest_point_ver - pos).length()\n\tif horizontal_distance < vertical_distance:\n\t\tclosest_point = closest_point_hor\n\telif horizontal_distance > vertical_distance:\n\t\tclosest_point = closest_point_ver\n\telif horizontal_distance == vertical_distance and closest_point_hor != Vector2.INF:\n\t\tclosest_point = grid_pos\n\treturn closest_point\n\n\nfunc get_closest_point_to_segment(\n\tpos: Vector2, distance: float, s1: Vector2, s2: Vector2\n) -> Vector2:\n\tvar test_line := (s2 - s1).rotated(deg_to_rad(90)).normalized()\n\tvar from_a := pos - test_line * distance\n\tvar from_b := pos + test_line * distance\n\tvar closest_point := Vector2.INF\n\tif Geometry2D.segment_intersects_segment(from_a, from_b, s1, s2):\n\t\tclosest_point = Geometry2D.get_closest_point_to_segment(pos, s1, s2)\n\treturn closest_point\n\n\nfunc snap_to_rectangular_grid_boundary(\n\tpos: Vector2, grid_size: Vector2i, grid_offset: Vector2, snapping_distance := 9999.0\n) -> Vector2:\n\t## Get the closest grid intersection\n\tvar grid_pos := (pos - grid_offset).snapped(grid_size)  # Get closest box without offset\n\tgrid_pos += Vector2(grid_offset)  # apply offset\n\t## Get the point on boundary of grid box (that contains the intersection)\n\tvar grid_point := _get_closest_point_to_grid(pos, snapping_distance, grid_pos)\n\tif grid_point != Vector2.INF:\n\t\tpos = grid_point.floor()\n\treturn pos\n\n\nfunc snap_to_rectangular_grid_center(\n\tpos: Vector2, grid_size: Vector2i, grid_offset: Vector2i, snapping_distance := 9999.0\n) -> Vector2:\n\tvar grid_center := pos.snapped(grid_size) + Vector2(grid_size / 2)\n\tgrid_center += Vector2(grid_offset)\n\tif snapping_distance < 0:\n\t\tpos = grid_center.floor()\n\telse:\n\t\tif grid_center.distance_to(pos) <= snapping_distance:\n\t\t\tpos = grid_center.floor()\n\treturn pos\n\n\nfunc snap_to_guide(\n\tsnap_to: Vector2, pos: Vector2, distance: float, s1: Vector2, s2: Vector2\n) -> Vector2:\n\tvar closest_point := Tools.get_closest_point_to_segment(pos, distance, s1, s2)\n\tif closest_point == Vector2.INF:  # Is not close to a guide\n\t\treturn Vector2.INF\n\t# Snap to the closest guide\n\tif snap_to == Vector2.INF or (snap_to - pos).length() > (closest_point - pos).length():\n\t\tsnap_to = closest_point\n\n\treturn snap_to\n\n\nfunc set_button_size(button_size: int) -> void:\n\tvar size := Vector2(24, 24) if button_size == Global.ButtonSize.SMALL else Vector2(32, 32)\n\tif not is_instance_valid(_tool_buttons):\n\t\tawait get_tree().process_frame\n\tfor t in _tool_buttons.get_children():\n\t\tt.custom_minimum_size = size\n\n\nfunc update_tool_buttons() -> void:\n\tfor child in _tool_buttons.get_children():\n\t\tvar left_background: NinePatchRect = child.get_node(\"BackgroundLeft\")\n\t\tvar right_background: NinePatchRect = child.get_node(\"BackgroundRight\")\n\t\tvar is_left_tool := _slots[MOUSE_BUTTON_LEFT].tool_node.name == child.name\n\t\tvar is_right_tool := _slots[MOUSE_BUTTON_RIGHT].tool_node.name == child.name\n\t\tleft_background.visible = is_left_tool\n\t\tif Global.single_tool_mode:\n\t\t\tright_background.visible = false\n\t\t\tleft_background.anchor_right = 1.0\n\t\telse:\n\t\t\tright_background.visible = is_right_tool\n\t\t\tleft_background.anchor_right = 0.5\n\n\nfunc update_hint_tooltips() -> void:\n\tfor tool_name in tools:\n\t\tvar t: Tool = tools[tool_name]\n\t\tt.button_node.tooltip_text = t.generate_hint_tooltip()\n\n\nfunc update_tool_cursors() -> void:\n\tvar left_tool: Tool = tools[_slots[MOUSE_BUTTON_LEFT].tool_node.name]\n\tGlobal.control.left_cursor.texture = left_tool.cursor_icon\n\tvar right_tool: Tool = tools[_slots[MOUSE_BUTTON_RIGHT].tool_node.name]\n\tGlobal.control.right_cursor.texture = right_tool.cursor_icon\n\n\nfunc draw_indicator() -> void:\n\tif Global.right_square_indicator_visible and not Global.single_tool_mode:\n\t\t_slots[MOUSE_BUTTON_RIGHT].tool_node.draw_indicator(false)\n\tif Global.left_square_indicator_visible:\n\t\t_slots[MOUSE_BUTTON_LEFT].tool_node.draw_indicator(true)\n\n\nfunc draw_preview() -> void:\n\t_slots[MOUSE_BUTTON_LEFT].tool_node.draw_preview()\n\t_slots[MOUSE_BUTTON_RIGHT].tool_node.draw_preview()\n\n\nfunc handle_draw(position: Vector2i, event: InputEvent) -> void:\n\tif not Global.can_draw:\n\t\treturn\n\n\tvar draw_pos := position\n\tif Global.mirror_view:\n\t\tdraw_pos.x = Global.current_project.size.x - position.x - 1\n\tif event is InputEventGesture:\n\t\tif active_button == MOUSE_BUTTON_LEFT:\n\t\t\t_slots[active_button].tool_node.cancel_tool()\n\t\t\tactive_button = -1\n\t\telif active_button == MOUSE_BUTTON_RIGHT:\n\t\t\t_slots[active_button].tool_node.cancel_tool()\n\t\t\tactive_button = -1\n\tif Input.is_action_pressed(&\"change_layer_automatically\", true):\n\t\tif event.is_action(&\"activate_left_tool\"):\n\t\t\tif _slots[MOUSE_BUTTON_LEFT].tool_node is not BaseSelectionTool:\n\t\t\t\tchange_layer_automatically(draw_pos)\n\t\t\t\treturn\n\t\telif event.is_action(&\"activate_right_tool\"):\n\t\t\tif _slots[MOUSE_BUTTON_RIGHT].tool_node is not BaseSelectionTool:\n\t\t\t\tchange_layer_automatically(draw_pos)\n\t\t\t\treturn\n\n\tif event.is_action_pressed(&\"activate_left_tool\") and active_button == -1 and not pen_inverted:\n\t\tactive_button = MOUSE_BUTTON_LEFT\n\t\t_slots[active_button].tool_node.draw_start(draw_pos)\n\telif event.is_action_released(&\"activate_left_tool\") and active_button == MOUSE_BUTTON_LEFT:\n\t\t_slots[active_button].tool_node.draw_end(draw_pos)\n\t\tactive_button = -1\n\telif (\n\t\t(\n\t\t\tevent.is_action_pressed(&\"activate_right_tool\")\n\t\t\tand active_button == -1\n\t\t\tand not pen_inverted\n\t\t)\n\t\tor event.is_action_pressed(&\"activate_left_tool\") and active_button == -1 and pen_inverted\n\t):\n\t\tactive_button = MOUSE_BUTTON_RIGHT\n\t\t_slots[active_button].tool_node.draw_start(draw_pos)\n\telif (\n\t\t(event.is_action_released(&\"activate_right_tool\") and active_button == MOUSE_BUTTON_RIGHT)\n\t\tor event.is_action_released(&\"activate_left_tool\") and active_button == MOUSE_BUTTON_RIGHT\n\t):\n\t\t_slots[active_button].tool_node.draw_end(draw_pos)\n\t\tactive_button = -1\n\n\tif event is InputEventMouseMotion:\n\t\tpen_pressure = event.pressure\n\t\t# Workaround https://github.com/godotengine/godot/issues/53033#issuecomment-930409407\n\t\t# If a pressure value of 1 is encountered, \"correct\" the value by\n\t\t# extrapolating from the delta of the past two values. This will\n\t\t# correct the jumping to 1 error while also allowing values that\n\t\t# are \"supposed\" to be 1.\n\t\tif pen_pressure == 1 && pressure_buf[0] != 0:\n\t\t\tpen_pressure = minf(1, pressure_buf[0] + pressure_buf[0] - pressure_buf[1])\n\t\tpressure_buf.pop_back()\n\t\tpressure_buf.push_front(pen_pressure)\n\t\tpen_pressure = remap(pen_pressure, pen_pressure_min, pen_pressure_max, 0.0, 1.0)\n\t\tpen_pressure = clampf(pen_pressure, 0.0, 1.0)\n\n\t\tpen_inverted = event.pen_inverted\n\t\tmouse_velocity = event.velocity.length() / mouse_velocity_max\n\t\tmouse_velocity = remap(\n\t\t\tmouse_velocity, mouse_velocity_min_thres, mouse_velocity_max_thres, 0.0, 1.0\n\t\t)\n\t\tmouse_velocity = clampf(mouse_velocity, 0.0, 1.0)\n\t\tif dynamics_alpha != Dynamics.PRESSURE and dynamics_size != Dynamics.PRESSURE:\n\t\t\tpen_pressure = 1.0\n\t\tif dynamics_alpha != Dynamics.VELOCITY and dynamics_size != Dynamics.VELOCITY:\n\t\t\tmouse_velocity = 1.0\n\t\tif active_button == -1:  # there is no meaning of velocity without an active tool\n\t\t\tmouse_velocity = 0.0\n\t\tif not position == _last_position:\n\t\t\t_last_position = position\n\t\t\t_slots[MOUSE_BUTTON_LEFT].tool_node.cursor_move(position)\n\t\t\t_slots[MOUSE_BUTTON_RIGHT].tool_node.cursor_move(position)\n\t\t\tif active_button != -1:\n\t\t\t\t_slots[active_button].tool_node.draw_move(draw_pos)\n\n\tvar project := Global.current_project\n\tvar text := \"[%s×%s]\" % [project.size.x, project.size.y]\n\ttext += \"    %s, %s\" % [position.x, position.y]\n\tif not _slots[MOUSE_BUTTON_LEFT].tool_node.cursor_text.is_empty():\n\t\ttext += \"    %s\" % _slots[MOUSE_BUTTON_LEFT].tool_node.cursor_text\n\tif not _slots[MOUSE_BUTTON_RIGHT].tool_node.cursor_text.is_empty():\n\t\ttext += \"    %s\" % _slots[MOUSE_BUTTON_RIGHT].tool_node.cursor_text\n\tGlobal.on_cursor_position_text_changed.emit(text)\n\n\n## Returns [code]true[/code] if [member alpha_locked] is [code]true[/code]\n## and the [param image]'s pixel at [param position] is transparent.\nfunc check_alpha_lock(image: Image, position: Vector2i) -> bool:\n\treturn alpha_locked and is_zero_approx(image.get_pixelv(position).a)\n\n\nfunc get_alpha_dynamic(strength := 1.0) -> float:\n\tif dynamics_alpha == Dynamics.PRESSURE:\n\t\tstrength *= lerpf(alpha_min, alpha_max, pen_pressure)\n\telif dynamics_alpha == Dynamics.VELOCITY:\n\t\tstrength *= lerpf(alpha_min, alpha_max, mouse_velocity)\n\treturn strength\n\n\nfunc _cel_switched() -> void:\n\tvar layer: BaseLayer = Global.current_project.layers[Global.current_project.current_layer]\n\tvar layer_type := layer.get_layer_type()\n\t# Do not make any changes when its the same type of layer, or an audio layer\n\tif layer_type == _curr_layer_type or layer_type in [Global.LayerTypes.AUDIO]:\n\t\treturn\n\t_show_relevant_tools(layer_type)\n\n\nfunc _show_relevant_tools(layer_type: Global.LayerTypes) -> void:\n\t# Hide tools that are not available in the current layer type\n\tvar fallback_available_tool: StringName\n\tfor button in _tool_buttons.get_children():\n\t\tvar tool_name: String = button.name\n\t\tvar t: Tool = tools[tool_name]\n\t\tvar can_show_tool := _is_tool_available(layer_type, t)\n\t\tif can_show_tool:\n\t\t\tfallback_available_tool = tool_name\n\t\tbutton.visible = can_show_tool\n\n\t# Assign new tools if the layer type has changed\n\t_curr_layer_type = layer_type\n\tvar new_tool_name: String = _left_tools_per_layer_type.get(layer_type, fallback_available_tool)\n\tassign_tool(new_tool_name, MOUSE_BUTTON_LEFT)\n\n\tnew_tool_name = _right_tools_per_layer_type.get(layer_type, fallback_available_tool)\n\tassign_tool(new_tool_name, MOUSE_BUTTON_RIGHT)\n\n\nfunc _is_tool_available(layer_type: int, t: Tool) -> bool:\n\treturn t.layer_types.is_empty() or layer_type in t.layer_types\n\n\nfunc _on_single_tool_mode_changed(mode: bool) -> void:\n\tif mode:\n\t\tassign_tool(get_tool(MOUSE_BUTTON_LEFT).tool_node.name, MOUSE_BUTTON_RIGHT, true)\n\telse:\n\t\tupdate_tool_buttons()\n\n\nfunc change_layer_automatically(pos: Vector2i) -> void:\n\tvar project := Global.current_project\n\tpos = project.tiles.get_canon_position(pos)\n\tif pos.x < 0 or pos.y < 0:\n\t\treturn\n\tvar image := Image.new()\n\timage.copy_from(project.get_current_cel().get_image())\n\tif pos.x > image.get_width() - 1 or pos.y > image.get_height() - 1:\n\t\treturn\n\n\tvar curr_frame := project.frames[project.current_frame]\n\tfor layer in project.layers.size():\n\t\tvar layer_index := (project.layers.size() - 1) - layer\n\t\tif project.layers[layer_index].is_visible_in_hierarchy():\n\t\t\timage = curr_frame.cels[layer_index].get_image()\n\t\t\tvar color := image.get_pixelv(pos)\n\t\t\tif not is_zero_approx(color.a):\n\t\t\t\t# Change layer.\n\t\t\t\tproject.selected_cels.clear()\n\t\t\t\tvar frame_layer := [project.current_frame, layer_index]\n\t\t\t\tif !project.selected_cels.has(frame_layer):\n\t\t\t\t\tproject.selected_cels.append(frame_layer)\n\n\t\t\t\tproject.change_cel(-1, layer_index)\n\t\t\t\tbreak\n"
  },
  {
    "path": "src/Autoload/Tools.gd.uid",
    "content": "uid://dfb2qenp0c5d6\n"
  },
  {
    "path": "src/Classes/AnimationExporters/GIFAnimationExporter.gd",
    "content": "class_name GIFAnimationExporter\nextends AImgIOBaseExporter\n## Acts as the interface between the AImgIO format-independent interface and gdgifexporter.\n## Note that if the interface needs changing for new features, do just change it!\n\n## Gif exporter\nconst GIFExporter := preload(\"res://addons/gdgifexporter/exporter.gd\")\nconst MedianCutQuantization := preload(\"res://addons/gdgifexporter/quantization/median_cut.gd\")\n\n\nfunc _init() -> void:\n\tmime_type = \"image/gif\"\n\n\nfunc export_animation(\n\tframes: Array,\n\t_fps_hint: float,\n\tprogress_report_obj: Object,\n\tprogress_report_method,\n\tprogress_report_args,\n\tbuffer_file: FileAccess = null\n) -> PackedByteArray:\n\tvar first_frame: AImgIOFrame = frames[0]\n\tvar first_img := first_frame.content\n\tvar exporter := GIFExporter.new(first_img.get_width(), first_img.get_height())\n\tfor v in frames:\n\t\tvar frame: AImgIOFrame = v\n\t\texporter.add_frame(frame.content, frame.duration, MedianCutQuantization)\n\t\t# Directly store data to buffer file if it is given, this preserves\n\t\t# GIF if export is canceled for some reason\n\t\tif buffer_file:\n\t\t\tbuffer_file.store_buffer(exporter.data)\n\t\t\texporter.data.clear()  # Clear data so it can be filled with next frame data\n\t\tprogress_report_obj.callv(progress_report_method, progress_report_args)\n\t\tawait RenderingServer.frame_post_draw\n\tif buffer_file:\n\t\tbuffer_file.store_buffer(exporter.export_file_data())\n\t\treturn PackedByteArray()\n\treturn exporter.export_file_data()\n"
  },
  {
    "path": "src/Classes/AnimationExporters/GIFAnimationExporter.gd.uid",
    "content": "uid://71gveajmvnpc\n"
  },
  {
    "path": "src/Classes/AnimationTag.gd",
    "content": "class_name AnimationTag\nextends RefCounted\n## A class for frame tag properties\n##\n## A tag indicates an animation of your sprite. Using several tags you can organize different\n## animations of your sprite.[br]\n## Here is an example of how a new tag may be created ([b]without[/b] any undo-redo functionality)\n##[codeblock]\n##func create_tag(tag_name: StringName, color: Color, from: int, to: int):\n##    var tags_list = Global.current_project.animation_tags.duplicate()\n##    var new_tag = AnimationTag.new(tag_name, color, from, to)\n##    tags_list.append(new_tag)\n##    # now make it the new animation_tags (so that the setter is called to update UI)\n##    Global.current_project.animation_tags = tags_list\n## [/codeblock]\n## Here is an example of how a new tag may be created ([b]with[/b] undo-redo functionality)\n## [codeblock]\n##func create_tag(tag_name: StringName, color: Color, from: int, to: int):\n##    var new_animation_tags: Array[AnimationTag] = []\n##    # Loop through the tags to create new classes for them, so that they won't be the same\n##    # as Global.current_project.animation_tags's classes. Needed for undo/redo to work properly.\n##    for tag in Global.current_project.animation_tags:\n##        new_animation_tags.append(tag.duplicate())\n##\n##    new_animation_tags.append(AnimationTag.new(tag_name, color, from, to))\n##\n##    # Handle Undo/Redo\n##    Global.current_project.undo_redo.create_action(\"Adding a Tag\")\n##    Global.current_project.undo_redo.add_do_method(Global.general_redo)\n##    Global.current_project.undo_redo.add_undo_method(Global.general_undo)\n##    Global.current_project.undo_redo.add_do_property(\n##        Global.current_project, \"animation_tags\", new_animation_tags\n##    )\n##    Global.current_project.undo_redo.add_undo_property(\n##        Global.current_project, \"animation_tags\", Global.current_project.animation_tags\n##    )\n##    Global.current_project.undo_redo.commit_action()\n## [/codeblock]\n\nconst CEL_SEPARATION := 0\n\nvar name: String  ## Name of tag\nvar color: Color  ## Color of tag\nvar from: int  ## First frame number in the tag (first frame in timeline is numbered 1)\nvar to: int  ## First frame number in the tag (first frame in timeline is numbered 1)\nvar user_data := \"\"  ## User defined data, set in the tag properties.\n\n\n## Class Constructor (used as [code]AnimationTag.new(name, color, from, to)[/code])\nfunc _init(_name: String, _color: Color, _from: int, _to: int) -> void:\n\tname = _name\n\tcolor = _color\n\tfrom = _from\n\tto = _to\n\n\nfunc serialize() -> Dictionary:\n\tvar dict := {\"name\": name, \"color\": color.to_html(), \"from\": from, \"to\": to}\n\tif not user_data.is_empty():\n\t\tdict[\"user_data\"] = user_data\n\treturn dict\n\n\nfunc duplicate() -> AnimationTag:\n\tvar new_tag := AnimationTag.new(name, color, from, to)\n\tnew_tag.user_data = user_data\n\treturn new_tag\n\n\nfunc get_size() -> int:\n\treturn to - from + 1\n\n\nfunc has_frame(index: int) -> bool:\n\treturn from <= (index + 1) and (index + 1) <= to\n\n\nfunc frames_array() -> Array:\n\treturn range(from - 1, to)\n\n\nfunc get_position() -> Vector2:\n\tvar tag_base_size: int = Global.animation_timeline.cel_size + CEL_SEPARATION\n\treturn Vector2((from - 1) * tag_base_size + 1, 1)\n\n\nfunc get_minimum_size() -> int:\n\tvar tag_base_size: int = Global.animation_timeline.cel_size + CEL_SEPARATION\n\treturn get_size() * tag_base_size - 8\n"
  },
  {
    "path": "src/Classes/AnimationTag.gd.uid",
    "content": "uid://d234hj2s71hgh\n"
  },
  {
    "path": "src/Classes/Cel3DObject.gd",
    "content": "class_name Cel3DObject\nextends Node3D\n\nsignal property_changed\n\nenum Type {\n\tBOX,\n\tSPHERE,\n\tCAPSULE,\n\tCYLINDER,\n\tPRISM,\n\tTORUS,\n\tPLANE,\n\tTEXT,\n\tDIR_LIGHT,\n\tSPOT_LIGHT,\n\tOMNI_LIGHT,\n\tIMPORTED\n}\nenum Gizmos { NONE, X_POS, Y_POS, Z_POS, X_ROT, Y_ROT, Z_ROT, X_SCALE, Y_SCALE, Z_SCALE }\n\nvar cel\nvar id := -1\nvar type := Type.BOX:\n\tset = _set_type\nvar selected := false\nvar hovered := false\nvar box_shape: BoxShape3D\nvar camera: Camera3D\nvar file_path := \"\":\n\tset = _set_file_path\nvar applying_gizmos: int = Gizmos.NONE\nvar node3d_type: VisualInstance3D\n\nvar dir_light_texture := preload(\"res://assets/graphics/gizmos/directional_light.svg\")\nvar spot_light_texture := preload(\"res://assets/graphics/gizmos/spot_light.svg\")\nvar omni_light_texture := preload(\"res://assets/graphics/gizmos/omni_light.svg\")\n\n@onready var gizmos_3d: Node2D = Global.canvas.gizmos_3d\n\n\nfunc _ready() -> void:\n\tcamera = get_viewport().get_camera_3d()\n\tvar static_body := StaticBody3D.new()\n\tvar collision_shape := CollisionShape3D.new()\n\tbox_shape = BoxShape3D.new()\n\tbox_shape.size = scale\n\tcollision_shape.shape = box_shape\n\tstatic_body.add_child(collision_shape)\n\tadd_child(static_body)\n\n\nfunc find_cel() -> bool:\n\tvar project := Global.current_project\n\treturn cel == project.get_current_cel()\n\n\nfunc serialize() -> Dictionary:\n\tvar dict := {\n\t\t\"id\": id, \"type\": type, \"transform\": transform, \"visible\": visible, \"file_path\": file_path\n\t}\n\tif _is_mesh():\n\t\tvar mesh: Mesh = node3d_type.mesh\n\t\tmatch type:\n\t\t\tType.BOX:\n\t\t\t\tdict[\"mesh_size\"] = mesh.size\n\t\t\tType.PLANE:\n\t\t\t\tdict[\"mesh_sizev2\"] = mesh.size\n\t\t\t\tdict[\"mesh_center_offset\"] = mesh.center_offset\n\t\t\tType.PRISM:\n\t\t\t\tdict[\"mesh_size\"] = mesh.size\n\t\t\t\tdict[\"mesh_left_to_right\"] = mesh.left_to_right\n\t\t\tType.SPHERE:\n\t\t\t\tdict[\"mesh_radius\"] = mesh.radius\n\t\t\t\tdict[\"mesh_height\"] = mesh.height\n\t\t\t\tdict[\"mesh_radial_segments\"] = mesh.radial_segments\n\t\t\t\tdict[\"mesh_rings\"] = mesh.rings\n\t\t\t\tdict[\"mesh_is_hemisphere\"] = mesh.is_hemisphere\n\t\t\tType.CAPSULE:\n\t\t\t\tdict[\"mesh_radius\"] = mesh.radius\n\t\t\t\tdict[\"mesh_height\"] = mesh.height\n\t\t\t\tdict[\"mesh_radial_segments\"] = mesh.radial_segments\n\t\t\t\tdict[\"mesh_rings\"] = mesh.rings\n\t\t\tType.CYLINDER:\n\t\t\t\tdict[\"mesh_bottom_radius\"] = mesh.bottom_radius\n\t\t\t\tdict[\"mesh_top_radius\"] = mesh.top_radius\n\t\t\t\tdict[\"mesh_height\"] = mesh.height\n\t\t\t\tdict[\"mesh_radial_segments\"] = mesh.radial_segments\n\t\t\t\tdict[\"mesh_rings\"] = mesh.rings\n\t\t\tType.TORUS:\n\t\t\t\tdict[\"mesh_inner_radius\"] = mesh.inner_radius\n\t\t\t\tdict[\"mesh_outer_radius\"] = mesh.outer_radius\n\t\t\t\tdict[\"mesh_ring_segments\"] = mesh.ring_segments\n\t\t\t\tdict[\"mesh_rings\"] = mesh.rings\n\t\t\tType.TEXT:\n\t\t\t\tdict[\"mesh_font_name\"] = mesh.font.get_font_name()\n\t\t\t\tdict[\"mesh_text\"] = mesh.text\n\t\t\t\tdict[\"mesh_pixel_size\"] = mesh.pixel_size\n\t\t\t\tdict[\"mesh_font_size\"] = mesh.font_size\n\t\t\t\tdict[\"mesh_depth\"] = mesh.depth\n\t\t\t\tdict[\"mesh_offset\"] = mesh.offset\n\t\t\t\tdict[\"mesh_curve_step\"] = mesh.curve_step\n\t\t\t\tdict[\"mesh_horizontal_alignment\"] = mesh.horizontal_alignment\n\t\t\t\tdict[\"mesh_vertical_alignment\"] = mesh.vertical_alignment\n\t\t\t\tdict[\"mesh_line_spacing\"] = mesh.line_spacing\n\telse:\n\t\tdict[\"light_color\"] = node3d_type.light_color\n\t\tdict[\"light_energy\"] = node3d_type.light_energy\n\t\tdict[\"light_negative\"] = node3d_type.light_negative\n\t\tdict[\"shadow_enabled\"] = node3d_type.shadow_enabled\n\t\tmatch type:\n\t\t\tType.OMNI_LIGHT:\n\t\t\t\tdict[\"omni_range\"] = node3d_type.omni_range\n\t\t\tType.SPOT_LIGHT:\n\t\t\t\tdict[\"spot_range\"] = node3d_type.spot_range\n\t\t\t\tdict[\"spot_angle\"] = node3d_type.spot_angle\n\treturn dict\n\n\nfunc deserialize(dict: Dictionary) -> void:\n\tid = dict[\"id\"]\n\tfile_path = dict[\"file_path\"]\n\ttype = dict[\"type\"]\n\ttransform = dict[\"transform\"]\n\tvisible = dict[\"visible\"]\n\tif _is_mesh():\n\t\tvar mesh: Mesh = node3d_type.mesh\n\t\tmatch type:\n\t\t\tType.BOX:\n\t\t\t\tmesh.size = dict[\"mesh_size\"]\n\t\t\tType.PLANE:\n\t\t\t\tmesh.size = dict[\"mesh_sizev2\"]\n\t\t\t\tmesh.center_offset = dict[\"mesh_center_offset\"]\n\t\t\tType.PRISM:\n\t\t\t\tmesh.size = dict[\"mesh_size\"]\n\t\t\t\tmesh.left_to_right = dict[\"mesh_left_to_right\"]\n\t\t\tType.SPHERE:\n\t\t\t\tmesh.radius = dict[\"mesh_radius\"]\n\t\t\t\tmesh.height = dict[\"mesh_height\"]\n\t\t\t\tmesh.radial_segments = dict[\"mesh_radial_segments\"]\n\t\t\t\tmesh.rings = dict[\"mesh_rings\"]\n\t\t\t\tmesh.is_hemisphere = dict[\"mesh_is_hemisphere\"]\n\t\t\tType.CAPSULE:\n\t\t\t\tmesh.radius = dict[\"mesh_radius\"]\n\t\t\t\tmesh.height = dict[\"mesh_height\"]\n\t\t\t\tmesh.radial_segments = dict[\"mesh_radial_segments\"]\n\t\t\t\tmesh.rings = dict[\"mesh_rings\"]\n\t\t\tType.CYLINDER:\n\t\t\t\tmesh.bottom_radius = dict[\"mesh_bottom_radius\"]\n\t\t\t\tmesh.top_radius = dict[\"mesh_top_radius\"]\n\t\t\t\tmesh.height = dict[\"mesh_height\"]\n\t\t\t\tmesh.radial_segments = dict[\"mesh_radial_segments\"]\n\t\t\t\tmesh.rings = dict[\"mesh_rings\"]\n\t\t\tType.TORUS:\n\t\t\t\tmesh.inner_radius = dict[\"mesh_inner_radius\"]\n\t\t\t\tmesh.outer_radius = dict[\"mesh_outer_radius\"]\n\t\t\t\tmesh.ring_segments = dict[\"mesh_ring_segments\"]\n\t\t\t\tmesh.rings = dict[\"mesh_rings\"]\n\t\t\tType.TEXT:\n\t\t\t\tmesh.font = Global.find_font_from_name(dict[\"mesh_font_name\"])\n\t\t\t\tmesh.text = dict[\"mesh_text\"]\n\t\t\t\tmesh.pixel_size = dict[\"mesh_pixel_size\"]\n\t\t\t\tmesh.font_size = dict[\"mesh_font_size\"]\n\t\t\t\tmesh.depth = dict[\"mesh_depth\"]\n\t\t\t\tmesh.offset = dict[\"mesh_offset\"]\n\t\t\t\tmesh.curve_step = dict[\"mesh_curve_step\"]\n\t\t\t\tmesh.horizontal_alignment = dict[\"mesh_horizontal_alignment\"]\n\t\t\t\tmesh.vertical_alignment = dict[\"mesh_vertical_alignment\"]\n\t\t\t\tmesh.line_spacing = dict[\"mesh_line_spacing\"]\n\telse:\n\t\tnode3d_type.light_color = dict[\"light_color\"]\n\t\tnode3d_type.light_energy = dict[\"light_energy\"]\n\t\tnode3d_type.light_negative = dict[\"light_negative\"]\n\t\tnode3d_type.shadow_enabled = dict[\"shadow_enabled\"]\n\t\tmatch type:\n\t\t\tType.OMNI_LIGHT:\n\t\t\t\tnode3d_type.omni_range = dict[\"omni_range\"]\n\t\t\tType.SPOT_LIGHT:\n\t\t\t\tnode3d_type.spot_range = dict[\"spot_range\"]\n\t\t\t\tnode3d_type.spot_angle = dict[\"spot_angle\"]\n\tchange_property()\n\n\nfunc _is_mesh() -> bool:\n\treturn node3d_type is MeshInstance3D\n\n\nfunc _set_type(value: Type) -> void:\n\tif type == value and is_instance_valid(node3d_type):  # No reason to set the same type twice\n\t\treturn\n\ttype = value\n\tif is_instance_valid(node3d_type):\n\t\tnode3d_type.queue_free()\n\tmatch type:\n\t\tType.BOX:\n\t\t\tnode3d_type = MeshInstance3D.new()\n\t\t\tnode3d_type.mesh = BoxMesh.new()\n\t\tType.SPHERE:\n\t\t\tnode3d_type = MeshInstance3D.new()\n\t\t\tnode3d_type.mesh = SphereMesh.new()\n\t\tType.CAPSULE:\n\t\t\tnode3d_type = MeshInstance3D.new()\n\t\t\tnode3d_type.mesh = CapsuleMesh.new()\n\t\tType.CYLINDER:\n\t\t\tnode3d_type = MeshInstance3D.new()\n\t\t\tnode3d_type.mesh = CylinderMesh.new()\n\t\tType.PRISM:\n\t\t\tnode3d_type = MeshInstance3D.new()\n\t\t\tnode3d_type.mesh = PrismMesh.new()\n\t\tType.PLANE:\n\t\t\tnode3d_type = MeshInstance3D.new()\n\t\t\tnode3d_type.mesh = PlaneMesh.new()\n\t\tType.TORUS:\n\t\t\tnode3d_type = MeshInstance3D.new()\n\t\t\tnode3d_type.mesh = TorusMesh.new()\n\t\tType.TEXT:\n\t\t\tnode3d_type = MeshInstance3D.new()\n\t\t\tvar mesh := TextMesh.new()\n\t\t\tmesh.font = Themes.get_font()\n\t\t\tmesh.text = \"Sample\"\n\t\t\tnode3d_type.mesh = mesh\n\t\tType.DIR_LIGHT:\n\t\t\tnode3d_type = DirectionalLight3D.new()\n\t\t\tgizmos_3d.add_always_visible(self, dir_light_texture)\n\t\tType.SPOT_LIGHT:\n\t\t\tnode3d_type = SpotLight3D.new()\n\t\t\tgizmos_3d.add_always_visible(self, spot_light_texture)\n\t\tType.OMNI_LIGHT:\n\t\t\tnode3d_type = OmniLight3D.new()\n\t\t\tgizmos_3d.add_always_visible(self, omni_light_texture)\n\t\tType.IMPORTED:\n\t\t\tnode3d_type = MeshInstance3D.new()\n\t\t\tvar mesh: Mesh\n\t\t\tif not file_path.is_empty():\n\t\t\t\tmesh = ObjParse.from_path(file_path)\n\t\t\tnode3d_type.mesh = mesh\n\tadd_child(node3d_type)\n\n\nfunc _set_file_path(value: String) -> void:\n\tif file_path == value:\n\t\treturn\n\tfile_path = value\n\tif file_path.is_empty():\n\t\treturn\n\tif type == Type.IMPORTED:\n\t\tnode3d_type.mesh = ObjParse.from_path(file_path)\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_EXIT_TREE:\n\t\tdeselect()\n\t\tgizmos_3d.remove_always_visible(self)\n\n\nfunc select() -> void:\n\tselected = true\n\tgizmos_3d.get_points(camera, self)\n\n\nfunc deselect() -> void:\n\tselected = false\n\tgizmos_3d.clear_points(self)\n\n\nfunc hover() -> void:\n\tif hovered:\n\t\treturn\n\thovered = true\n\tif selected:\n\t\treturn\n\tgizmos_3d.get_points(camera, self)\n\n\nfunc unhover() -> void:\n\tif not hovered:\n\t\treturn\n\thovered = false\n\tif selected:\n\t\treturn\n\tgizmos_3d.clear_points(self)\n\n\nfunc change_transform(a: Vector3, b: Vector3) -> void:\n\tvar diff := a - b\n\tmatch applying_gizmos:\n\t\tGizmos.X_POS:\n\t\t\tmove_axis(diff, transform.basis.x)\n\t\tGizmos.Y_POS:\n\t\t\tmove_axis(diff, transform.basis.y)\n\t\tGizmos.Z_POS:\n\t\t\tmove_axis(diff, transform.basis.z)\n\t\tGizmos.X_ROT:\n\t\t\tchange_rotation(a, b, transform.basis.x)\n\t\tGizmos.Y_ROT:\n\t\t\tchange_rotation(a, b, transform.basis.y)\n\t\tGizmos.Z_ROT:\n\t\t\tchange_rotation(a, b, transform.basis.z)\n\t\tGizmos.X_SCALE:\n\t\t\tchange_scale(diff, transform.basis.x, Vector3.RIGHT)\n\t\tGizmos.Y_SCALE:\n\t\t\tchange_scale(diff, transform.basis.y, Vector3.UP)\n\t\tGizmos.Z_SCALE:\n\t\t\tchange_scale(diff, transform.basis.z, Vector3.BACK)\n\t\t_:\n\t\t\tmove(diff)\n\n\nfunc move(pos: Vector3) -> void:\n\tposition += pos\n\tchange_property()\n\n\n## Move the object in the direction it is facing, and restrict mouse movement in that axis\nfunc move_axis(diff: Vector3, axis: Vector3) -> void:\n\tvar axis_v2 := Vector2(axis.x, axis.y).normalized()\n\tif axis_v2 == Vector2.ZERO:\n\t\taxis_v2 = Vector2(axis.y, axis.z).normalized()\n\tvar diff_v2 := Vector2(diff.x, diff.y).normalized()\n\tposition += axis * axis_v2.dot(diff_v2) * diff.length()\n\tchange_property()\n\n\nfunc change_rotation(a: Vector3, b: Vector3, axis: Vector3) -> void:\n\tvar a_local := a - position\n\tvar a_local_v2 := Vector2(a_local.x, a_local.y)\n\tvar b_local := b - position\n\tvar b_local_v2 := Vector2(b_local.x, b_local.y)\n\tvar angle := b_local_v2.angle_to(a_local_v2)\n\t# Rotate the object around a basis axis, instead of a fixed axis, such as\n\t# Vector3.RIGHT, Vector3.UP or Vector3.BACK\n\trotate(axis.normalized(), angle)\n\trotation.x = wrapf(rotation.x, -PI, PI)\n\trotation.y = wrapf(rotation.y, -PI, PI)\n\trotation.z = wrapf(rotation.z, -PI, PI)\n\tchange_property()\n\n\n## Scale the object in the direction it is facing, and restrict mouse movement in that axis\nfunc change_scale(diff: Vector3, axis: Vector3, dir: Vector3) -> void:\n\tvar axis_v2 := Vector2(axis.x, axis.y).normalized()\n\tif axis_v2 == Vector2.ZERO:\n\t\taxis_v2 = Vector2(axis.y, axis.z).normalized()\n\tvar diff_v2 := Vector2(diff.x, diff.y).normalized()\n\tscale += dir * axis_v2.dot(diff_v2) * diff.length()\n\tchange_property()\n\n\nfunc change_property() -> void:\n\tif selected:\n\t\tselect()\n\telse:\n\t\t# Check is needed in case this runs before _ready(), and thus onready variables\n\t\tif is_instance_valid(gizmos_3d):\n\t\t\tgizmos_3d.queue_redraw()\n\tproperty_changed.emit()\n"
  },
  {
    "path": "src/Classes/Cel3DObject.gd.uid",
    "content": "uid://bm77r8chg2r4l\n"
  },
  {
    "path": "src/Classes/Cels/AudioCel.gd",
    "content": "class_name AudioCel\nextends BaseCel\n## A class for the properties of cels in AudioLayers.\n## The term \"cel\" comes from \"celluloid\" (https://en.wikipedia.org/wiki/Cel).\n\n\nfunc _init(_opacity := 1.0) -> void:\n\topacity = _opacity\n\timage_texture = ImageTexture.new()\n\n\nfunc get_image() -> Image:\n\tvar image := Global.current_project.new_empty_image()\n\treturn image\n\n\nfunc get_class_name() -> String:\n\treturn \"AudioCel\"\n"
  },
  {
    "path": "src/Classes/Cels/AudioCel.gd.uid",
    "content": "uid://ooft6ye4pllc\n"
  },
  {
    "path": "src/Classes/Cels/BaseCel.gd",
    "content": "class_name BaseCel\nextends RefCounted\n## Base class for cel properties.\n## \"Cel\" is short for the term \"celluloid\" [url]https://en.wikipedia.org/wiki/Cel[/url].\n\nsignal texture_changed  ## Emitted whenever the cel's texture is changed\nsignal z_index_changed  ## Emitted whenever [member z_index] is changed.\nsignal ui_color_changed  ## Emits when [member ui_color] is changed.\n\nvar opacity := 1.0  ## Opacity/Transparency of the cel.\n## The image stored in the cel.\nvar image_texture: Texture2D:\n\tget = _get_image_texture\n## If the cel is linked then this contains a reference to the link set [Dictionary] this cel is in:\n## [param { \"cels\": Array, \"hue\": float }].\n## [br] If the cel is not linked then it is [code]null[/code].\nvar link_set = null  # { \"cels\": Array, \"hue\": float } or null\nvar transformed_content: Image  ## Used in transformations (moving, scaling etc with selections).\n## Used for individual cel ordering. Used for when cels need to be drawn above or below\n## their corresponding layer.\nvar z_index := 0:\n\tset(value):\n\t\tz_index = value\n\t\tz_index_changed.emit()\nvar user_data := \"\"  ## User defined data, set in the cel properties.\n## The color of the cel's button in the timeline. By default, it's the theme button color.\nvar ui_color := Color(0, 0, 0, 0):\n\tset(value):\n\t\tui_color = value\n\t\tui_color_changed.emit()\n\n\nfunc get_final_opacity(layer: BaseLayer) -> float:\n\treturn layer.opacity * opacity\n\n\nfunc get_frame(project: Project) -> Frame:\n\tfor frame in project.frames:\n\t\tif frame.cels.has(self):\n\t\t\treturn frame\n\treturn null\n\n\n# Methods to Override:\n\n\nfunc _get_image_texture() -> Texture2D:\n\treturn image_texture\n\n\n## The content methods deal with the unique content of each cel type. For example, an Image for\n## PixelCel, or a Dictionary of settings for a procedural layer type, and null for Groups.\n## Can be used for linking/unlinking cels, copying, and deleting content\nfunc get_content() -> Variant:\n\treturn null\n\n\n## The content methods deal with the unique content of each cel type. For example, an Image for\n## PixelCel, or a Dictionary of settings for a procedural layer type, and null for Groups.\n## Can be used for linking/unlinking cels, copying, and deleting content.\nfunc set_content(_content, _texture: ImageTexture = null) -> void:\n\treturn\n\n\n## The content methods deal with the unique content of each cel type. For example, an Image for\n## PixelCel, or a Dictionary of settings for a procedural layer type, and null for Groups.\n## Can be used to delete the content of the cel with [method set_content]\n## (using the old content from get_content as undo data).\nfunc create_empty_content() -> Variant:\n\treturn []\n\n\n## The content methods deal with the unique content of each cel type. For example, an Image for\n## PixelCel, or a Dictionary of settings for a procedural layer type, and null for Groups.\n## Can be used for creating copy content for copying cels or unlinking cels.\nfunc copy_content() -> Variant:\n\treturn []\n\n\n## Returns the image of image based cel types, or a render for procedural types.\n## It's meant for read-only usage of image data, such as copying selections or color picking.\nfunc get_image() -> Image:\n\treturn null\n\n\n## Returns a copy of the cel.\nfunc duplicate_cel() -> BaseCel:\n\treturn get_script().new()\n\n\n## Used to update the texture of the cel.\nfunc update_texture(_undo := false) -> void:\n\ttexture_changed.emit()\n\tif link_set != null:\n\t\tvar frame := Global.current_project.current_frame\n\t\t# This check is needed in case the user has selected multiple cels that are also linked\n\t\tif self in Global.current_project.frames[frame].cels:\n\t\t\tfor cel in link_set[\"cels\"]:\n\t\t\t\tcel.texture_changed.emit()\n\n\n## Returns a curated [Dictionary] containing the cel data.\nfunc serialize() -> Dictionary:\n\tvar dict := {\"opacity\": opacity, \"z_index\": z_index}\n\tif not user_data.is_empty():\n\t\tdict[\"user_data\"] = user_data\n\tdict[\"ui_color\"] = ui_color\n\treturn dict\n\n\n## Sets the cel data according to a curated [Dictionary] obtained from [method serialize].\nfunc deserialize(dict: Dictionary) -> void:\n\topacity = dict[\"opacity\"]\n\tz_index = dict.get(\"z_index\", z_index)\n\tuser_data = dict.get(\"user_data\", user_data)\n\tif dict.has(\"ui_color\"):\n\t\tvar tmp_ui_color = dict.ui_color\n\t\tif typeof(tmp_ui_color) == TYPE_STRING:\n\t\t\tui_color = str_to_var(\"Color\" + tmp_ui_color)\n\t\telse:\n\t\t\tui_color = tmp_ui_color\n\n\nfunc size_changed(_new_size: Vector2i) -> void:\n\tpass\n\n\n## Used to perform cleanup after a cel is removed.\nfunc on_remove() -> void:\n\tpass\n\n\n## Returns an instance of the cel button that will be added to the timeline.\nfunc instantiate_cel_button() -> Node:\n\treturn Global.cel_button_scene.instantiate()\n\n\n## Returns to get the type of the cel class.\nfunc get_class_name() -> String:\n\treturn \"BaseCel\"\n"
  },
  {
    "path": "src/Classes/Cels/BaseCel.gd.uid",
    "content": "uid://8dwcqf3myvuo\n"
  },
  {
    "path": "src/Classes/Cels/Cel3D.gd",
    "content": "class_name Cel3D\nextends BaseCel\n\nsignal selected_object(object: Cel3DObject)\nsignal scene_property_changed\nsignal objects_changed\n\nvar size: Vector2i  ## Size of the image rendered by the cel.\nvar viewport: SubViewport  ## SubViewport used by the cel.\nvar parent_node: Node3D  ## Parent node of the 3d objects placed in the cel.\nvar camera: Camera3D  ## Camera that is used to render the Image.\n## A [Dictionary] of the scene properties such as [param ambient_light_color] etc...\nvar scene_properties := {}\n## Keys are the ids of all [Cel3DObject]'s present in the scene, and their corresponding values\n## point to a [Dictionary] containing the properties of that [Cel3DObject].\nvar object_properties := {}\n## The currently selected [Cel3DObject].\nvar selected: Cel3DObject = null:\n\tset(value):\n\t\tif value == selected:\n\t\t\treturn\n\t\tif is_instance_valid(selected):  # Unselect previous object if we selected something else\n\t\t\tselected.deselect()\n\t\tselected = value\n\t\tif is_instance_valid(selected):  # Select new object\n\t\t\tselected.select()\n\t\tselected_object.emit(value)\nvar current_object_id := 0  ## Its value never decreases.\n\n\n## Class Constructor (used as [code]Cel3D.new(size, from_pxo, object_prop, scene_prop)[/code])\nfunc _init(_size: Vector2i, from_pxo := false, _object_prop := {}, _scene_prop := {}) -> void:\n\tsize = _size\n\tobject_properties = _object_prop\n\tscene_properties = _scene_prop\n\tif scene_properties.is_empty():\n\t\tvar camera_transform := Transform3D()\n\t\tcamera_transform.origin = Vector3(0, 0, 3)\n\t\tscene_properties = {\n\t\t\t\"camera_transform\": camera_transform,\n\t\t\t\"camera_projection\": Camera3D.PROJECTION_PERSPECTIVE,\n\t\t\t\"camera_fov\": 70.0,\n\t\t\t\"camera_size\": 1.0,\n\t\t\t\"ambient_light_color\": Color.BLACK,\n\t\t\t\"ambient_light_energy\": 1,\n\t\t}\n\t_add_nodes()\n\tif not from_pxo:\n\t\tif object_properties.is_empty():\n\t\t\tvar transform := Transform3D()\n\t\t\ttransform.origin = Vector3(-2.5, 0, 0)\n\t\t\tobject_properties[0] = {\"type\": Cel3DObject.Type.DIR_LIGHT, \"transform\": transform}\n\t\t\t_add_object_node(0)\n\t\tcurrent_object_id = object_properties.size()\n\n\nfunc _add_nodes() -> void:\n\tviewport = SubViewport.new()\n\tviewport.size = size\n\tviewport.own_world_3d = true\n\tviewport.transparent_bg = true\n\tvar world := World3D.new()\n\tworld.environment = Environment.new()\n\tworld.environment.ambient_light_source = Environment.AMBIENT_SOURCE_COLOR\n\tviewport.world_3d = world\n\tparent_node = Node3D.new()\n\tcamera = Camera3D.new()\n\tcamera.current = true\n\tdeserialize_scene_properties()\n\tviewport.add_child(camera)\n\tviewport.add_child(parent_node)\n\tGlobal.canvas.add_child(viewport)\n\tfor object in object_properties:\n\t\t_add_object_node(object)\n\n\timage_texture = viewport.get_texture()\n\n\nfunc _get_image_texture() -> Texture2D:\n\tif not is_instance_valid(viewport):\n\t\t_add_nodes()\n\treturn image_texture\n\n\nfunc serialize_scene_properties() -> Dictionary:\n\tif not is_instance_valid(camera):\n\t\treturn {}\n\treturn {\n\t\t\"camera_transform\": camera.transform,\n\t\t\"camera_projection\": camera.projection,\n\t\t\"camera_fov\": camera.fov,\n\t\t\"camera_size\": camera.size,\n\t\t\"ambient_light_color\": viewport.world_3d.environment.ambient_light_color,\n\t\t\"ambient_light_energy\": viewport.world_3d.environment.ambient_light_energy\n\t}\n\n\nfunc deserialize_scene_properties() -> void:\n\tcamera.transform = scene_properties[\"camera_transform\"]\n\tcamera.projection = scene_properties[\"camera_projection\"]\n\tcamera.fov = scene_properties[\"camera_fov\"]\n\tcamera.size = scene_properties[\"camera_size\"]\n\tviewport.world_3d.environment.ambient_light_color = scene_properties[\"ambient_light_color\"]\n\tviewport.world_3d.environment.ambient_light_energy = scene_properties[\"ambient_light_energy\"]\n\n\nfunc _update_objects_transform(id: int) -> void:  # Called by undo/redo\n\tvar properties: Dictionary = object_properties[id]\n\tvar object := get_object_from_id(id)\n\tif not object:\n\t\tprint(\"Object with id %s not found\" % id)\n\t\treturn\n\tobject.deserialize(properties)\n\n\nfunc get_object_from_id(id: int) -> Cel3DObject:\n\tfor child in parent_node.get_children():\n\t\tif not child is Cel3DObject:\n\t\t\tcontinue\n\t\tif child.id == id:\n\t\t\treturn child\n\treturn null\n\n\nfunc size_changed(new_size: Vector2i) -> void:\n\tsize = new_size\n\tviewport.size = size\n\timage_texture = viewport.get_texture()\n\n\nfunc _scene_property_changed() -> void:  # Called by undo/redo\n\tdeserialize_scene_properties()\n\tscene_property_changed.emit()\n\n\nfunc _add_object_node(id: int) -> void:\n\tif not object_properties.has(id):\n\t\tprint(\"Object id not found.\")\n\t\treturn\n\tvar node3d := Cel3DObject.new()\n\tnode3d.id = id\n\tnode3d.cel = self\n\tparent_node.add_child(node3d)\n\tif object_properties[id].has(\"id\"):\n\t\tnode3d.deserialize(object_properties[id])\n\telse:\n\t\tif object_properties[id].has(\"transform\"):\n\t\t\tnode3d.transform = object_properties[id][\"transform\"]\n\t\tif object_properties[id].has(\"file_path\"):\n\t\t\tnode3d.file_path = object_properties[id][\"file_path\"]\n\t\tif object_properties[id].has(\"type\"):\n\t\t\tnode3d.type = object_properties[id][\"type\"]\n\t\tobject_properties[id] = node3d.serialize()\n\tobjects_changed.emit()\n\n\nfunc _remove_object_node(id: int) -> void:  ## Called by undo/redo\n\tvar object := get_object_from_id(id)\n\tif is_instance_valid(object):\n\t\tif selected == object:\n\t\t\tselected = null\n\t\tobject.queue_free()\n\tobjects_changed.emit()\n\n\n# Overridden methods\n\n\nfunc get_image() -> Image:\n\treturn viewport.get_texture().get_image()\n\n\nfunc duplicate_cel() -> Cel3D:\n\tvar new_cel := Cel3D.new(size, false, object_properties, scene_properties)\n\tnew_cel.opacity = opacity\n\tnew_cel.z_index = z_index\n\tnew_cel.user_data = user_data\n\tnew_cel.ui_color = ui_color\n\tif selected != null:\n\t\tnew_cel.selected = new_cel.get_object_from_id(selected.id)\n\treturn new_cel\n\n\nfunc serialize() -> Dictionary:\n\tvar dict := super.serialize()\n\tvar scene_properties_str := {}\n\tfor prop in scene_properties:\n\t\tscene_properties_str[prop] = var_to_str(scene_properties[prop])\n\tvar object_properties_str := {}\n\tfor prop in object_properties:\n\t\tobject_properties_str[prop] = var_to_str(object_properties[prop])\n\tdict[\"scene_properties\"] = scene_properties_str\n\tdict[\"object_properties\"] = object_properties_str\n\treturn dict\n\n\nfunc deserialize(dict: Dictionary) -> void:\n\tif dict.has(\"pxo_version\"):\n\t\tif dict[\"pxo_version\"] == 2:  # It's a 0.x project convert it to 1.0 format\n\t\t\tconvert_0x_to_1x(dict)\n\tsuper.deserialize(dict)\n\tscene_properties = {}\n\tvar scene_properties_str: Dictionary = dict.get(\"scene_properties\", {})\n\tvar objects_copy_str: Dictionary = dict.get(\"object_properties\", {})\n\tfor prop in scene_properties_str:\n\t\tscene_properties[prop] = str_to_var(scene_properties_str[prop])\n\tfor object_id_as_str in objects_copy_str:\n\t\tif typeof(object_id_as_str) != TYPE_STRING:  # failsafe in case something has gone wrong\n\t\t\treturn\n\t\tvar id := int(object_id_as_str)\n\t\tif current_object_id < id:\n\t\t\tcurrent_object_id = id\n\t\tobject_properties[id] = str_to_var(objects_copy_str[object_id_as_str])\n\tif scene_properties.is_empty():\n\t\tvar camera_transform := Transform3D()\n\t\tcamera_transform.origin = Vector3(0, 0, 3)\n\t\tscene_properties = {\n\t\t\t\"camera_transform\": camera_transform,\n\t\t\t\"camera_projection\": Camera3D.PROJECTION_PERSPECTIVE,\n\t\t\t\"camera_fov\": 70.0,\n\t\t\t\"camera_size\": 1.0,\n\t\t\t\"ambient_light_color\": Color.BLACK,\n\t\t\t\"ambient_light_energy\": 1,\n\t\t}\n\tcurrent_object_id += 1\n\tdeserialize_scene_properties()\n\tfor object in object_properties:\n\t\t_add_object_node(object)\n\n\n## Used to convert 3d cels found in projects exported from a 0.x version to 1.x\nfunc convert_0x_to_1x(dict: Dictionary) -> void:\n\t# Converting the scene dictionary\n\tvar scene_dict: Dictionary = dict[\"scene_properties\"]\n\tvar old_transform_string = scene_dict[\"camera_transform\"]\n\tscene_dict[\"camera_transform\"] = (\n\t\t\"Transform3D(\" + old_transform_string.replace(\" - \", \", \") + \")\"\n\t)\n\tscene_dict[\"camera_projection\"] = var_to_str(int(scene_dict[\"camera_projection\"]))\n\tscene_dict[\"camera_fov\"] = var_to_str(scene_dict[\"camera_fov\"])\n\tscene_dict[\"camera_size\"] = var_to_str(scene_dict[\"camera_size\"])\n\tscene_dict[\"ambient_light_color\"] = \"Color(\" + scene_dict[\"ambient_light_color\"] + \")\"\n\tscene_dict[\"ambient_light_energy\"] = var_to_str(scene_dict[\"ambient_light_energy\"])\n\t# Converting the objects dictionary\n\tvar objects_copy_str: Dictionary = dict[\"object_properties\"]\n\tfor object_id_as_str in objects_copy_str.keys():\n\t\tvar object_info = objects_copy_str[object_id_as_str]\n\t\tfor object_property in object_info:\n\t\t\tif object_property == \"id\" or object_property == \"type\":\n\t\t\t\tobject_info[object_property] = int(object_info[object_property])\n\t\t\telif typeof(object_info[object_property]) != TYPE_STRING:\n\t\t\t\tcontinue\n\t\t\telif \"color\" in object_property:  # Convert a String to a Color\n\t\t\t\tobject_info[object_property] = str_to_var(\n\t\t\t\t\t\"Color(\" + object_info[object_property] + \")\"\n\t\t\t\t)\n\t\t\telif \"transform\" in object_property:  # Convert a String to a Transform\n\t\t\t\tvar transform_string: String = object_info[object_property].replace(\" - \", \", \")\n\t\t\t\tobject_info[object_property] = str_to_var(\"Transform3D(\" + transform_string + \")\")\n\t\t\telif \"v2\" in object_property:  # Convert a String to a Vector2\n\t\t\t\tobject_info[object_property] = str_to_var(\"Vector2\" + object_info[object_property])\n\t\t\telif \"size\" in object_property or \"center_offset\" in object_property:\n\t\t\t\t# Convert a String to a Vector3\n\t\t\t\tobject_info[object_property] = str_to_var(\"Vector3\" + object_info[object_property])\n\t\t# Special operations to adjust gizmo\n\t\t# take note of origin\n\t\tvar origin = object_info[\"transform\"].origin\n\t\tmatch object_info[\"type\"]:\n\t\t\t0:  # BOX\n\t\t\t\tobject_info[\"transform\"] = object_info[\"transform\"].scaled(Vector3.ONE * 2)\n\t\t\t\tobject_info[\"transform\"].origin = origin\n\t\t\t\tobject_info[\"mesh_size\"] /= 2\n\t\t\t1:  # SPHERE\n\t\t\t\tobject_info[\"transform\"] = object_info[\"transform\"].scaled(Vector3.ONE * 2)\n\t\t\t\tobject_info[\"transform\"].origin = origin\n\t\t\t\tobject_info[\"mesh_radius\"] /= 2\n\t\t\t\tobject_info[\"mesh_height\"] /= 2\n\t\t\t2:  # CAPSULE\n\t\t\t\tobject_info[\"transform\"] = (\n\t\t\t\t\tobject_info[\"transform\"]\n\t\t\t\t\t. scaled(Vector3.ONE * 2)\n\t\t\t\t\t. rotated_local(Vector3.LEFT, deg_to_rad(-90))\n\t\t\t\t)\n\t\t\t\tobject_info[\"transform\"].origin = origin\n\t\t\t\tobject_info[\"mesh_radius\"] /= 2\n\t\t\t\tobject_info[\"mesh_height\"] = (\n\t\t\t\t\tobject_info[\"mesh_mid_height\"] + object_info[\"mesh_radius\"]\n\t\t\t\t)\n\t\t\t3:  # CYLINDER\n\t\t\t\tobject_info[\"transform\"] = object_info[\"transform\"].scaled(Vector3.ONE * 2)\n\t\t\t\tobject_info[\"transform\"].origin = origin\n\t\t\t\tobject_info[\"mesh_height\"] /= 2\n\t\t\t\tobject_info[\"mesh_bottom_radius\"] /= 2\n\t\t\t\tobject_info[\"mesh_top_radius\"] /= 2\n\t\t\t4:  # PRISM\n\t\t\t\tobject_info[\"transform\"] = object_info[\"transform\"].scaled(Vector3.ONE * 2)\n\t\t\t\tobject_info[\"transform\"].origin = origin\n\t\t\t\tobject_info[\"mesh_size\"] /= 2\n\t\t\t6:  # PLANE\n\t\t\t\tobject_info[\"transform\"] = object_info[\"transform\"].scaled(Vector3.ONE * 2)\n\t\t\t\tobject_info[\"transform\"].origin = origin\n\t\t\t\tobject_info[\"mesh_sizev2\"] /= 2\n\t\t\t7:  # TEXT\n\t\t\t\tobject_info[\"mesh_vertical_alignment\"] = VERTICAL_ALIGNMENT_BOTTOM\n\t\t\t\tobject_info[\"mesh_font_size\"] = 12\n\t\t\t\tobject_info[\"mesh_offset\"] = Vector2.UP * 3\n\t\tobjects_copy_str[object_id_as_str] = var_to_str(objects_copy_str[object_id_as_str])\n\n\nfunc on_remove() -> void:\n\tif is_instance_valid(viewport):\n\t\tviewport.queue_free()\n\n\nfunc get_class_name() -> String:\n\treturn \"Cel3D\"\n"
  },
  {
    "path": "src/Classes/Cels/Cel3D.gd.uid",
    "content": "uid://bwwqtiosx8ume\n"
  },
  {
    "path": "src/Classes/Cels/CelTileMap.gd",
    "content": "# gdlint: ignore=max-public-methods\nclass_name CelTileMap\nextends PixelCel\n\n## A cel type for 2D tile-based maps.\n## A Tilemap cel uses a [TileSetCustom], which it inherits from its [LayerTileMap].\n## Extending from [PixelCel], it contains an internal [Image], which is divided in\n## grid cells, the size of which comes from [member TileSetCustom.tile_size].\n## Each cell contains an index, which is an integer used to map that portion of the\n## internal [member PixelCel.image] to a tile in [member tileset], as well as\n## information that specifies if that cell has a transformation applied to it,\n## such as horizontal flipping, vertical flipping, or if it's transposed.\n\n## The [TileSetCustom] that this cel uses, passed down from the cel's [LayerTileMap].\nvar tileset: TileSetCustom\n\nvar cells: Dictionary[Vector2i, Cell] = {}  ## Dictionary that contains the data of each cell.\n## If [code]true[/code], users can only place tiles in the tilemap and not modify the tileset\n## in any way, such as by drawing pixels.\n## Passed down from the cel's [LayerTileMap].\nvar place_only_mode := false\n## The size of each tile.\n## Overwrites the [member tileset]'s tile size if [member place_only_mode] is [code]true[/code].\n## Passed down from the cel's [LayerTileMap].\nvar tile_size := Vector2i(16, 16):\n\tset(value):\n\t\ttile_size = value\n\t\tre_order_tilemap()\n## The shape of each tile.\n## Overwrites the [member tileset]'s tile shape if [member place_only_mode] is [code]true[/code].\n## Passed down from the cel's [LayerTileMap].\nvar tile_shape := TileSet.TILE_SHAPE_SQUARE:\n\tset(value):\n\t\ttile_shape = value\n\t\tre_order_tilemap()\n## The layout of the tiles. Used when [member place_only_mode] is [code]true[/code].\n## Passed down from the cel's [LayerTileMap].\nvar tile_layout := TileSet.TILE_LAYOUT_DIAMOND_DOWN:\n\tset(value):\n\t\ttile_layout = value\n\t\tre_order_tilemap()\n## For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\n## Passed down from the cel's [LayerTileMap].\nvar tile_offset_axis := TileSet.TILE_OFFSET_AXIS_HORIZONTAL:\n\tset(value):\n\t\ttile_offset_axis = value\n\t\tre_order_tilemap()\nvar vertical_cell_min := 0  ## The minimum vertical cell.\nvar vertical_cell_max := 0  ## The maximum vertical cell.\nvar offset := Vector2i.ZERO  ## The offset of the tilemap in pixel coordinates.\nvar prev_offset := offset  ## Used for undo/redo purposes.\n## The key is the index of the tile in the tileset,\n## and the value is the coords of the tilemap tile that changed first, along with\n## its image that is being changed when manual mode is enabled.\n## Gets reset on [method update_tilemap].\nvar editing_images: Dictionary[int, Array] = {}\n## When enabled, the tile is defined by content strictly inside it's grid,\n## and tile when placed in area smaller than it's size gets assigned a different index.\n## useful when drawing (should be disabled when placing tiles instead)\nvar _should_clip_tiles: bool = true\n\n## Used to ensure [method queue_update_cel_portions] is only called once.\nvar _pending_update := false\n\n\n## An internal class of [CelTIleMap], which contains data used by individual cells of the tilemap.\nclass Cell:\n\t## The index of the [TileSetCustom] tile that the cell is mapped to.\n\tvar index := 0\n\t## If [code]true[/code], the tile is flipped horizontally in this cell.\n\tvar flip_h := false\n\t## If [code]true[/code], the tile is flipped vertically in this cell.\n\tvar flip_v := false\n\t## If [code]true[/code], the tile is rotated 90 degrees counter-clockwise,\n\t## and then flipped vertically in this cell.\n\tvar transpose := false\n\t## Used to ensure that each cell is only being updated once per frame,\n\t## to avoid rare cases of infinite recursion.\n\tvar updated_this_frame := false\n\n\tfunc _to_string() -> String:\n\t\tvar text := str(index)\n\t\tif flip_h:\n\t\t\ttext += \"H\"\n\t\tif flip_v:\n\t\t\ttext += \"V\"\n\t\tif transpose:\n\t\t\ttext += \"T\"\n\t\treturn text\n\n\tfunc remove_transformations() -> void:\n\t\tflip_h = false\n\t\tflip_v = false\n\t\ttranspose = false\n\n\tfunc serialize() -> Dictionary:\n\t\treturn {\"index\": index, \"flip_h\": flip_h, \"flip_v\": flip_v, \"transpose\": transpose}\n\n\tfunc deserialize(dict: Dictionary) -> void:\n\t\tindex = dict.get(\"index\", index)\n\t\tflip_h = dict.get(\"flip_h\", flip_h)\n\t\tflip_v = dict.get(\"flip_v\", flip_v)\n\t\ttranspose = dict.get(\"transpose\", transpose)\n\n\nfunc _init(_tileset: TileSetCustom, _image := ImageExtended.new(), _opacity := 1.0) -> void:\n\tsuper._init(_image, _opacity)\n\tset_tileset(_tileset)\n\n\nfunc set_tileset(new_tileset: TileSetCustom, reset_indices := true) -> void:\n\tif tileset == new_tileset:\n\t\treturn\n\tif is_instance_valid(tileset):\n\t\tif tileset.tile_added.is_connected(_on_tileset_tile_added):\n\t\t\ttileset.tile_added.disconnect(_on_tileset_tile_added)\n\t\t\ttileset.tile_removed.disconnect(_on_tileset_tile_removed)\n\t\t\ttileset.tile_replaced.disconnect(_on_tileset_tile_replaced)\n\ttileset = new_tileset\n\tif is_instance_valid(tileset):\n\t\t_resize_cells(get_image().get_size(), reset_indices)\n\t\ttile_size = tileset.tile_size\n\t\ttile_shape = tileset.tile_shape\n\t\tif not tileset.tile_added.is_connected(_on_tileset_tile_added):\n\t\t\ttileset.tile_added.connect(_on_tileset_tile_added)\n\t\t\ttileset.tile_removed.connect(_on_tileset_tile_removed)\n\t\t\ttileset.tile_replaced.connect(_on_tileset_tile_replaced)\n\n\n## Maps the cell at position [param cell_position] to\n## the [member tileset]'s tile of index [param index].\nfunc set_index(\n\tcell: Cell,\n\tindex: int,\n\tflip_h := TileSetPanel.is_flipped_h,\n\tflip_v := TileSetPanel.is_flipped_v,\n\ttranspose := TileSetPanel.is_transposed,\n) -> void:\n\tindex = clampi(index, 0, tileset.tiles.size() - 1)\n\tvar previous_index := cell.index\n\tif previous_index != index:\n\t\tif previous_index > 0 and previous_index < tileset.tiles.size():\n\t\t\ttileset.tiles[previous_index].times_used -= 1\n\t\ttileset.tiles[index].times_used += 1\n\t\tcell.index = index\n\tvar was_flipped_h := cell.flip_h\n\tvar was_flipped_v := cell.flip_v\n\tvar was_transposed := cell.transpose\n\tcell.flip_h = flip_h\n\tcell.flip_v = flip_v\n\tcell.transpose = transpose\n\tif place_only_mode:\n\t\tif previous_index != index:  # Remove previous tile to avoid overlapped pixels\n\t\t\tvar cell_coords := cells.find_key(cell) as Vector2i\n\t\t\tvar coords := get_pixel_coords(cell_coords)\n\t\t\tvar prev_tile := tileset.tiles[previous_index].image\n\t\t\tprev_tile = transform_tile(prev_tile, was_flipped_h, was_flipped_v, was_transposed)\n\t\t\tvar prev_tile_size := prev_tile.get_size()\n\t\t\tvar blank := Image.create_empty(\n\t\t\t\tprev_tile_size.x, prev_tile_size.y, false, prev_tile.get_format()\n\t\t\t)\n\t\t\tvar tile_offset := (prev_tile_size - get_tile_size()) / 2\n\t\t\timage.blit_rect_mask(\n\t\t\t\tblank, prev_tile, Rect2i(Vector2i.ZERO, prev_tile_size), coords - tile_offset\n\t\t\t)\n\t\tqueue_update_cel_portions(true)\n\telse:\n\t\t_update_cell(cell, previous_index)\n\tGlobal.canvas.queue_redraw()\n\n\n## Changes the [member offset] of the tilemap. Automatically resizes the cells and redraws the grid.\nfunc change_offset(new_offset: Vector2i) -> void:\n\toffset = new_offset\n\t_resize_cells(get_image().get_size(), false)\n\tGlobal.canvas.grid.queue_redraw()\n\n\n## Returns the [CelTileMap.Cell] at position [param cell_coords] in tilemap space.\nfunc get_cell_at(cell_coords: Vector2i) -> Cell:\n\tif not cells.has(cell_coords):\n\t\tcells[cell_coords] = Cell.new()\n\treturn cells[cell_coords]\n\n\n## Returns the position of a cell in the tilemap\n## at pixel coordinates [param coords] in the cel's image.\nfunc get_cell_position(pixel_coords: Vector2i) -> Vector2i:\n\tvar offset_coords := pixel_coords - offset\n\tvar cell_coords := Vector2i()\n\tif get_tile_shape() != TileSet.TILE_SHAPE_SQUARE:\n\t\toffset_coords -= get_tile_size() / 2\n\t\tvar godot_tilemap := create_tilemap_layer_node()\n\t\tcell_coords = godot_tilemap.local_to_map(offset_coords)\n\t\tgodot_tilemap.queue_free()\n\telse:\n\t\tvar x_pos := float(offset_coords.x) / get_tile_size().x\n\t\tvar y_pos := float(offset_coords.y) / get_tile_size().y\n\t\tcell_coords = Vector2i(floori(x_pos), floori(y_pos))\n\treturn cell_coords\n\n\n## Returns the index of a cell in the tilemap\n## at pixel coordinates [param coords] in the cel's image.\nfunc get_cell_index_at_coords(coords: Vector2i) -> int:\n\treturn get_cell_at(get_cell_position(coords)).index\n\n\nfunc get_pixel_coords(cell_coords: Vector2i) -> Vector2i:\n\tif get_tile_shape() != TileSet.TILE_SHAPE_SQUARE:\n\t\tvar godot_tilemap := create_tilemap_layer_node()\n\t\tvar pixel_coords := godot_tilemap.map_to_local(cell_coords).floor() as Vector2i\n\t\tif get_tile_shape() == TileSet.TILE_SHAPE_HEXAGON:\n\t\t\tvar quarter_tile_size := get_tile_size() / 4\n\t\t\tif get_tile_offset_axis() == TileSet.TILE_OFFSET_AXIS_HORIZONTAL:\n\t\t\t\tpixel_coords += Vector2i(0, quarter_tile_size.y)\n\t\t\telse:\n\t\t\t\tpixel_coords += Vector2i(quarter_tile_size.x, 0)\n\t\tgodot_tilemap.queue_free()\n\t\treturn pixel_coords + offset\n\treturn cell_coords * get_tile_size() + offset\n\n\nfunc get_image_portion(rect: Rect2i, source_image := image, force_disable_clip := false) -> Image:\n\tif get_tile_shape() != TileSet.TILE_SHAPE_SQUARE:\n\t\tvar mask := Image.create_empty(\n\t\t\tget_tile_size().x, get_tile_size().y, false, Image.FORMAT_LA8\n\t\t)\n\t\tmask.fill(Color(0, 0, 0, 0))\n\t\tif get_tile_shape() == TileSet.TILE_SHAPE_ISOMETRIC:\n\t\t\tvar old_clip := _should_clip_tiles\n\t\t\t# Disable _should_clip_tiles when placing tiles (it's only useful in drawing)\n\t\t\tif (\n\t\t\t\tTools.is_placing_tiles()\n\t\t\t\tor TileSetPanel.tile_editing_mode == TileSetPanel.TileEditingMode.MANUAL\n\t\t\t\tor force_disable_clip\n\t\t\t):\n\t\t\t\t_should_clip_tiles = false\n\t\t\tvar grid_coord := (\n\t\t\t\t(Vector2(rect.position - offset) * 2 / Vector2(get_tile_size())).round()\n\t\t\t)\n\t\t\tvar is_smaller_tile := int(grid_coord.y) % 2 != 0\n\t\t\tDrawingAlgos.generate_isometric_rectangle(mask, is_smaller_tile and _should_clip_tiles)\n\t\t\t_should_clip_tiles = old_clip\n\t\telif get_tile_shape() == TileSet.TILE_SHAPE_HEXAGON:\n\t\t\tif get_tile_offset_axis() == TileSet.TILE_OFFSET_AXIS_HORIZONTAL:\n\t\t\t\tDrawingAlgos.generate_hexagonal_pointy_top(mask)\n\t\t\telse:\n\t\t\t\tDrawingAlgos.generate_hexagonal_flat_top(mask)\n\t\tvar to_return := Image.create_empty(\n\t\t\tget_tile_size().x, get_tile_size().y, false, source_image.get_format()\n\t\t)\n\t\tvar portion := source_image.get_region(rect)\n\t\tto_return.blit_rect_mask(\n\t\t\tportion, mask, Rect2i(Vector2i.ZERO, portion.get_size()), Vector2i.ZERO\n\t\t)\n\t\treturn to_return\n\treturn source_image.get_region(rect)\n\n\nfunc get_tile_size() -> Vector2i:\n\tif place_only_mode:\n\t\treturn tile_size\n\treturn tileset.tile_size\n\n\nfunc get_tile_shape() -> TileSet.TileShape:\n\tif place_only_mode:\n\t\treturn tile_shape\n\treturn tileset.tile_shape\n\n\nfunc get_tile_offset_axis() -> TileSet.TileOffsetAxis:\n\tif place_only_mode:\n\t\treturn tile_offset_axis\n\treturn tileset.tile_offset_axis\n\n\nfunc bucket_fill(cell_coords: Vector2i, index: int, callable: Callable) -> void:\n\tvar godot_tilemap := create_tilemap_layer_node()\n\tvar source_cell := get_cell_at(cell_coords)\n\tvar source_index := source_cell.index\n\tvar already_checked: Array[Vector2i]\n\tvar to_check: Array[Vector2i]\n\tto_check.push_back(cell_coords)\n\twhile not to_check.is_empty():\n\t\tvar coords := to_check.pop_back() as Vector2i\n\t\tif not already_checked.has(coords):\n\t\t\tif not cells.has(coords):\n\t\t\t\talready_checked.append(coords)\n\t\t\t\tcontinue\n\t\t\tvar current_cell := cells[coords]\n\t\t\tif source_index == current_cell.index:\n\t\t\t\tcallable.call(coords, index)\n\t\t\t\t# Get surrounding tiles (handles different tile shapes).\n\t\t\t\tvar around := godot_tilemap.get_surrounding_cells(coords)\n\t\t\t\tfor i in around.size():\n\t\t\t\t\tto_check.push_back(around[i])\n\t\t\talready_checked.append(coords)\n\tgodot_tilemap.queue_free()\n\n\nfunc re_order_tilemap() -> void:\n\tif not place_only_mode:\n\t\treturn\n\timage.fill(Color(0, 0, 0, 0))\n\tupdate_cel_portions(true)\n\n\nfunc create_tilemap_layer_node() -> TileMapLayer:\n\tvar godot_tileset := TileSet.new()\n\tgodot_tileset.tile_size = get_tile_size()\n\tgodot_tileset.tile_shape = get_tile_shape()\n\tgodot_tileset.tile_layout = tile_layout\n\tgodot_tileset.tile_offset_axis = get_tile_offset_axis()\n\tvar godot_tilemap := TileMapLayer.new()\n\tgodot_tilemap.tile_set = godot_tileset\n\treturn godot_tilemap\n\n\n## Returns [code]true[/code] if the tile at cell position [param cell_position]\n## with image [param image_portion] is equal to [param tile_image].\nfunc _tiles_equal(cell: Cell, image_portion: Image, tile_image: Image) -> bool:\n\tvar final_image_portion := transform_tile(tile_image, cell.flip_h, cell.flip_v, cell.transpose)\n\treturn image_portion.get_data() == final_image_portion.get_data()\n\n\n## Applies transformations to [param tile_image] based on [param flip_h],\n## [param flip_v] and [param transpose], and returns the transformed image.\n## If [param reverse] is [code]true[/code], the transposition is applied the reverse way.\nfunc transform_tile(\n\ttile_image: Image, flip_h: bool, flip_v: bool, transpose: bool, reverse := false\n) -> Image:\n\tvar transformed_tile := Image.new()\n\ttransformed_tile.copy_from(tile_image)\n\tif transpose:\n\t\tvar tmp_image := Image.new()\n\t\ttmp_image.copy_from(transformed_tile)\n\t\tif reverse:\n\t\t\ttmp_image.rotate_90(CLOCKWISE)\n\t\telse:\n\t\t\ttmp_image.rotate_90(COUNTERCLOCKWISE)\n\t\ttransformed_tile.blit_rect(\n\t\t\ttmp_image, Rect2i(Vector2i.ZERO, transformed_tile.get_size()), Vector2i.ZERO\n\t\t)\n\t\tif reverse and not (flip_h != flip_v):\n\t\t\ttransformed_tile.flip_x()\n\t\telse:\n\t\t\ttransformed_tile.flip_y()\n\tif flip_h:\n\t\ttransformed_tile.flip_x()\n\tif flip_v:\n\t\ttransformed_tile.flip_y()\n\treturn transformed_tile\n\n\n## Given a [param selection_map] and a [param selection_rect],\n## the method finds the cells that are currently selected and returns them\n## in the form of a 2D array that contains the serialized data\n## of the selected cells in the form of [Dictionary].\nfunc get_selected_cells(selection_map: SelectionMap, selection_rect: Rect2i) -> Array[Array]:\n\tvar selected_cells: Array[Array] = []\n\tfor x in range(0, selection_rect.size.x, get_tile_size().x):\n\t\tselected_cells.append([])\n\t\tfor y in range(0, selection_rect.size.y, get_tile_size().y):\n\t\t\tvar pos := Vector2i(x, y) + selection_rect.position\n\t\t\tvar x_index := x / get_tile_size().x\n\t\t\tif selection_map.is_pixel_selected(pos):\n\t\t\t\tvar cell_pos := get_cell_position(pos)\n\t\t\t\tselected_cells[x_index].append(cells[cell_pos].serialize())\n\t\t\telse:\n\t\t\t\t# If it's not selected, append the transparent tile 0.\n\t\t\t\tselected_cells[x_index].append(\n\t\t\t\t\t{\"index\": 0, \"flip_h\": false, \"flip_v\": false, \"transpose\": false}\n\t\t\t\t)\n\treturn selected_cells\n\n\n## Resizes [param selected_indices], which is an array of arrays of [Dictionary],\n## to [param horizontal_size] and [param vertical_size].\n## This method is used when resizing a selection and draw tiles mode is enabled.\nfunc resize_selection(\n\tselected_cells: Array[Array], horizontal_size: int, vertical_size: int\n) -> Array[Array]:\n\tvar resized_cells: Array[Array] = []\n\tvar current_columns := selected_cells.size()\n\tif current_columns == 0:\n\t\treturn resized_cells\n\tvar current_rows := selected_cells[0].size()\n\tif current_rows == 0:\n\t\treturn resized_cells\n\tresized_cells.resize(horizontal_size)\n\tfor x in horizontal_size:\n\t\tresized_cells[x] = []\n\t\tresized_cells[x].resize(vertical_size)\n\tvar column_middles := current_columns - 2\n\tif current_columns == 1:\n\t\tfor x in horizontal_size:\n\t\t\t_resize_rows(selected_cells[0], resized_cells[x], current_rows, vertical_size)\n\telse:\n\t\tfor x in horizontal_size:\n\t\t\tif x == 0:\n\t\t\t\t_resize_rows(selected_cells[0], resized_cells[x], current_rows, vertical_size)\n\t\t\telif x == horizontal_size - 1:\n\t\t\t\t_resize_rows(selected_cells[-1], resized_cells[x], current_rows, vertical_size)\n\t\t\telse:\n\t\t\t\tif x < current_columns - 1:\n\t\t\t\t\t_resize_rows(selected_cells[x], resized_cells[x], current_rows, vertical_size)\n\t\t\t\telse:\n\t\t\t\t\tif column_middles == 0:\n\t\t\t\t\t\t_resize_rows(\n\t\t\t\t\t\t\tselected_cells[-1], resized_cells[x], current_rows, vertical_size\n\t\t\t\t\t\t)\n\t\t\t\t\telse:\n\t\t\t\t\t\tvar x_index := x - (column_middles * ((x - 1) / column_middles))\n\t\t\t\t\t\t_resize_rows(\n\t\t\t\t\t\t\tselected_cells[x_index], resized_cells[x], current_rows, vertical_size\n\t\t\t\t\t\t)\n\treturn resized_cells\n\n\n## Helper method of [method resize_selection].\nfunc _resize_rows(\n\tselected_cells: Array, resized_cells: Array, current_rows: int, vertical_size: int\n) -> void:\n\tvar row_middles := current_rows - 2\n\tif current_rows == 1:\n\t\tfor y in vertical_size:\n\t\t\tresized_cells[y] = selected_cells[0]\n\telse:\n\t\tfor y in vertical_size:\n\t\t\tif y == 0:\n\t\t\t\tresized_cells[y] = selected_cells[0]\n\t\t\telif y == vertical_size - 1:\n\t\t\t\tresized_cells[y] = selected_cells[-1]\n\t\t\telse:\n\t\t\t\tif y < current_rows - 1:\n\t\t\t\t\tresized_cells[y] = selected_cells[y]\n\t\t\t\telse:\n\t\t\t\t\tif row_middles == 0:\n\t\t\t\t\t\tresized_cells[y] = selected_cells[-1]\n\t\t\t\t\telse:\n\t\t\t\t\t\tvar y_index := y - (row_middles * ((y - 1) / row_middles))\n\t\t\t\t\t\tresized_cells[y] = selected_cells[y_index]\n\n\n## Applies the [param selected_cells] data to [param target_image] data.\n## The target image needs to be resized first.\n## This method is used when resizing a selection and draw tiles mode is enabled.\nfunc apply_resizing_to_image(\n\ttarget_image: Image,\n\tselected_cells: Array[Array],\n\tselection_rect: Rect2i,\n\ttransform_confirmed: bool\n) -> void:\n\tfor x in selected_cells.size():\n\t\tfor y in selected_cells[x].size():\n\t\t\tvar coords := Vector2i(x, y) * get_tile_size()\n\t\t\tvar rect := Rect2i(coords, get_tile_size())\n\t\t\tvar image_portion := get_image_portion(rect)\n\t\t\tvar cell_data := Cell.new()\n\t\t\tcell_data.deserialize(selected_cells[x][y])\n\t\t\tvar index := cell_data.index\n\t\t\tif index >= tileset.tiles.size():\n\t\t\t\tindex = 0\n\t\t\tvar current_tile := tileset.tiles[index].image\n\t\t\tvar transformed_tile := transform_tile(\n\t\t\t\tcurrent_tile, cell_data.flip_h, cell_data.flip_v, cell_data.transpose\n\t\t\t)\n\t\t\tif image_portion.get_data() != transformed_tile.get_data():\n\t\t\t\tvar transformed_tile_size := transformed_tile.get_size()\n\t\t\t\ttarget_image.blit_rect(\n\t\t\t\t\ttransformed_tile, Rect2i(Vector2i.ZERO, transformed_tile_size), coords\n\t\t\t\t)\n\t\t\t\tif target_image is ImageExtended:\n\t\t\t\t\ttarget_image.convert_rgb_to_indexed()\n\t\t\tif transform_confirmed:\n\t\t\t\tvar cell_coords := Vector2i(x, y) + (selection_rect.position / get_tile_size())\n\t\t\t\tget_cell_at(cell_coords).deserialize(cell_data.serialize())\n\n\n## Appends data to a [Dictionary] to be used for undo/redo.\n## [param skip_tileset_undo] is used to avoid getting undo/redo data from the same tileset twice\n## by other tilemap cels sharing that exact tileset.\nfunc serialize_undo_data(skip_tileset_undo := false) -> Dictionary:\n\tvar dict := {}\n\tvar cell_data := {}\n\tfor cell_coords: Vector2i in cells:\n\t\tvar cell := cells[cell_coords]\n\t\tcell_data[cell_coords] = cell.serialize()\n\tdict[\"cell_data\"] = cell_data\n\tif not skip_tileset_undo:\n\t\tdict[\"tileset\"] = tileset.serialize_undo_data()\n\tdict[\"resize\"] = false\n\treturn dict\n\n\n## Same purpose as [method serialize_undo_data], but for when the image resource\n## ([param source_image]) we want to store to the undo/redo stack\n## is not the same as [member image]. This method also handles the resizing logic for undo/redo.\nfunc serialize_undo_data_source_image(\n\tsource_image: ImageExtended,\n\tredo_data: Dictionary,\n\tundo_data: Dictionary,\n\tnew_offset := Vector2i.ZERO,\n\taffect_tileset := false,\n\tresize_interpolation := Image.INTERPOLATE_NEAREST\n) -> void:\n\tundo_data[self] = serialize_undo_data(not affect_tileset)\n\tundo_data[self][\"tile_size\"] = tile_size\n\tvar resize_factor := Vector2(source_image.get_size()) / Vector2(image.get_size())\n\tif source_image.get_size() != image.get_size():\n\t\tundo_data[self][\"resize\"] = true\n\t\t_resize_cells(source_image.get_size(), false)\n\t\tif affect_tileset:  # Happens only when scaling image\n\t\t\ttileset.handle_project_resize(resize_factor, resize_interpolation)\n\tvar tile_editing_mode := TileSetPanel.tile_editing_mode\n\tif tile_editing_mode == TileSetPanel.TileEditingMode.MANUAL:\n\t\ttile_editing_mode = TileSetPanel.TileEditingMode.AUTO\n\tif affect_tileset and source_image.get_size() == image.get_size():\n\t\tupdate_tilemap(tile_editing_mode, source_image)\n\tredo_data[self] = serialize_undo_data(not affect_tileset)\n\tredo_data[self][\"tile_size\"] = Vector2(tile_size) * resize_factor\n\tredo_data[self][\"resize\"] = undo_data[self][\"resize\"]\n\tif new_offset != Vector2i.ZERO:\n\t\tundo_data[self][\"offset\"] = offset\n\t\tredo_data[self][\"offset\"] = offset + new_offset\n\n\n## Reads data from a [param dict] [Dictionary], and uses them to add methods to [param undo_redo].\nfunc deserialize_undo_data(dict: Dictionary, undo_redo: UndoRedo, undo: bool) -> void:\n\tvar cell_data = dict.cell_data\n\tif undo:\n\t\tif dict.has(\"tile_size\"):\n\t\t\tundo_redo.add_undo_property(self, \"tile_size\", dict.tile_size)\n\t\tif dict.has(\"offset\"):\n\t\t\tundo_redo.add_undo_method(change_offset.bind(dict.offset))\n\t\tundo_redo.add_undo_method(_deserialize_cell_data.bind(cell_data, dict.resize))\n\t\tif dict.has(\"tileset\"):\n\t\t\tundo_redo.add_undo_method(tileset.deserialize_undo_data.bind(dict.tileset, self))\n\telse:\n\t\tif dict.has(\"tile_size\"):\n\t\t\tundo_redo.add_do_property(self, \"tile_size\", dict.tile_size)\n\t\tif dict.has(\"offset\"):\n\t\t\tundo_redo.add_do_method(change_offset.bind(dict.offset))\n\t\tundo_redo.add_do_method(_deserialize_cell_data.bind(cell_data, dict.resize))\n\t\tif dict.has(\"tileset\"):\n\t\t\tundo_redo.add_do_method(tileset.deserialize_undo_data.bind(dict.tileset, self))\n\n\n## Called when loading a new project, or when [method set_content] is called.\n## Loops through all [member cells] and finds the amount of times\n## each tile from the [member tileset] is being used.\nfunc find_times_used_of_tiles() -> void:\n\tfor cell_coords in cells:\n\t\tvar cell := cells[cell_coords]\n\t\ttileset.tiles[cell.index].times_used += 1\n\n\n## Gets called every time a change is being applied to the [param image],\n## such as when finishing drawing with a draw tool, or when applying an image effect.\n## This method responsible for updating the indices of the [member cells], as well as\n## updating the [member tileset] with the incoming changes.\n## The updating behavior depends on the current tile editing mode\n## by [member TileSetPanel.tile_editing_mode].\n## If a [param source_image] is provided, that image is being used instead of [member image].\nfunc update_tilemap(\n\ttile_editing_mode := TileSetPanel.tile_editing_mode, source_image := image\n) -> void:\n\tediting_images.clear()\n\tif place_only_mode:\n\t\treturn\n\tvar tileset_size_before_update := tileset.tiles.size()\n\tfor cell_coords in cells:\n\t\tvar cell := get_cell_at(cell_coords)\n\t\tvar coords := get_pixel_coords(cell_coords)\n\t\tvar rect := Rect2i(coords, get_tile_size())\n\t\tvar image_portion := get_image_portion(rect, source_image, true)\n\t\tvar index := cell.index\n\t\tif index >= tileset.tiles.size():\n\t\t\tindex = 0\n\t\tvar current_tile := tileset.tiles[index]\n\t\tif tile_editing_mode == TileSetPanel.TileEditingMode.MANUAL:\n\t\t\tif image_portion.is_invisible():\n\t\t\t\tcontinue\n\t\t\tif index == 0:\n\t\t\t\t# If the tileset is empty, only then add a new tile.\n\t\t\t\tif tileset.tiles.size() <= 1:\n\t\t\t\t\ttileset.add_tile(image_portion, self)\n\t\t\t\t\tcell.index = tileset.tiles.size() - 1\n\t\t\t\tcontinue\n\t\t\tif not _tiles_equal(cell, image_portion, current_tile.image):\n\t\t\t\ttileset.replace_tile_at(image_portion, index, self)\n\t\telif tile_editing_mode == TileSetPanel.TileEditingMode.AUTO:\n\t\t\t_handle_auto_editing_mode(cell, image_portion, tileset_size_before_update)\n\t\telse:  # Stack\n\t\t\tif image_portion.is_invisible():\n\t\t\t\tcontinue\n\t\t\tvar found_tile := false\n\t\t\tfor j in range(1, tileset.tiles.size()):\n\t\t\t\tvar tile := tileset.tiles[j]\n\t\t\t\tif _tiles_equal(cell, image_portion, tile.image):\n\t\t\t\t\tif cell.index != j:\n\t\t\t\t\t\ttileset.tiles[cell.index].times_used -= 1\n\t\t\t\t\t\tcell.index = j\n\t\t\t\t\t\ttileset.tiles[j].times_used += 1\n\t\t\t\t\t\tcell.remove_transformations()\n\t\t\t\t\tfound_tile = true\n\t\t\t\t\tbreak\n\t\t\tif not found_tile:\n\t\t\t\tif cell.index > 0:\n\t\t\t\t\ttileset.tiles[cell.index].times_used -= 1\n\t\t\t\ttileset.add_tile(image_portion, self)\n\t\t\t\tcell.index = tileset.tiles.size() - 1\n\t\t\t\tcell.remove_transformations()\n\t# Updates transparent cells that have indices higher than 0.\n\t# This can happen when switching to another tileset which has less tiles\n\t# than the previous one.\n\tfor cell_coords in cells:\n\t\tvar cell := cells[cell_coords]\n\t\tvar coords := get_pixel_coords(cell_coords)\n\t\tvar rect := Rect2i(coords, get_tile_size())\n\t\tvar image_portion := get_image_portion(rect, source_image)\n\t\tif not image_portion.is_invisible():\n\t\t\tcontinue\n\t\tvar index := cell.index\n\t\tif index == 0:\n\t\t\tcontinue\n\t\tif index >= tileset.tiles.size():\n\t\t\tindex = 0\n\t\tvar current_tile := tileset.tiles[index]\n\t\tif not _tiles_equal(cell, image_portion, current_tile.image):\n\t\t\tset_index(cell, cell.index)\n\n\n## Gets called by [method update_tilemap]. This method is responsible for handling\n## the tilemap updating behavior for the auto tile editing mode.[br]\n## Cases:[br]\n## 0) Cell is transparent. Set its index to 0.\n## [br]\n## 0.5) Cell is transparent and mapped.\n## Set its index to 0 and unuse the mapped tile.\n## If the mapped tile is removed, reduce the index of all cells that have\n## indices greater or equal than the existing tile's index.\n## [br]\n## 1) Cell not mapped, exists in the tileset.\n## Map the cell to the existing tile and increase its times_used by one.\n## [br]\n## 2) Cell not mapped, does not exist in the tileset.\n## Add the cell as a tile in the tileset, set its index to be the tileset's tile size - 1.\n## [br]\n## 3) Cell mapped, tile did not change. Do nothing.\n## [br]\n## 4) Cell mapped, exists in the tileset.\n## The mapped tile still exists in the tileset.\n## Map the cell to the existing tile, increase its times_used by one,\n## and reduce the previously mapped tile's times_used by 1.\n## [br]\n## 5) Cell mapped, exists in the tileset.\n## The mapped tile does not exist in the tileset anymore.\n## Map the cell to the existing tile and increase its times_used by one.\n## Remove the previously mapped tile,\n## and reduce the index of all cells that have indices greater or equal\n## than the existing tile's index.\n## [br]\n## 6) Cell mapped, does not exist in the tileset.\n## The mapped tile still exists in the tileset.\n## Add the cell as a tile in the tileset, set its index to be the tileset's tile size - 1.\n## Reduce the previously mapped tile's times_used by 1.\n## [br]\n## 7) Cell mapped, does not exist in the tileset.\n## The mapped tile does not exist in the tileset anymore.\n## Simply replace the old tile with the new one, do not change its index.\nfunc _handle_auto_editing_mode(\n\tcell: Cell, image_portion: Image, tileset_size_before_update: int\n) -> void:\n\tvar index := cell.index\n\tif index >= tileset.tiles.size():\n\t\tindex = 0\n\tvar current_tile := tileset.tiles[index]\n\tif image_portion.is_invisible():\n\t\t# Case 0: The cell is transparent.\n\t\tif cell.index >= tileset_size_before_update:\n\t\t\treturn\n\t\tcell.index = 0\n\t\tcell.remove_transformations()\n\t\tif index > 0:\n\t\t\t# Case 0.5: The cell is transparent and mapped to a tile.\n\t\t\tvar is_removed := tileset.unuse_tile_at_index(index, self)\n\t\t\tif is_removed:\n\t\t\t\t# Re-index all indices that are after the deleted one.\n\t\t\t\t_re_index_cells_after_index(index)\n\t\treturn\n\tvar index_in_tileset := tileset.find_tile(image_portion)\n\tif index == 0:  # If the cell is not mapped to a tile.\n\t\tif index_in_tileset > -1:\n\t\t\t# Case 1: The cell is not mapped already,\n\t\t\t# and it exists in the tileset as a tile.\n\t\t\ttileset.tiles[index_in_tileset].times_used += 1\n\t\t\tcell.index = index_in_tileset\n\t\telse:\n\t\t\t# Case 2: The cell is not mapped already,\n\t\t\t# and it does not exist in the tileset.\n\t\t\ttileset.add_tile(image_portion, self)\n\t\t\tcell.index = tileset.tiles.size() - 1\n\telse:  # If the cell is already mapped.\n\t\tif _tiles_equal(cell, image_portion, current_tile.image):\n\t\t\t# Case 3: The cell is mapped and it did not change.\n\t\t\t# Do nothing and move on to the next cell.\n\t\t\treturn\n\t\tif index_in_tileset > -1:  # If the cell exists in the tileset as a tile.\n\t\t\tif current_tile.times_used > 1:\n\t\t\t\t# Case 4: The cell is mapped and it exists in the tileset as a tile,\n\t\t\t\t# and the currently mapped tile still exists in the tileset.\n\t\t\t\ttileset.tiles[index_in_tileset].times_used += 1\n\t\t\t\tcell.index = index_in_tileset\n\t\t\t\ttileset.unuse_tile_at_index(index, self)\n\t\t\telse:\n\t\t\t\t# Case 5: The cell is mapped and it exists in the tileset as a tile,\n\t\t\t\t# and the currently mapped tile no longer exists in the tileset.\n\t\t\t\ttileset.tiles[index_in_tileset].times_used += 1\n\t\t\t\tcell.index = index_in_tileset\n\t\t\t\ttileset.remove_tile_at_index(index, self)\n\t\t\t\t# Re-index all indices that are after the deleted one.\n\t\t\t\t_re_index_cells_after_index(index)\n\t\telse:  # If the cell does not exist in the tileset as a tile.\n\t\t\tif current_tile.times_used > 1:\n\t\t\t\t# Case 6: The cell is mapped and it does not\n\t\t\t\t# exist in the tileset as a tile,\n\t\t\t\t# and the currently mapped tile still exists in the tileset.\n\t\t\t\ttileset.unuse_tile_at_index(index, self)\n\t\t\t\ttileset.add_tile(image_portion, self)\n\t\t\t\tcell.index = tileset.tiles.size() - 1\n\t\t\telse:\n\t\t\t\t# Case 7: The cell is mapped and it does not\n\t\t\t\t# exist in the tileset as a tile,\n\t\t\t\t# and the currently mapped tile no longer exists in the tileset.\n\t\t\t\ttileset.replace_tile_at(image_portion, index, self)\n\tcell.remove_transformations()\n\n\n## Re-indexes all [member cells] that are larger or equal to [param index],\n## by either reducing or increasing their value by one, whether [param decrease]\n## is [code]true[/code] or not.\nfunc _re_index_cells_after_index(index: int, decrease := true) -> void:\n\tfor cell_coords in cells:\n\t\tvar cell := cells[cell_coords]\n\t\tvar tmp_index := cell.index\n\t\tif tmp_index >= index:\n\t\t\tif decrease:\n\t\t\t\tcell.index -= 1\n\t\t\telse:\n\t\t\t\tcell.index += 1\n\n\n## Updates the [param source_image] data of the cell of the tilemap in [param cell_position],\n## to ensure that it is the same as its mapped tile in the [member tileset].\nfunc _update_cell(cell: Cell, prev_index := -1) -> void:\n\tif cell.updated_this_frame:\n\t\treturn\n\tcell.updated_this_frame = true\n\tcell.set_deferred(\"updated_this_frame\", false)\n\tvar cell_coords := cells.find_key(cell) as Vector2i\n\tvar coords := get_pixel_coords(cell_coords)\n\tvar rect := Rect2i(coords, get_tile_size())\n\tvar image_portion := get_image_portion(rect)\n\tvar index := cell.index\n\tif index >= tileset.tiles.size():\n\t\tindex = 0\n\tif prev_index != index:\n\t\tvar current_tile := tileset.tiles[index].image\n\t\tvar transformed_tile := transform_tile(\n\t\t\tcurrent_tile, cell.flip_h, cell.flip_v, cell.transpose\n\t\t)\n\t\tif image_portion.get_data() != transformed_tile.get_data():\n\t\t\t_draw_cell(image, transformed_tile, coords)\n\t\t\timage.convert_rgb_to_indexed()\n\n\nfunc _draw_cell(source_image: Image, tile_image: Image, coords: Vector2i) -> void:\n\tvar transformed_tile_size := tile_image.get_size()\n\tvar tile_offset := (transformed_tile_size - get_tile_size()) / 2\n\tcoords -= tile_offset\n\tif get_tile_shape() == TileSet.TILE_SHAPE_SQUARE:\n\t\tsource_image.blit_rect(tile_image, Rect2i(Vector2i.ZERO, transformed_tile_size), coords)\n\telse:\n\t\tvar mask: Image\n\t\tif place_only_mode:\n\t\t\tmask = tile_image\n\t\telse:\n\t\t\tmask = Image.create_empty(\n\t\t\t\ttransformed_tile_size.x, transformed_tile_size.y, false, Image.FORMAT_LA8\n\t\t\t)\n\t\t\tmask.fill(Color(0, 0, 0, 0))\n\t\t\tif get_tile_shape() == TileSet.TILE_SHAPE_ISOMETRIC:\n\t\t\t\tvar grid_coord = (Vector2(coords - offset) * 2 / Vector2(get_tile_size())).round()\n\t\t\t\tvar is_smaller_tile = int(grid_coord.y) % 2 != 0\n\t\t\t\tvar old_clip := _should_clip_tiles\n\t\t\t\t# Disable _should_clip_tiles when placing tiles (it's only useful in drawing)\n\t\t\t\tif Tools.is_placing_tiles():\n\t\t\t\t\t_should_clip_tiles = false\n\t\t\t\tDrawingAlgos.generate_isometric_rectangle(\n\t\t\t\t\tmask, is_smaller_tile and _should_clip_tiles\n\t\t\t\t)\n\t\t\t\t_should_clip_tiles = old_clip\n\t\t\telif get_tile_shape() == TileSet.TILE_SHAPE_HEXAGON:\n\t\t\t\tif get_tile_offset_axis() == TileSet.TILE_OFFSET_AXIS_HORIZONTAL:\n\t\t\t\t\tDrawingAlgos.generate_hexagonal_pointy_top(mask)\n\t\t\t\telse:\n\t\t\t\t\tDrawingAlgos.generate_hexagonal_flat_top(mask)\n\t\tsource_image.blit_rect_mask(\n\t\t\ttile_image, mask, Rect2i(Vector2i.ZERO, transformed_tile_size), coords\n\t\t)\n\n\n## Calls [method _update_cell] for all [member cells].\nfunc update_cel_portions(skip_zeros := false) -> void:\n\t_pending_update = false\n\tvar cell_keys := cells.keys()\n\tcell_keys.sort()\n\tfor cell_coords in cell_keys:\n\t\tvar cell := cells[cell_coords]\n\t\tif cell.index == 0 and skip_zeros:\n\t\t\tcontinue\n\t\t_update_cell(cell)\n\n\n## Loops through all [member cells] of the tilemap and updates their indices,\n## so they can remain mapped to the [member tileset]'s tiles.\nfunc re_index_all_cells(set_invisible_to_zero := false, source_image := image) -> void:\n\tfor cell_coords in cells:\n\t\tvar cell := cells[cell_coords]\n\t\tvar coords := get_pixel_coords(cell_coords)\n\t\tvar rect := Rect2i(coords, get_tile_size())\n\t\tvar image_portion := get_image_portion(rect, source_image)\n\t\tif image_portion.is_invisible():\n\t\t\tif set_invisible_to_zero:\n\t\t\t\tcell.index = 0\n\t\t\t\tcontinue\n\t\t\tvar index := cell.index\n\t\t\tif index > 0 and index < tileset.tiles.size():\n\t\t\t\tvar current_tile := tileset.tiles[index]\n\t\t\t\tif not _tiles_equal(cell, image_portion, current_tile.image):\n\t\t\t\t\tset_index(cell, cell.index)\n\t\t\tcontinue\n\t\tfor j in range(1, tileset.tiles.size()):\n\t\t\tvar tile := tileset.tiles[j]\n\t\t\tif _tiles_equal(cell, image_portion, tile.image):\n\t\t\t\tcell.index = j\n\t\t\t\tbreak\n\n\nfunc queue_update_cel_portions(skip_zeroes := false) -> void:\n\tif _pending_update:\n\t\treturn\n\t_pending_update = true\n\tupdate_cel_portions.call_deferred(skip_zeroes)\n\n\n## Resizes the [member cells] array based on [param new_size].\nfunc _resize_cells(new_size: Vector2i, reset_indices := true) -> void:\n\tif get_tile_shape() != TileSet.TILE_SHAPE_SQUARE:\n\t\tvar half_size := get_tile_size() / 2\n\t\tfor x in range(0, new_size.x + 1, half_size.x):\n\t\t\tfor y in range(0, new_size.y + 1, half_size.y):\n\t\t\t\tvar pixel_coords := Vector2i(x, y)\n\t\t\t\tvar cell_coords := get_cell_position(pixel_coords)\n\t\t\t\tif not cells.has(cell_coords):\n\t\t\t\t\tcells[cell_coords] = Cell.new()\n\telse:\n\t\tvar horizontal_cells := ceili(float(new_size.x) / get_tile_size().x)\n\t\tvar vertical_cells := ceili(float(new_size.y) / get_tile_size().y)\n\t\tif offset.x % get_tile_size().x != 0:\n\t\t\thorizontal_cells += 1\n\t\tif offset.y % get_tile_size().y != 0:\n\t\t\tvertical_cells += 1\n\t\tvar offset_in_tiles := Vector2i((Vector2(offset) / Vector2(get_tile_size())).ceil())\n\t\tfor x in horizontal_cells:\n\t\t\tfor y in vertical_cells:\n\t\t\t\tvar cell_coords := Vector2i(x, y) - offset_in_tiles\n\t\t\t\tif not cells.has(cell_coords):\n\t\t\t\t\tcells[cell_coords] = Cell.new()\n\tfor cell_coords in cells:\n\t\tif cell_coords.y < vertical_cell_min:\n\t\t\tvertical_cell_min = cell_coords.y\n\t\tif cell_coords.y > vertical_cell_max:\n\t\t\tvertical_cell_max = cell_coords.y + 1\n\tfor cell_coords in cells:\n\t\tif reset_indices:\n\t\t\tcells[cell_coords] = Cell.new()\n\t\telse:\n\t\t\tif not is_instance_valid(cells[cell_coords]):\n\t\t\t\tcells[cell_coords] = Cell.new()\n\n\n## Returns [code]true[/code] if the user just did a Redo.\nfunc _is_redo() -> bool:\n\treturn Global.control.redone\n\n\n## If a tile has been added to the tileset by another [param cel], also update the indices here.\nfunc _on_tileset_tile_added(cel: CelTileMap, index: int) -> void:\n\tif cel == self:\n\t\treturn\n\tif link_set != null and cel in link_set[\"cels\"]:\n\t\treturn\n\t_re_index_cells_after_index(index, false)\n\tGlobal.canvas.update_all_layers = true\n\tGlobal.canvas.queue_redraw.call_deferred()\n\n\n## If a tile has been removed from the tileset by another [param cel], also update the indices here.\nfunc _on_tileset_tile_removed(cel: CelTileMap, index: int) -> void:\n\tif cel == self:\n\t\treturn\n\tif link_set != null and cel in link_set[\"cels\"]:\n\t\treturn\n\t_re_index_cells_after_index(index, true)\n\tGlobal.canvas.update_all_layers = true\n\tGlobal.canvas.queue_redraw.call_deferred()\n\n\n## If a tile has been replaced in the tileset by another [param cel]\n## when using manual mode, also update its image.\nfunc _on_tileset_tile_replaced(cel: CelTileMap, _index: int) -> void:\n\tif cel == self:\n\t\treturn\n\tif link_set != null and cel in link_set[\"cels\"]:\n\t\treturn\n\tupdate_cel_portions(true)\n\tGlobal.canvas.update_all_layers = true\n\tGlobal.canvas.queue_redraw.call_deferred()\n\n\nfunc _deserialize_cell_data(cell_data: Dictionary, resize: bool) -> void:\n\tif resize:\n\t\t_resize_cells(image.get_size())\n\tfor cell_coords in cells:\n\t\tif cell_coords in cell_data:\n\t\t\tvar cell_data_serialized: Dictionary = cell_data[cell_coords]\n\t\t\tget_cell_at(cell_coords).deserialize(cell_data_serialized)\n\t\telse:\n\t\t\t# For cells not found in the undo's cell data.\n\t\t\t# Happens when placing tiles on cells that had not been created before.\n\t\t\tvar default_dict := {\"index\": 0, \"flip_h\": false, \"flip_v\": false, \"transpose\": false}\n\t\t\tget_cell_at(cell_coords).deserialize(default_dict)\n\tif resize:\n\t\timage.fill(Color(0, 0, 0, 0))\n\t\tupdate_cel_portions.call_deferred(true)\n\n\n# Overridden Methods:\nfunc get_content() -> Variant:\n\treturn [image, cells]\n\n\nfunc set_content(content, texture: ImageTexture = null) -> void:\n\tfor cell_coords in cells:\n\t\tvar cell := cells[cell_coords]\n\t\tif cell.index > 0:\n\t\t\ttileset.tiles[cell.index].times_used -= 1\n\tsuper.set_content(content[0], texture)\n\tcells = content[1]\n\tfind_times_used_of_tiles()\n\n\nfunc create_empty_content() -> Array:\n\tvar empty := Image.create(image.get_width(), image.get_height(), false, image.get_format())\n\tvar new_image := ImageExtended.new()\n\tnew_image.copy_from_custom(empty, image.is_indexed)\n\tvar empty_cells: Dictionary[Vector2i, Cell] = {}\n\treturn [new_image, empty_cells]\n\n\nfunc copy_content() -> Array:\n\tvar tmp_image := Image.create_from_data(\n\t\timage.get_width(), image.get_height(), false, image.get_format(), image.get_data()\n\t)\n\tvar copy_image := ImageExtended.new()\n\tcopy_image.copy_from_custom(tmp_image, image.is_indexed)\n\tvar copied_cells: Dictionary[Vector2i, Cell] = {}\n\tfor cell in cells:\n\t\tcopied_cells[cell] = Cell.new()\n\t\tcopied_cells[cell].deserialize(cells[cell].serialize())\n\treturn [copy_image, copied_cells.duplicate(true)]\n\n\nfunc duplicate_cel() -> CelTileMap:\n\tvar new_cel := CelTileMap.new(tileset)\n\tnew_cel.opacity = opacity\n\tnew_cel.z_index = z_index\n\tnew_cel.user_data = user_data\n\tnew_cel.ui_color = ui_color\n\n\tnew_cel.offset = offset\n\tnew_cel.place_only_mode = place_only_mode\n\tnew_cel.tile_size = tile_size\n\tnew_cel.tile_shape = tile_shape\n\tnew_cel.tile_layout = tile_layout\n\tnew_cel.tile_offset_axis = tile_offset_axis\n\treturn new_cel\n\n\nfunc update_texture(undo := false) -> void:\n\tvar tile_editing_mode := TileSetPanel.tile_editing_mode\n\tif (\n\t\tundo\n\t\tor _is_redo()\n\t\tor tile_editing_mode != TileSetPanel.TileEditingMode.MANUAL\n\t\tor Tools.is_placing_tiles()\n\t\tor place_only_mode\n\t):\n\t\tsuper.update_texture(undo)\n\t\tediting_images.clear()\n\t\treturn\n\n\tfor cell_coords in cells:\n\t\tvar cell := cells[cell_coords]\n\t\tvar coords := get_pixel_coords(cell_coords)\n\t\tvar index := cell.index\n\t\tif index >= tileset.tiles.size():\n\t\t\tindex = 0\n\t\tvar image_rect := Rect2i(Vector2i.ZERO, get_image().get_size())\n\t\tif not image_rect.has_point(coords):\n\t\t\tcontinue\n\t\tvar rect := Rect2i(coords, get_tile_size())\n\t\tvar image_portion := get_image_portion(rect)\n\t\tvar current_tile := tileset.tiles[index]\n\t\tif index == 0:\n\t\t\tif tileset.tiles.size() > 1:\n\t\t\t\t# Prevent from drawing on empty image portions.\n\t\t\t\t_draw_cell(image, current_tile.image, coords)\n\t\t\tcontinue\n\t\tif not editing_images.has(index):\n\t\t\tif not _tiles_equal(cell, image_portion, current_tile.image):\n\t\t\t\tvar transformed_image := transform_tile(\n\t\t\t\t\timage_portion, cell.flip_h, cell.flip_v, cell.transpose, true\n\t\t\t\t)\n\t\t\t\tediting_images[index] = [cell_coords, transformed_image]\n\n\tfor cell_coords in cells:\n\t\tvar cell := cells[cell_coords]\n\t\tvar coords := get_pixel_coords(cell_coords)\n\t\tvar index := cell.index\n\t\tif index >= tileset.tiles.size():\n\t\t\tindex = 0\n\t\tvar rect := Rect2i(coords, get_tile_size())\n\t\tvar image_portion := get_image_portion(rect)\n\t\tif editing_images.has(index):\n\t\t\tvar editing_portion := editing_images[index][0] as Vector2i\n\t\t\tif cell_coords == editing_portion:\n\t\t\t\tvar transformed_image := transform_tile(\n\t\t\t\t\timage_portion, cell.flip_h, cell.flip_v, cell.transpose, true\n\t\t\t\t)\n\t\t\t\tediting_images[index] = [cell_coords, transformed_image]\n\t\t\tvar editing_image := editing_images[index][1] as Image\n\t\t\tvar transformed_editing_image := transform_tile(\n\t\t\t\tediting_image, cell.flip_h, cell.flip_v, cell.transpose\n\t\t\t)\n\t\t\tif not image_portion.get_data() == transformed_editing_image.get_data():\n\t\t\t\t_draw_cell(image, transformed_editing_image, coords)\n\t\t\t\tif index == 0:\n\t\t\t\t\tupdate_cel_portions()\n\tsuper.update_texture(undo)\n\n\nfunc serialize() -> Dictionary:\n\tvar dict := super.serialize()\n\tvar cell_data := {}\n\tfor cell_coords in cells:\n\t\tvar cell := cells[cell_coords]\n\t\tcell_data[cell_coords] = cell.serialize()\n\tdict[\"cell_data\"] = cell_data\n\tdict[\"offset\"] = offset\n\treturn dict\n\n\nfunc deserialize(dict: Dictionary) -> void:\n\tsuper.deserialize(dict)\n\tvar cell_data = dict.get(\"cell_data\", [])\n\tfor cell_coords_str in cell_data:\n\t\tvar cell_data_serialized: Dictionary = cell_data[cell_coords_str]\n\t\tvar cell_coords := str_to_var(\"Vector2i\" + cell_coords_str) as Vector2i\n\t\tget_cell_at(cell_coords).deserialize(cell_data_serialized)\n\tvar new_offset_str = dict.get(\"offset\", \"(0, 0)\")\n\tvar new_offset := str_to_var(\"Vector2i\" + new_offset_str) as Vector2i\n\tif new_offset != offset:\n\t\tchange_offset(new_offset)\n\n\nfunc get_class_name() -> String:\n\treturn \"CelTileMap\"\n"
  },
  {
    "path": "src/Classes/Cels/CelTileMap.gd.uid",
    "content": "uid://qu538ibrkon1\n"
  },
  {
    "path": "src/Classes/Cels/GroupCel.gd",
    "content": "class_name GroupCel\nextends BaseCel\n## A class for the properties of cels in GroupLayers.\n## The term \"cel\" comes from \"celluloid\" (https://en.wikipedia.org/wiki/Cel).\n\n\nfunc _init(_opacity := 1.0) -> void:\n\topacity = _opacity\n\timage_texture = ImageTexture.new()\n\n\nfunc get_image() -> Image:\n\tvar image := Global.current_project.new_empty_image()\n\treturn image\n\n\nfunc get_class_name() -> String:\n\treturn \"GroupCel\"\n"
  },
  {
    "path": "src/Classes/Cels/GroupCel.gd.uid",
    "content": "uid://fimiscm4wdnv\n"
  },
  {
    "path": "src/Classes/Cels/PixelCel.gd",
    "content": "class_name PixelCel\nextends BaseCel\n## A class for the properties of cels in PixelLayers.\n## The term \"cel\" comes from \"celluloid\" (https://en.wikipedia.org/wiki/Cel).\n\n## This variable is where the image data of the cel are.\nvar image: ImageExtended:\n\tset = image_changed\n\n\nfunc _init(_image := ImageExtended.new(), _opacity := 1.0) -> void:\n\timage_texture = ImageTexture.new()\n\timage = _image  # Set image and call setter\n\topacity = _opacity\n\n\nfunc image_changed(value: ImageExtended) -> void:\n\timage = value\n\tif not image.is_empty() and is_instance_valid(image_texture):\n\t\timage_texture.set_image(image)\n\n\nfunc set_indexed_mode(indexed: bool) -> void:\n\timage.is_indexed = indexed\n\tif image.is_indexed:\n\t\timage.resize_indices()\n\t\timage.select_palette(\"\", false)\n\t\timage.convert_rgb_to_indexed()\n\n\nfunc get_content() -> Variant:\n\treturn image\n\n\nfunc set_content(content, texture: ImageTexture = null) -> void:\n\tvar proper_content: ImageExtended\n\tif content is not ImageExtended:\n\t\tproper_content = ImageExtended.new()\n\t\tproper_content.copy_from_custom(content, image.is_indexed)\n\telse:\n\t\tproper_content = content\n\timage = proper_content\n\tif is_instance_valid(texture) and is_instance_valid(texture.get_image()):\n\t\timage_texture = texture\n\t\tif image_texture.get_image().get_size() != image.get_size():\n\t\t\timage_texture.set_image(image)\n\telse:\n\t\timage_texture.update(image)\n\n\nfunc create_empty_content() -> Variant:\n\tvar empty := Image.create(image.get_width(), image.get_height(), false, image.get_format())\n\tvar new_image := ImageExtended.new()\n\tnew_image.copy_from_custom(empty, image.is_indexed)\n\treturn new_image\n\n\nfunc copy_content() -> Variant:\n\tvar tmp_image := Image.create_from_data(\n\t\timage.get_width(), image.get_height(), false, image.get_format(), image.get_data()\n\t)\n\tvar copy_image := ImageExtended.new()\n\tcopy_image.copy_from_custom(tmp_image, image.is_indexed)\n\treturn copy_image\n\n\nfunc get_image() -> ImageExtended:\n\treturn image\n\n\nfunc duplicate_cel() -> PixelCel:\n\tvar new_cel := PixelCel.new()\n\tnew_cel.opacity = opacity\n\tnew_cel.z_index = z_index\n\tnew_cel.user_data = user_data\n\tnew_cel.ui_color = ui_color\n\treturn new_cel\n\n\nfunc update_texture(undo := false) -> void:\n\timage_texture.set_image(image)\n\tsuper.update_texture(undo)\n\n\nfunc get_class_name() -> String:\n\treturn \"PixelCel\"\n"
  },
  {
    "path": "src/Classes/Cels/PixelCel.gd.uid",
    "content": "uid://g4wn4q5n5ecp\n"
  },
  {
    "path": "src/Classes/Drawers.gd",
    "content": "class_name Drawer\n\nconst NUMBER_OF_DRAWERS := 8\n\nvar pixel_perfect := false:\n\tset(value):\n\t\tpixel_perfect = value\n\t\tif pixel_perfect:\n\t\t\tdrawers = pixel_perfect_drawers.duplicate()\n\t\telse:\n\t\t\t_create_simple_drawers()\nvar color_op := ColorOp.new()\n\nvar simple_drawer := SimpleDrawer.new()\nvar pixel_perfect_drawers: Array[PixelPerfectDrawer] = []\nvar drawers := []\n\n\nclass ColorOp:\n\tvar strength := 1.0\n\n\tfunc process(src: Color, _dst: Color) -> Color:\n\t\treturn src\n\n\nclass SimpleDrawer:\n\tfunc set_pixel(image: ImageExtended, position: Vector2i, color: Color, op: ColorOp) -> void:\n\t\tvar color_old := image.get_pixelv(position)\n\t\tvar color_str := color.to_html()\n\t\tvar color_new := op.process(Color(color_str), color_old)\n\t\tif not color_new.is_equal_approx(color_old):\n\t\t\timage.set_pixelv_custom(position, color_new)\n\t\telse:\n\t\t\timage.set_pixelv_custom(position, color_new, image.is_indexed)\n\n\nclass PixelPerfectDrawer:\n\tconst NEIGHBOURS: Array[Vector2i] = [Vector2i.DOWN, Vector2i.RIGHT, Vector2i.LEFT, Vector2i.UP]\n\tconst CORNERS: Array[Vector2i] = [Vector2i.ONE, -Vector2i.ONE, Vector2i(-1, 1), Vector2i(1, -1)]\n\tvar last_pixels := [null, null]\n\n\tfunc reset() -> void:\n\t\tlast_pixels = [null, null]\n\n\tfunc set_pixel(image: ImageExtended, position: Vector2i, color: Color, op: ColorOp) -> void:\n\t\tvar color_old := image.get_pixelv(position)\n\t\tvar color_str := color.to_html()\n\t\tlast_pixels.push_back([position, color_old])\n\t\timage.set_pixelv_custom(position, op.process(Color(color_str), color_old))\n\n\t\tvar corner = last_pixels.pop_front()\n\t\tvar neighbour = last_pixels[0]\n\n\t\tif corner == null or neighbour == null:\n\t\t\treturn\n\n\t\tif position - corner[0] in CORNERS and position - neighbour[0] in NEIGHBOURS:\n\t\t\timage.set_pixel_custom(neighbour[0].x, neighbour[0].y, neighbour[1])\n\t\t\tlast_pixels[0] = corner\n\n\nfunc _init() -> void:\n\tdrawers.resize(NUMBER_OF_DRAWERS)\n\tpixel_perfect_drawers.resize(NUMBER_OF_DRAWERS)\n\tfor i in NUMBER_OF_DRAWERS:\n\t\tdrawers[i] = simple_drawer\n\t\tpixel_perfect_drawers[i] = PixelPerfectDrawer.new()\n\n\nfunc _create_simple_drawers() -> void:\n\tdrawers = []\n\tdrawers.resize(NUMBER_OF_DRAWERS)\n\tfor i in NUMBER_OF_DRAWERS:\n\t\tdrawers[i] = simple_drawer\n\n\nfunc reset() -> void:\n\tfor drawer in pixel_perfect_drawers:\n\t\tdrawer.reset()\n\n\nfunc set_pixel(image: Image, position: Vector2i, color: Color, ignore_mirroring := false) -> void:\n\tvar project := Global.current_project\n\tif not Tools.check_alpha_lock(image, position):\n\t\tdrawers[0].set_pixel(image, position, color, color_op)\n\tSteamManager.set_achievement(\"ACH_FIRST_PIXEL\")\n\tif ignore_mirroring:\n\t\treturn\n\tif (\n\t\tnot Tools.horizontal_mirror\n\t\tand not Tools.vertical_mirror\n\t\tand not Tools.diagonal_xy_mirror\n\t\tand not Tools.diagonal_x_minus_y_mirror\n\t):\n\t\treturn\n\t# Handle mirroring\n\tvar mirrored_positions := Tools.get_mirrored_positions(position, project)\n\tfor i in mirrored_positions.size():\n\t\tvar mirror_pos := mirrored_positions[i]\n\t\tif project.can_pixel_get_drawn(mirror_pos) && not Tools.check_alpha_lock(image, mirror_pos):\n\t\t\tdrawers[i + 1].set_pixel(image, mirror_pos, color, color_op)\n"
  },
  {
    "path": "src/Classes/Drawers.gd.uid",
    "content": "uid://dwnsawu02ikab\n"
  },
  {
    "path": "src/Classes/Frame.gd",
    "content": "class_name Frame\nextends RefCounted\n## A class for frame properties.\n## A frame is a collection of cels, for each layer.\n\nvar cels: Array[BaseCel]  ## The array containing all of the frame's [BaseCel]s. One for each layer.\nvar duration := 1.0  ## The duration multiplier. This allows for individual frame timing.\nvar user_data := \"\"  ## User defined data, set in the frame properties.\n\n\nfunc _init(_cels: Array[BaseCel] = [], _duration := 1.0) -> void:\n\tcels = _cels\n\tduration = _duration\n\n\nfunc get_duration_in_seconds(fps: float) -> float:\n\treturn duration * (1.0 / fps)\n\n\nfunc set_duration_in_seconds(seconds: float, fps: float) -> void:\n\tduration = seconds * fps\n\n\nfunc position_in_seconds(project: Project, start_from := 0) -> float:\n\tvar pos := 0.0\n\tvar index := project.frames.find(self)\n\tif index > start_from:\n\t\tfor i in range(start_from, index):\n\t\t\tif i >= 0:\n\t\t\t\tvar frame := project.frames[i]\n\t\t\t\tpos += frame.get_duration_in_seconds(project.fps)\n\t\t\telse:\n\t\t\t\tpos += 1.0 / project.fps\n\telse:\n\t\tif start_from >= project.frames.size():\n\t\t\treturn -1.0\n\t\tfor i in range(start_from, index, -1):\n\t\t\tvar frame := project.frames[i]\n\t\t\tpos -= frame.get_duration_in_seconds(project.fps)\n\treturn pos\n"
  },
  {
    "path": "src/Classes/Frame.gd.uid",
    "content": "uid://d1dgvksio3s6t\n"
  },
  {
    "path": "src/Classes/ImageEffect.gd",
    "content": "class_name ImageEffect\nextends ConfirmationDialog\n## Parent class for all image effects\n## Methods that have \"pass\" are meant to be replaced by the inherited scripts\n\nenum { SELECTED_CELS, FRAME, ALL_FRAMES, ALL_PROJECTS }\n\nvar affect: int = SELECTED_CELS\nvar selected_cels := Image.create(1, 1, false, Image.FORMAT_RGBA8)\nvar current_frame := Image.create(1, 1, false, Image.FORMAT_RGBA8)\nvar preview_image := Image.new()\nvar aspect_ratio_container: AspectRatioContainer\nvar preview: TextureRect\nvar live_checkbox: CheckBox\nvar wait_time_slider: ValueSlider\nvar wait_apply_timer: Timer\nvar selection_checkbox: CheckBox\nvar affect_option_button: OptionButton\nvar animate_panel: AnimatePanel\nvar commit_idx := -1  ## The current frame the image effect is being applied to\nvar has_been_confirmed := false\nvar live_preview := true\nvar _preview_idx := 0  ## The current frame being previewed\n\n\nfunc _ready() -> void:\n\tset_nodes()\n\tget_ok_button().size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\tget_cancel_button().size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\tabout_to_popup.connect(_about_to_popup)\n\tvisibility_changed.connect(_visibility_changed)\n\tconfirmed.connect(_confirmed)\n\tif selection_checkbox:\n\t\tselection_checkbox.toggled.connect(_on_SelectionCheckBox_toggled)\n\tif affect_option_button:\n\t\taffect_option_button.item_selected.connect(_on_AffectOptionButton_item_selected)\n\tif animate_panel:\n\t\t$\"%ShowAnimate\".pressed.connect(display_animate_dialog)\n\n\nfunc _about_to_popup() -> void:\n\thas_been_confirmed = false\n\tGlobal.canvas.selection.transform_content_confirm()\n\tprepare_animator(Global.current_project)\n\tset_and_update_preview_image(Global.current_project.current_frame)\n\taspect_ratio_container.ratio = float(preview_image.get_width()) / preview_image.get_height()\n\n\n# prepares \"animate_panel.frames\" according to affect\nfunc prepare_animator(project: Project) -> void:\n\tif not is_instance_valid(animate_panel):\n\t\treturn\n\tvar frames: PackedInt32Array = []\n\tif affect == SELECTED_CELS:\n\t\tfor frame_layer in project.selected_cels:\n\t\t\tif not frame_layer[0] in frames:\n\t\t\t\tframes.append(frame_layer[0])\n\t\tframes.sort()  # To always start animating from left side of the timeline\n\t\tanimate_panel.frames = frames\n\telif affect == FRAME:\n\t\tframes.append(project.current_frame)\n\t\tanimate_panel.frames = frames\n\telif (affect == ALL_FRAMES) or (affect == ALL_PROJECTS):\n\t\tfor i in project.frames.size():\n\t\t\tframes.append(i)\n\t\tanimate_panel.frames = frames\n\n\nfunc _confirmed() -> void:\n\thas_been_confirmed = true\n\tGlobal.top_menu_container.last_applied_effect = self\n\tGlobal.top_menu_container.effects_menu.set_item_disabled(0, false)\n\tGlobal.top_menu_container.effects_menu.set_item_text(\n\t\t0, \"Re-apply %s\" % name.replace(\"Dialog\", \"\").capitalize()\n\t)\n\tcommit_idx = -1\n\tvar project := Global.current_project\n\tif affect == SELECTED_CELS:\n\t\tprepare_animator(project)\n\t\tvar undo_data := _get_undo_data(project)\n\t\tfor cel_index in project.selected_cels:\n\t\t\tif !project.layers[cel_index[1]].can_layer_get_drawn():\n\t\t\t\tcontinue\n\t\t\tvar cel := project.frames[cel_index[0]].cels[cel_index[1]]\n\t\t\tif not cel is PixelCel:\n\t\t\t\tcontinue\n\t\t\tif cel is CelTileMap and cel.place_only_mode:\n\t\t\t\tcontinue\n\t\t\tcommit_idx = cel_index[0]  # frame is cel_index[0] in this mode\n\t\t\tcommit_action(cel.image)\n\t\t_commit_undo(\"Draw\", undo_data, project)\n\n\telif affect == FRAME:\n\t\tprepare_animator(project)\n\t\tvar undo_data := _get_undo_data(project)\n\t\tvar i := 0\n\t\tcommit_idx = project.current_frame\n\t\tfor cel in project.frames[project.current_frame].cels:\n\t\t\tif not cel is PixelCel:\n\t\t\t\ti += 1\n\t\t\t\tcontinue\n\t\t\tif cel is CelTileMap and cel.place_only_mode:\n\t\t\t\ti += 1\n\t\t\t\tcontinue\n\t\t\tif project.layers[i].can_layer_get_drawn():\n\t\t\t\tcommit_action(cel.image)\n\t\t\ti += 1\n\t\t_commit_undo(\"Draw\", undo_data, project)\n\n\telif affect == ALL_FRAMES:\n\t\tprepare_animator(project)\n\t\tvar undo_data := _get_undo_data(project)\n\t\tfor frame in project.frames:\n\t\t\tvar i := 0\n\t\t\tcommit_idx += 1  # frames are simply increasing by 1 in this mode\n\t\t\tfor cel in frame.cels:\n\t\t\t\tif not cel is PixelCel:\n\t\t\t\t\ti += 1\n\t\t\t\t\tcontinue\n\t\t\t\tif cel is CelTileMap and cel.place_only_mode:\n\t\t\t\t\ti += 1\n\t\t\t\t\tcontinue\n\t\t\t\tif project.layers[i].can_layer_get_drawn():\n\t\t\t\t\tcommit_action(cel.image)\n\t\t\t\ti += 1\n\t\t_commit_undo(\"Draw\", undo_data, project)\n\n\telif affect == ALL_PROJECTS:\n\t\tfor _project in Global.projects:\n\t\t\tprepare_animator(_project)\n\t\t\tcommit_idx = -1\n\n\t\t\tvar undo_data := _get_undo_data(_project)\n\t\t\tfor frame in _project.frames:\n\t\t\t\tvar i := 0\n\t\t\t\tcommit_idx += 1  # frames are simply increasing by 1 in this mode\n\t\t\t\tfor cel in frame.cels:\n\t\t\t\t\tif not cel is PixelCel:\n\t\t\t\t\t\ti += 1\n\t\t\t\t\t\tcontinue\n\t\t\t\t\tif cel is CelTileMap and cel.place_only_mode:\n\t\t\t\t\t\ti += 1\n\t\t\t\t\t\tcontinue\n\t\t\t\t\tif _project.layers[i].can_layer_get_drawn():\n\t\t\t\t\t\tcommit_action(cel.image, _project)\n\t\t\t\t\ti += 1\n\t\t\t_commit_undo(\"Draw\", undo_data, _project)\n\n\nfunc commit_action(_cel: Image, _project := Global.current_project) -> void:\n\tpass\n\n\nfunc set_nodes() -> void:\n\taspect_ratio_container = $VBoxContainer/AspectRatioContainer\n\tpreview = $VBoxContainer/AspectRatioContainer/Preview\n\tlive_checkbox = $VBoxContainer/LiveSettings/LiveCheckbox\n\twait_time_slider = $VBoxContainer/LiveSettings/WaitTime\n\twait_apply_timer = $VBoxContainer/LiveSettings/WaitApply\n\tselection_checkbox = $VBoxContainer/OptionsContainer/SelectionCheckBox\n\taffect_option_button = $VBoxContainer/OptionsContainer/AffectOptionButton\n\tanimate_panel = $\"%AnimatePanel\"\n\tif is_instance_valid(animate_panel):\n\t\tanimate_panel.image_effect_node = self\n\tif is_instance_valid(live_checkbox):\n\t\tlive_checkbox.button_pressed = live_preview\n\n\nfunc display_animate_dialog() -> void:\n\tvar animate_dialog: Popup = animate_panel.get_parent()\n\tvar pos := Vector2(position.x + size.x, position.y)\n\tvar animate_dialog_rect := Rect2(pos, Vector2(animate_dialog.size.x, size.y))\n\tanimate_dialog.popup(animate_dialog_rect)\n\tanimate_panel.re_calibrate_preview_slider()\n\n\nfunc _commit_undo(action: String, undo_data: Dictionary, project: Project) -> void:\n\tvar tile_editing_mode := TileSetPanel.tile_editing_mode\n\tif tile_editing_mode == TileSetPanel.TileEditingMode.MANUAL:\n\t\ttile_editing_mode = TileSetPanel.TileEditingMode.AUTO\n\tproject.update_tilemaps(undo_data, tile_editing_mode)\n\tvar redo_data := _get_undo_data(project)\n\tproject.undo_redo.create_action(action)\n\tproject.deserialize_cel_undo_data(redo_data, undo_data)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false, -1, -1, project))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true, -1, -1, project))\n\tproject.undo_redo.commit_action()\n\n\nfunc _get_undo_data(project: Project) -> Dictionary:\n\tvar data := {}\n\tproject.serialize_cel_undo_data(_get_selected_draw_cels(project), data)\n\treturn data\n\n\nfunc _get_selected_draw_cels(project: Project) -> Array[BaseCel]:\n\tvar images: Array[BaseCel] = []\n\tif affect == SELECTED_CELS:\n\t\tfor cel_index in project.selected_cels:\n\t\t\tvar cel: BaseCel = project.frames[cel_index[0]].cels[cel_index[1]]\n\t\t\tif cel is PixelCel:\n\t\t\t\timages.append(cel)\n\telse:\n\t\tfor frame in project.frames:\n\t\t\tfor cel in frame.cels:\n\t\t\t\tif cel is PixelCel:\n\t\t\t\t\timages.append(cel)\n\treturn images\n\n\nfunc _on_SelectionCheckBox_toggled(_button_pressed: bool) -> void:\n\tupdate_preview()\n\n\nfunc _on_AffectOptionButton_item_selected(index: int) -> void:\n\taffect = index\n\t$\"%ShowAnimate\".visible = bool(affect != FRAME and animate_panel.properties.size() != 0)\n\tprepare_animator(Global.current_project)  # for use in preview\n\tanimate_panel.re_calibrate_preview_slider()\n\tupdate_preview()\n\n\nfunc set_and_update_preview_image(frame_idx: int) -> void:\n\t_preview_idx = frame_idx\n\tvar frame := Global.current_project.frames[frame_idx]\n\tselected_cels.resize(Global.current_project.size.x, Global.current_project.size.y)\n\tselected_cels.fill(Color(0, 0, 0, 0))\n\tDrawingAlgos.blend_layers(selected_cels, frame, Vector2i.ZERO, Global.current_project, true)\n\tcurrent_frame.resize(Global.current_project.size.x, Global.current_project.size.y)\n\tcurrent_frame.fill(Color(0, 0, 0, 0))\n\tDrawingAlgos.blend_layers(current_frame, frame)\n\tupdate_preview()\n\n\nfunc update_preview(using_timer := false) -> void:\n\tif !live_preview and !using_timer:\n\t\twait_apply_timer.start()\n\t\treturn\n\n\tmatch affect:\n\t\tSELECTED_CELS:\n\t\t\tpreview_image.copy_from(selected_cels)\n\t\t_:\n\t\t\tpreview_image.copy_from(current_frame)\n\tcommit_idx = _preview_idx\n\tcommit_action(preview_image)\n\tpreview.texture = ImageTexture.create_from_image(preview_image)\n\n\nfunc _visibility_changed() -> void:\n\tif visible:\n\t\treturn\n\tGlobal.dialog_open(false)\n\t# Resize the images to (1, 1) so they do not waste unneeded RAM\n\tselected_cels.resize(1, 1)\n\tcurrent_frame.resize(1, 1)\n\tpreview_image = Image.new()\n\n\nfunc _on_live_checkbox_toggled(toggled_on: bool) -> void:\n\tlive_preview = toggled_on\n\twait_time_slider.editable = !live_preview\n\twait_time_slider.visible = !live_preview\n\tif !toggled_on:\n\t\tsize.y += 1  # Reset size of dialog\n\n\nfunc _on_wait_apply_timeout() -> void:\n\tupdate_preview(true)\n\n\nfunc _on_wait_time_value_changed(value: float) -> void:\n\twait_apply_timer.wait_time = value / 1000.0\n"
  },
  {
    "path": "src/Classes/ImageEffect.gd.uid",
    "content": "uid://cix6kinxmv8q2\n"
  },
  {
    "path": "src/Classes/ImageExtended.gd",
    "content": "class_name ImageExtended\nextends Image\n\n## A custom [Image] class that implements support for indexed mode.\n## Before implementing indexed mode, we just used the [Image] class.\n## In indexed mode, each pixel is assigned to a number that references a palette color.\n## This essentially means that the colors of the image are restricted to a specific palette,\n## and they will automatically get updated when you make changes to that palette, or when\n## you switch to a different one.\n\nconst TRANSPARENT := Color(0)\nconst SET_INDICES := preload(\"res://src/Shaders/SetIndices.gdshader\")\nconst INDEXED_TO_RGB := preload(\"res://src/Shaders/IndexedToRGB.gdshader\")\n\n## If [code]true[/code], the image uses indexed mode.\nvar is_indexed := false\n## The [Palette] the image is currently using for indexed mode.\nvar current_palette := Palettes.current_palette\n## An [Image] that contains the index of each pixel of the main image for indexed mode.\n## The indices are stored in the red channel of this image, by diving each index by 255.\n## This means that there can be a maximum index size of 255. 0 means that the pixel is transparent.\nvar indices_image := Image.create_empty(1, 1, false, Image.FORMAT_R8)\n## A [PackedColorArray] containing all of the colors of the [member current_palette].\nvar palette := PackedColorArray()\n\n\nfunc _init() -> void:\n\tindices_image.fill(TRANSPARENT)\n\tPalettes.palette_selected.connect(select_palette)\n\n\n## Equivalent of [method Image.create_empty], but returns [ImageExtended] instead.\n## If [param _is_indexed] is [code]true[/code], the image that is being returned uses indexed mode.\nstatic func create_custom(\n\twidth: int, height: int, mipmaps: bool, format: Image.Format, _is_indexed := false\n) -> ImageExtended:\n\tvar new_image := ImageExtended.new()\n\tnew_image.crop(width, height)\n\tif mipmaps:\n\t\tnew_image.generate_mipmaps()\n\tnew_image.convert(format)\n\tnew_image.fill(TRANSPARENT)\n\tnew_image.is_indexed = _is_indexed\n\tif new_image.is_indexed:\n\t\tnew_image.resize_indices()\n\t\tnew_image.select_palette(\"\", false)\n\treturn new_image\n\n\n## Equivalent of [method Image.copy_from], but also handles the logic necessary for indexed mode.\n## If [param _is_indexed] is [code]true[/code], the image is set to be using indexed mode.\nfunc copy_from_custom(image: Image, indexed := is_indexed) -> void:\n\tis_indexed = indexed\n\tcopy_from(image)\n\tif is_indexed:\n\t\tresize_indices()\n\t\tselect_palette(\"\", false)\n\t\tconvert_rgb_to_indexed()\n\n\n## Selects a new palette to use in indexed mode.\nfunc select_palette(_name: String, convert_to_rgb := true) -> void:\n\tcurrent_palette = Palettes.current_palette\n\tif not is_instance_valid(current_palette) or not is_indexed:\n\t\treturn\n\tupdate_palette()\n\tif not current_palette.data_changed.is_connected(update_palette):\n\t\tcurrent_palette.data_changed.connect(update_palette)\n\tif not current_palette.data_changed.is_connected(convert_indexed_to_rgb):\n\t\tcurrent_palette.data_changed.connect(convert_indexed_to_rgb)\n\tif convert_to_rgb:\n\t\tconvert_indexed_to_rgb()\n\n\n## Updates [member palette] to contain the colors of [member current_palette].\nfunc update_palette() -> void:\n\tif not is_instance_valid(current_palette):\n\t\treturn\n\tif palette.size() != current_palette.colors_max:\n\t\tpalette.resize(current_palette.colors_max)\n\tpalette.fill(TRANSPARENT)\n\tfor i in current_palette.colors:\n\t\t# Due to the decimal nature of the color values, some values get rounded off\n\t\t# unintentionally.\n\t\t# Even though the decimal values change, the HTML code remains the same after the change.\n\t\t# So we're using this trick to convert the values back to how they are shown in\n\t\t# the palette.\n\t\tpalette[i] = Color(current_palette.colors[i].color.to_html())\n\n\n## Displays the actual RGBA values of each pixel in the image from indexed mode.\nfunc convert_indexed_to_rgb() -> void:\n\tif not is_indexed or not is_instance_valid(current_palette):\n\t\treturn\n\tvar palette_image := current_palette.convert_to_image(false)\n\tvar palette_texture := ImageTexture.create_from_image(palette_image)\n\tvar shader_image_effect := ShaderImageEffect.new()\n\tvar indices_texture := ImageTexture.create_from_image(indices_image)\n\tvar params := {\"palette_texture\": palette_texture, \"indices_texture\": indices_texture}\n\tshader_image_effect.generate_image(self, INDEXED_TO_RGB, params, get_size(), false)\n\tGlobal.canvas.queue_redraw()\n\n\n## Automatically maps each color of the image's pixel to the closest color of the palette,\n## by finding the palette color's index and storing it in [member indices_image].\nfunc convert_rgb_to_indexed() -> void:\n\tif not is_indexed or not is_instance_valid(current_palette):\n\t\treturn\n\tvar palette_image := current_palette.convert_to_image(false)\n\tvar palette_texture := ImageTexture.create_from_image(palette_image)\n\tvar params := {\n\t\t\"palette_texture\": palette_texture, \"rgb_texture\": ImageTexture.create_from_image(self)\n\t}\n\tvar shader_image_effect := ShaderImageEffect.new()\n\tshader_image_effect.generate_image(\n\t\tindices_image, SET_INDICES, params, indices_image.get_size(), false\n\t)\n\tconvert_indexed_to_rgb()\n\n\n## Resizes indices and calls [method convert_rgb_to_indexed] when the image's size changes\n## and indexed mode is enabled.\nfunc on_size_changed() -> void:\n\tif is_indexed:\n\t\tresize_indices()\n\t\tconvert_rgb_to_indexed()\n\n\n## Resizes [indices_image] to the image's size.\nfunc resize_indices() -> void:\n\tindices_image.crop(get_width(), get_height())\n\n\n## Equivalent of [method Image.set_pixel],\n## but also handles the logic necessary for indexed mode.\nfunc set_pixel_custom(x: int, y: int, color: Color) -> void:\n\tset_pixelv_custom(Vector2i(x, y), color)\n\n\n## Equivalent of [method Image.set_pixelv],\n## but also handles the logic necessary for indexed mode.\nfunc set_pixelv_custom(point: Vector2i, color: Color, index_image_only := false) -> void:\n\tvar new_color := color\n\tif is_indexed:\n\t\tvar color_to_fill := TRANSPARENT\n\t\tvar color_index := 0\n\t\tif not color.is_equal_approx(TRANSPARENT):\n\t\t\tif palette.has(color):\n\t\t\t\tcolor_index = palette.find(color)\n\t\t\t\t# If the color selected in the palette is the same then it should take prioity.\n\t\t\t\tvar selected_index = Palettes.current_palette_get_selected_color_index(\n\t\t\t\t\tTools.active_button\n\t\t\t\t)\n\t\t\t\tif selected_index != -1:\n\t\t\t\t\tif palette[selected_index].is_equal_approx(color):\n\t\t\t\t\t\tcolor_index = selected_index\n\t\t\telse:  # Find the most similar color\n\t\t\t\tvar smaller_distance := color_distance(color, palette[0])\n\t\t\t\tfor i in palette.size():\n\t\t\t\t\tvar swatch := palette[i]\n\t\t\t\t\tif is_zero_approx(swatch.a):  # Skip transparent colors\n\t\t\t\t\t\tcontinue\n\t\t\t\t\tvar dist := color_distance(color, swatch)\n\t\t\t\t\tif dist < smaller_distance:\n\t\t\t\t\t\tsmaller_distance = dist\n\t\t\t\t\t\tcolor_index = i\n\t\t\tif not indices_image.get_pixelv(point).r8 == color_index + 1:\n\t\t\t\tindices_image.set_pixelv(point, Color((color_index + 1) / 255.0, 0, 0, 0))\n\t\t\tcolor_to_fill = palette[color_index]\n\t\t\tnew_color = color_to_fill\n\t\telse:\n\t\t\tindices_image.set_pixelv(point, TRANSPARENT)\n\t\t\tnew_color = TRANSPARENT\n\tif not index_image_only:\n\t\tset_pixelv(point, new_color)\n\n\n## Finds the distance between colors [param c1] and [param c2].\nfunc color_distance(c1: Color, c2: Color) -> float:\n\tvar v1 := Vector4(c1.r, c1.g, c1.b, c1.a)\n\tvar v2 := Vector4(c2.r, c2.g, c2.b, c2.a)\n\treturn v2.distance_to(v1)\n\n\n## Adds image data to a [param dict] [Dictionary]. Used for undo/redo.\nfunc add_data_to_dictionary(dict: Dictionary, other_image: ImageExtended = null) -> void:\n\t# The order matters! Setting self's data first would make undo/redo appear to work incorrectly.\n\tif is_instance_valid(other_image):\n\t\tdict[other_image.indices_image] = indices_image.data\n\t\tdict[other_image] = data\n\telse:\n\t\tdict[indices_image] = indices_image.data\n\t\tdict[self] = data\n"
  },
  {
    "path": "src/Classes/ImageExtended.gd.uid",
    "content": "uid://obalvssgqg01\n"
  },
  {
    "path": "src/Classes/LayerEffect.gd",
    "content": "class_name LayerEffect\nextends RefCounted\n\nvar name := \"\"\nvar shader: Shader\nvar category := \"\"\nvar params := {}\nvar enabled := true\n\n\nfunc _init(_name := \"\", _shader: Shader = null, _category := \"\", _params := {}) -> void:\n\tname = _name\n\tshader = _shader\n\tcategory = _category\n\tparams = _params\n\n\nfunc duplicate() -> LayerEffect:\n\treturn LayerEffect.new(name, shader, category, params.duplicate())\n\n\nfunc serialize() -> Dictionary:\n\tvar p_str := {}\n\tfor param in params:\n\t\tp_str[param] = var_to_str(params[param])\n\treturn {\"name\": name, \"shader_path\": shader.resource_path, \"params\": p_str, \"enabled\": enabled}\n\n\nfunc deserialize(dict: Dictionary) -> void:\n\tif dict.has(\"name\"):\n\t\tname = dict[\"name\"]\n\tif dict.has(\"shader_path\"):\n\t\tvar path: String = dict[\"shader_path\"]\n\t\tvar shader_to_load := load(path)\n\t\tif is_instance_valid(shader_to_load) and shader_to_load is Shader:\n\t\t\tshader = shader_to_load\n\tif dict.has(\"params\"):\n\t\tif typeof(dict[\"params\"]) == TYPE_DICTIONARY:\n\t\t\tfor param in dict[\"params\"]:\n\t\t\t\tif typeof(dict[\"params\"][param]) == TYPE_STRING:\n\t\t\t\t\tparams[param] = str_to_var(dict[\"params\"][param])\n\t\telse:\n\t\t\tparams = str_to_var(dict[\"params\"])\n\tif dict.has(\"enabled\"):\n\t\tenabled = dict[\"enabled\"]\n"
  },
  {
    "path": "src/Classes/LayerEffect.gd.uid",
    "content": "uid://cram2krccwii3\n"
  },
  {
    "path": "src/Classes/Layers/AudioLayer.gd",
    "content": "class_name AudioLayer\nextends BaseLayer\n## A unique type of layer which acts as an audio track for the timeline.\n## Each audio layer has one audio stream, and its starting position can be\n## in any point during the animation.\n\nsignal audio_changed\nsignal playback_frame_changed\n\nvar audio: AudioStream:  ## The audio stream of the layer.\n\tset(value):\n\t\taudio = value\n\t\taudio_changed.emit()\nvar playback_position := 0.0:  ## The time in seconds where the audio stream starts playing.\n\tget():\n\t\tif playback_frame >= 0:\n\t\t\tvar frame := project.frames[playback_frame]\n\t\t\treturn frame.position_in_seconds(project)\n\t\tvar pos := 0.0\n\t\tfor i in absi(playback_frame):\n\t\t\tpos -= 1.0 / project.fps\n\t\treturn pos\nvar playback_frame := 0:  ## The frame where the audio stream starts playing.\n\tset(value):\n\t\tplayback_frame = value\n\t\tplayback_frame_changed.emit()\n\n\nfunc _init(_project: Project, _name := \"\") -> void:\n\tproject = _project\n\tname = _name\n\n\n## Returns the length of the audio stream.\nfunc get_audio_length() -> float:\n\tif is_instance_valid(audio):\n\t\treturn audio.get_length()\n\telse:\n\t\treturn -1.0\n\n\n## Returns the class name of the audio stream. E.g. \"AudioStreamMP3\".\nfunc get_audio_type() -> String:\n\tif not is_instance_valid(audio):\n\t\treturn \"\"\n\treturn audio.get_class()\n\n\n# Overridden Methods:\nfunc serialize() -> Dictionary:\n\tvar data := {\n\t\t\"name\": name,\n\t\t\"type\": get_layer_type(),\n\t\t\"playback_frame\": playback_frame,\n\t\t\"audio_type\": get_audio_type()\n\t}\n\treturn data\n\n\nfunc deserialize(dict: Dictionary) -> void:\n\tsuper.deserialize(dict)\n\tplayback_frame = dict.get(\"playback_frame\", playback_frame)\n\n\nfunc get_layer_type() -> int:\n\treturn Global.LayerTypes.AUDIO\n\n\nfunc new_empty_cel() -> AudioCel:\n\treturn AudioCel.new()\n\n\nfunc set_name_to_default(number: int) -> void:\n\tname = tr(\"Audio\") + \" %s\" % number\n"
  },
  {
    "path": "src/Classes/Layers/AudioLayer.gd.uid",
    "content": "uid://dysrj3m1c5at6\n"
  },
  {
    "path": "src/Classes/Layers/BaseLayer.gd",
    "content": "# gdlint: ignore=max-public-methods\nclass_name BaseLayer\nextends RefCounted\n## Base class for layer properties. Different layer types extend from this class.\n\nsignal name_changed  ## Emits when [member name] is changed.\nsignal visibility_changed  ## Emits when [member visible] is changed.\nsignal locked_changed  ## Emits when [member locked] is changed.\nsignal effects_added_removed  ## Emits when an effect is added or removed to/from [member effects].\nsignal ui_color_changed  ## Emits when [member ui_color] is changed.\n\n## All currently supported layer blend modes between two layers. The upper layer\n## is the blend layer, and the bottom layer is the base layer.\n## For more information, refer to: [url]https://en.wikipedia.org/wiki/Blend_modes[/url]\nenum BlendModes {\n\tPASS_THROUGH = -2,  ## Only for group layers. Ignores group blending, like it doesn't exist.\n\tNORMAL = 0,  ## The blend layer colors are simply placed on top of the base colors.\n\tERASE,  ## Erases the non-transparent areas of the upper layer from the lower layer's alpha.\n\tDARKEN,  ## Keeps the darker colors between the blend and the base layers.\n\tMULTIPLY,  ## Multiplies the numerical values of the two colors, giving a darker result.\n\tCOLOR_BURN,  ## Darkens by increasing the contrast between the blend and base colors.\n\tLINEAR_BURN,  ## Darkens the base colors based on the value of the blend colors.\n\tLIGHTEN,  ## Keeps the lighter colors between the blend and the base layers.\n\tSCREEN,  ## Lightens the colors by multiplying the inverse of the blend and base colors.\n\tCOLOR_DODGE,  ## Lightens by decreasing the contrast between the blend and base colors.\n\tADD,  ## Lightens by adding the numerical values of the two colors. Also known as linear dodge.\n\tOVERLAY,  ## Like Screen mode in bright base colors and Multiply mode in darker base colors.\n\tSOFT_LIGHT,  ## Similar to Overlay, but more subtle.\n\tHARD_LIGHT,  ## Like Screen mode in bright blending colors and Multiply mode in darker colors.\n\tDIFFERENCE,  ## Subtracts the blend color from the base or vice versa, depending on the brightness.\n\tEXCLUSION,  ## Similar to Difference mode, but with less contrast between the colors.\n\tSUBTRACT,  ## Darkens by subtracting the numerical values of the blend colors from the base.\n\tDIVIDE,  ## Divides the numerical values of the base colors by the blend.\n\tHUE,  ## Uses the blend hue while preserving the base saturation and luminosity.\n\tSATURATION,  ## Uses the blend saturation while preserving the base hue and luminosity.\n\tCOLOR,  ## Uses the blend hue and saturation while preserving the base luminosity.\n\tLUMINOSITY  ## Uses the blend luminosity while preserving the base hue and saturation.\n}\n\nvar name := \"\":  ## Name of the layer.\n\tset(value):\n\t\tname = value\n\t\tname_changed.emit()\nvar project: Project  ## The project the layer belongs to.\nvar index: int  ## Index of layer in the timeline.\nvar parent: BaseLayer  ## Parent of the layer.\nvar visible := true:  ## Sets visibility of the layer.\n\tset(value):\n\t\tvisible = value\n\t\tvisibility_changed.emit()\nvar locked := false:  ## Images of a locked layer won't be overritten.\n\tset(value):\n\t\tlocked = value\n\t\tlocked_changed.emit()\nvar new_cels_linked := false  ## Determines if new cel of the layer should be linked or not.\n## Is [code]true[/code] when the layer's visibility has been changed\n## when holding Alt and clicking on the visible button on another layer.\nvar hidden_by_other_layer := false\nvar ignore_onion := false  ## Determines if the layer is visible in onion skinning\nvar blend_mode := BlendModes.NORMAL  ## Blend mode of the current layer.\nvar clipping_mask := false  ## If [code]true[/code], the layer acts as a clipping mask.\nvar opacity := 1.0  ## The opacity of the layer, affects all frames that belong to that layer.\nvar cel_link_sets: Array[Dictionary] = []  ## Each Dictionary represents a cel's \"link set\"\nvar effects: Array[LayerEffect]  ## An array for non-destructive effects of the layer.\nvar effects_enabled := true  ## If [code]true[/code], the effects are being applied.\nvar user_data := \"\"  ## User defined data, set in the layer properties.\n## The color of the layer's button in the timeline. By default, it's the theme button color.\nvar ui_color := Color(0, 0, 0, 0):\n\tset(value):\n\t\tui_color = value\n\t\tui_color_changed.emit()\nvar text_server := TextServerManager.get_primary_interface()\n\n\n## Returns true if this is a direct or indirect parent of layer\nfunc is_ancestor_of(layer: BaseLayer) -> bool:\n\tif layer.parent == self:\n\t\treturn true\n\telif is_instance_valid(layer.parent):\n\t\treturn is_ancestor_of(layer.parent)\n\treturn false\n\n\n## Returns an [Array] of [BaseLayer]s that are children of this layer.\n## The process is recursive if [param recursive] is [code]true[/code].\nfunc get_children(recursive: bool) -> Array[BaseLayer]:\n\tvar children: Array[BaseLayer] = []\n\tif recursive:\n\t\tfor i in index:\n\t\t\tif is_ancestor_of(project.layers[i]):\n\t\t\t\tchildren.append(project.layers[i])\n\telse:\n\t\tfor i in index:\n\t\t\tif project.layers[i].parent == self:\n\t\t\t\tchildren.append(project.layers[i])\n\treturn children\n\n\n## Returns the number of child nodes.\n## The process is recursive if [param recursive] is [code]true[/code].\nfunc get_child_count(recursive: bool) -> int:\n\tvar count := 0\n\tif recursive:\n\t\tfor i in index:\n\t\t\tif is_ancestor_of(project.layers[i]):\n\t\t\t\tcount += 1\n\telse:\n\t\tfor i in index:\n\t\t\tif project.layers[i].parent == self:\n\t\t\t\tcount += 1\n\treturn count\n\n\n## Tells if the layer has child layers ([code]true[/code]) or not ([code]false[/code]).\nfunc has_children() -> bool:\n\tif index == 0:\n\t\treturn false\n\treturn project.layers[index - 1].parent == self\n\n\n## Tells if the layer is expanded ([code]true[/code]) or collapsed ([code]false[/code])\n## in the hierarchy.\nfunc is_expanded_in_hierarchy() -> bool:\n\tif is_instance_valid(parent):\n\t\t# \"expanded\" variable is located in GroupLayer.gd\n\t\treturn parent.expanded and parent.is_expanded_in_hierarchy()\n\treturn true\n\n\n## Tells if the layer's content is visible ([code]true[/code]) or hidden ([code]false[/code])\n## in the layer tree. This is influenced by the eye button.\nfunc is_visible_in_hierarchy() -> bool:\n\tif is_instance_valid(parent) and visible:\n\t\treturn parent.is_visible_in_hierarchy()\n\treturn visible\n\n\n## Tells if the layer's content is locked ([code]true[/code]) or not ([code]false[/code])\n## in the layer tree. This is influenced by the lock button.\nfunc is_locked_in_hierarchy() -> bool:\n\tif is_instance_valid(parent) and not locked:\n\t\treturn parent.is_locked_in_hierarchy()\n\treturn locked\n\n\n## Returns [code]true[/code] if the layer is visible and not locked in hierarchy.\n## Some layer types use this method in [method can_layer_get_drawn], but the difference\n## between these two methods is that some layer types cannot be drawn in at all,\n## such as group & audio layers, but they can be modified in other ways.\nfunc can_layer_be_modified() -> bool:\n\treturn is_visible_in_hierarchy() && not is_locked_in_hierarchy()\n\n\n## Returns [code]true[/code] if the layer has at least one ancestor\n## that does not have its blend mode set to pass through.\nfunc is_blended_by_ancestor() -> bool:\n\tvar is_blended := false\n\tfor ancestor in get_ancestors():\n\t\tif ancestor.blend_mode != BlendModes.PASS_THROUGH:\n\t\t\tis_blended = true\n\t\t\tbreak\n\treturn is_blended\n\n\n## Returns an [Array] of [BaseLayer]s that are ancestors of this layer.\n## If there are no ancestors, returns an empty array.\nfunc get_ancestors() -> Array[BaseLayer]:\n\tvar ancestors: Array[BaseLayer] = []\n\tif is_instance_valid(parent):\n\t\tancestors.append(parent)\n\t\tancestors.append_array(parent.get_ancestors())\n\treturn ancestors\n\n\n## Returns the number of parents above this layer.\nfunc get_hierarchy_depth() -> int:\n\tif is_instance_valid(parent):\n\t\treturn parent.get_hierarchy_depth() + 1\n\treturn 0\n\n\n## Returns the layer's top most parent that is responsible for its blending.\n## For example, if a layer belongs in a group with its blend mode set to anything but pass through,\n## and that group has no parents of its own, then that group gets returned.\n## If that group is a child of another non-pass through group,\n## then the grandparent group is returned, and so on.\n## If the layer has no ancestors, or if they are set to pass through mode, it returns self.\nfunc get_blender_ancestor() -> BaseLayer:\n\tvar blender := self\n\tfor ancestor in get_ancestors():\n\t\tif ancestor.blend_mode != BlendModes.PASS_THROUGH:\n\t\t\tblender = ancestor\n\treturn blender\n\n\n## Returns the path of the layer in the timeline as a [String].\nfunc get_layer_path() -> String:\n\tif is_instance_valid(parent):\n\t\treturn str(parent.get_layer_path(), \"/\", name)\n\treturn name\n\n\n## Links a cel to link_set if its a Dictionary, or unlinks if null.\n## Content/image_texture are handled separately for undo related reasons\nfunc link_cel(cel: BaseCel, link_set = null) -> void:\n\t# Erase from the cel's current link_set\n\tif cel.link_set != null:\n\t\tif cel.link_set.has(\"cels\"):\n\t\t\tcel.link_set[\"cels\"].erase(cel)\n\t\t\tif cel.link_set[\"cels\"].is_empty():\n\t\t\t\tcel_link_sets.erase(cel.link_set)\n\t\telse:\n\t\t\tcel_link_sets.erase(cel.link_set)\n\t# Add to link_set\n\tcel.link_set = link_set\n\tif link_set != null:\n\t\tif not link_set.has(\"cels\"):\n\t\t\tlink_set[\"cels\"] = []\n\t\tlink_set[\"cels\"].append(cel)\n\t\tif not cel_link_sets.has(link_set):\n\t\t\tif not link_set.has(\"hue\"):\n\t\t\t\tvar hues := PackedFloat32Array()\n\t\t\t\tfor other_link_set in cel_link_sets:\n\t\t\t\t\thues.append(other_link_set[\"hue\"])\n\t\t\t\tif hues.is_empty():\n\t\t\t\t\tlink_set[\"hue\"] = Color.GREEN.h\n\t\t\t\telse:  # Calculate the largest gap in hue between existing link sets:\n\t\t\t\t\thues.sort()\n\t\t\t\t\t# Start gap between the highest and lowest hues, otherwise its hard to include\n\t\t\t\t\tvar largest_gap_pos := hues[-1]\n\t\t\t\t\tvar largest_gap_size := 1.0 - (hues[-1] - hues[0])\n\t\t\t\t\tfor h in hues.size() - 1:\n\t\t\t\t\t\tvar gap_size: float = hues[h + 1] - hues[h]\n\t\t\t\t\t\tif gap_size > largest_gap_size:\n\t\t\t\t\t\t\tlargest_gap_pos = hues[h]\n\t\t\t\t\t\t\tlargest_gap_size = gap_size\n\t\t\t\t\tlink_set[\"hue\"] = wrapf(largest_gap_pos + largest_gap_size / 2.0, 0, 1)\n\t\t\tcel_link_sets.append(link_set)\n\n\n## Returns a copy of the [param cel]'s [Image] with all of the effects applied to it.\n## This method is not destructive as it does NOT change the data of the image,\n## it just returns a copy.\nfunc display_effects(cel: BaseCel, image_override: Image = null) -> Image:\n\tvar image := ImageExtended.new()\n\tif is_instance_valid(image_override):\n\t\tif image_override is ImageExtended:\n\t\t\timage.is_indexed = image_override.is_indexed\n\t\timage.copy_from_custom(image_override)\n\telse:\n\t\tvar cel_image := cel.get_image()\n\t\tif cel_image is ImageExtended:\n\t\t\timage.is_indexed = cel_image.is_indexed\n\t\timage.copy_from_custom(cel_image)\n\tif not effects_enabled:\n\t\treturn image\n\tvar image_size := image.get_size()\n\tfor effect in effects:\n\t\tif not effect.enabled or not is_instance_valid(effect.shader):\n\t\t\tcontinue\n\t\tvar params := effect.params\n\t\tvar frame := cel.get_frame(project)\n\t\tparams[\"PXO_time\"] = frame.position_in_seconds(project)\n\t\tparams[\"PXO_frame_index\"] = project.frames.find(frame)\n\t\tparams[\"PXO_layer_index\"] = index\n\t\tvar shader_image_effect := ShaderImageEffect.new()\n\t\tshader_image_effect.generate_image(image, effect.shader, params, image_size)\n\t# Inherit effects from the parents, if their blend mode is set to pass through\n\tfor ancestor in get_ancestors():\n\t\tif ancestor.blend_mode != BlendModes.PASS_THROUGH:\n\t\t\tbreak\n\t\tif not ancestor.effects_enabled:\n\t\t\tcontinue\n\t\tfor effect in ancestor.effects:\n\t\t\tif not effect.enabled:\n\t\t\t\tcontinue\n\t\t\tvar shader_image_effect := ShaderImageEffect.new()\n\t\t\tshader_image_effect.generate_image(image, effect.shader, effect.params, image_size)\n\treturn image\n\n\nfunc emit_effects_added_removed() -> void:\n\teffects_added_removed.emit()\n\n\n## Returns the final color of the layer button,\n## iterating through the layer's ancestors, if it has any.\n## If the layer has no UI color, it inherits from its parents, otherwise it overwrites it.\nfunc get_ui_color() -> Color:\n\tif not is_zero_approx(ui_color.a):\n\t\treturn ui_color\n\tfor ancestor in get_ancestors():\n\t\treturn ancestor.get_ui_color()\n\treturn ui_color\n\n\n# Methods to Override:\n\n\n## Returns a curated [Dictionary] containing the layer data.\nfunc serialize() -> Dictionary:\n\tassert(index == project.layers.find(self))\n\tvar effect_data: Array[Dictionary] = []\n\tfor effect in effects:\n\t\teffect_data.append(effect.serialize())\n\tvar dict := {\n\t\t\"name\": name,\n\t\t\"visible\": visible,\n\t\t\"locked\": locked,\n\t\t\"blend_mode\": blend_mode,\n\t\t\"clipping_mask\": clipping_mask,\n\t\t\"opacity\": opacity,\n\t\t\"ui_color\": ui_color,\n\t\t\"parent\": parent.index if is_instance_valid(parent) else -1,\n\t\t\"effects\": effect_data\n\t}\n\tif not user_data.is_empty():\n\t\tdict[\"user_data\"] = user_data\n\tif not cel_link_sets.is_empty():\n\t\tvar cels := []  # Cels array for easy finding of the frame index for link_set saving\n\t\tfor frame in project.frames:\n\t\t\tcels.append(frame.cels[index])\n\t\tdict[\"link_sets\"] = []\n\t\tfor link_set in cel_link_sets:\n\t\t\tdict[\"link_sets\"].append({\"cels\": [], \"hue\": link_set[\"hue\"]})\n\t\t\tfor cel in link_set[\"cels\"]:\n\t\t\t\tdict[\"link_sets\"][-1][\"cels\"].append(cels.find(cel))\n\treturn dict\n\n\n## Sets the layer data according to a curated [Dictionary] obtained from [method serialize].\nfunc deserialize(dict: Dictionary) -> void:\n\tname = dict.get(\"name\", \"\")\n\tvisible = dict.get(\"visible\", true)\n\tlocked = dict.get(\"locked\", false)\n\tblend_mode = dict.get(\"blend_mode\", BlendModes.NORMAL)\n\tclipping_mask = dict.get(\"clipping_mask\", false)\n\topacity = dict.get(\"opacity\", 1.0)\n\tuser_data = dict.get(\"user_data\", user_data)\n\tif dict.has(\"ui_color\"):\n\t\tvar tmp_ui_color = dict.ui_color\n\t\tif typeof(tmp_ui_color) == TYPE_STRING:\n\t\t\tui_color = str_to_var(\"Color\" + tmp_ui_color)\n\t\telse:\n\t\t\tui_color = tmp_ui_color\n\tif dict.get(\"parent\", -1) != -1:\n\t\tparent = project.layers[dict.parent]\n\tif dict.has(\"linked_cels\") and not dict[\"linked_cels\"].is_empty():  # Backwards compatibility\n\t\tdict[\"link_sets\"] = [{\"cels\": dict[\"linked_cels\"], \"hue\": Color.GREEN.h}]\n\tif dict.has(\"link_sets\"):\n\t\tfor serialized_link_set in dict[\"link_sets\"]:\n\t\t\tvar link_set := {\"cels\": [], \"hue\": serialized_link_set[\"hue\"]}\n\t\t\tfor linked_cel_index in serialized_link_set[\"cels\"]:\n\t\t\t\tvar cel: BaseCel = project.frames[linked_cel_index].cels[index]\n\t\t\t\tlink_set[\"cels\"].append(cel)\n\t\t\t\tcel.link_set = link_set\n\t\t\t\tvar linked_cel: BaseCel = link_set[\"cels\"][0]\n\t\t\t\tcel.set_content(linked_cel.get_content(), linked_cel.image_texture)\n\t\t\tcel_link_sets.append(link_set)\n\tif dict.has(\"effects\"):\n\t\tfor effect_dict in dict[\"effects\"]:\n\t\t\tif not typeof(effect_dict) == TYPE_DICTIONARY:\n\t\t\t\tprint(\"Loading effect failed, not a dictionary.\")\n\t\t\t\tcontinue\n\t\t\tvar effect := LayerEffect.new()\n\t\t\teffect.deserialize(effect_dict)\n\t\t\teffects.append(effect)\n\n\n## Returns a layer type that is one of the [param LayerTypes]\n## enum in [\"src/Autoload/Global.gd\"] Autoload.\nfunc get_layer_type() -> int:\n\treturn -1\n\n\n## Returns a new empty [BaseCel]\nfunc new_empty_cel() -> BaseCel:\n\treturn null\n\n\n## Sets layer name to the default name followed by [param number].\nfunc set_name_to_default(number: int) -> void:\n\tname = tr(\"Layer\") + \" %s\" % text_server.format_number(str(number))\n\n\n## Tells if the user is allowed to draw on current layer ([code]true[/code])\n## or not ([code]false[/code]).\nfunc can_layer_get_drawn() -> bool:\n\treturn false\n\n\n## Tells if the layer allows child layers ([code]true[/code]) or not ([code]true[/code])\nfunc accepts_child(_layer: BaseLayer) -> bool:\n\treturn false\n\n\n## Returns an instance of the layer button that will be added to the timeline.\nfunc instantiate_layer_button() -> Node:\n\treturn Global.layer_button_node.instantiate()\n\n\n## Returns [code]true[/code] if the layer is responsible for blending other layers.\n## Currently only returns [code]true[/code] with [GroupLayer]s, when their\n## blend mode is set to something else rather than [enum BlendModes.PASS_THROUGH].\nfunc is_blender() -> bool:\n\treturn false\n"
  },
  {
    "path": "src/Classes/Layers/BaseLayer.gd.uid",
    "content": "uid://bb3upnu804hk5\n"
  },
  {
    "path": "src/Classes/Layers/GroupLayer.gd",
    "content": "class_name GroupLayer\nextends BaseLayer\n## A class for group layer properties\n\nvar expanded := true\nvar _group_cache: Dictionary\nvar _cache_texture_data: Array[PackedByteArray]\nvar _blend_generator := ShaderImageEffect.new()\n\n\nfunc _init(_project: Project, _name := \"\") -> void:\n\tproject = _project\n\tname = _name\n\tblend_mode = BlendModes.PASS_THROUGH\n\n\n## Blends all of the images of children layer of the group layer into a single image.\nfunc blend_children(frame: Frame, origin := Vector2i.ZERO, apply_effects := true) -> Image:\n\tvar image := ImageExtended.create_custom(\n\t\tproject.size.x, project.size.y, false, project.get_image_format(), project.is_indexed()\n\t)\n\tvar children := get_children(false)\n\tif children.size() <= 0:\n\t\treturn image\n\tvar textures: Array[Image] = []\n\t_cache_texture_data.clear()\n\tvar metadata_image := Image.create(children.size(), 4, false, Image.FORMAT_RGF)\n\t# Corresponding to the index of texture in textures. This is not the layer index\n\tvar current_metadata_index := 0\n\tfor i in children.size():\n\t\tvar layer := children[i]\n\t\tif layer is GroupLayer:\n\t\t\tcurrent_metadata_index = _blend_child_group(\n\t\t\t\timage,\n\t\t\t\tlayer,\n\t\t\t\tframe,\n\t\t\t\ttextures,\n\t\t\t\tmetadata_image,\n\t\t\t\tcurrent_metadata_index,\n\t\t\t\torigin,\n\t\t\t\tapply_effects\n\t\t\t)\n\t\t\t# NOTE: incrementation of current_metadata_index is done internally in\n\t\t\t# _blend_child_group(), so we don't have to use current_metadata_index += 1 here\n\t\telse:\n\t\t\t_include_child_in_blending(\n\t\t\t\timage,\n\t\t\t\tlayer,\n\t\t\t\tframe,\n\t\t\t\ttextures,\n\t\t\t\tmetadata_image,\n\t\t\t\tcurrent_metadata_index,\n\t\t\t\torigin,\n\t\t\t\tapply_effects\n\t\t\t)\n\t\t\tcurrent_metadata_index += 1\n\n\tif DisplayServer.get_name() != \"headless\" and textures.size() > 0:\n\t\tvar texture_array := Texture2DArray.new()\n\t\ttexture_array.create_from_images(textures)\n\t\tvar params := {\n\t\t\t\"layers\": texture_array,\n\t\t\t\"metadata\": ImageTexture.create_from_image(metadata_image),\n\t\t\t\"origin_x_positive\": origin.x > 0,\n\t\t\t\"origin_y_positive\": origin.y > 0,\n\t\t}\n\t\tvar c_key := [_cache_texture_data, metadata_image.get_data(), origin.x > 0, origin.y > 0]\n\t\tif _group_cache.has(c_key):\n\t\t\t# Don't waste time re-generating for groups that have remained unchanged\n\t\t\tvar cache_image = Image.create_from_data(\n\t\t\t\tproject.size.x,\n\t\t\t\tproject.size.y,\n\t\t\t\tfalse,\n\t\t\t\tproject.get_image_format(),\n\t\t\t\t_group_cache[c_key]\n\t\t\t)\n\t\t\timage.blit_rect(\n\t\t\t\tcache_image, Rect2i(Vector2i.ZERO, cache_image.get_size()), Vector2i.ZERO\n\t\t\t)\n\t\telse:\n\t\t\t_group_cache.clear()\n\t\t\t_blend_generator.generate_image(\n\t\t\t\timage, DrawingAlgos.blend_layers_shader, params, project.size, true, false\n\t\t\t)\n\t\t\t_group_cache[c_key] = image.get_data()\n\t\tif apply_effects:\n\t\t\timage = display_effects(frame.cels[index], image)\n\treturn image\n\n\nfunc _include_child_in_blending(\n\timage: ImageExtended,\n\tlayer: BaseLayer,\n\tframe: Frame,\n\ttextures: Array[Image],\n\tmetadata_image: Image,\n\ti: int,\n\torigin: Vector2i,\n\tapply_effects: bool\n) -> void:\n\tvar cel := frame.cels[layer.index]\n\tif DisplayServer.get_name() == \"headless\":\n\t\tDrawingAlgos.blend_layers_headless(image, project, layer, cel, origin)\n\telse:\n\t\tvar cel_image: Image\n\t\tif apply_effects:\n\t\t\tcel_image = layer.display_effects(cel)\n\t\telse:\n\t\t\tcel_image = cel.get_image()\n\t\ttextures.append(cel_image)\n\t\t_cache_texture_data.append(cel_image.get_data())\n\t\tDrawingAlgos.set_layer_metadata_image(layer, cel, metadata_image, i)\n\t\tif origin != Vector2i.ZERO:\n\t\t\t# Only used as a preview for the move tool, when used on a group's children\n\t\t\tvar test_array := [project.frames.find(frame), project.layers.find(layer)]\n\t\t\tif test_array in project.selected_cels:\n\t\t\t\tvar origin_fixed := Vector2(origin).abs() / Vector2(cel_image.get_size())\n\t\t\t\tmetadata_image.set_pixel(i, 2, Color(origin_fixed.x, origin_fixed.y, 0.0, 0.0))\n\n\n## Include a child group in the blending process.\n## If the child group is set to pass through mode, loop through its children\n## and include them as separate images, instead of blending them all together.\n## Gets called recursively if the child group has children groups of its own,\n## and they are also set to pass through mode.\nfunc _blend_child_group(\n\timage: ImageExtended,\n\tlayer: BaseLayer,\n\tframe: Frame,\n\ttextures: Array[Image],\n\tmetadata_image: Image,\n\ti: int,\n\torigin: Vector2i,\n\tapply_effects: bool\n) -> int:\n\tvar new_i := i\n\tvar blend_rect := Rect2i(Vector2i.ZERO, project.size)\n\tvar cel := frame.cels[layer.index]\n\tif layer.blend_mode == BlendModes.PASS_THROUGH:\n\t\tvar children := layer.get_children(false)\n\t\tfor j in children.size():\n\t\t\tvar child := children[j]\n\t\t\tif child is GroupLayer:\n\t\t\t\tnew_i = _blend_child_group(\n\t\t\t\t\timage, child, frame, textures, metadata_image, new_i, origin, apply_effects\n\t\t\t\t)\n\t\t\telse:\n\t\t\t\tmetadata_image.crop(metadata_image.get_width() + 1, metadata_image.get_height())\n\t\t\t\t_include_child_in_blending(\n\t\t\t\t\timage, child, frame, textures, metadata_image, new_i, origin, apply_effects\n\t\t\t\t)\n\t\t\t\tnew_i += 1\n\telse:\n\t\tvar blended_children := (layer as GroupLayer).blend_children(frame, origin)\n\t\tif DisplayServer.get_name() == \"headless\":\n\t\t\timage.blend_rect(blended_children, blend_rect, origin)\n\t\telse:\n\t\t\ttextures.append(blended_children)\n\t\t\t_cache_texture_data.append(blended_children.get_data())\n\t\t\tDrawingAlgos.set_layer_metadata_image(layer, cel, metadata_image, i)\n\t\tnew_i += 1\n\treturn new_i\n\n\n# Overridden Methods:\n\n\nfunc serialize() -> Dictionary:\n\tvar data := super.serialize()\n\tdata[\"type\"] = get_layer_type()\n\tdata[\"expanded\"] = expanded\n\treturn data\n\n\nfunc deserialize(dict: Dictionary) -> void:\n\tsuper.deserialize(dict)\n\texpanded = dict.expanded\n\n\nfunc get_layer_type() -> int:\n\treturn Global.LayerTypes.GROUP\n\n\nfunc new_empty_cel() -> BaseCel:\n\treturn GroupCel.new()\n\n\nfunc set_name_to_default(number: int) -> void:\n\tname = tr(\"Group\") + \" %s\" % number\n\n\nfunc accepts_child(_layer: BaseLayer) -> bool:\n\treturn true\n\n\nfunc is_blender() -> bool:\n\treturn blend_mode != BlendModes.PASS_THROUGH\n"
  },
  {
    "path": "src/Classes/Layers/GroupLayer.gd.uid",
    "content": "uid://1abhkm1o0nyn\n"
  },
  {
    "path": "src/Classes/Layers/Layer3D.gd",
    "content": "class_name Layer3D\nextends BaseLayer\n## A class for 3D layer properties.\n\n\nfunc _init(_project: Project, _name := \"\") -> void:\n\tproject = _project\n\tname = _name\n\n\n# Overridden Methods:\n\n\nfunc serialize() -> Dictionary:\n\tvar dict = super.serialize()\n\tdict[\"type\"] = get_layer_type()\n\treturn dict\n\n\nfunc get_layer_type() -> int:\n\treturn Global.LayerTypes.THREE_D\n\n\nfunc new_empty_cel() -> BaseCel:\n\treturn Cel3D.new(project.size)\n\n\nfunc can_layer_get_drawn() -> bool:\n\treturn can_layer_be_modified()\n"
  },
  {
    "path": "src/Classes/Layers/Layer3D.gd.uid",
    "content": "uid://c6vbwslwgfphq\n"
  },
  {
    "path": "src/Classes/Layers/LayerTileMap.gd",
    "content": "class_name LayerTileMap\nextends PixelLayer\n\n## A layer type for 2D tile-based maps.\n## A LayerTileMap uses a [TileSetCustom], which is then by all of its [CelTileMap]s.\n## This class doesn't hold any actual tilemap data, as they are different in each cel.\n## For this reason, that data is being handled by the [CelTileMap] class.\n## Not to be confused with [TileMapLayer], which is a Godot node.\n\n## The [TileSetCustom] that this layer uses.\n## Internally, this class doesn't make much use of this.\n## It's mostly only used to be passed down to the layer's [CelTileMap]s.\nvar tileset: TileSetCustom\n## If [code]true[/code], users can only place tiles in the tilemap and not modify the tileset\n## in any way, such as by drawing pixels.\nvar place_only_mode := false\n## The size of each tile.\n## Overwrites the [member tileset]'s tile size if [member place_only_mode] is [code]true[/code].\nvar tile_size := Vector2i(16, 16)\n## The shape of each tile.\n## Overwrites the [member tileset]'s tile shape if [member place_only_mode] is [code]true[/code].\nvar tile_shape := TileSet.TILE_SHAPE_SQUARE\n## The layout of the tiles. Used when [member place_only_mode] is [code]true[/code].\nvar tile_layout := TileSet.TILE_LAYOUT_DIAMOND_DOWN\n## For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\nvar tile_offset_axis := TileSet.TILE_OFFSET_AXIS_HORIZONTAL\n\n\nfunc _init(_project: Project, _tileset: TileSetCustom, _name := \"\") -> void:\n\tsuper._init(_project, _name)\n\tset_tileset(_tileset)\n\tif not project.tilesets.has(tileset) and is_instance_valid(tileset):\n\t\tproject.add_tileset(tileset)\n\n\nfunc set_tileset(new_tileset: TileSetCustom) -> void:\n\tif tileset == new_tileset:\n\t\treturn\n\ttileset = new_tileset\n\tif is_instance_valid(tileset):\n\t\ttile_size = tileset.tile_size\n\t\ttile_shape = tileset.tile_shape\n\n\nfunc pass_variables_to_cel(cel: CelTileMap) -> void:\n\tcel.place_only_mode = place_only_mode\n\tcel.tile_size = tile_size\n\tcel.tile_shape = tile_shape\n\tcel.tile_layout = tile_layout\n\tcel.tile_offset_axis = tile_offset_axis\n\tif cel.place_only_mode:\n\t\tcel.queue_update_cel_portions(true)\n\n\n# Overridden Methods:\nfunc serialize() -> Dictionary:\n\tvar dict := super.serialize()\n\tdict[\"tileset_index\"] = project.tilesets.find(tileset)\n\tdict[\"place_only_mode\"] = place_only_mode\n\tdict[\"tile_size\"] = tile_size\n\tdict[\"tile_shape\"] = tile_shape\n\tdict[\"tile_layout\"] = tile_layout\n\tdict[\"tile_offset_axis\"] = tile_offset_axis\n\treturn dict\n\n\nfunc deserialize(dict: Dictionary) -> void:\n\tsuper.deserialize(dict)\n\tnew_cels_linked = dict.new_cels_linked\n\tvar tileset_index = dict.get(\"tileset_index\")\n\ttileset = project.tilesets[tileset_index]\n\tplace_only_mode = dict.get(\"place_only_mode\", place_only_mode)\n\tif dict.has(\"tile_size\"):\n\t\tvar tile_size_from_dict = dict.get(\"tile_size\")\n\t\tif typeof(tile_size_from_dict) == TYPE_VECTOR2I:\n\t\t\ttile_size = tile_size_from_dict\n\t\telse:\n\t\t\ttile_size = str_to_var(\"Vector2i\" + tile_size_from_dict)\n\ttile_shape = dict.get(\"tile_shape\", tile_shape)\n\ttile_layout = dict.get(\"tile_layout\", tile_layout)\n\ttile_offset_axis = dict.get(\"tile_offset_axis\", tile_offset_axis)\n\n\nfunc get_layer_type() -> int:\n\treturn Global.LayerTypes.TILEMAP\n\n\nfunc new_empty_cel() -> BaseCel:\n\tvar format := project.get_image_format()\n\tvar is_indexed := project.is_indexed()\n\tvar image := ImageExtended.create_custom(\n\t\tproject.size.x, project.size.y, false, format, is_indexed\n\t)\n\tvar cel_tilemap := CelTileMap.new(tileset, image)\n\tpass_variables_to_cel(cel_tilemap)\n\treturn cel_tilemap\n\n\nfunc new_cel_from_image(image: Image) -> PixelCel:\n\tvar image_extended := ImageExtended.new()\n\timage_extended.copy_from_custom(image, project.is_indexed())\n\tvar cel_tilemap := CelTileMap.new(tileset, image_extended)\n\tpass_variables_to_cel(cel_tilemap)\n\treturn cel_tilemap\n\n\nfunc set_name_to_default(number: int) -> void:\n\tname = tr(\"Tilemap\") + \" %s\" % number\n"
  },
  {
    "path": "src/Classes/Layers/LayerTileMap.gd.uid",
    "content": "uid://cq77weuveyivr\n"
  },
  {
    "path": "src/Classes/Layers/PixelLayer.gd",
    "content": "class_name PixelLayer\nextends BaseLayer\n## A class for standard pixel layer properties.\n\n\nfunc _init(_project: Project, _name := \"\") -> void:\n\tproject = _project\n\tname = _name\n\n\n# Overridden Methods:\n\n\nfunc serialize() -> Dictionary:\n\tvar dict := super.serialize()\n\tdict[\"type\"] = get_layer_type()\n\tdict[\"new_cels_linked\"] = new_cels_linked\n\treturn dict\n\n\nfunc deserialize(dict: Dictionary) -> void:\n\tsuper.deserialize(dict)\n\tnew_cels_linked = dict.new_cels_linked\n\n\nfunc get_layer_type() -> int:\n\treturn Global.LayerTypes.PIXEL\n\n\nfunc new_empty_cel() -> BaseCel:\n\tvar format := project.get_image_format()\n\tvar is_indexed := project.is_indexed()\n\tvar image := ImageExtended.create_custom(\n\t\tproject.size.x, project.size.y, false, format, is_indexed\n\t)\n\treturn PixelCel.new(image)\n\n\nfunc new_cel_from_image(image: Image) -> PixelCel:\n\tvar pixelorama_image := ImageExtended.new()\n\tpixelorama_image.copy_from_custom(image, project.is_indexed())\n\treturn PixelCel.new(pixelorama_image)\n\n\nfunc can_layer_get_drawn() -> bool:\n\treturn can_layer_be_modified()\n"
  },
  {
    "path": "src/Classes/Layers/PixelLayer.gd.uid",
    "content": "uid://lso3tqe4yk8b\n"
  },
  {
    "path": "src/Classes/ObjParse.gd",
    "content": "class_name ObjParse\nextends Object\n## A static helper script for parsing OBJ/MTL files at runtime.\n\n# gd-obj\n# https://github.com/Ezcha/gd-obj\n#\n# Created on 7/11/2018\n# Refactored 9/18/2025\n#\n# Originally made by Dylan (https://ezcha.net)\n# Contributors: DaniKog, deakcor, jeffgamedev, kb173\n#\n# MIT License\n# https://github.com/Ezcha/gd-obj/blob/master/LICENSE\n\nconst PRINT_DEBUG: bool = false\nconst PRINT_COMMENTS: bool = false\nconst TEXTURE_KEYS: Array[String] = [\n\t\"map_kd\", \"map_disp\", \"disp\", \"map_bump\", \"map_normal\", \"bump\", \"map_ao\", \"map_ks\"\n]\n\n# Main functions\n\n\n## Returns a mesh parsed from obj and mtl paths\nstatic func from_path(obj_path: String, mtl_path: String = \"\") -> Mesh:\n\tvar obj_str: String = _read_file_str(obj_path)\n\tif obj_str.is_empty():\n\t\treturn null\n\tif mtl_path.is_empty():\n\t\tvar mtl_filename: String = _get_mtl_filename(obj_str)\n\t\tif mtl_filename.is_empty():\n\t\t\treturn _create_obj(obj_str, {})\n\t\tmtl_path = obj_path.get_base_dir() + \"/\" + mtl_filename\n\tvar materials: Dictionary[String, StandardMaterial3D] = _create_mtl(\n\t\t_read_file_str(mtl_path), _get_mtl_tex(mtl_path)\n\t)\n\treturn _create_obj(obj_str, materials)\n\n\n## Returns a mesh parsed from an OBJ string\nstatic func from_obj_string(\n\tobj_data: String, materials: Dictionary[String, StandardMaterial3D] = {}\n) -> Mesh:\n\treturn _create_obj(obj_data, materials)\n\n\n## Returns materials parsed from an MTL string\nstatic func from_mtl_string(\n\tmtl_data: String, textures: Dictionary[String, ImageTexture] = {}\n) -> Dictionary[String, StandardMaterial3D]:\n\treturn _create_mtl(mtl_data, textures)\n\n\n# Internal functions\n\n\nstatic func _prefix_print(...args: Array) -> void:\n\targs.insert(0, \"[ObjParse]\")\n\tprints(args)\n\n\nstatic func _debug_msg(...args: Array) -> void:\n\tif !PRINT_DEBUG:\n\t\treturn\n\t_prefix_print(args)\n\n\n# Get data from file path\nstatic func _read_file_str(path: String) -> String:\n\tif path.is_empty():\n\t\treturn \"\"\n\tvar file: FileAccess = FileAccess.open(path, FileAccess.READ)\n\tif file == null:\n\t\treturn \"\"\n\treturn file.get_as_text()\n\n\n# Get textures from mtl path\nstatic func _get_mtl_tex(mtl_path: String) -> Dictionary[String, ImageTexture]:\n\tvar file_paths: Array[String] = _get_mtl_tex_paths(mtl_path)\n\tvar textures: Dictionary[String, ImageTexture] = {}\n\tfor k: String in file_paths:\n\t\tvar img: Image = _get_image(mtl_path, k)\n\t\tif img.is_empty():\n\t\t\tcontinue\n\t\ttextures[k] = ImageTexture.create_from_image(img)\n\treturn textures\n\n\n# Get textures paths from mtl path\nstatic func _get_mtl_tex_paths(mtl_path: String) -> Array[String]:\n\tvar file: FileAccess = FileAccess.open(mtl_path, FileAccess.READ)\n\tif file == null:\n\t\treturn []\n\tvar paths: Array[String] = []\n\tvar lines: PackedStringArray = file.get_as_text().split(\"\\n\", false)\n\tfor line: String in lines:\n\t\tvar parts: PackedStringArray = line.split(\" \", false, 1)\n\t\tif !TEXTURE_KEYS.has(parts[0].to_lower()):\n\t\t\tcontinue\n\t\tif paths.has(parts[1]):\n\t\t\tcontinue\n\t\tpaths.append(parts[1])\n\treturn paths\n\n\nstatic func _get_mtl_filename(obj: String) -> String:\n\tvar lines: PackedStringArray = obj.split(\"\\n\")\n\tfor line: String in lines:\n\t\tvar split: PackedStringArray = line.split(\" \", false)\n\t\tif split.size() < 2:\n\t\t\tcontinue\n\t\tif split[0] != \"mtllib\":\n\t\t\tcontinue\n\t\treturn split[1].strip_edges()\n\treturn \"\"\n\n\nstatic func _create_mtl(\n\tobj: String, textures: Dictionary[String, ImageTexture]\n) -> Dictionary[String, StandardMaterial3D]:\n\tif obj.is_empty():\n\t\treturn {}\n\tvar materials: Dictionary[String, StandardMaterial3D] = {}\n\tvar current_material: StandardMaterial3D = null\n\tvar lines: PackedStringArray = obj.split(\"\\n\", false)\n\tfor line: String in lines:\n\t\tvar parts: PackedStringArray = line.split(\" \", false)\n\t\tmatch parts[0].to_lower():\n\t\t\t\"#\":\n\t\t\t\tif !PRINT_COMMENTS:\n\t\t\t\t\tcontinue\n\t\t\t\t_prefix_print(line)\n\t\t\t\"newmtl\":\n\t\t\t\t# New material\n\t\t\t\tif parts.size() < 2:\n\t\t\t\t\t_debug_msg(\"New material is missing a name\")\n\t\t\t\t\tcontinue\n\t\t\t\tvar mat_name: String = parts[1].strip_edges()\n\t\t\t\t_debug_msg(\"Adding new material\", mat_name)\n\t\t\t\tcurrent_material = StandardMaterial3D.new()\n\t\t\t\tmaterials[mat_name] = current_material\n\t\t\t\"kd\":\n\t\t\t\t# Albedo color\n\t\t\t\tif parts.size() < 4:\n\t\t\t\t\t_debug_msg(\"Invalid albedo/diffuse color\")\n\t\t\t\t\tcontinue\n\t\t\t\tcurrent_material.albedo_color = Color(\n\t\t\t\t\tparts[1].to_float(), parts[2].to_float(), parts[3].to_float()\n\t\t\t\t)\n\t\t\t\"map_kd\":\n\t\t\t\t# Albedo texture\n\t\t\t\tvar path: String = line.split(\" \", false, 1)[1]\n\t\t\t\tif !textures.has(path):\n\t\t\t\t\tcontinue\n\t\t\t\tcurrent_material.albedo_texture = textures[path]\n\t\t\t\"map_disp\", \"disp\":\n\t\t\t\t# Heightmap\n\t\t\t\tvar path: String = line.split(\" \", false, 1)[1]\n\t\t\t\tif !textures.has(path):\n\t\t\t\t\tcontinue\n\t\t\t\tcurrent_material.heightmap_enabled = true\n\t\t\t\tcurrent_material.heightmap_texture = textures[path]\n\t\t\t\"map_bump\", \"map_normal\", \"bump\":\n\t\t\t\t# Normal map\n\t\t\t\tvar path: String = line.split(\" \", false, 1)[1]\n\t\t\t\tif !textures.has(path):\n\t\t\t\t\tcontinue\n\t\t\t\tcurrent_material.normal_enabled = true\n\t\t\t\tcurrent_material.normal_texture = textures[path]\n\t\t\t\"map_ao\":\n\t\t\t\t# AO map\n\t\t\t\tvar path: String = line.split(\" \", false, 1)[1]\n\t\t\t\tif !textures.has(path):\n\t\t\t\t\tcontinue\n\t\t\t\tcurrent_material.ao_texture = textures[path]\n\t\t\t\"map_ks\":\n\t\t\t\t# Roughness map\n\t\t\t\tvar path: String = line.split(\" \", false, 1)[1]\n\t\t\t\tif !textures.has(path):\n\t\t\t\t\tcontinue\n\t\t\t\tcurrent_material.roughness_texture = textures[path]\n\t\t\t_:\n\t\t\t\t# Unsupported feature\n\t\t\t\tpass\n\treturn materials\n\n\nstatic func _parse_mtl_file(path: String) -> Dictionary[String, StandardMaterial3D]:\n\treturn _create_mtl(_read_file_str(path), _get_mtl_tex(path))\n\n\nstatic func _get_image(mtl_filepath: String, tex_filename: String) -> Image:\n\t_debug_msg(\"Mapping texture file\", tex_filename)\n\tvar tex_filepath: String = tex_filename\n\tif tex_filename.is_relative_path():\n\t\ttex_filepath = mtl_filepath.get_base_dir() + \"/\" + tex_filename\n\t\ttex_filepath = tex_filepath.strip_edges()\n\tvar file_type: String = tex_filepath.get_extension()\n\t_debug_msg(\"Texture file path:\", tex_filepath, \"of type\", file_type)\n\n\tvar img: Image = Image.new()\n\timg.load(tex_filepath)\n\treturn img\n\n\nstatic func _get_texture(mtl_filepath, tex_filename) -> ImageTexture:\n\tvar tex = ImageTexture.create_from_image(_get_image(mtl_filepath, tex_filename))\n\t_debug_msg(\"Texture is\", str(tex))\n\treturn tex\n\n\nstatic func _create_obj(obj: String, materials: Dictionary[String, StandardMaterial3D]) -> Mesh:\n\t# Prepare\n\tvar mat_name: String = \"_default\"\n\tif !materials.has(\"_default\"):\n\t\tmaterials[\"_default\"] = StandardMaterial3D.new()\n\tvar mesh: ArrayMesh = ArrayMesh.new()\n\tvar vertices: PackedVector3Array = PackedVector3Array([Vector3.ZERO])\n\tvar normals: PackedVector3Array = PackedVector3Array([Vector3.ONE])\n\tvar uvs: PackedVector2Array = PackedVector2Array([Vector2.ZERO])\n\tvar faces: Dictionary[String, Array] = {}\n\tfor mat_key: String in materials.keys():\n\t\tfaces[mat_key] = []\n\n\t# Parse\n\tvar lines: PackedStringArray = obj.split(\"\\n\", false)\n\tfor line: String in lines:\n\t\tif line.is_empty():\n\t\t\tcontinue\n\t\tvar feature: String = line.substr(0, line.find(\" \"))\n\t\tmatch feature:\n\t\t\t\"#\":\n\t\t\t\t# Comment\n\t\t\t\tif !PRINT_COMMENTS:\n\t\t\t\t\tcontinue\n\t\t\t\t_prefix_print(line)\n\t\t\t\"v\":\n\t\t\t\t# Vertice\n\t\t\t\tvar line_remaining: String = line.substr(feature.length() + 1)\n\t\t\t\tvar parts: PackedFloat64Array = line_remaining.split_floats(\" \")\n\t\t\t\tvar n_v: Vector3 = Vector3(parts[0], parts[1], parts[2])\n\t\t\t\tvertices.append(n_v)\n\t\t\t\"vn\":\n\t\t\t\t# Normal\n\t\t\t\tvar line_remaining: String = line.substr(feature.length() + 1)\n\t\t\t\tvar parts: PackedFloat64Array = line_remaining.split_floats(\" \")\n\t\t\t\tvar n_vn: Vector3 = Vector3(parts[0], parts[1], parts[2])\n\t\t\t\tnormals.append(n_vn)\n\t\t\t\"vt\":\n\t\t\t\t# UV\n\t\t\t\tvar line_remaining: String = line.substr(feature.length() + 1)\n\t\t\t\tvar parts: PackedFloat64Array = line_remaining.split_floats(\" \")\n\t\t\t\tvar n_uv: Vector2 = Vector2(parts[0], 1 - parts[1])\n\t\t\t\tuvs.append(n_uv)\n\t\t\t\"usemtl\":\n\t\t\t\t# Material group\n\t\t\t\tmat_name = line.substr(feature.length() + 1).strip_edges()\n\t\t\t\t# Fallback to default if material is not available\n\t\t\t\tif faces.has(mat_name):\n\t\t\t\t\tcontinue\n\t\t\t\tmat_name = \"_default\"\n\t\t\t\"f\":\n\t\t\t\t# Face\n\t\t\t\tvar line_remaining: String = line.substr(feature.length() + 1)\n\t\t\t\tvar def_count: int = line_remaining.count(\" \") + 1\n\t\t\t\tvar components_per: int = (\n\t\t\t\t\tline_remaining.substr(0, line_remaining.find(\" \") - 1).count(\"/\") + 1\n\t\t\t\t)\n\t\t\t\tvar sectioned: bool = components_per > 1\n\t\t\t\tif line_remaining.find(\"/\"):\n\t\t\t\t\tline_remaining = line_remaining.replace(\"//\", \" 0 \").replace(\"/\", \" \")\n\t\t\t\tvar parts: PackedFloat64Array = line_remaining.split_floats(\" \", false)\n\t\t\t\tif sectioned:\n\t\t\t\t\tif parts.size() % components_per != 0:\n\t\t\t\t\t\t_debug_msg(\"Face needs 3+ parts to be valid\")\n\t\t\t\t\t\tcontinue\n\t\t\t\telif parts.size() < 3:\n\t\t\t\t\t_debug_msg(\"Face needs 3+ parts to be valid\")\n\t\t\t\t\tcontinue\n\t\t\t\tvar face: ObjParseFace = ObjParseFace.new()\n\t\t\t\tfor cursor: int in def_count:\n\t\t\t\t\tif sectioned:\n\t\t\t\t\t\tcursor *= components_per\n\t\t\t\t\tface.v.append(int(parts[cursor]))\n\t\t\t\t\tface.vt.append(int(parts[cursor + 1]) if sectioned else 0)\n\t\t\t\t\tface.vn.append(int(parts[cursor + 2]) if sectioned else 0)\n\t\t\t\t# Continue if already a tri\n\t\t\t\tif def_count == 3:\n\t\t\t\t\tfaces[mat_name].append(face)\n\t\t\t\t\tcontinue\n\t\t\t\t# Quad/ngon detected, triangulate\n\t\t\t\tfor i: int in range(1, def_count - 1):\n\t\t\t\t\tvar tri_face: ObjParseFace = ObjParseFace.new()\n\t\t\t\t\ttri_face.v.append(face.v[0])\n\t\t\t\t\ttri_face.v.append(face.v[i])\n\t\t\t\t\ttri_face.v.append(face.v[i + 1])\n\t\t\t\t\ttri_face.vt.append(face.vt[0])\n\t\t\t\t\ttri_face.vt.append(face.vt[i])\n\t\t\t\t\ttri_face.vt.append(face.vt[i + 1])\n\t\t\t\t\ttri_face.vn.append(face.vn[0])\n\t\t\t\t\ttri_face.vn.append(face.vn[i])\n\t\t\t\t\ttri_face.vn.append(face.vn[i + 1])\n\t\t\t\t\tfaces[mat_name].append(tri_face)\n\t\t\t_:\n\t\t\t\t# Unsupported feature\n\t\t\t\tpass\n\n\t# Skip if no faces were parsed\n\tif faces.size() == 1 && faces[\"_default\"].is_empty():\n\t\treturn mesh\n\n\t# Make tri\n\tfor mat_group: String in faces.keys():\n\t\t_debug_msg(\n\t\t\t\"Creating surface for material\",\n\t\t\tmat_group,\n\t\t\t\"with\",\n\t\t\tstr(faces[mat_group].size()),\n\t\t\t\"faces\"\n\t\t)\n\n\t\t# Prepare mesh assembly\n\t\tvar st: SurfaceTool = SurfaceTool.new()\n\t\tst.begin(Mesh.PRIMITIVE_TRIANGLES)\n\n\t\t# Determine material\n\t\tif !materials.has(mat_group):\n\t\t\tmaterials[mat_group] = StandardMaterial3D.new()\n\t\tst.set_material(materials[mat_group])\n\n\t\t# Assembly\n\t\tfor face: ObjParseFace in faces[mat_group]:\n\t\t\t# Vertices\n\t\t\tvar fan_v: PackedVector3Array = PackedVector3Array()\n\t\t\tfan_v.append(vertices[face.v[0]])\n\t\t\tfan_v.append(vertices[face.v[2]])\n\t\t\tfan_v.append(vertices[face.v[1]])\n\t\t\t# Normals\n\t\t\tvar fan_vn: PackedVector3Array = PackedVector3Array()\n\t\t\tfan_vn.append(normals[face.vn[0]])\n\t\t\tfan_vn.append(normals[face.vn[2]])\n\t\t\tfan_vn.append(normals[face.vn[1]])\n\t\t\t# Textures\n\t\t\tvar fan_vt: PackedVector2Array = PackedVector2Array()\n\t\t\tfor k: int in [0, 2, 1]:\n\t\t\t\tvar f = face.vt[k]\n\t\t\t\tif f < 0 || f >= uvs.size():\n\t\t\t\t\tcontinue\n\t\t\t\tvar uv: Vector2 = uvs[f]\n\t\t\t\tfan_vt.append(uv)\n\t\t\tst.add_triangle_fan(fan_v, fan_vt, PackedColorArray(), PackedVector2Array(), fan_vn, [])\n\n\t\t# Append to final mesh\n\t\tmesh = st.commit(mesh)\n\n\t# Apply materials to surfaces\n\tfor k: int in mesh.get_surface_count():\n\t\tvar mat: Material = mesh.surface_get_material(k)\n\t\tmat_name = \"\"\n\t\tfor m: String in materials:\n\t\t\tif materials[m] != mat:\n\t\t\t\tcontinue\n\t\t\tmat_name = m\n\t\tmesh.surface_set_name(k, mat_name)\n\n\t# All done!\n\treturn mesh\n\n\nclass ObjParseFace:\n\textends RefCounted\n\tvar v: PackedInt32Array = PackedInt32Array()\n\tvar vt: PackedInt32Array = PackedInt32Array()\n\tvar vn: PackedInt32Array = PackedInt32Array()\n"
  },
  {
    "path": "src/Classes/ObjParse.gd.uid",
    "content": "uid://tivy8vf4s177\n"
  },
  {
    "path": "src/Classes/Project.gd",
    "content": "# gdlint: ignore=max-public-methods\nclass_name Project\nextends RefCounted\n## A class for project properties.\n\nsignal removed\nsignal serialized(dict: Dictionary)\nsignal about_to_deserialize(dict: Dictionary)\nsignal resized\nsignal fps_changed\nsignal layers_updated\nsignal frames_updated\nsignal tags_changed\n\nconst INDEXED_MODE := Image.FORMAT_MAX + 1\n\nvar name := \"\":\n\tset(value):\n\t\tname = value\n\t\tvar project_index := Global.projects.find(self)\n\t\tif project_index < Global.tabs.tab_count and project_index > -1:\n\t\t\tGlobal.tabs.set_tab_title(project_index, name)\nvar size: Vector2i:\n\tset = _size_changed\nvar undo_redo := UndoRedo.new()\nvar tiles: Tiles\nvar can_undo := true\nvar color_mode: int = Image.FORMAT_RGBA8:\n\tset(value):\n\t\tif color_mode != value:\n\t\t\tcolor_mode = value\n\t\t\tfor cel in get_all_pixel_cels():\n\t\t\t\tcel.set_indexed_mode(is_indexed())\n\t\tGlobal.canvas.color_index.queue_redraw()\nvar fill_color := Color(0)\nvar has_changed := false:\n\tset(value):\n\t\thas_changed = value\n\t\tif value:\n\t\t\tGlobal.project_data_changed.emit(self)\n\t\t\tGlobal.tabs.set_tab_title(Global.tabs.current_tab, name + \"(*)\")\n\t\t\tJavaScriptBridge.eval(\"setUnsavedChanges(true);\")\n\t\telse:\n\t\t\tGlobal.tabs.set_tab_title(Global.tabs.current_tab, name)\n\t\t\tJavaScriptBridge.eval(\"setUnsavedChanges(false);\")\n# frames and layers Arrays should generally only be modified directly when\n# opening/creating a project. When modifying the current project, use\n# the add/remove/move/swap_frames/layers methods\nvar frames: Array[Frame] = []\nvar layers: Array[BaseLayer] = []\nvar current_frame := 0\nvar current_layer := 0\nvar selected_cels := [[0, 0]]  ## Array of Arrays of 2 integers (frame & layer)\n## Array that contains the order of the [BaseLayer] indices that are being drawn.\n## Takes into account each [BaseCel]'s invidiual z-index. If all z-indexes are 0, then the\n## array just contains the indices of the layers in increasing order.\n## See [method order_layers].\nvar ordered_layers: Array[int] = [0]\n\nvar animation_tags: Array[AnimationTag] = []:\n\tset(value):\n\t\tanimation_tags = value\n\t\ttags_changed.emit()\nvar guides: Array[Guide] = []\nvar brushes: Array[Image] = []\nvar palettes: Dictionary[String, Palette] = {}\n## Name of selected palette (for \"project\" palettes only)\nvar project_current_palette_name: String = \"\"\nvar reference_images: Array[ReferenceImage] = []\nvar reference_index: int = -1  ## The currently selected index ReferenceImage\nvar vanishing_points := []  ## Array of Vanishing Points\nvar fps := 6.0:\n\tset(value):\n\t\tfps = value\n\t\tfps_changed.emit()\nvar user_data := \"\"  ## User defined data, set in the project properties.\n\nvar x_symmetry_point: float\nvar y_symmetry_point: float\nvar xy_symmetry_point: Vector2\nvar x_minus_y_symmetry_point: Vector2\nvar x_symmetry_axis := SymmetryGuide.new()\nvar y_symmetry_axis := SymmetryGuide.new()\nvar diagonal_xy_symmetry_axis := SymmetryGuide.new()\nvar diagonal_x_minus_y_symmetry_axis := SymmetryGuide.new()\n\nvar selection_map := SelectionMap.new()\n## This is useful for when the selection is outside of the canvas boundaries,\n## on the left and/or above (negative coords)\nvar selection_offset := Vector2i.ZERO:\n\tset(value):\n\t\tselection_offset = value\n\t\tGlobal.canvas.selection.marching_ants_outline.offset = selection_offset\nvar has_selection := false\nvar tilesets: Array[TileSetCustom]\n\n## For every camera (currently there are 3)\nvar cameras_rotation: PackedFloat32Array = [0.0, 0.0, 0.0]\nvar cameras_zoom: PackedVector2Array = [\n\tVector2(0.15, 0.15), Vector2(0.15, 0.15), Vector2(0.15, 0.15)\n]\nvar cameras_offset: PackedVector2Array = [Vector2.ZERO, Vector2.ZERO, Vector2.ZERO]\n\n# Export directory path and export file name\nvar save_path := \"\"\nvar export_directory_path := \"\"\nvar file_name := \"untitled\"\nvar file_format := Export.FileFormat.PNG\nvar was_exported := false\nvar export_overwrite := false\nvar backup_path := \"\"\n\n\nfunc _init(_frames: Array[Frame] = [], _name := tr(\"untitled\"), _size := Vector2i(64, 64)) -> void:\n\tframes = _frames\n\tname = _name\n\tsize = _size\n\ttiles = Tiles.new(size)\n\tselection_map.copy_from(Image.create(size.x, size.y, false, Image.FORMAT_LA8))\n\tGlobal.tabs.add_tab(name)\n\tundo_redo.max_steps = Global.max_undo_steps\n\n\tx_symmetry_point = size.x - 1\n\ty_symmetry_point = size.y - 1\n\txy_symmetry_point = size * 0.5\n\tx_minus_y_symmetry_point = xy_symmetry_point\n\tx_symmetry_axis.type = Guide.Types.HORIZONTAL\n\tx_symmetry_axis.project = self\n\tx_symmetry_axis.add_point(Vector2(-19999, y_symmetry_point / 2 + 0.5))\n\tx_symmetry_axis.add_point(Vector2(19999, y_symmetry_point / 2 + 0.5))\n\tGlobal.canvas.add_child(x_symmetry_axis)\n\n\ty_symmetry_axis.type = Guide.Types.VERTICAL\n\ty_symmetry_axis.project = self\n\ty_symmetry_axis.add_point(Vector2(x_symmetry_point / 2 + 0.5, -19999))\n\ty_symmetry_axis.add_point(Vector2(x_symmetry_point / 2 + 0.5, 19999))\n\tGlobal.canvas.add_child(y_symmetry_axis)\n\n\tdiagonal_xy_symmetry_axis.type = Guide.Types.XY\n\tdiagonal_xy_symmetry_axis.project = self\n\tdiagonal_xy_symmetry_axis.add_point(Vector2(19999, -19999))\n\tdiagonal_xy_symmetry_axis.add_point(Vector2(-19999, 19999) + xy_symmetry_point * 2.0)\n\tGlobal.canvas.add_child(diagonal_xy_symmetry_axis)\n\n\tdiagonal_x_minus_y_symmetry_axis.type = Guide.Types.X_MINUS_Y\n\tdiagonal_x_minus_y_symmetry_axis.project = self\n\tdiagonal_x_minus_y_symmetry_axis.add_point(Vector2(-19999, -19999))\n\tdiagonal_x_minus_y_symmetry_axis.add_point(\n\t\tVector2(19999, 19999) + x_minus_y_symmetry_point * 2.0\n\t)\n\tGlobal.canvas.add_child(diagonal_x_minus_y_symmetry_axis)\n\n\tif OS.get_name() == \"Web\":\n\t\texport_directory_path = \"user://\"\n\telse:\n\t\texport_directory_path = Global.config_cache.get_value(\n\t\t\t\"data\", \"current_dir\", OS.get_system_dir(OS.SYSTEM_DIR_DESKTOP)\n\t\t)\n\tGlobal.project_created.emit(self)\n\n\nfunc remove() -> void:\n\tundo_redo.free()\n\tfor ri in reference_images:\n\t\tri.queue_free()\n\tfor guide in guides:\n\t\tguide.queue_free()\n\tfor frame in frames:\n\t\tfor l in layers.size():\n\t\t\tvar cel: BaseCel = frame.cels[l]\n\t\t\tcel.on_remove()\n\t# Prevents memory leak (due to the layers' project reference stopping ref counting from freeing)\n\tlayers.clear()\n\tGlobal.projects.erase(self)\n\tremoved.emit()\n\n\nfunc commit_undo() -> void:\n\tif not can_undo:\n\t\treturn\n\tif Global.canvas.selection.transformation_handles.is_transforming_content():\n\t\tGlobal.canvas.selection.transform_content_cancel()\n\telse:\n\t\tundo_redo.undo()\n\n\nfunc commit_redo() -> void:\n\tif not can_undo:\n\t\treturn\n\tGlobal.control.redone = true\n\tundo_redo.redo()\n\tGlobal.control.redone = false\n\n\nfunc new_empty_frame() -> Frame:\n\tvar frame := Frame.new()\n\tvar bottom_layer := true\n\tfor l in layers:  # Create as many cels as there are layers\n\t\tvar cel := l.new_empty_cel()\n\t\tif cel is PixelCel and bottom_layer and fill_color.a > 0:\n\t\t\tcel.image.fill(fill_color)\n\t\tframe.cels.append(cel)\n\t\tbottom_layer = false\n\treturn frame\n\n\n## Returns a new [Image] of size [member size] and format [method get_image_format].\nfunc new_empty_image() -> Image:\n\treturn Image.create(size.x, size.y, false, get_image_format())\n\n\n## Returns the currently selected [BaseCel].\nfunc get_current_cel() -> BaseCel:\n\treturn frames[current_frame].cels[current_layer]\n\n\nfunc get_image_format() -> Image.Format:\n\tif color_mode == INDEXED_MODE:\n\t\treturn Image.FORMAT_RGBA8\n\treturn color_mode as Image.Format\n\n\nfunc is_indexed() -> bool:\n\treturn color_mode == INDEXED_MODE\n\n\nfunc selection_map_changed() -> void:\n\thas_selection = !selection_map.is_invisible()\n\tvar transformation_handles := Global.canvas.selection.transformation_handles\n\tif has_selection:\n\t\tvar used_map := SelectionMap.new()\n\t\tused_map.copy_from(selection_map.get_region(selection_map.get_used_rect()))\n\t\ttransformation_handles.set_selection(used_map, selection_map.get_selection_rect(self))\n\telse:\n\t\ttransformation_handles.set_selection(null, Rect2i())\n\tGlobal.top_menu_container.edit_menu.set_item_disabled(Global.EditMenu.NEW_BRUSH, !has_selection)\n\tGlobal.top_menu_container.project_menu.set_item_disabled(\n\t\tGlobal.ProjectMenu.CROP_TO_SELECTION, !has_selection\n\t)\n\n\nfunc change_project() -> void:\n\tanimation_tags = animation_tags\n\t# Change the project brushes\n\tBrushes.clear_project_brush()\n\tfor brush in brushes:\n\t\tBrushes.add_project_brush(brush)\n\tGlobal.transparent_checker.update_rect()\n\tGlobal.get_window().title = \"%s - Pixelorama %s\" % [name, Global.current_version]\n\tif has_changed:\n\t\tGlobal.get_window().title = Global.get_window().title + \"(*)\"\n\tselection_map_changed()\n\n\nfunc serialize() -> Dictionary:\n\tvar layer_data := []\n\tfor layer in layers:\n\t\tlayer_data.append(layer.serialize())\n\t\tlayer_data[-1][\"metadata\"] = _serialize_metadata(layer)\n\tvar palette_data := []\n\tfor palette_name in palettes:\n\t\tvar data: String = palettes[palette_name].serialize()\n\t\tpalette_data.append({palette_name: data})\n\tvar tag_data := []\n\tfor tag in animation_tags:\n\t\ttag_data.append(tag.serialize())\n\tvar guide_data := []\n\tfor guide in guides:\n\t\tif guide is SymmetryGuide:\n\t\t\tcontinue\n\t\tif !is_instance_valid(guide):\n\t\t\tcontinue\n\t\tvar coords := guide.points[0].x\n\t\tif guide.type == Guide.Types.HORIZONTAL:\n\t\t\tcoords = guide.points[0].y\n\t\tguide_data.append({\"type\": guide.type, \"pos\": coords})\n\n\tvar frame_data := []\n\tfor frame in frames:\n\t\tvar cel_data := []\n\t\tfor cel in frame.cels:\n\t\t\tcel_data.append(cel.serialize())\n\t\t\tcel_data[-1][\"metadata\"] = _serialize_metadata(cel)\n\n\t\tvar current_frame_data := {\n\t\t\t\"cels\": cel_data, \"duration\": frame.duration, \"metadata\": _serialize_metadata(frame)\n\t\t}\n\t\tif not frame.user_data.is_empty():\n\t\t\tcurrent_frame_data[\"user_data\"] = frame.user_data\n\t\tframe_data.append(current_frame_data)\n\tvar brush_data := []\n\tfor brush in brushes:\n\t\tbrush_data.append({\"size_x\": brush.get_size().x, \"size_y\": brush.get_size().y})\n\n\tvar reference_image_data := []\n\tfor reference_image in reference_images:\n\t\treference_image_data.append(reference_image.serialize())\n\tvar tileset_data := []\n\tfor tileset in tilesets:\n\t\ttileset_data.append(tileset.serialize())\n\n\tvar metadata := _serialize_metadata(self)\n\n\tvar project_data := {\n\t\t\"pixelorama_version\": Global.current_version,\n\t\t\"pxo_version\": ProjectSettings.get_setting(\"application/config/Pxo_Version\"),\n\t\t\"size_x\": size.x,\n\t\t\"size_y\": size.y,\n\t\t\"color_mode\": color_mode,\n\t\t\"tile_mode_x_basis_x\": tiles.x_basis.x,\n\t\t\"tile_mode_x_basis_y\": tiles.x_basis.y,\n\t\t\"tile_mode_y_basis_x\": tiles.y_basis.x,\n\t\t\"tile_mode_y_basis_y\": tiles.y_basis.y,\n\t\t\"layers\": layer_data,\n\t\t\"tags\": tag_data,\n\t\t\"guides\": guide_data,\n\t\t\"symmetry_points\": [x_symmetry_point, y_symmetry_point],\n\t\t\"frames\": frame_data,\n\t\t\"current_frame\": current_frame,\n\t\t\"current_layer\": current_layer,\n\t\t\"brushes\": brush_data,\n\t\t\"palettes\": palette_data,\n\t\t\"project_current_palette_name\": project_current_palette_name,\n\t\t\"reference_images\": reference_image_data,\n\t\t\"tilesets\": tileset_data,\n\t\t\"vanishing_points\": vanishing_points,\n\t\t\"export_directory_path\": export_directory_path,\n\t\t\"export_file_name\": file_name,\n\t\t\"export_file_format\": file_format,\n\t\t\"fps\": fps,\n\t\t\"user_data\": user_data,\n\t\t\"metadata\": metadata\n\t}\n\n\tserialized.emit(project_data)\n\treturn project_data\n\n\nfunc deserialize(dict: Dictionary, zip_reader: ZIPReader = null, file: FileAccess = null) -> void:\n\tabout_to_deserialize.emit(dict)\n\tvar pxo_version = dict.get(\n\t\t\"pxo_version\", ProjectSettings.get_setting(\"application/config/Pxo_Version\")\n\t)\n\tif dict.has(\"size_x\") and dict.has(\"size_y\"):\n\t\tsize.x = dict.size_x\n\t\tsize.y = dict.size_y\n\t\ttiles.tile_size = size\n\t\tselection_map.crop(size.x, size.y)\n\tcolor_mode = dict.get(\"color_mode\", color_mode)\n\tif dict.has(\"tile_mode_x_basis_x\") and dict.has(\"tile_mode_x_basis_y\"):\n\t\ttiles.x_basis.x = dict.tile_mode_x_basis_x\n\t\ttiles.x_basis.y = dict.tile_mode_x_basis_y\n\tif dict.has(\"tile_mode_y_basis_x\") and dict.has(\"tile_mode_y_basis_y\"):\n\t\ttiles.y_basis.x = dict.tile_mode_y_basis_x\n\t\ttiles.y_basis.y = dict.tile_mode_y_basis_y\n\tif dict.has(\"tilesets\"):\n\t\tfor saved_tileset in dict[\"tilesets\"]:\n\t\t\tvar tile_size = str_to_var(\"Vector2i\" + saved_tileset.get(\"tile_size\"))\n\t\t\tvar tile_shape = dict.get(\"tile_shape\", TileSet.TILE_SHAPE_SQUARE)\n\t\t\tvar tileset := TileSetCustom.new(tile_size, \"\", tile_shape, false)\n\t\t\ttileset.deserialize(saved_tileset)\n\t\t\ttilesets.append(tileset)\n\tif dict.has(\"palettes\"):\n\t\t# The actual palette name could be different if a global palette of the same name is\n\t\t# already present, so we need that palette's valid name.\n\t\tvar current_palette_name: String = dict.get(\"project_current_palette_name\", \"\")\n\t\tif current_palette_name != \"\":\n\t\t\tcurrent_palette_name = Palettes.get_valid_name(current_palette_name, self)\n\t\tfor palette_entry: Dictionary in dict[\"palettes\"]:\n\t\t\tif palette_entry.keys().size() == 1:  # Failsafe\n\t\t\t\tvar palette_name: String = palette_entry.keys()[0]\n\t\t\t\t# There may be a case where a Global palette has same name as project palette\n\t\t\t\tvar corrected_palette_name := Palettes.get_valid_name(palette_name, self)\n\t\t\t\tvar palette := Palette.new(corrected_palette_name, true)\n\t\t\t\tpalette.is_project_palette = true\n\t\t\t\tpalette.deserialize(palette_entry[palette_name])\n\t\t\t\tpalettes[corrected_palette_name] = palette\n\t\tproject_current_palette_name = current_palette_name\n\tif dict.has(\"frames\") and dict.has(\"layers\"):\n\t\tvar audio_layers := 0\n\t\tfor saved_layer in dict.layers:\n\t\t\tmatch int(saved_layer.get(\"type\", Global.LayerTypes.PIXEL)):\n\t\t\t\tGlobal.LayerTypes.PIXEL:\n\t\t\t\t\tlayers.append(PixelLayer.new(self))\n\t\t\t\tGlobal.LayerTypes.GROUP:\n\t\t\t\t\tlayers.append(GroupLayer.new(self))\n\t\t\t\tGlobal.LayerTypes.THREE_D:\n\t\t\t\t\tlayers.append(Layer3D.new(self))\n\t\t\t\tGlobal.LayerTypes.TILEMAP:\n\t\t\t\t\tlayers.append(LayerTileMap.new(self, null))\n\t\t\t\tGlobal.LayerTypes.AUDIO:\n\t\t\t\t\tvar layer := AudioLayer.new(self)\n\t\t\t\t\tvar audio_path := \"audio/%s\" % audio_layers\n\t\t\t\t\tif zip_reader.file_exists(audio_path):\n\t\t\t\t\t\tvar audio_data := zip_reader.read_file(audio_path)\n\t\t\t\t\t\tvar stream: AudioStream\n\t\t\t\t\t\tif saved_layer.get(\"audio_type\", \"\") == \"AudioStreamMP3\":\n\t\t\t\t\t\t\tstream = AudioStreamMP3.new()\n\t\t\t\t\t\t\tstream.data = audio_data\n\t\t\t\t\t\telif saved_layer.get(\"audio_type\", \"\") == \"AudioStreamWAV\":\n\t\t\t\t\t\t\tstream = AudioStreamWAV.load_from_buffer(audio_data)\n\t\t\t\t\t\tlayer.audio = stream\n\t\t\t\t\tlayers.append(layer)\n\t\t\t\t\taudio_layers += 1\n\n\t\tvar frame_i := 0\n\t\tfor frame in dict.frames:\n\t\t\tvar cels: Array[BaseCel] = []\n\t\t\tvar cel_i := 0\n\t\t\tfor cel in frame.cels:\n\t\t\t\tvar layer := layers[cel_i]\n\t\t\t\tmatch layer.get_layer_type():\n\t\t\t\t\tGlobal.LayerTypes.PIXEL:\n\t\t\t\t\t\tvar image := _load_image_from_pxo(frame_i, cel_i, zip_reader, file)\n\t\t\t\t\t\tcels.append(PixelCel.new(image))\n\t\t\t\t\tGlobal.LayerTypes.GROUP:\n\t\t\t\t\t\tcels.append(GroupCel.new())\n\t\t\t\t\tGlobal.LayerTypes.THREE_D:\n\t\t\t\t\t\tif is_instance_valid(file):  # For pxo files saved in 0.x\n\t\t\t\t\t\t\t# Don't do anything with it, just read it so that the file can move on\n\t\t\t\t\t\t\tfile.get_buffer(size.x * size.y * 4)\n\t\t\t\t\t\tcels.append(Cel3D.new(size, true))\n\t\t\t\t\tGlobal.LayerTypes.TILEMAP:\n\t\t\t\t\t\tvar image := _load_image_from_pxo(frame_i, cel_i, zip_reader, file)\n\t\t\t\t\t\tvar tileset_index = dict.layers[cel_i].tileset_index\n\t\t\t\t\t\tvar tileset := tilesets[tileset_index]\n\t\t\t\t\t\tvar new_cel := CelTileMap.new(tileset, image)\n\t\t\t\t\t\tcels.append(new_cel)\n\t\t\t\t\tGlobal.LayerTypes.AUDIO:\n\t\t\t\t\t\tcels.append(AudioCel.new())\n\t\t\t\tcel[\"pxo_version\"] = pxo_version\n\t\t\t\tcels[cel_i].deserialize(cel)\n\t\t\t\t_deserialize_metadata(cels[cel_i], cel)\n\t\t\t\tcel_i += 1\n\t\t\tvar duration := 1.0\n\t\t\tif frame.has(\"duration\"):\n\t\t\t\tduration = frame.duration\n\t\t\telif dict.has(\"frame_duration\"):\n\t\t\t\tduration = dict.frame_duration[frame_i]\n\n\t\t\tvar frame_class := Frame.new(cels, duration)\n\t\t\tframe_class.user_data = frame.get(\"user_data\", \"\")\n\t\t\t_deserialize_metadata(frame_class, frame)\n\t\t\tframes.append(frame_class)\n\t\t\tframe_i += 1\n\n\t\t# Parent references to other layers are created when deserializing\n\t\t# a layer, so loop again after creating them:\n\t\tfor layer_i in dict.layers.size():\n\t\t\tvar layer := layers[layer_i]\n\t\t\tlayer.index = layer_i\n\t\t\tvar layer_dict: Dictionary = dict.layers[layer_i]\n\t\t\t# Ensure that loaded pxo files from v1.0-v1.0.3 have the correct\n\t\t\t# blend mode, after the addition of the Erase mode in v1.0.4.\n\t\t\tif pxo_version < 4 and layer_dict.has(\"blend_mode\"):\n\t\t\t\tvar blend_mode: int = layer_dict.get(\"blend_mode\")\n\t\t\t\tif blend_mode >= BaseLayer.BlendModes.ERASE:\n\t\t\t\t\tblend_mode += 1\n\t\t\t\tlayer_dict[\"blend_mode\"] = blend_mode\n\t\t\tlayer.deserialize(layer_dict)\n\t\t\t_deserialize_metadata(layer, dict.layers[layer_i])\n\t\t\tif layer is LayerTileMap:\n\t\t\t\tfor frame in frames:\n\t\t\t\t\tfor cel_i in frame.cels.size():\n\t\t\t\t\t\tif cel_i == layer_i:\n\t\t\t\t\t\t\t# Call deferred to ensure the tileset has been loaded first\n\t\t\t\t\t\t\tlayer.pass_variables_to_cel.call_deferred(frame.cels[cel_i])\n\tif dict.has(\"tags\"):\n\t\tfor tag in dict.tags:\n\t\t\tvar new_tag := AnimationTag.new(tag.name, Color(tag.color), tag.from, tag.to)\n\t\t\tnew_tag.user_data = tag.get(\"user_data\", \"\")\n\t\t\tanimation_tags.append(new_tag)\n\t\tanimation_tags = animation_tags\n\tif dict.has(\"guides\"):\n\t\tfor g in dict.guides:\n\t\t\tvar guide := Guide.new()\n\t\t\tguide.type = g.type\n\t\t\tif guide.type == Guide.Types.HORIZONTAL:\n\t\t\t\tguide.add_point(Vector2(-99999, g.pos))\n\t\t\t\tguide.add_point(Vector2(99999, g.pos))\n\t\t\telse:\n\t\t\t\tguide.add_point(Vector2(g.pos, -99999))\n\t\t\t\tguide.add_point(Vector2(g.pos, 99999))\n\t\t\tguide.has_focus = false\n\t\t\tguide.project = self\n\t\t\tGlobal.canvas.add_child(guide)\n\tif dict.has(\"reference_images\"):\n\t\tfor g in dict.reference_images:\n\t\t\tvar ri := ReferenceImage.new()\n\t\t\tri.project = self\n\t\t\tri.deserialize(g)\n\t\t\tGlobal.canvas.reference_image_container.add_child(ri)\n\tif dict.has(\"vanishing_points\"):\n\t\tvanishing_points = dict.vanishing_points\n\tif dict.has(\"symmetry_points\"):\n\t\tx_symmetry_point = dict.symmetry_points[0]\n\t\ty_symmetry_point = dict.symmetry_points[1]\n\t\tfor point in x_symmetry_axis.points.size():\n\t\t\tx_symmetry_axis.points[point].y = floorf(y_symmetry_point / 2 + 1)\n\t\tfor point in y_symmetry_axis.points.size():\n\t\t\ty_symmetry_axis.points[point].x = floorf(x_symmetry_point / 2 + 1)\n\texport_directory_path = dict.get(\"export_directory_path\", export_directory_path)\n\tif not DirAccess.dir_exists_absolute(export_directory_path):\n\t\texport_directory_path = \"\"\n\tfile_name = dict.get(\"export_file_name\", file_name)\n\tfile_format = dict.get(\"export_file_format\", file_name)\n\tfps = dict.get(\"fps\", file_name)\n\tuser_data = dict.get(\"user_data\", user_data)\n\tvar loaded_current_frame = dict.get(\"current_frame\", current_frame)\n\tvar loaded_current_layer = dict.get(\"current_layer\", current_layer)\n\t_deserialize_metadata(self, dict)\n\torder_layers()\n\tselected_cels.clear()\n\tchange_cel.call_deferred(loaded_current_frame, loaded_current_layer)\n\n\nfunc _serialize_metadata(object: Object) -> Dictionary:\n\tvar metadata := {}\n\tfor meta in object.get_meta_list():\n\t\tmetadata[meta] = object.get_meta(meta)\n\treturn metadata\n\n\nfunc _deserialize_metadata(object: Object, dict: Dictionary) -> void:\n\tif not dict.has(\"metadata\"):\n\t\treturn\n\tvar metadata: Dictionary = dict[\"metadata\"]\n\tfor meta in metadata.keys():\n\t\tobject.set_meta(meta, metadata[meta])\n\n\n## Called by [method deserialize], this method loads an image at\n## a given [param frame_i] frame index and a [param cel_i] cel index from a pxo file,\n## and returns it as an [ImageExtended].\n## If the pxo file is saved with Pixelorama version 1.0 and on,\n## the [param zip_reader] is used to load the image. Otherwise, [param file] is used.\nfunc _load_image_from_pxo(\n\tframe_i: int, cel_i: int, zip_reader: ZIPReader, file: FileAccess\n) -> ImageExtended:\n\tvar image: Image\n\tvar indices_data := PackedByteArray()\n\tif is_instance_valid(zip_reader):  # For pxo files saved in 1.0+\n\t\tvar path := \"image_data/frames/%s/layer_%s\" % [frame_i + 1, cel_i + 1]\n\t\tvar image_data := zip_reader.read_file(path)\n\t\timage = Image.create_from_data(size.x, size.y, false, get_image_format(), image_data)\n\t\tvar indices_path := \"image_data/frames/%s/indices_layer_%s\" % [frame_i + 1, cel_i + 1]\n\t\tif zip_reader.file_exists(indices_path):\n\t\t\tindices_data = zip_reader.read_file(indices_path)\n\telif is_instance_valid(file):  # For pxo files saved in 0.x\n\t\tvar buffer := file.get_buffer(size.x * size.y * 4)\n\t\timage = Image.create_from_data(size.x, size.y, false, get_image_format(), buffer)\n\tvar pixelorama_image := ImageExtended.new()\n\tpixelorama_image.is_indexed = is_indexed()\n\tif not indices_data.is_empty() and is_indexed():\n\t\tpixelorama_image.indices_image = Image.create_from_data(\n\t\t\tsize.x, size.y, false, Image.FORMAT_R8, indices_data\n\t\t)\n\tpixelorama_image.copy_from(image)\n\tpixelorama_image.select_palette(\"\", true)\n\treturn pixelorama_image\n\n\nfunc _size_changed(value: Vector2i) -> void:\n\tif not is_instance_valid(tiles):\n\t\tsize = value\n\t\treturn\n\tif size.x != 0:\n\t\ttiles.x_basis = tiles.x_basis * value.x / size.x\n\telse:\n\t\ttiles.x_basis = Vector2i(value.x, 0)\n\tif size.y != 0:\n\t\ttiles.y_basis = tiles.y_basis * value.y / size.y\n\telse:\n\t\ttiles.y_basis = Vector2i(0, value.y)\n\ttiles.tile_size = value\n\tsize = value\n\tGlobal.canvas.crop_rect.reset()\n\tresized.emit()\n\n\nfunc change_cel(new_frame: int, new_layer := -1) -> void:\n\tif new_frame < 0:\n\t\tnew_frame = current_frame\n\tif new_layer < 0:\n\t\tnew_layer = current_layer\n\tGlobal.canvas.selection.transform_content_confirm()\n\n\tif selected_cels.is_empty():\n\t\tselected_cels.append([new_frame, new_layer])\n\n\tif new_frame != current_frame:  # If the frame has changed\n\t\tcurrent_frame = new_frame\n\n\tif new_layer != current_layer:  # If the layer has changed\n\t\tcurrent_layer = new_layer\n\n\torder_layers()\n\tGlobal.transparent_checker.update_rect()\n\tGlobal.cel_switched.emit()\n\n\nfunc is_empty() -> bool:\n\treturn (\n\t\tframes.size() == 1\n\t\tand layers.size() == 1\n\t\tand layers[0] is PixelLayer\n\t\tand frames[0].cels[0].image.is_invisible()\n\t\tand animation_tags.size() == 0\n\t)\n\n\nfunc can_pixel_get_drawn(pixel: Vector2i, image := selection_map) -> bool:\n\tif pixel.x < 0 or pixel.y < 0 or pixel.x >= size.x or pixel.y >= size.y:\n\t\treturn false\n\n\tif tiles.mode != Tiles.MODE.NONE and !tiles.has_point(pixel):\n\t\treturn false\n\n\tif has_selection:\n\t\treturn image.is_pixel_selected(pixel)\n\telse:\n\t\treturn true\n\n\n## Loops through all of the cels until it finds a drawable (non-[GroupCel]) [BaseCel]\n## in the specified [param frame] and returns it. If no drawable cel is found,\n## meaning that all of the cels are [GroupCel]s, the method returns null.\n## If no [param frame] is specified, the method will use the current frame.\nfunc find_first_drawable_cel(frame := frames[current_frame]) -> BaseCel:\n\tvar result: BaseCel\n\tvar cel := frame.cels[0]\n\tvar i := 0\n\twhile (cel is GroupCel or cel is AudioCel) and i < layers.size():\n\t\tcel = frame.cels[i]\n\t\ti += 1\n\tif cel is not GroupCel and cel is not AudioCel:\n\t\tresult = cel\n\treturn result\n\n\n## Returns an [Array] of type [PixelCel] containing all of the pixel cels of the project.\nfunc get_all_pixel_cels() -> Array[PixelCel]:\n\tvar cels: Array[PixelCel]\n\tfor frame in frames:\n\t\tfor cel in frame.cels:\n\t\t\tif cel is PixelCel:\n\t\t\t\tcels.append(cel)\n\treturn cels\n\n\nfunc get_all_audio_layers(only_valid_streams := true) -> Array[AudioLayer]:\n\tvar audio_layers: Array[AudioLayer]\n\tfor layer in layers:\n\t\tif layer is AudioLayer:\n\t\t\tif only_valid_streams:\n\t\t\t\tif is_instance_valid(layer.audio):\n\t\t\t\t\taudio_layers.append(layer)\n\t\t\telse:\n\t\t\t\taudio_layers.append(layer)\n\treturn audio_layers\n\n\n## Reads data from [param cels] and appends them to [param data],\n## to be used for the undo/redo system.\n## It adds data such as the images of [PixelCel]s,\n## and calls [method CelTileMap.serialize_undo_data] for [CelTileMap]s.\nfunc serialize_cel_undo_data(cels: Array[BaseCel], data: Dictionary) -> void:\n\tvar cels_to_serialize := cels\n\tif not TileSetPanel.placing_tiles:\n\t\tcels_to_serialize = find_same_tileset_tilemap_cels(cels)\n\tfor cel in cels_to_serialize:\n\t\tif not cel is PixelCel:\n\t\t\tcontinue\n\t\tvar image := (cel as PixelCel).get_image()\n\t\timage.add_data_to_dictionary(data)\n\t\tif cel is CelTileMap:\n\t\t\tdata[cel] = (cel as CelTileMap).serialize_undo_data()\n\n\n## Loads data from [param redo_data] and param [undo_data],\n## to be used for the undo/redo system.\n## It calls [method Global.undo_redo_compress_images], and\n## [method CelTileMap.deserialize_undo_data] for [CelTileMap]s.\nfunc deserialize_cel_undo_data(redo_data: Dictionary, undo_data: Dictionary) -> void:\n\tGlobal.undo_redo_compress_images(redo_data, undo_data, self)\n\tfor cel in redo_data:\n\t\tif cel is CelTileMap:\n\t\t\t(cel as CelTileMap).deserialize_undo_data(redo_data[cel], undo_redo, false)\n\tfor cel in undo_data:\n\t\tif cel is CelTileMap:\n\t\t\t(cel as CelTileMap).deserialize_undo_data(undo_data[cel], undo_redo, true)\n\n\n## Returns all [BaseCel]s in [param cels], and for every [CelTileMap],\n## this methods finds all other [CelTileMap]s that share the same [TileSetCustom],\n## and appends them in the array that is being returned by this method.\nfunc find_same_tileset_tilemap_cels(cels: Array[BaseCel]) -> Array[BaseCel]:\n\tvar tilemap_cels: Array[BaseCel]\n\tvar current_tilesets: Array[TileSetCustom]\n\tfor cel in cels:\n\t\ttilemap_cels.append(cel)\n\t\tif cel is not CelTileMap:\n\t\t\tcontinue\n\t\tcurrent_tilesets.append((cel as CelTileMap).tileset)\n\tfor cel in get_all_pixel_cels():\n\t\tif cel is not CelTileMap:\n\t\t\tcontinue\n\t\tif (cel as CelTileMap).tileset in current_tilesets:\n\t\t\tif cel not in cels:\n\t\t\t\ttilemap_cels.append(cel)\n\treturn tilemap_cels\n\n\n## Re-order layers to take each cel's z-index into account. If all z-indexes are 0,\n## then the order of drawing is the same as the order of the layers itself.\nfunc order_layers(frame_index := current_frame) -> void:\n\tordered_layers = []\n\tfor i in layers.size():\n\t\tordered_layers.append(i)\n\tordered_layers.sort_custom(_z_index_sort.bind(frame_index))\n\n\n## Used as a [Callable] for [method Array.sort_custom] to sort layers\n## while taking each cel's z-index into account.\nfunc _z_index_sort(a: int, b: int, frame_index: int) -> bool:\n\tvar z_index_a := frames[frame_index].cels[a].z_index\n\tvar z_index_b := frames[frame_index].cels[b].z_index\n\tvar layer_index_a := layers[a].index + z_index_a\n\tvar layer_index_b := layers[b].index + z_index_b\n\tif layer_index_a < layer_index_b:\n\t\treturn true\n\tif layer_index_a == layer_index_b and z_index_a < z_index_b:\n\t\treturn true\n\treturn false\n\n\n# Timeline modifications\n# Modifying layers or frames Arrays on the current project should generally only be done\n# through these methods.\n# These allow you to add/remove/move/swap frames/layers/cels. It updates the Animation Timeline\n# UI, and updates indices. These are designed to be reversible, meaning that to undo an add, you\n# use remove, and vice versa. To undo a move or swap, use move or swap with the parameters swapped.\n\n\n# indices should be in ascending order\nfunc add_frames(new_frames: Array, indices: PackedInt32Array) -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tselected_cels.clear()\n\tfor i in new_frames.size():\n\t\t# For each linked cel in the frame, update its layer's cel_link_sets\n\t\tfor l in layers.size():\n\t\t\tvar cel: BaseCel = new_frames[i].cels[l]\n\t\t\tif cel.link_set != null:\n\t\t\t\tif not layers[l].cel_link_sets.has(cel.link_set):\n\t\t\t\t\tlayers[l].cel_link_sets.append(cel.link_set)\n\t\t\t\tcel.link_set[\"cels\"].append(cel)\n\t\t# Add frame\n\t\tframes.insert(indices[i], new_frames[i])\n\t\tGlobal.animation_timeline.project_frame_added(indices[i])\n\tframes_updated.emit()\n\n\nfunc remove_frames(indices: PackedInt32Array) -> void:  # indices should be in ascending order\n\tGlobal.canvas.selection.transform_content_confirm()\n\tselected_cels.clear()\n\tfor i in indices.size():\n\t\t# With each removed index, future indices need to be lowered, so subtract by i\n\t\t# For each linked cel in the frame, update its layer's cel_link_sets\n\t\tfor l in layers.size():\n\t\t\tvar cel := frames[indices[i] - i].cels[l]\n\t\t\tcel.on_remove()\n\t\t\tif cel.link_set != null:\n\t\t\t\tcel.link_set[\"cels\"].erase(cel)\n\t\t\t\tif cel.link_set[\"cels\"].is_empty():\n\t\t\t\t\tlayers[l].cel_link_sets.erase(cel.link_set)\n\t\t# Remove frame\n\t\tframes.remove_at(indices[i] - i)\n\t\tGlobal.animation_timeline.project_frame_removed(indices[i] - i)\n\tframes_updated.emit()\n\n\n# from_indices and to_indicies should be in ascending order\nfunc move_frames(from_indices: PackedInt32Array, to_indices: PackedInt32Array) -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tselected_cels.clear()\n\tvar removed_frames := []\n\tfor i in from_indices.size():\n\t\t# With each removed index, future indices need to be lowered, so subtract by i\n\t\tremoved_frames.append(frames.pop_at(from_indices[i] - i))\n\t\tGlobal.animation_timeline.project_frame_removed(from_indices[i] - i)\n\tfor i in to_indices.size():\n\t\tframes.insert(to_indices[i], removed_frames[i])\n\t\tGlobal.animation_timeline.project_frame_added(to_indices[i])\n\tframes_updated.emit()\n\n\nfunc swap_frame(a_index: int, b_index: int) -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tselected_cels.clear()\n\tvar temp := frames[a_index]\n\tframes[a_index] = frames[b_index]\n\tframes[b_index] = temp\n\tGlobal.animation_timeline.project_frame_removed(a_index)\n\tGlobal.animation_timeline.project_frame_added(a_index)\n\tGlobal.animation_timeline.project_frame_removed(b_index)\n\tGlobal.animation_timeline.project_frame_added(b_index)\n\tGlobal.animation_timeline.set_timeline_first_and_last_frames()\n\n\nfunc reverse_frames(frame_indices: PackedInt32Array) -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\t@warning_ignore(\"integer_division\")\n\tfor i in frame_indices.size() / 2:\n\t\tvar index := frame_indices[i]\n\t\tvar reverse_index := frame_indices[-i - 1]\n\t\tvar temp := frames[index]\n\t\tframes[index] = frames[reverse_index]\n\t\tframes[reverse_index] = temp\n\t\tGlobal.animation_timeline.project_frame_removed(index)\n\t\tGlobal.animation_timeline.project_frame_added(index)\n\t\tGlobal.animation_timeline.project_frame_removed(reverse_index)\n\t\tGlobal.animation_timeline.project_frame_added(reverse_index)\n\tGlobal.animation_timeline.set_timeline_first_and_last_frames()\n\tchange_cel(-1)\n\n\n## [param cels] is 2d Array of [BaseCel]s\nfunc add_layers(new_layers: Array, indices: PackedInt32Array, cels: Array) -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tselected_cels.clear()\n\tfor i in indices.size():\n\t\tlayers.insert(indices[i], new_layers[i])\n\t\tfor f in frames.size():\n\t\t\tframes[f].cels.insert(indices[i], cels[i][f])\n\t\tnew_layers[i].project = self\n\t\tGlobal.animation_timeline.project_layer_added(indices[i])\n\tlayers_updated.emit()\n\n\nfunc remove_layers(indices: PackedInt32Array) -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tselected_cels.clear()\n\tfor i in indices.size():\n\t\t# With each removed index, future indices need to be lowered, so subtract by i\n\t\tlayers.remove_at(indices[i] - i)\n\t\tfor frame in frames:\n\t\t\tframe.cels[indices[i] - i].on_remove()\n\t\t\tframe.cels.remove_at(indices[i] - i)\n\t\tGlobal.animation_timeline.project_layer_removed(indices[i] - i)\n\tlayers_updated.emit()\n\n\n# from_indices and to_indicies should be in ascending order\nfunc move_layers(\n\tfrom_indices: PackedInt32Array, to_indices: PackedInt32Array, to_parents: Array\n) -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tselected_cels.clear()\n\tvar removed_layers := []\n\tvar removed_cels := []  # 2D array of cels (an array for each layer removed)\n\n\tfor i in from_indices.size():\n\t\t# With each removed index, future indices need to be lowered, so subtract by i\n\t\tremoved_layers.append(layers.pop_at(from_indices[i] - i))\n\t\tremoved_layers[i].parent = to_parents[i]  # parents must be set before UI created in next loop\n\t\tremoved_cels.append([])\n\t\tfor frame in frames:\n\t\t\tremoved_cels[i].append(frame.cels.pop_at(from_indices[i] - i))\n\t\tif Global.current_project == self:\n\t\t\tGlobal.animation_timeline.project_layer_removed(from_indices[i] - i)\n\tfor i in to_indices.size():\n\t\tlayers.insert(to_indices[i], removed_layers[i])\n\t\tfor f in frames.size():\n\t\t\tframes[f].cels.insert(to_indices[i], removed_cels[i][f])\n\t\tif Global.current_project == self:\n\t\t\tGlobal.animation_timeline.project_layer_added(to_indices[i])\n\tif Global.current_project == self:\n\t\tlayers_updated.emit()\n\n\n# \"a\" and \"b\" should both contain \"from\", \"to\", and \"to_parents\" arrays.\n# (Using dictionaries because there seems to be a limit of 5 arguments for do/undo method calls)\nfunc swap_layers(a: Dictionary, b: Dictionary) -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tselected_cels.clear()\n\tvar a_layers := []\n\tvar b_layers := []\n\tvar a_cels := []  # 2D array of cels (an array for each layer removed)\n\tvar b_cels := []  # 2D array of cels (an array for each layer removed)\n\tfor i in a.from.size():\n\t\ta_layers.append(layers.pop_at(a.from[i] - i))\n\t\tGlobal.animation_timeline.project_layer_removed(a.from[i] - i)\n\t\ta_layers[i].parent = a.to_parents[i]  # All parents must be set early, before creating buttons\n\t\ta_cels.append([])\n\t\tfor frame in frames:\n\t\t\ta_cels[i].append(frame.cels.pop_at(a.from[i] - i))\n\tfor i in b.from.size():\n\t\tvar index = (b.from[i] - i) if a.from[0] > b.from[0] else (b.from[i] - i - a.from.size())\n\t\tb_layers.append(layers.pop_at(index))\n\t\tGlobal.animation_timeline.project_layer_removed(index)\n\t\tb_layers[i].parent = b.to_parents[i]  # All parents must be set early, before creating buttons\n\t\tb_cels.append([])\n\t\tfor frame in frames:\n\t\t\tb_cels[i].append(frame.cels.pop_at(index))\n\n\tfor i in a_layers.size():\n\t\tvar index = a.to[i] if a.to[0] < b.to[0] else (a.to[i] - b.to.size())\n\t\tlayers.insert(index, a_layers[i])\n\t\tfor f in frames.size():\n\t\t\tframes[f].cels.insert(index, a_cels[i][f])\n\t\tGlobal.animation_timeline.project_layer_added(index)\n\tfor i in b_layers.size():\n\t\tlayers.insert(b.to[i], b_layers[i])\n\t\tfor f in frames.size():\n\t\t\tframes[f].cels.insert(b.to[i], b_cels[i][f])\n\t\tGlobal.animation_timeline.project_layer_added(b.to[i])\n\tlayers_updated.emit()\n\n\n## Moves multiple cels between different frames, but on the same layer.\n## TODO: Perhaps figure out a way to optimize this. Right now it copies all of the cels of\n## a layer into a temporary array, sorts it and then copies it into each frame's `cels` array\n## on that layer. This was done in order to replicate the code from [method move_frames].\n## TODO: Make a method like this, but for moving cels between different layers, on the same frame.\nfunc move_cels_same_layer(\n\tfrom_indices: PackedInt32Array, to_indices: PackedInt32Array, layer: int\n) -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tselected_cels.clear()\n\tvar cels: Array[BaseCel] = []\n\tfor frame in frames:\n\t\tcels.append(frame.cels[layer])\n\tvar removed_cels: Array[BaseCel] = []\n\tfor i in from_indices.size():\n\t\t# With each removed index, future indices need to be lowered, so subtract by i\n\t\tremoved_cels.append(cels.pop_at(from_indices[i] - i))\n\tfor i in to_indices.size():\n\t\tcels.insert(to_indices[i], removed_cels[i])\n\tfor i in frames.size():\n\t\tvar new_cel := cels[i]\n\t\tframes[i].cels[layer] = new_cel\n\n\tfor i in from_indices.size():\n\t\t# With each removed index, future indices need to be lowered, so subtract by i\n\t\tGlobal.animation_timeline.project_cel_removed(from_indices[i] - i, layer)\n\tfor i in to_indices.size():\n\t\tGlobal.animation_timeline.project_cel_added(to_indices[i], layer)\n\n\t# Update the cel buttons for this layer:\n\tGlobal.animation_timeline.update_cel_button_ui(layer)\n\n\nfunc swap_cel(a_frame: int, a_layer: int, b_frame: int, b_layer: int) -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tselected_cels.clear()\n\tvar temp := frames[a_frame].cels[a_layer]\n\tframes[a_frame].cels[a_layer] = frames[b_frame].cels[b_layer]\n\tframes[b_frame].cels[b_layer] = temp\n\tGlobal.animation_timeline.project_cel_removed(a_frame, a_layer)\n\tGlobal.animation_timeline.project_cel_added(a_frame, a_layer)\n\tGlobal.animation_timeline.project_cel_removed(b_frame, b_layer)\n\tGlobal.animation_timeline.project_cel_added(b_frame, b_layer)\n\n\n## Change the current reference image\nfunc set_reference_image_index(new_index: int) -> void:\n\treference_index = clamp(-1, new_index, reference_images.size() - 1)\n\tGlobal.canvas.reference_image_container.update_index(reference_index)\n\n\n## Returns the reference image based on reference_index\nfunc get_current_reference_image() -> ReferenceImage:\n\treturn get_reference_image(reference_index)\n\n\n## Returns the reference image based on the index or null if index < 0\nfunc get_reference_image(index: int) -> ReferenceImage:\n\tif index < 0 or index > reference_images.size() - 1:\n\t\treturn null\n\treturn reference_images[index]\n\n\n## Reorders the position of the reference image in the tree / reference_images array\nfunc reorder_reference_image(from: int, to: int) -> void:\n\tvar ri: ReferenceImage = reference_images.pop_at(from)\n\treference_images.insert(to, ri)\n\tGlobal.canvas.reference_image_container.move_child(ri, to)\n\n\n## Adds a new [param tileset] to [member tilesets].\nfunc add_tileset(tileset: TileSetCustom) -> void:\n\ttilesets.append(tileset)\n\n\n## Loops through all cels in [param cel_dictionary], and for [CelTileMap]s,\n## it calls [method CelTileMap.update_tilemap].\nfunc update_tilemaps(\n\tcel_dictionary: Dictionary, tile_editing_mode := TileSetPanel.tile_editing_mode\n) -> void:\n\tfor cel in cel_dictionary:\n\t\tif cel is CelTileMap:\n\t\t\t(cel as CelTileMap).update_tilemap(tile_editing_mode)\n"
  },
  {
    "path": "src/Classes/Project.gd.uid",
    "content": "uid://b0y8bmkoov1u1\n"
  },
  {
    "path": "src/Classes/ResourceProject.gd",
    "content": "class_name ResourceProject\nextends Project\n## A class for easily editing individual project sub-resources like tiles, index maps, etc.\n##\n## The [ResourceProject] is basically a [Project], except that it doesn't get saved physically\n## (as a .pxo file), instead, a [signal resource_updated] signal is emitted which can\n## be used to update the resource in the [Project].[br]\n\n## Emitted when the [ResourceProject] is saved.\n@warning_ignore(\"unused_signal\")\nsignal resource_updated(project: Project)\n\n\nfunc _init(_frames: Array[Frame] = [], _name := tr(\"untitled\"), _size := Vector2i(64, 64)) -> void:\n\tsuper._init(_frames, _name + \" (Virtual Resource)\", _size)\n\n\n## Returns the full image of the [Frame] at [param frame_idx] in resource project.\nfunc get_frame_image(frame_idx: int) -> Image:\n\tvar frame_image := Image.create_empty(size.x, size.y, false, Image.FORMAT_RGBA8)\n\tif frame_idx >= 0 and frame_idx < frames.size():\n\t\tvar frame := frames[frame_idx]\n\t\tDrawingAlgos.blend_layers(frame_image, frame, Vector2i.ZERO, self)\n\telse:\n\t\tprinterr(\n\t\t\t(\n\t\t\t\t\"frame index: %s not found in ResourceProject, frames.size(): %s\"\n\t\t\t\t% [str(frame_idx), str(frames.size())]\n\t\t\t)\n\t\t)\n\treturn frame_image\n"
  },
  {
    "path": "src/Classes/ResourceProject.gd.uid",
    "content": "uid://2wgdnu2slroe\n"
  },
  {
    "path": "src/Classes/SelectionMap.gd",
    "content": "class_name SelectionMap\nextends Image\n\nconst INVERT_SHADER := preload(\"res://src/Shaders/Effects/Invert.gdshader\")\nconst OUTLINE_INLINE_SHADER := preload(\"res://src/Shaders/Effects/OutlineInline.gdshader\")\n\n## An optimization technique\nvar _selection_rect_cache := Rect2i()\n\n\nfunc is_pixel_selected(\n\tpixel: Vector2i, calculate_offset := true, project := Global.current_project\n) -> bool:\n\tif calculate_offset:\n\t\tvar selection_position := get_selection_rect(project).position\n\t\tif selection_position.x < 0:\n\t\t\tpixel.x -= selection_position.x\n\t\tif selection_position.y < 0:\n\t\t\tpixel.y -= selection_position.y\n\tif pixel.x < 0 or pixel.y < 0 or pixel.x >= get_width() or pixel.y >= get_height():\n\t\treturn false\n\tvar selected: bool = get_pixelv(pixel).a > 0\n\treturn selected\n\n\nfunc get_nearest_position(pixel: Vector2i) -> Vector2i:\n\tif Global.canvas.selection.flag_tilemode:\n\t\t# functions more or less the same way as the tilemode\n\t\tvar size := Global.current_project.size\n\t\tvar selection_rect := get_used_rect()\n\t\tvar start_x := selection_rect.position.x - selection_rect.size.x\n\t\tvar end_x := selection_rect.position.x + 2 * selection_rect.size.x\n\t\tvar start_y := selection_rect.position.y - selection_rect.size.y\n\t\tvar end_y := selection_rect.position.y + 2 * selection_rect.size.y\n\t\tfor x in range(start_x, end_x, selection_rect.size.x):\n\t\t\tfor y in range(start_y, end_y, selection_rect.size.y):\n\t\t\t\tvar test_image := Image.create(size.x, size.y, false, Image.FORMAT_LA8)\n\t\t\t\ttest_image.blit_rect(self, selection_rect, Vector2(x, y))\n\t\t\t\tif (\n\t\t\t\t\tpixel.x < 0\n\t\t\t\t\tor pixel.y < 0\n\t\t\t\t\tor pixel.x >= test_image.get_width()\n\t\t\t\t\tor pixel.y >= test_image.get_height()\n\t\t\t\t):\n\t\t\t\t\tcontinue\n\t\t\t\tvar selected: bool = test_image.get_pixelv(pixel).a > 0\n\t\t\t\tif selected:\n\t\t\t\t\tvar offset := Vector2i(x, y) - selection_rect.position\n\t\t\t\t\treturn offset\n\t\treturn Vector2i.ZERO\n\telse:\n\t\treturn Vector2i.ZERO\n\n\nfunc get_point_in_tile_mode(pixel: Vector2i) -> Array[Vector2i]:\n\tvar result: Array[Vector2i] = []\n\tif Global.canvas.selection.flag_tilemode:\n\t\tvar selection_rect := get_used_rect()\n\t\tvar start_x := selection_rect.position.x - selection_rect.size.x\n\t\tvar end_x := selection_rect.position.x + 2 * selection_rect.size.x\n\t\tvar start_y := selection_rect.position.y - selection_rect.size.y\n\t\tvar end_y := selection_rect.position.y + 2 * selection_rect.size.y\n\t\tfor x in range(start_x, end_x, selection_rect.size.x):\n\t\t\tfor y in range(start_y, end_y, selection_rect.size.y):\n\t\t\t\tresult.append(Vector2i(x, y) + pixel - selection_rect.position)\n\telse:\n\t\tresult.append(pixel)\n\treturn result\n\n\nfunc get_canon_position(position: Vector2i) -> Vector2i:\n\tif Global.canvas.selection.flag_tilemode:\n\t\treturn position - get_nearest_position(position)\n\telse:\n\t\treturn position\n\n\nfunc select_pixel(pixel: Vector2i, select := true) -> void:\n\tif select:\n\t\tset_pixelv(pixel, Color(1, 1, 1, 1))\n\telse:\n\t\tset_pixelv(pixel, Color(0))\n\n\nfunc select_rect(rect: Rect2i, select := true) -> void:\n\tif select:\n\t\tfill_rect(rect, Color(1, 1, 1, 1))\n\telse:\n\t\tfill_rect(rect, Color(0))\n\n\nfunc select_all() -> void:\n\tfill(Color(1, 1, 1, 1))\n\n\nfunc clear() -> void:\n\tfill(Color(0))\n\n\nfunc invert() -> void:\n\tvar params := {\"red\": true, \"green\": true, \"blue\": true, \"alpha\": true}\n\tvar gen := ShaderImageEffect.new()\n\tgen.generate_image(self, INVERT_SHADER, params, get_size())\n\n\n## An optimization. Stores existing selection rect as cache and forces [method get_selection_rect]\n## to use cache instead. use this to save time when the rect isn't meant to change between repeated\n## calls (e.g see Bucket tool)\nfunc lock_selection_rect(project: Project, locked := false):\n\tif locked:\n\t\t_selection_rect_cache = get_selection_rect(project)\n\telse:\n\t\t_selection_rect_cache = Rect2i()\n\n\nfunc get_selection_rect(project: Project) -> Rect2i:\n\tif _selection_rect_cache != Rect2i():\n\t\treturn _selection_rect_cache\n\tvar rect := get_used_rect()\n\trect.position += project.selection_offset\n\treturn rect\n\n\n## Returns a copy of itself that is cropped to [param size].\n## Used for when the selection map is bigger than the [Project] size.\nfunc return_cropped_copy(project: Project, size: Vector2i) -> SelectionMap:\n\tvar selection_map_copy := SelectionMap.new()\n\tselection_map_copy.copy_from(self)\n\tvar diff := Vector2i.ZERO\n\tvar selection_position := project.selection_offset\n\tif selection_position.x < 0:\n\t\tdiff.x += selection_position.x\n\tif selection_position.y < 0:\n\t\tdiff.y += selection_position.y\n\tif diff != Vector2i.ZERO:\n\t\t# If there are pixels out of bounds on the negative side (left & up),\n\t\t# move them before resizing\n\t\tselection_map_copy.fill(Color(0))\n\t\tselection_map_copy.blit_rect(self, Rect2i(Vector2i.ZERO, get_size()), diff)\n\tselection_map_copy.crop(size.x, size.y)\n\treturn selection_map_copy\n\n\nfunc blit_rect_custom(new_map: SelectionMap, rect: Rect2i, origin: Vector2i) -> void:\n\tclear()\n\tblit_rect(new_map, rect, origin)\n\n\nfunc ensure_selection_fits(project: Project, rect: Rect2i) -> void:\n\tvar current_size := Rect2i(Vector2i.ZERO, get_size())\n\tif current_size.encloses(rect):\n\t\tproject.selection_offset = Vector2.ZERO\n\t\treturn\n\tvar new_size := current_size.merge(rect).size\n\tvar offset := current_size.position.min(rect.position)\n\tcrop(new_size.x, new_size.y)\n\tproject.selection_offset = Vector2.ZERO.min(offset)\n\n\nfunc move_bitmap_values(project: Project, move_offset := true) -> void:\n\tvar size := project.size\n\tvar selection_rect := get_selection_rect(project)\n\tvar selection_position := selection_rect.position\n\tvar selection_end := selection_rect.end\n\tvar smaller_image := get_region(get_used_rect())\n\tclear()\n\tvar dst := selection_position\n\tvar x_diff := selection_end.x - size.x\n\tvar y_diff := selection_end.y - size.y\n\tvar nw := maxi(size.x, size.x + x_diff)\n\tvar nh := maxi(size.y, size.y + y_diff)\n\n\tif selection_position.x < 0:\n\t\tnw -= selection_position.x\n\t\tif move_offset:\n\t\t\tproject.selection_offset.x = selection_position.x\n\t\tdst.x = 0\n\telse:\n\t\tif move_offset:\n\t\t\tproject.selection_offset.x = 0\n\tif selection_position.y < 0:\n\t\tnh -= selection_position.y\n\t\tif move_offset:\n\t\t\tproject.selection_offset.y = selection_position.y\n\t\tdst.y = 0\n\telse:\n\t\tif move_offset:\n\t\t\tproject.selection_offset.y = 0\n\n\tif nw <= size.x:\n\t\tnw = size.x\n\tif nh <= size.y:\n\t\tnh = size.y\n\n\tcrop(nw, nh)\n\tblit_rect(smaller_image, Rect2i(Vector2i.ZERO, Vector2i(nw, nh)), dst)\n\n\nfunc expand(width: int, brush: int) -> void:\n\tvar params := {\n\t\t\"color\": Color(1, 1, 1, 1),\n\t\t\"width\": width,\n\t\t\"brush\": brush,\n\t}\n\tvar gen := ShaderImageEffect.new()\n\tgen.generate_image(self, OUTLINE_INLINE_SHADER, params, get_size())\n\n\nfunc shrink(width: int, brush: int) -> void:\n\tvar params := {\n\t\t\"color\": Color(0),\n\t\t\"width\": width,\n\t\t\"brush\": brush,\n\t\t\"inside\": true,\n\t}\n\tvar gen := ShaderImageEffect.new()\n\tgen.generate_image(self, OUTLINE_INLINE_SHADER, params, get_size())\n\n\nfunc center() -> void:\n\tvar used_rect := get_used_rect()\n\tif not used_rect.has_area():\n\t\treturn\n\tvar offset: Vector2i = (0.5 * (get_size() - used_rect.size)).floor()\n\tvar cel_image := get_region(used_rect)\n\tclear()\n\tblend_rect(cel_image, Rect2i(Vector2i.ZERO, used_rect.size), offset)\n\n\nfunc border(width: int, brush: int) -> void:\n\tvar params := {\n\t\t\"color\": Color(1, 1, 1, 1),\n\t\t\"width\": width,\n\t\t\"brush\": brush,\n\t\t\"inside\": true,\n\t\t\"keep_border_only\": true,\n\t}\n\tvar gen := ShaderImageEffect.new()\n\tgen.generate_image(self, OUTLINE_INLINE_SHADER, params, get_size())\n"
  },
  {
    "path": "src/Classes/SelectionMap.gd.uid",
    "content": "uid://baid36rgwshrj\n"
  },
  {
    "path": "src/Classes/ShaderImageEffect.gd",
    "content": "class_name ShaderImageEffect\nextends RefCounted\n## Helper class to generate image effects using shaders\n\nsignal done\nvar cache_mat_rid: RID  # reference to the cache material\nvar cache_shader: Shader  # it's just used to keep track of shader when dest_mat_after_gen is false\n\n\nfunc generate_image(\n\timg: Image,\n\tshader: Shader,\n\tparams: Dictionary,\n\tsize: Vector2i,\n\trespect_indexed := true,\n\tdest_mat_after_gen := true\n) -> void:\n\t# duplicate shader before modifying code to avoid affecting original resource\n\tvar resized_width := false\n\tvar resized_height := false\n\tif size.x == 1:\n\t\tsize.x = 2\n\t\timg.crop(2, img.get_height())\n\t\tresized_width = true\n\tif size.y == 1:\n\t\tsize.y = 2\n\t\timg.crop(img.get_width(), 2)\n\t\tresized_height = true\n\tshader = shader.duplicate()\n\tshader.code = shader.code.replace(\"unshaded\", \"unshaded, blend_premul_alpha\")\n\tvar vp := RenderingServer.viewport_create()\n\tvar canvas := RenderingServer.canvas_create()\n\tRenderingServer.viewport_attach_canvas(vp, canvas)\n\tRenderingServer.viewport_set_size(vp, size.x, size.y)\n\tRenderingServer.viewport_set_disable_3d(vp, true)\n\tRenderingServer.viewport_set_active(vp, true)\n\tRenderingServer.viewport_set_transparent_background(vp, true)\n\tRenderingServer.viewport_set_default_canvas_item_texture_filter(\n\t\tvp, RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_NEAREST\n\t)\n\n\tvar ci_rid := RenderingServer.canvas_item_create()\n\tRenderingServer.viewport_set_canvas_transform(vp, canvas, Transform3D())\n\tRenderingServer.canvas_item_set_parent(ci_rid, canvas)\n\tvar texture := RenderingServer.texture_2d_create(img)\n\tRenderingServer.canvas_item_add_texture_rect(ci_rid, Rect2(Vector2.ZERO, size), texture)\n\n\tif not cache_mat_rid.is_valid():\n\t\tcache_mat_rid = RenderingServer.material_create()\n\t\tRenderingServer.material_set_shader(cache_mat_rid, shader.get_rid())\n\t\tcache_shader = shader\n\tRenderingServer.canvas_item_set_material(ci_rid, cache_mat_rid)\n\tfor key in params:\n\t\tvar param = params[key]\n\t\tif param is Texture2D or param is Texture2DArray:\n\t\t\tRenderingServer.material_set_param(cache_mat_rid, key, [param])\n\t\telse:\n\t\t\tRenderingServer.material_set_param(cache_mat_rid, key, param)\n\n\tRenderingServer.viewport_set_update_mode(vp, RenderingServer.VIEWPORT_UPDATE_ONCE)\n\tRenderingServer.force_draw(false)\n\tvar viewport_texture := RenderingServer.texture_2d_get(RenderingServer.viewport_get_texture(vp))\n\tRenderingServer.free_rid(vp)\n\tRenderingServer.free_rid(canvas)\n\tRenderingServer.free_rid(ci_rid)\n\tif dest_mat_after_gen:\n\t\t# NOTE: A lot of time gets wasted through material_set_shader so we should cache it if\n\t\t# shader remains the same for the next potential generation as well\n\t\t# this reduces the generation time by about 40%\n\t\tRenderingServer.free_rid(cache_mat_rid)\n\t\tcache_mat_rid = RID()\n\t\tcache_shader = null\n\tRenderingServer.free_rid(texture)\n\tif not is_instance_valid(viewport_texture):  # Very rare bug\n\t\tdone.emit()\n\t\treturn\n\tviewport_texture.convert(img.get_format())\n\timg.copy_from(viewport_texture)\n\tif resized_width:\n\t\timg.crop(img.get_width() - 1, img.get_height())\n\tif resized_height:\n\t\timg.crop(img.get_width(), img.get_height() - 1)\n\tif img is ImageExtended and respect_indexed:\n\t\timg.convert_rgb_to_indexed()\n\tdone.emit()\n\n\nfunc _notification(what: int) -> void:\n\t# Frees material or the reference is no longer tracked by anyone e.g undo/redo or project.\n\tif what == NOTIFICATION_PREDELETE and cache_mat_rid.is_valid():\n\t\tRenderingServer.free_rid(cache_mat_rid)\n"
  },
  {
    "path": "src/Classes/ShaderImageEffect.gd.uid",
    "content": "uid://ul0idgiy5rgo\n"
  },
  {
    "path": "src/Classes/ShaderLoader.gd",
    "content": "class_name ShaderLoader\nextends RefCounted\n\nconst VALUE_SLIDER_V2_TSCN := preload(\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\")\nconst BASIS_SLIDERS_TSCN := preload(\"res://src/UI/Nodes/Sliders/BasisSliders.tscn\")\nconst GRADIENT_EDIT_TSCN := preload(\"res://src/UI/Nodes/GradientEdit.tscn\")\nconst NOISE_GENERATOR := preload(\"res://src/UI/Nodes/NoiseGeneratorDialog.tscn\")\n\nstatic var dither_matrices: Array[DitherMatrix] = [\n\tDitherMatrix.new(preload(\"res://assets/dither-matrices/bayer2.png\"), \"Bayer 2x2\"),\n\tDitherMatrix.new(preload(\"res://assets/dither-matrices/bayer4.png\"), \"Bayer 4x4\"),\n\tDitherMatrix.new(preload(\"res://assets/dither-matrices/bayer8.png\"), \"Bayer 8x8\"),\n\tDitherMatrix.new(preload(\"res://assets/dither-matrices/bayer16.png\"), \"Bayer 16x16\"),\n]\n\n\nclass DitherMatrix:\n\tvar texture: Texture2D\n\tvar name: String\n\n\tfunc _init(_texture: Texture2D, _name: String) -> void:\n\t\ttexture = _texture\n\t\tname = _name\n\n\nstatic func load_dither_matrix_from_file(file_path: String) -> void:\n\tvar dither_image := Image.load_from_file(file_path)\n\tif is_instance_valid(dither_image):\n\t\tvar dither_tex := ImageTexture.create_from_image(dither_image)\n\t\tvar dither_matrix := DitherMatrix.new(dither_tex, file_path.get_file().get_basename())\n\t\tdither_matrices.append(dither_matrix)\n\n\nstatic func create_ui_for_shader_uniforms(\n\tshader: Shader,\n\tparams: Dictionary,\n\tparent_node: Control,\n\tvalue_changed: Callable,\n\tfile_selected: Callable\n) -> void:\n\tvar code := shader.code.split(\"\\n\")\n\tvar uniforms: PackedStringArray = []\n\tvar uniform_data: PackedStringArray = []\n\tvar description: String = \"\"\n\tvar description_began := false\n\t# A Dictionary used to group together nodes\n\t# under the same group_uniform. Currently only used for CurveTextures.\n\tvar group_nodes: Dictionary[String, Control] = {}\n\tvar color_button_hbox: HBoxContainer = null  # Used for RGBA buttons, if they exist.\n\tfor line in code:\n\t\t# Management of \"end\" tags\n\t\tif line.begins_with(\"// (end DESCRIPTION)\"):\n\t\t\tdescription_began = false\n\t\tif description_began:\n\t\t\tdescription += \"\\n\" + line.strip_edges()\n\n\t\t# Detection of uniforms\n\t\tif line.begins_with(\"uniform\") or line.begins_with(\"group_uniforms\"):\n\t\t\tuniforms.append(line)\n\t\tif line.begins_with(\"// uniform_data\"):\n\t\t\tuniform_data.append(line)\n\n\t\t# Management of \"begin\" tags\n\t\telif line.begins_with(\"// (begin DESCRIPTION)\"):\n\t\t\tdescription_began = true\n\t# Validation of begin/end tags\n\tif description_began == true:  # Description started but never ended. treat it as an error\n\t\tprint(\"Shader description started but never finished. Assuming empty description\")\n\t\tdescription = \"\"\n\tif not description.is_empty():\n\t\tparent_node.tooltip_text = str(\n\t\t\t\"Description:\\n\", description.replace(\"//\", \"\").strip_edges()\n\t\t)\n\n\tvar current_group := \"\"\n\tfor uniform in uniforms:\n\t\t# Example uniform:\n\t\t# uniform float parameter_name : hint_range(0, 255) = 100.0;\n\t\tvar uniform_split := uniform.split(\"=\")\n\t\tvar u_value := \"\"\n\t\tif uniform_split.size() > 1:\n\t\t\tu_value = uniform_split[1].replace(\";\", \"\").strip_edges()\n\t\telse:\n\t\t\tuniform_split[0] = uniform_split[0].replace(\";\", \"\").strip_edges()\n\n\t\tvar u_left_side := uniform_split[0].split(\":\")\n\t\tvar u_hint := \"\"\n\t\tif u_left_side.size() > 1:\n\t\t\tu_hint = u_left_side[1].strip_edges()\n\t\t\tu_hint = u_hint.replace(\";\", \"\")\n\n\t\tvar u_init := u_left_side[0].split(\" \")\n\t\tvar uniform_string := u_init[0]\n\t\tif uniform_string == \"group_uniforms\":\n\t\t\tcurrent_group = u_init[1]\n\t\t\tcontinue\n\t\tvar u_type := u_init[1]\n\t\tvar u_name := u_init[2]\n\t\tif u_name in [\"PXO_time\", \"PXO_frame_index\", \"PXO_layer_index\"]:\n\t\t\tcontinue\n\t\t# Find custom data of the uniform, if any exists\n\t\t# Right now it only checks if a uniform should have another type of node\n\t\t# Such as integers having OptionButtons\n\t\t# But in the future it could be expanded to include custom names or descriptions.\n\t\tvar custom_data: PackedStringArray = []\n\t\tvar type_override := \"\"\n\t\tfor data in uniform_data:\n\t\t\tif u_name in data:\n\t\t\t\tvar line_to_examine := data.split(\" \")\n\t\t\t\tif line_to_examine[3] == \"type::\":\n\t\t\t\t\tvar temp_splitter := data.split(\"::\")\n\t\t\t\t\tif temp_splitter.size() > 1:\n\t\t\t\t\t\ttype_override = temp_splitter[1].strip_edges()\n\n\t\t\t\tcustom_data.append(data)\n\t\tvar humanized_u_name := Keychain.humanize_snake_case(u_name) + \":\"\n\n\t\tif u_type == \"float\" or u_type == \"int\":\n\t\t\tvar hbox := HBoxContainer.new()\n\t\t\tvar label := Label.new()\n\t\t\tlabel.text = humanized_u_name\n\t\t\tlabel.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\t\t\thbox.add_child(label)\n\t\t\tif type_override.begins_with(\"OptionButton\"):\n\t\t\t\tvar option_button := OptionButton.new()\n\t\t\t\toption_button.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\t\t\t\toption_button.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\t\t\t\toption_button.item_selected.connect(value_changed.bind(u_name))\n\t\t\t\tvar items := (\n\t\t\t\t\ttype_override\n\t\t\t\t\t. replace(\"OptionButton \", \"\")\n\t\t\t\t\t. replace(\"[\", \"\")\n\t\t\t\t\t. replace(\"]\", \"\")\n\t\t\t\t\t. split(\"||\")\n\t\t\t\t)\n\t\t\t\tfor item in items:\n\t\t\t\t\toption_button.add_item(item)\n\t\t\t\tif u_value != \"\":\n\t\t\t\t\toption_button.select(int(u_value))\n\t\t\t\tif params.has(u_name):\n\t\t\t\t\toption_button.select(params[u_name])\n\t\t\t\telse:\n\t\t\t\t\tparams[u_name] = option_button.selected\n\t\t\t\thbox.add_child(option_button)\n\t\t\telse:\n\t\t\t\tvar slider := ValueSlider.new()\n\t\t\t\tslider.allow_greater = true\n\t\t\t\tslider.allow_lesser = true\n\t\t\t\tslider.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\t\t\t\tvar min_value := 0.0\n\t\t\t\tvar max_value := 255.0\n\t\t\t\tvar step := 1.0\n\t\t\t\tvar value := 0.0\n\t\t\t\tvar range_values_array: PackedStringArray\n\t\t\t\tif \"hint_range\" in u_hint:\n\t\t\t\t\tvar range_values: String = u_hint.replace(\"hint_range(\", \"\")\n\t\t\t\t\trange_values = range_values.replace(\")\", \"\").strip_edges()\n\t\t\t\t\trange_values_array = range_values.split(\",\")\n\n\t\t\t\tif u_type == \"float\":\n\t\t\t\t\tif range_values_array.size() >= 1:\n\t\t\t\t\t\tmin_value = float(range_values_array[0])\n\t\t\t\t\telse:\n\t\t\t\t\t\tmin_value = 0.01\n\n\t\t\t\t\tif range_values_array.size() >= 2:\n\t\t\t\t\t\tmax_value = float(range_values_array[1])\n\n\t\t\t\t\tif range_values_array.size() >= 3:\n\t\t\t\t\t\tstep = float(range_values_array[2])\n\t\t\t\t\telse:\n\t\t\t\t\t\tstep = 0.01\n\n\t\t\t\t\tif u_value != \"\":\n\t\t\t\t\t\tvalue = float(u_value)\n\t\t\t\telse:\n\t\t\t\t\tif range_values_array.size() >= 1:\n\t\t\t\t\t\tmin_value = int(range_values_array[0])\n\n\t\t\t\t\tif range_values_array.size() >= 2:\n\t\t\t\t\t\tmax_value = int(range_values_array[1])\n\n\t\t\t\t\tif range_values_array.size() >= 3:\n\t\t\t\t\t\tstep = int(range_values_array[2])\n\n\t\t\t\t\tif u_value != \"\":\n\t\t\t\t\t\tvalue = int(u_value)\n\t\t\t\tslider.min_value = min_value\n\t\t\t\tslider.max_value = max_value\n\t\t\t\tslider.step = step\n\t\t\t\tslider.value = value\n\t\t\t\tif params.has(u_name):\n\t\t\t\t\tslider.value = params[u_name]\n\t\t\t\telse:\n\t\t\t\t\tparams[u_name] = slider.value\n\t\t\t\tslider.value_changed.connect(value_changed.bind(u_name))\n\t\t\t\tslider.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\t\t\t\thbox.add_child(slider)\n\t\t\tparent_node.add_child(hbox)\n\t\telif u_type == \"vec2\" or u_type == \"ivec2\" or u_type == \"uvec2\":\n\t\t\tvar label := Label.new()\n\t\t\tlabel.text = humanized_u_name\n\t\t\tlabel.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\t\t\tvar vector2 := _vec2str_to_vector2(u_value)\n\t\t\tvar slider := VALUE_SLIDER_V2_TSCN.instantiate() as ValueSliderV2\n\t\t\tslider.show_ratio = true\n\t\t\tslider.allow_greater = true\n\t\t\tif u_type != \"uvec2\":\n\t\t\t\tslider.allow_lesser = true\n\t\t\t\tif u_type != \"ivec2\":\n\t\t\t\t\tslider.step = 0.01\n\t\t\tslider.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\t\t\tslider.value = vector2\n\t\t\tif params.has(u_name):\n\t\t\t\tslider.value = params[u_name]\n\t\t\telse:\n\t\t\t\tparams[u_name] = slider.value\n\t\t\tslider.value_changed.connect(value_changed.bind(u_name))\n\t\t\tvar hbox := HBoxContainer.new()\n\t\t\thbox.add_child(label)\n\t\t\thbox.add_child(slider)\n\t\t\tparent_node.add_child(hbox)\n\t\telif u_type == \"vec4\":\n\t\t\tif \"source_color\" in u_hint:\n\t\t\t\tvar label := Label.new()\n\t\t\t\tlabel.text = humanized_u_name\n\t\t\t\tlabel.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\t\t\t\tvar color := _vec4str_to_color(u_value)\n\t\t\t\tvar color_button := ColorPickerButton.new()\n\t\t\t\tcolor_button.custom_minimum_size = Vector2(20, 20)\n\t\t\t\tcolor_button.color = color\n\t\t\t\tif params.has(u_name):\n\t\t\t\t\tcolor_button.color = params[u_name]\n\t\t\t\telse:\n\t\t\t\t\tparams[u_name] = color_button.color\n\t\t\t\tcolor_button.color_changed.connect(value_changed.bind(u_name))\n\t\t\t\tcolor_button.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\t\t\t\tcolor_button.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\t\t\t\tvar hbox := HBoxContainer.new()\n\t\t\t\thbox.add_child(label)\n\t\t\t\thbox.add_child(color_button)\n\t\t\t\tparent_node.add_child(hbox)\n\t\telif u_type == \"mat3\":\n\t\t\tvar label := Label.new()\n\t\t\tlabel.text = humanized_u_name\n\t\t\tlabel.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\t\t\tvar basis := _mat3str_to_basis(u_value)\n\t\t\tvar sliders := BASIS_SLIDERS_TSCN.instantiate() as BasisSliders\n\t\t\tsliders.allow_greater = true\n\t\t\tsliders.allow_lesser = true\n\t\t\tsliders.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\t\t\tsliders.value = basis\n\t\t\tif params.has(u_name):\n\t\t\t\tsliders.value = params[u_name]\n\t\t\telse:\n\t\t\t\tparams[u_name] = sliders.value\n\t\t\tsliders.value_changed.connect(value_changed.bind(u_name))\n\t\t\tvar hbox := HBoxContainer.new()\n\t\t\thbox.add_child(label)\n\t\t\thbox.add_child(sliders)\n\t\t\tparent_node.add_child(hbox)\n\t\telif u_type == \"sampler2D\":\n\t\t\tif u_name == \"selection\":\n\t\t\t\tcontinue\n\t\t\tif u_name == \"palette_texture\":\n\t\t\t\tvar palette := Palettes.current_palette\n\t\t\t\tvar palette_texture := ImageTexture.create_from_image(palette.convert_to_image())\n\t\t\t\tvalue_changed.call(palette_texture, u_name)\n\t\t\t\tPalettes.palette_selected.connect(\n\t\t\t\t\tfunc(_name): _shader_change_palette(value_changed, u_name)\n\t\t\t\t)\n\t\t\t\tpalette.data_changed.connect(\n\t\t\t\t\tfunc(): _shader_update_palette_texture(palette, value_changed, u_name)\n\t\t\t\t)\n\t\t\t\tcontinue\n\t\t\tvar create_label := true\n\t\t\tif not current_group.is_empty():\n\t\t\t\tif u_name.begins_with(\"curve_\"):\n\t\t\t\t\tcreate_label = false\n\t\t\t\tif u_name.begins_with(\"gradient_\"):\n\t\t\t\t\tvar group_gradient_str := current_group + \"_gradient\"\n\t\t\t\t\tif group_nodes.has(group_gradient_str):\n\t\t\t\t\t\tcreate_label = false\n\t\t\tvar hbox: HBoxContainer\n\t\t\tif create_label:\n\t\t\t\thbox = HBoxContainer.new()\n\t\t\t\tvar label := Label.new()\n\t\t\t\tlabel.text = humanized_u_name\n\t\t\t\tlabel.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\t\t\t\thbox.add_child(label)\n\t\t\t\tparent_node.add_child(hbox)\n\t\t\tif shader is VisualShader and u_name.begins_with(\"tex_frg_\"):\n\t\t\t\tvar node_id := int(u_name.replace(\"tex_frg_\", \"\"))\n\t\t\t\tvar shader_node := (shader as VisualShader).get_node(\n\t\t\t\t\tVisualShader.TYPE_FRAGMENT, node_id\n\t\t\t\t)\n\t\t\t\tif shader_node is VisualShaderNodeTexture:\n\t\t\t\t\tvar texture := (shader_node as VisualShaderNodeTexture).texture\n\t\t\t\t\tparams[u_name] = texture\n\t\t\t\t\tif texture is GradientTexture1D or texture is GradientTexture2D:\n\t\t\t\t\t\t_create_gradient_texture_ui(params, u_name, hbox, value_changed)\n\t\t\t\t\telif texture is CurveTexture:\n\t\t\t\t\t\t_create_curve_texture_ui(params, u_name, hbox, value_changed)\n\t\t\t\t\telif texture is NoiseTexture2D:\n\t\t\t\t\t\t_create_noise_texture_ui(params, u_name, hbox, value_changed, parent_node)\n\t\t\t\t\telse:  # Simple texture\n\t\t\t\t\t\t_create_simple_texture_ui(\n\t\t\t\t\t\t\tparams, u_name, hbox, value_changed, parent_node, file_selected\n\t\t\t\t\t\t)\n\t\t\telif u_name.begins_with(\"gradient_\"):\n\t\t\t\tif current_group.is_empty():\n\t\t\t\t\t_create_gradient_texture_ui(params, u_name, hbox, value_changed)\n\t\t\t\telse:\n\t\t\t\t\t# If this curve uniform belongs in a group, group them into the same\n\t\t\t\t\t# CurveEdit node and use an OptionButton to switch between the different curves.\n\t\t\t\t\tvar group_gradient_str := current_group + \"_gradient\"\n\t\t\t\t\tif group_nodes.has(group_gradient_str):\n\t\t\t\t\t\tvar grad_edit := group_nodes[group_gradient_str] as GradientEditNode\n\t\t\t\t\t\tif \"no_interpolation\" in u_name:\n\t\t\t\t\t\t\tvalue_changed.call_deferred(\n\t\t\t\t\t\t\t\tgrad_edit.get_gradient_texture_no_interpolation(), u_name\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tgrad_edit.updated.connect(\n\t\t\t\t\t\t\t\tfunc(_gradient, _cc):\n\t\t\t\t\t\t\t\t\tvalue_changed.call(\n\t\t\t\t\t\t\t\t\t\tgrad_edit.get_gradient_texture_no_interpolation(), u_name\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\telif \"offset\" in u_name:\n\t\t\t\t\t\t\tvalue_changed.call_deferred(\n\t\t\t\t\t\t\t\tgrad_edit.get_gradient_offsets_texture(), u_name\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tgrad_edit.updated.connect(\n\t\t\t\t\t\t\t\tfunc(_gradient, _cc):\n\t\t\t\t\t\t\t\t\tvalue_changed.call(\n\t\t\t\t\t\t\t\t\t\tgrad_edit.get_gradient_offsets_texture(), u_name\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\telse:\n\t\t\t\t\t\t\tvalue_changed.call_deferred(grad_edit.texture, u_name)\n\t\t\t\t\t\t\tgrad_edit.updated.connect(\n\t\t\t\t\t\t\t\tfunc(_gradient, _cc): value_changed.call(grad_edit.texture, u_name)\n\t\t\t\t\t\t\t)\n\t\t\t\t\telse:\n\t\t\t\t\t\tvar grad_edit := _create_gradient_texture_ui(\n\t\t\t\t\t\t\tparams, u_name, hbox, value_changed\n\t\t\t\t\t\t)\n\t\t\t\t\t\tgroup_nodes[group_gradient_str] = grad_edit\n\t\t\telif u_name.begins_with(\"dither_texture\"):\n\t\t\t\tvar option_button := OptionButton.new()\n\t\t\t\toption_button.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\t\t\t\toption_button.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\t\t\t\toption_button.item_selected.connect(\n\t\t\t\t\tfunc(index: int):\n\t\t\t\t\t\tvar dither_tex := dither_matrices[index].texture\n\t\t\t\t\t\tvalue_changed.call(dither_tex, u_name)\n\t\t\t\t)\n\t\t\t\tfor matrix in dither_matrices:\n\t\t\t\t\toption_button.add_item(matrix.name)\n\t\t\t\tif params.has(u_name):\n\t\t\t\t\tvar matrix_index := 0\n\t\t\t\t\tfor i in dither_matrices.size():\n\t\t\t\t\t\tif dither_matrices[i].texture == params[u_name]:\n\t\t\t\t\t\t\tmatrix_index = i\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\toption_button.select(matrix_index)\n\t\t\t\telse:\n\t\t\t\t\tparams[u_name] = dither_matrices[option_button.selected].texture\n\t\t\t\thbox.add_child(option_button)\n\t\t\telif u_name.begins_with(\"curve_\"):\n\t\t\t\tif current_group.is_empty():\n\t\t\t\t\t_create_curve_texture_ui(params, u_name, hbox, value_changed)\n\t\t\t\telse:\n\t\t\t\t\t# If this curve uniform belongs in a group, group them into the same\n\t\t\t\t\t# CurveEdit node and use an OptionButton to switch between the different curves.\n\t\t\t\t\tvar group_option_button_str := current_group + \"_option_button\"\n\t\t\t\t\tif group_nodes.has(group_option_button_str):\n\t\t\t\t\t\t# Add it to the current group CurveEdit and OptionButton.\n\t\t\t\t\t\tvar option_button := group_nodes[group_option_button_str] as OptionButton\n\t\t\t\t\t\tif not params.has(u_name):\n\t\t\t\t\t\t\tvar new_curve := Curve.new()\n\t\t\t\t\t\t\t# Set linear preset to the new curve\n\t\t\t\t\t\t\tCurveEdit.set_curve_preset(new_curve, 0)\n\t\t\t\t\t\t\tparams[u_name] = CurveEdit.to_texture(new_curve)\n\t\t\t\t\t\toption_button.add_item(\n\t\t\t\t\t\t\tKeychain.humanize_snake_case(u_name.replace(\"curve_\", \"\"))\n\t\t\t\t\t\t)\n\t\t\t\t\t\toption_button.set_item_metadata(option_button.item_count - 1, u_name)\n\t\t\t\t\telse:  # Create a the group's CurveEdit and OptionButton.\n\t\t\t\t\t\tvar option_button := OptionButton.new()\n\t\t\t\t\t\tparent_node.add_child(option_button)\n\t\t\t\t\t\tvar curve_edit := _create_curve_texture_ui(\n\t\t\t\t\t\t\tparams, u_name, parent_node, value_changed\n\t\t\t\t\t\t)\n\t\t\t\t\t\toption_button.add_item(\n\t\t\t\t\t\t\tKeychain.humanize_snake_case(u_name.replace(\"curve_\", \"\"))\n\t\t\t\t\t\t)\n\t\t\t\t\t\toption_button.set_item_metadata(option_button.item_count - 1, u_name)\n\t\t\t\t\t\toption_button.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\t\t\t\t\t\toption_button.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\t\t\t\t\t\toption_button.item_selected.connect(\n\t\t\t\t\t\t\t# Disconnect all previous connections from the\n\t\t\t\t\t\t\t# curve_edit's value_changed signal. Then change the curve, and then\n\t\t\t\t\t\t\t# connect a new callable to the value_changed signal.\n\t\t\t\t\t\t\tfunc(index: int):\n\t\t\t\t\t\t\t\tvar new_uniform_name = option_button.get_item_metadata(index)\n\t\t\t\t\t\t\t\tfor connection in curve_edit.value_changed.get_connections():\n\t\t\t\t\t\t\t\t\tcurve_edit.value_changed.disconnect(connection.callable)\n\t\t\t\t\t\t\t\tcurve_edit.curve = params[new_uniform_name].curve\n\t\t\t\t\t\t\t\tcurve_edit.value_changed.connect(\n\t\t\t\t\t\t\t\t\tfunc(curve: Curve):\n\t\t\t\t\t\t\t\t\t\tvalue_changed.call(\n\t\t\t\t\t\t\t\t\t\t\tCurveEdit.to_texture(curve), new_uniform_name\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\tgroup_nodes[group_option_button_str] = option_button\n\t\t\telif u_name.begins_with(\"noise_\"):\n\t\t\t\t_create_noise_texture_ui(params, u_name, hbox, value_changed, parent_node)\n\t\t\telse:  # Simple texture\n\t\t\t\t_create_simple_texture_ui(\n\t\t\t\t\tparams, u_name, hbox, value_changed, parent_node, file_selected\n\t\t\t\t)\n\t\telif u_type == \"bool\":\n\t\t\tvar button: BaseButton\n\t\t\tif u_name in [\"red\", \"green\", \"blue\", \"alpha\"]:\n\t\t\t\tbutton = Button.new()\n\t\t\t\tbutton.text = u_name[0].to_upper()\n\t\t\t\tbutton.toggle_mode = true\n\t\t\t\tif is_instance_valid(color_button_hbox):\n\t\t\t\t\tcolor_button_hbox.add_child(button)\n\t\t\t\telse:\n\t\t\t\t\tcolor_button_hbox = HBoxContainer.new()\n\t\t\t\t\tcolor_button_hbox.add_child(button)\n\t\t\t\t\tparent_node.add_child(color_button_hbox)\n\t\t\telse:\n\t\t\t\tbutton = CheckBox.new()\n\t\t\t\tvar label := Label.new()\n\t\t\t\tlabel.text = humanized_u_name\n\t\t\t\tlabel.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\t\t\t\tbutton.text = \"On\"\n\t\t\t\tvar hbox := HBoxContainer.new()\n\t\t\t\thbox.add_child(label)\n\t\t\t\thbox.add_child(button)\n\t\t\t\tparent_node.add_child(hbox)\n\t\t\tif u_value == \"true\":\n\t\t\t\tbutton.button_pressed = true\n\t\t\tif params.has(u_name):\n\t\t\t\tbutton.button_pressed = params[u_name]\n\t\t\telse:\n\t\t\t\tparams[u_name] = button.button_pressed\n\t\t\tbutton.toggled.connect(value_changed.bind(u_name))\n\t\t\tbutton.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\t\t\tbutton.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\n\nstatic func _vec2str_to_vector2(vec2: String) -> Vector2:\n\tvec2 = vec2.replace(\"uvec2\", \"vec2\")\n\tvec2 = vec2.replace(\"ivec2\", \"vec2\")\n\tvec2 = vec2.replace(\"vec2(\", \"\")\n\tvec2 = vec2.replace(\")\", \"\")\n\tvar vec_values := vec2.split(\",\")\n\tif vec_values.size() == 0:\n\t\treturn Vector2.ZERO\n\tvar y := float(vec_values[0])\n\tif vec_values.size() == 2:\n\t\ty = float(vec_values[1])\n\tvar vector2 := Vector2(float(vec_values[0]), y)\n\treturn vector2\n\n\nstatic func _vec3str_to_vector3(vec3: String) -> Vector3:\n\tvec3 = vec3.replace(\"uvec3\", \"vec3\")\n\tvec3 = vec3.replace(\"ivec3\", \"vec3\")\n\tvec3 = vec3.replace(\"vec3(\", \"\")\n\tvec3 = vec3.replace(\")\", \"\")\n\tvar vec_values := vec3.split(\",\")\n\tif vec_values.size() == 0:\n\t\treturn Vector3.ZERO\n\tvar y := float(vec_values[0])\n\tvar z := float(vec_values[0])\n\tif vec_values.size() >= 2:\n\t\ty = float(vec_values[1])\n\tif vec_values.size() == 3:\n\t\tz = float(vec_values[2])\n\tvar vector3 := Vector3(float(vec_values[0]), y, z)\n\treturn vector3\n\n\nstatic func _vec4str_to_color(vec4: String) -> Color:\n\tvec4 = vec4.replace(\"vec4(\", \"\")\n\tvec4 = vec4.replace(\")\", \"\")\n\tvar rgba_values := vec4.split(\",\")\n\tvar red := float(rgba_values[0])\n\n\tvar green := float(rgba_values[0])\n\tif rgba_values.size() >= 2:\n\t\tgreen = float(rgba_values[1])\n\n\tvar blue := float(rgba_values[0])\n\tif rgba_values.size() >= 3:\n\t\tblue = float(rgba_values[2])\n\n\tvar alpha := float(rgba_values[0])\n\tif rgba_values.size() == 4:\n\t\talpha = float(rgba_values[3])\n\tvar color := Color(red, green, blue, alpha)\n\treturn color\n\n\nstatic func _mat3str_to_basis(mat3: String) -> Basis:\n\tmat3 = mat3.replace(\"mat3(\", \"\")\n\tmat3 = mat3.replace(\"))\", \")\")\n\tmat3 = mat3.replace(\"), \", \")\")\n\tvar vec3_values := mat3.split(\"vec3\", false)\n\tvar vec3_x := _vec3str_to_vector3(vec3_values[0])\n\n\tvar vec3_y := _vec3str_to_vector3(vec3_values[0])\n\tif vec3_values.size() >= 2:\n\t\tvec3_y = _vec3str_to_vector3(vec3_values[1])\n\n\tvar vec3_z := _vec3str_to_vector3(vec3_values[0])\n\tif vec3_values.size() == 3:\n\t\tvec3_z = _vec3str_to_vector3(vec3_values[2])\n\tvar basis := Basis(vec3_x, vec3_y, vec3_z)\n\treturn basis\n\n\nstatic func _create_simple_texture_ui(\n\tparams: Dictionary,\n\tu_name: String,\n\thbox: BoxContainer,\n\tvalue_changed: Callable,\n\tparent_node: Control,\n\tfile_selected: Callable\n) -> void:\n\tvar file_dialog := FileDialog.new()\n\tfile_dialog.always_on_top = true\n\tfile_dialog.file_mode = FileDialog.FILE_MODE_OPEN_FILE\n\tfile_dialog.access = FileDialog.ACCESS_FILESYSTEM\n\tvar filters := PackedStringArray([])\n\tfor image_type in Global.SUPPORTED_IMAGE_TYPES:\n\t\tfilters.append(\"*.%s;\" % image_type)\n\tfile_dialog.filters = filters\n\tfile_dialog.size = Vector2(384, 281)\n\tfile_dialog.file_selected.connect(file_selected.bind(u_name))\n\tfile_dialog.use_native_dialog = Global.use_native_file_dialogs\n\tvar button := Button.new()\n\tbutton.text = \"Load texture\"\n\tbutton.pressed.connect(file_dialog.popup_centered_clamped)\n\tbutton.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\tbutton.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\tvar mod_button := Button.new()\n\tmod_button.text = \"Modify\"\n\tmod_button.pressed.connect(\n\t\tfunc():\n\t\t\t_modify_texture_resource(\n\t\t\t\t_get_loaded_texture(params, u_name),\n\t\t\t\tu_name,\n\t\t\t\t_shader_update_texture.bind(value_changed, u_name)\n\t\t\t)\n\t)\n\tmod_button.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\tmod_button.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\thbox.add_child(button)\n\thbox.add_child(mod_button)\n\tparent_node.add_child(file_dialog)\n\n\nstatic func _create_gradient_texture_ui(\n\tparams: Dictionary, u_name: String, hbox: BoxContainer, value_changed: Callable\n) -> GradientEditNode:\n\tvar gradient_edit := GRADIENT_EDIT_TSCN.instantiate() as GradientEditNode\n\tgradient_edit.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\tif params.has(u_name):\n\t\tvar texture = params[u_name]\n\t\tif texture is GradientTexture2D:\n\t\t\tgradient_edit.set_gradient_texture(texture)\n\t\telif texture is GradientTexture1D:\n\t\t\tgradient_edit.set_gradient_texture_1d(texture)\n\telse:\n\t\tparams[u_name] = gradient_edit.texture\n\t# This needs to be call_deferred because GradientTexture2D gets updated next frame.\n\t# Without this, the texture is purple.\n\tvalue_changed.call_deferred(gradient_edit.texture, u_name)\n\tgradient_edit.updated.connect(\n\t\tfunc(_gradient, _cc): value_changed.call(gradient_edit.texture, u_name)\n\t)\n\thbox.add_child(gradient_edit)\n\treturn gradient_edit\n\n\nstatic func _create_curve_texture_ui(\n\tparams: Dictionary, u_name: String, parent: Control, value_changed: Callable\n) -> CurveEdit:\n\tvar curve_edit := CurveEdit.new()\n\tcurve_edit.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\tif params.has(u_name) and params[u_name] is CurveTexture:\n\t\tcurve_edit.curve = params[u_name].curve\n\telse:\n\t\tcurve_edit.set_default_curve()\n\t\tparams[u_name] = CurveEdit.to_texture(curve_edit.curve)\n\tcurve_edit.value_changed.connect(\n\t\tfunc(curve: Curve): value_changed.call(CurveEdit.to_texture(curve), u_name)\n\t)\n\tparent.add_child(curve_edit)\n\treturn curve_edit\n\n\nstatic func _create_noise_texture_ui(\n\tparams: Dictionary,\n\tu_name: String,\n\thbox: BoxContainer,\n\tvalue_changed: Callable,\n\tparent_node: Control\n) -> void:\n\tvar noise_generator_dialog := NOISE_GENERATOR.instantiate() as AcceptDialog\n\tvar noise_generator := noise_generator_dialog.get_child(0) as NoiseGenerator\n\tif params.has(u_name) and params[u_name] is NoiseTexture2D:\n\t\tnoise_generator.noise_texture = params[u_name]\n\telse:\n\t\tparams[u_name] = noise_generator.noise_texture\n\tnoise_generator.value_changed.connect(\n\t\tfunc(noise_texture: NoiseTexture2D): value_changed.call(noise_texture, u_name)\n\t)\n\tparent_node.add_child(noise_generator_dialog)\n\tvar button := Button.new()\n\tbutton.text = \"Generate noise\"\n\tbutton.pressed.connect(noise_generator_dialog.popup_centered_clamped)\n\tbutton.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\tbutton.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\thbox.add_child(button)\n\n\nstatic func _shader_change_palette(value_changed: Callable, parameter_name: String) -> void:\n\tvar palette := Palettes.current_palette\n\t_shader_update_palette_texture(palette, value_changed, parameter_name)\n\t#if not palette.data_changed.is_connected(_shader_update_palette_texture):\n\tpalette.data_changed.connect(\n\t\tfunc(): _shader_update_palette_texture(palette, value_changed, parameter_name)\n\t)\n\n\nstatic func _shader_update_palette_texture(\n\tpalette: Palette, value_changed: Callable, parameter_name: String\n) -> void:\n\tvalue_changed.call(ImageTexture.create_from_image(palette.convert_to_image()), parameter_name)\n\n\nstatic func _get_loaded_texture(params: Dictionary, parameter_name: String) -> Image:\n\tif parameter_name in params:\n\t\tif params[parameter_name] is ImageTexture:\n\t\t\treturn params[parameter_name].get_image()\n\tvar image := Image.create_empty(64, 64, false, Image.FORMAT_RGBA8)\n\treturn image\n\n\nstatic func _shader_update_texture(\n\tresource_proj: ResourceProject, value_changed: Callable, parameter_name: String\n) -> void:\n\tvar warnings := \"\"\n\tif resource_proj.frames.size() > 1:\n\t\twarnings += \"This resource is intended to have 1 frame only. Extra frames will be ignored.\"\n\tif resource_proj.layers.size() > 1:\n\t\twarnings += \"\\nThis resource is intended to have 1 layer only. layers will be blended.\"\n\n\tvar updated_image := resource_proj.get_frame_image(0)\n\tvalue_changed.call(ImageTexture.create_from_image(updated_image), parameter_name)\n\tif not warnings.is_empty():\n\t\tGlobal.popup_error(warnings)\n\n\nstatic func _modify_texture_resource(\n\timage: Image, resource_name: StringName, update_callable: Callable\n) -> void:\n\tvar resource_proj := ResourceProject.new([], resource_name, image.get_size())\n\tresource_proj.layers.append(PixelLayer.new(resource_proj))\n\tresource_proj.frames.append(resource_proj.new_empty_frame())\n\tresource_proj.frames[0].cels[0].set_content(image)\n\tresource_proj.resource_updated.connect(update_callable)\n\tGlobal.projects.append(resource_proj)\n\tGlobal.tabs.current_tab = Global.tabs.get_tab_count() - 1\n\tGlobal.canvas.camera_zoom()\n"
  },
  {
    "path": "src/Classes/ShaderLoader.gd.uid",
    "content": "uid://cpqpf6fa53y3k\n"
  },
  {
    "path": "src/Classes/SoftwareParsers/AsepriteParser.gd",
    "content": "class_name AsepriteParser\nextends RefCounted\n\n# Based on https://github.com/aseprite/aseprite/blob/main/docs/ase-file-specs.md\n\nenum ChunkTypes {\n\tOLD_PALETTE_1 = 0x0004,\n\tOLD_PALETTE_2 = 0x0011,\n\tLAYER = 0x2004,\n\tCEL = 0x2005,\n\tCEL_EXTRA = 0x2006,\n\tCOLOR_PROFILE = 0x2007,\n\tEXTERNAL_FILES = 0x2008,\n\tMASK = 0x2016,\n\tPATH = 0x2017,\n\tTAGS = 0x2018,\n\tPALETTE = 0x2019,\n\tUSER_DATA = 0x2020,\n\tSLICE = 0x2022,\n\tTILESET = 0x2023,\n}\n\nenum AsepriteBlendMode {\n\tNORMAL,\n\tMULTIPLY,\n\tSCREEN,\n\tOVERLAY,\n\tDARKEN,\n\tLIGHTEN,\n\tCOLOR_DODGE,\n\tCOLOR_BURN,\n\tHARD_LIGHT,\n\tSOFT_LIGHT,\n\tDIFFERENCE,\n\tEXCLUSION,\n\tHUE,\n\tSATURATION,\n\tCOLOR,\n\tLUMINOSITY,\n\tADD,\n\tSUBTRACT,\n\tDIVIDE\n}\n\n## The size in bytes of the cel chunks, without the image or tilemap data.\nconst BASE_CEL_CHUNK_SIZE := 22\nconst IMAGE_CEL_CHUNK_SIZE := BASE_CEL_CHUNK_SIZE + 4\nconst TILEMAP_CEL_CHUNK_SIZE := BASE_CEL_CHUNK_SIZE + 32\n\n\n# gdlint: disable=function-variable-name\nstatic func open_aseprite_file(path: String) -> void:\n\tvar ase_file := FileAccess.open(path, FileAccess.READ)\n\tif FileAccess.get_open_error() != OK or ase_file == null:\n\t\treturn\n\tvar _file_size := ase_file.get_32()\n\tvar magic_number := ase_file.get_16()\n\tif magic_number != 0xA5E0:\n\t\treturn\n\tvar frames := ase_file.get_16()\n\tvar project_width := ase_file.get_16()\n\tvar project_height := ase_file.get_16()\n\tvar project_size := Vector2i(project_width, project_height)\n\tvar new_project := Project.new([], path.get_file().get_basename(), project_size)\n\tnew_project.fps = 1.0\n\tvar color_depth := ase_file.get_16()\n\tvar image_format := Image.FORMAT_RGBA8\n\tvar pixel_byte := 4\n\tif color_depth == 16:\n\t\timage_format = Image.FORMAT_LA8\n\t\tpixel_byte = 2\n\telif color_depth == 8:\n\t\tpixel_byte = 1\n\t\tnew_project.color_mode = Project.INDEXED_MODE\n\tvar project_flags := ase_file.get_32()\n\tvar _project_speed := ase_file.get_16()  # Deprecated\n\tase_file.get_32()\n\tase_file.get_32()\n\tvar palette_entry_index := ase_file.get_8()  # Represents transparent color in indexed mode\n\tase_file.get_buffer(3)  # To ignore\n\tvar number_of_colors := ase_file.get_16()\n\tvar _pixel_width := ase_file.get_8()\n\tvar _pixel_height := ase_file.get_8()\n\tvar _grid_position_x := ase_file.get_16()\n\tvar _grid_position_y := ase_file.get_16()\n\tvar _grid_width := ase_file.get_16()\n\tvar _grid_height := ase_file.get_16()\n\tase_file.get_buffer(84)  # For future\n\tvar palettes: Dictionary[String, Palette]\n\tvar project_current_palette_name := \"\"\n\n\tfor i in frames:\n\t\tvar _frame_bytes := ase_file.get_32()\n\t\tvar frame_magic_number := ase_file.get_16()\n\t\tif frame_magic_number != 0xF1FA:\n\t\t\tprinterr(\"Error in frame %s\" % i)\n\t\t\tcontinue\n\t\tvar frame := Frame.new()\n\t\tvar number_of_chunks := ase_file.get_16()\n\t\tvar frame_dur := ase_file.get_16()\n\t\tframe.set_duration_in_seconds(frame_dur * 0.001, new_project.fps)\n\t\tase_file.get_buffer(2)  # For future\n\t\tvar new_number_of_chunks := ase_file.get_32()\n\t\tif new_number_of_chunks != 0:\n\t\t\tnumber_of_chunks = new_number_of_chunks\n\t\tvar previous_chunk_type := 0\n\t\tvar current_frame_tag := -1\n\t\tfor j in number_of_chunks:\n\t\t\tvar chunk_size := ase_file.get_32()\n\t\t\tvar chunk_type := ase_file.get_16()\n\t\t\tif chunk_type != 0x2020:\n\t\t\t\tprevious_chunk_type = chunk_type\n\t\t\tmatch chunk_type:\n\t\t\t\tChunkTypes.OLD_PALETTE_1, ChunkTypes.OLD_PALETTE_2:\n\t\t\t\t\tvar n_of_packets := ase_file.get_16()\n\t\t\t\t\tfor packet in n_of_packets:\n\t\t\t\t\t\tvar _n_entries_skip := ase_file.get_8()\n\t\t\t\t\t\tvar _n_of_colors := ase_file.get_8()\n\t\t\t\t\t\tfor color in number_of_colors:\n\t\t\t\t\t\t\tvar _red := ase_file.get_8()\n\t\t\t\t\t\t\tvar _green := ase_file.get_8()\n\t\t\t\t\t\t\tvar _blue := ase_file.get_8()\n\t\t\t\tChunkTypes.LAYER:\n\t\t\t\t\tvar layer_flags := ase_file.get_16()\n\t\t\t\t\tvar layer_type := ase_file.get_16()\n\t\t\t\t\tvar layer_child_level := ase_file.get_16()\n\t\t\t\t\tvar _layer_width := ase_file.get_16()  # ignored\n\t\t\t\t\tvar _layer_height := ase_file.get_16()  # ignored\n\t\t\t\t\tvar layer_blend_mode := ase_file.get_16()\n\t\t\t\t\tvar layer_opacity := 1.0\n\t\t\t\t\tif project_flags & 1 == 1:\n\t\t\t\t\t\tlayer_opacity = ase_file.get_8() / 255.0\n\t\t\t\t\tase_file.get_buffer(3)  # For future\n\t\t\t\t\tvar layer_name := parse_aseprite_string(ase_file)\n\t\t\t\t\tvar layer: BaseLayer\n\t\t\t\t\tif layer_type == 0:\n\t\t\t\t\t\tlayer = PixelLayer.new(new_project, layer_name)\n\t\t\t\t\t\tlayer.blend_mode = match_blend_modes(layer_blend_mode)\n\t\t\t\t\t\tlayer.opacity = layer_opacity\n\t\t\t\t\telif layer_type == 1:\n\t\t\t\t\t\tlayer = GroupLayer.new(new_project, layer_name)\n\t\t\t\t\t\tlayer.expanded = layer_flags & 32 != 32\n\t\t\t\t\telif layer_type == 2:\n\t\t\t\t\t\tvar tileset_index := ase_file.get_32()\n\t\t\t\t\t\tvar tileset := new_project.tilesets[tileset_index]\n\t\t\t\t\t\tlayer = LayerTileMap.new(new_project, tileset, layer_name)\n\t\t\t\t\t\tlayer.blend_mode = match_blend_modes(layer_blend_mode)\n\t\t\t\t\t\tlayer.opacity = layer_opacity\n\t\t\t\t\tlayer.visible = layer_flags & 1 == 1\n\t\t\t\t\tlayer.locked = layer_flags & 2 != 2\n\t\t\t\t\tlayer.new_cels_linked = layer_flags & 16 == 16\n\t\t\t\t\tlayer.index = new_project.layers.size()\n\t\t\t\t\tnew_project.layers.append(layer)\n\t\t\t\t\tlayer.set_meta(&\"layer_child_level\", layer_child_level)\n\t\t\t\tChunkTypes.CEL:\n\t\t\t\t\tvar layer_index := ase_file.get_16()\n\t\t\t\t\tvar layer := new_project.layers[layer_index]\n\t\t\t\t\tvar cel := layer.new_empty_cel()\n\t\t\t\t\tvar x_pos := ase_file.get_16()\n\t\t\t\t\tvar y_pos := ase_file.get_16()\n\t\t\t\t\tcel.opacity = ase_file.get_8() / 255.0\n\t\t\t\t\tvar cel_type := ase_file.get_16()\n\t\t\t\t\tcel.z_index = ase_file.get_16()\n\t\t\t\t\tase_file.get_buffer(5)  # For future\n\t\t\t\t\tif cel_type == 0 or cel_type == 2:  # Raw uncompressed and compressed image\n\t\t\t\t\t\tvar width := ase_file.get_16()\n\t\t\t\t\t\tvar height := ase_file.get_16()\n\t\t\t\t\t\tvar image_rect := Rect2i(Vector2i.ZERO, Vector2i(width, height))\n\t\t\t\t\t\tvar color_bytes := ase_file.get_buffer(chunk_size - IMAGE_CEL_CHUNK_SIZE)\n\t\t\t\t\t\tif cel_type == 2:  # Compressed image\n\t\t\t\t\t\t\tcolor_bytes = color_bytes.decompress(\n\t\t\t\t\t\t\t\twidth * height * pixel_byte, FileAccess.COMPRESSION_DEFLATE\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\tif color_depth > 8:\n\t\t\t\t\t\t\tvar ase_cel_image := Image.create_from_data(\n\t\t\t\t\t\t\t\twidth, height, false, image_format, color_bytes\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tase_cel_image.convert(new_project.get_image_format())\n\t\t\t\t\t\t\tcel.get_image().blit_rect(\n\t\t\t\t\t\t\t\tase_cel_image, image_rect, Vector2i(x_pos, y_pos)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\telse:  # Indexed mode\n\t\t\t\t\t\t\tfor k in color_bytes.size():\n\t\t\t\t\t\t\t\tcolor_bytes[k] += 1\n\t\t\t\t\t\t\t\tif color_bytes[k] == palette_entry_index + 1:\n\t\t\t\t\t\t\t\t\tcolor_bytes[k] = 0\n\t\t\t\t\t\t\tvar ase_cel_image := Image.create_from_data(\n\t\t\t\t\t\t\t\twidth, height, false, Image.FORMAT_R8, color_bytes\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tcel.get_image().indices_image.blit_rect(\n\t\t\t\t\t\t\t\tase_cel_image, image_rect, Vector2i(x_pos, y_pos)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tcel.get_image().convert_indexed_to_rgb()\n\t\t\t\t\telif cel_type == 1:  # Linked cel\n\t\t\t\t\t\tvar frame_position_to_link_with := ase_file.get_16()\n\t\t\t\t\t\tvar cel_to_link := (\n\t\t\t\t\t\t\tnew_project.frames[frame_position_to_link_with].cels[layer_index]\n\t\t\t\t\t\t)\n\t\t\t\t\t\tvar link_set = cel_to_link.link_set\n\t\t\t\t\t\tif link_set == null:\n\t\t\t\t\t\t\tlink_set = {}\n\t\t\t\t\t\t\tlayer.link_cel(cel_to_link, link_set)\n\t\t\t\t\t\tlayer.link_cel(cel, link_set)\n\t\t\t\t\t\tcel.set_content(cel_to_link.get_content(), cel_to_link.image_texture)\n\t\t\t\t\telif cel_type == 3:  # Compressed tilemap\n\t\t\t\t\t\tvar width := ase_file.get_16()\n\t\t\t\t\t\tvar height := ase_file.get_16()\n\t\t\t\t\t\tvar bits_per_tile := ase_file.get_16()\n\t\t\t\t\t\tvar _tile_id_bitmask := ase_file.get_32()\n\t\t\t\t\t\tvar _x_flip_bitmask := ase_file.get_32()\n\t\t\t\t\t\tvar _y_flip_bitmask := ase_file.get_32()\n\t\t\t\t\t\tvar _diagonal_flip_bitmask := ase_file.get_32()\n\t\t\t\t\t\tase_file.get_buffer(10)  # Reserved\n\t\t\t\t\t\tvar tilemap_cel := cel as CelTileMap\n\t\t\t\t\t\t@warning_ignore(\"integer_division\")\n\t\t\t\t\t\tvar bytes_per_tile := bits_per_tile / 8\n\t\t\t\t\t\tvar tile_data_compressed := ase_file.get_buffer(\n\t\t\t\t\t\t\tchunk_size - TILEMAP_CEL_CHUNK_SIZE\n\t\t\t\t\t\t)\n\t\t\t\t\t\tvar tile_size := tilemap_cel.get_tile_size()\n\t\t\t\t\t\tvar tile_data_size := (\n\t\t\t\t\t\t\twidth * height * tile_size.x * tile_size.y * pixel_byte\n\t\t\t\t\t\t)\n\t\t\t\t\t\tvar tile_data := tile_data_compressed.decompress(\n\t\t\t\t\t\t\ttile_data_size, FileAccess.COMPRESSION_DEFLATE\n\t\t\t\t\t\t)\n\t\t\t\t\t\ttilemap_cel.offset = Vector2(x_pos, y_pos)\n\t\t\t\t\t\tfor y in height:\n\t\t\t\t\t\t\tfor x in width:\n\t\t\t\t\t\t\t\tvar cell_pos := x + (y * width)\n\t\t\t\t\t\t\t\tvar cell_index := tile_data[cell_pos * bytes_per_tile]\n\t\t\t\t\t\t\t\tvar transformed_bit := 0\n\t\t\t\t\t\t\t\tif bits_per_tile == 32:\n\t\t\t\t\t\t\t\t\ttransformed_bit = tile_data[cell_pos * bytes_per_tile + 3]\n\t\t\t\t\t\t\t\tvar cell := tilemap_cel.get_cell_at(Vector2i(x, y))\n\t\t\t\t\t\t\t\tvar flip_h := transformed_bit & 128 == 128\n\t\t\t\t\t\t\t\tvar flip_v := transformed_bit & 64 == 64\n\t\t\t\t\t\t\t\tvar transpose := transformed_bit & 32 == 32\n\t\t\t\t\t\t\t\ttilemap_cel.set_index(cell, cell_index, flip_h, flip_v, transpose)\n\n\t\t\t\t\t# Add in-between GroupCels, if there are any.\n\t\t\t\t\t# This is needed because Aseprite's group cels do not store any data\n\t\t\t\t\t# in Aseprite files, so we need to make our own.\n\t\t\t\t\twhile layer_index > frame.cels.size():\n\t\t\t\t\t\tvar group_layer := new_project.layers[frame.cels.size()]\n\t\t\t\t\t\tvar group_cel := group_layer.new_empty_cel()\n\t\t\t\t\t\tframe.cels.append(group_cel)\n\t\t\t\t\tframe.cels.append(cel)\n\t\t\t\tChunkTypes.CEL_EXTRA:\n\t\t\t\t\tvar _flags := ase_file.get_32()\n\t\t\t\t\tvar _x_position := ase_file.get_float()\n\t\t\t\t\tvar _y_position := ase_file.get_float()\n\t\t\t\t\tvar _cel_width := ase_file.get_float()\n\t\t\t\t\tvar _cel_height := ase_file.get_float()\n\t\t\t\t\tase_file.get_buffer(16)  # For future\n\t\t\t\tChunkTypes.COLOR_PROFILE:  # TODO: Do we need this?\n\t\t\t\t\tvar type := ase_file.get_16()\n\t\t\t\t\tvar _flags := ase_file.get_16()\n\t\t\t\t\tvar _fixed_gamma := ase_file.get_float()\n\t\t\t\t\tase_file.get_buffer(8)  # For future\n\t\t\t\t\tif type == 2:  # ICC\n\t\t\t\t\t\tvar icc_profile_data_length := ase_file.get_32()\n\t\t\t\t\t\tase_file.get_buffer(icc_profile_data_length)\n\t\t\t\tChunkTypes.EXTERNAL_FILES:\n\t\t\t\t\tvar n_of_entries := ase_file.get_32()\n\t\t\t\t\tase_file.get_buffer(8)  # Reserved\n\t\t\t\t\tfor k in n_of_entries:\n\t\t\t\t\t\tvar _entry_id := ase_file.get_32()\n\t\t\t\t\t\tvar _entry_type := ase_file.get_8()\n\t\t\t\t\t\tase_file.get_buffer(7)  # Reserved\n\t\t\t\t\t\tvar _external_file_name := parse_aseprite_string(ase_file)\n\t\t\t\tChunkTypes.MASK:\n\t\t\t\t\tvar _position_x := ase_file.get_16()\n\t\t\t\t\tvar _position_y := ase_file.get_16()\n\t\t\t\t\tvar mask_width := ase_file.get_16()\n\t\t\t\t\tvar mask_height := ase_file.get_16()\n\t\t\t\t\tase_file.get_buffer(8)  # For future\n\t\t\t\t\tvar _mask_name := parse_aseprite_string(ase_file)\n\t\t\t\t\t# Read image data\n\t\t\t\t\t@warning_ignore(\"integer_division\")\n\t\t\t\t\tvar byte_data_size := mask_height * ((mask_width + 7) / 8)\n\t\t\t\t\tfor k in byte_data_size:\n\t\t\t\t\t\tase_file.get_8()\n\t\t\t\tChunkTypes.PATH:  # Never used\n\t\t\t\t\tpass\n\t\t\t\tChunkTypes.TAGS:\n\t\t\t\t\tvar n_of_tags := ase_file.get_16()\n\t\t\t\t\tase_file.get_buffer(8)  # For future\n\t\t\t\t\tfor k in n_of_tags:\n\t\t\t\t\t\tvar from_frame := ase_file.get_16()\n\t\t\t\t\t\tvar to_frame := ase_file.get_16()\n\t\t\t\t\t\tvar _animation_dir := ase_file.get_8()  # Currently not used in Pixelorama\n\t\t\t\t\t\tvar _repeat := ase_file.get_16()  # Currently not used in Pixelorama\n\t\t\t\t\t\tase_file.get_buffer(6)  # For future\n\t\t\t\t\t\tase_file.get_buffer(3)  # Deprecated RGB values\n\t\t\t\t\t\tase_file.get_8()  # Extra byte (zero)\n\t\t\t\t\t\tvar text := parse_aseprite_string(ase_file)\n\t\t\t\t\t\tvar tag := AnimationTag.new(text, Color.WHITE, from_frame + 1, to_frame + 1)\n\t\t\t\t\t\tnew_project.animation_tags.append(tag)\n\t\t\t\tChunkTypes.PALETTE:\n\t\t\t\t\t# TODO: Import palettes into Pixelorama once we support project palettes\n\t\t\t\t\tvar _palette_size := ase_file.get_32()\n\t\t\t\t\tvar first_index_to_change := ase_file.get_32()\n\t\t\t\t\tvar last_index_to_change := ase_file.get_32()\n\t\t\t\t\tase_file.get_buffer(8)  # For future\n\t\t\t\t\tvar colors: PackedColorArray\n\t\t\t\t\tfor k in range(first_index_to_change, last_index_to_change + 1):\n\t\t\t\t\t\tvar flags := ase_file.get_16()\n\t\t\t\t\t\tvar red := ase_file.get_8()\n\t\t\t\t\t\tvar green := ase_file.get_8()\n\t\t\t\t\t\tvar blue := ase_file.get_8()\n\t\t\t\t\t\tvar alpha := ase_file.get_8()\n\t\t\t\t\t\tcolors.append(Color.from_rgba8(red, green, blue, alpha))\n\t\t\t\t\t\tif flags & 1 == 1:\n\t\t\t\t\t\t\tvar _name := parse_aseprite_string(ase_file)\n\t\t\t\t\tvar palette_name := \"Imported Palette %s\" % palettes.size()\n\t\t\t\t\tvar correct_name := Palettes.get_valid_name(palette_name, new_project)\n\t\t\t\t\tvar palette := Palettes.fill_imported_palette_with_colors(correct_name, colors)\n\t\t\t\t\tpalette.is_project_palette = true\n\t\t\t\t\tpalettes[correct_name] = palette\n\t\t\t\t\tproject_current_palette_name = correct_name\n\t\t\t\tChunkTypes.USER_DATA:\n\t\t\t\t\tvar flags := ase_file.get_32()\n\t\t\t\t\tif previous_chunk_type == ChunkTypes.TAGS:\n\t\t\t\t\t\tcurrent_frame_tag += 1\n\t\t\t\t\tif flags & 1 == 1:\n\t\t\t\t\t\tvar text := parse_aseprite_string(ase_file)\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tprevious_chunk_type == ChunkTypes.OLD_PALETTE_1\n\t\t\t\t\t\t\tor previous_chunk_type == ChunkTypes.OLD_PALETTE_2\n\t\t\t\t\t\t\tor previous_chunk_type == ChunkTypes.PALETTE\n\t\t\t\t\t\t):\n\t\t\t\t\t\t\tnew_project.user_data = text\n\t\t\t\t\t\telif previous_chunk_type == ChunkTypes.CEL:\n\t\t\t\t\t\t\tframe.cels[-1].user_data = text\n\t\t\t\t\t\telif previous_chunk_type == ChunkTypes.LAYER:\n\t\t\t\t\t\t\tnew_project.layers[-1].user_data = text\n\t\t\t\t\t\telif previous_chunk_type == ChunkTypes.TAGS:\n\t\t\t\t\t\t\tnew_project.animation_tags[current_frame_tag].user_data = text\n\t\t\t\t\tif flags & 2 == 2:\n\t\t\t\t\t\tvar red := ase_file.get_8()\n\t\t\t\t\t\tvar green := ase_file.get_8()\n\t\t\t\t\t\tvar blue := ase_file.get_8()\n\t\t\t\t\t\tvar alpha := ase_file.get_8()\n\t\t\t\t\t\tif previous_chunk_type == ChunkTypes.CEL:\n\t\t\t\t\t\t\tframe.cels[-1].ui_color = Color.from_rgba8(red, green, blue, alpha)\n\t\t\t\t\t\telif previous_chunk_type == ChunkTypes.LAYER:\n\t\t\t\t\t\t\tnew_project.layers[-1].ui_color = Color.from_rgba8(\n\t\t\t\t\t\t\t\tred, green, blue, alpha\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\telif previous_chunk_type == ChunkTypes.TAGS:\n\t\t\t\t\t\t\tnew_project.animation_tags[current_frame_tag].color = Color.from_rgba8(\n\t\t\t\t\t\t\t\tred, green, blue, alpha\n\t\t\t\t\t\t\t)\n\t\t\t\t\tif flags & 4 == 4:\n\t\t\t\t\t\tvar _properties_map_size := ase_file.get_32()\n\t\t\t\t\t\tvar n_of_properties_maps := ase_file.get_32()\n\t\t\t\t\t\tfor k in n_of_properties_maps:\n\t\t\t\t\t\t\tvar _properties_maps_key := ase_file.get_32()\n\t\t\t\t\t\t\tvar n_of_properties := ase_file.get_32()\n\t\t\t\t\t\t\tfor l in n_of_properties:\n\t\t\t\t\t\t\t\tvar _property_name := parse_aseprite_string(ase_file)\n\t\t\t\t\t\t\t\tvar property_type := ase_file.get_16()\n\t\t\t\t\t\t\t\tvar _property = parse_aseprite_variant(ase_file, property_type)\n\t\t\t\tChunkTypes.SLICE:\n\t\t\t\t\tvar slice_keys := ase_file.get_32()\n\t\t\t\t\tvar slice_flags := ase_file.get_32()\n\t\t\t\t\tase_file.get_32()  # Reserved\n\t\t\t\t\tvar _slice_name := parse_aseprite_string(ase_file)\n\t\t\t\t\tfor k in slice_keys:\n\t\t\t\t\t\t# This slice is valid from this frame to the end of the animation\n\t\t\t\t\t\tvar _frame_number := ase_file.get_32()\n\t\t\t\t\t\tvar _slice_origin_x := ase_file.get_32()\n\t\t\t\t\t\tvar _slice_origin_y := ase_file.get_32()\n\t\t\t\t\t\tvar _slice_width := ase_file.get_32()\n\t\t\t\t\t\tvar _slice_height := ase_file.get_32()\n\t\t\t\t\t\tif slice_flags & 1 == 1:\n\t\t\t\t\t\t\tvar _center_position_x := ase_file.get_32()\n\t\t\t\t\t\t\tvar _center_position_y := ase_file.get_32()\n\t\t\t\t\t\t\tvar _center_width := ase_file.get_32()\n\t\t\t\t\t\t\tvar _center_height := ase_file.get_32()\n\t\t\t\t\t\tif slice_flags & 2 == 2:\n\t\t\t\t\t\t\tvar _pivot_position_x := ase_file.get_32()\n\t\t\t\t\t\t\tvar _pivot_position_y := ase_file.get_32()\n\t\t\t\tChunkTypes.TILESET:  # Tileset Chunk\n\t\t\t\t\tvar _tileset_id := ase_file.get_32()\n\t\t\t\t\tvar tileset_flags := ase_file.get_32()\n\t\t\t\t\tvar n_of_tiles := ase_file.get_32()\n\t\t\t\t\tvar tile_width := ase_file.get_16()\n\t\t\t\t\tvar tile_height := ase_file.get_16()\n\t\t\t\t\tvar _base_index := ase_file.get_16()\n\t\t\t\t\tase_file.get_buffer(14)  # Reserved\n\t\t\t\t\tvar tileset_name := parse_aseprite_string(ase_file)\n\t\t\t\t\tvar all_tiles_image_data: PackedByteArray\n\t\t\t\t\tif tileset_flags & 1 == 1:\n\t\t\t\t\t\tvar _external_id := ase_file.get_32()\n\t\t\t\t\t\tvar _tileset_id_in_external := ase_file.get_32()\n\t\t\t\t\tif tileset_flags & 2 == 2:\n\t\t\t\t\t\tvar data_compressed_length := ase_file.get_32()\n\t\t\t\t\t\tvar image_data_compressed := ase_file.get_buffer(data_compressed_length)\n\t\t\t\t\t\tvar data_length := tile_width * (tile_height * n_of_tiles) * pixel_byte\n\t\t\t\t\t\tall_tiles_image_data = image_data_compressed.decompress(\n\t\t\t\t\t\t\tdata_length, FileAccess.COMPRESSION_DEFLATE\n\t\t\t\t\t\t)\n\t\t\t\t\tvar tileset := TileSetCustom.new(\n\t\t\t\t\t\tVector2i(tile_width, tile_height),\n\t\t\t\t\t\ttileset_name,\n\t\t\t\t\t\tTileSet.TILE_SHAPE_SQUARE,\n\t\t\t\t\t\tfalse\n\t\t\t\t\t)\n\t\t\t\t\tfor k in n_of_tiles:\n\t\t\t\t\t\tvar n_of_pixels := tile_width * tile_height * pixel_byte\n\t\t\t\t\t\tvar pixel_start := k * n_of_pixels\n\t\t\t\t\t\tvar tile_image_data := all_tiles_image_data.slice(\n\t\t\t\t\t\t\tpixel_start, pixel_start + n_of_pixels\n\t\t\t\t\t\t)\n\t\t\t\t\t\tif color_depth > 8:\n\t\t\t\t\t\t\tvar image := Image.create_from_data(\n\t\t\t\t\t\t\t\ttile_width, tile_height, false, image_format, tile_image_data\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\timage.convert(new_project.get_image_format())\n\t\t\t\t\t\t\ttileset.add_tile(image, null, 0)\n\t\t\t\t\t\telse:  # Indexed mode\n\t\t\t\t\t\t\tfor l in tile_image_data.size():\n\t\t\t\t\t\t\t\ttile_image_data[l] += 1\n\t\t\t\t\t\t\t\tif tile_image_data[l] == palette_entry_index + 1:\n\t\t\t\t\t\t\t\t\ttile_image_data[l] = 0\n\t\t\t\t\t\t\tvar indices_image := Image.create_from_data(\n\t\t\t\t\t\t\t\ttile_width, tile_height, false, Image.FORMAT_R8, tile_image_data\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tvar image := ImageExtended.create_custom(\n\t\t\t\t\t\t\t\ttile_width, tile_height, false, new_project.get_image_format(), true\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\timage.indices_image.copy_from(indices_image)\n\t\t\t\t\t\t\timage.convert_indexed_to_rgb()\n\t\t\t\t\t\t\ttileset.add_tile(image, null, 0)\n\t\t\t\t\tnew_project.tilesets.append(tileset)\n\t\t\t\t_:\n\t\t\t\t\tprinterr(\"Unsupported chunk type.\")\n\t\tnew_project.frames.append(frame)\n\t\t# Add cels if any are missing. Happens when there are group layers with no children\n\t\t# on the top of the layer order.\n\t\tvar n_of_cels := frame.cels.size()\n\t\tif new_project.layers.size() != n_of_cels:\n\t\t\tfor j in range(n_of_cels, new_project.layers.size()):\n\t\t\t\tvar layer := new_project.layers[j]\n\t\t\t\tvar cel := layer.new_empty_cel()\n\t\t\t\tframe.cels.append(cel)\n\torganize_layer_child_levels(new_project)\n\tnew_project.order_layers()\n\tnew_project.save_path = path.get_basename() + \".pxo\"\n\tnew_project.file_name = new_project.name\n\tnew_project.palettes = palettes\n\tnew_project.project_current_palette_name = project_current_palette_name\n\tGlobal.projects.append(new_project)\n\tGlobal.tabs.current_tab = Global.tabs.get_tab_count() - 1\n\tGlobal.canvas.camera_zoom()\n\n\nstatic func parse_aseprite_string(ase_file: FileAccess) -> String:\n\tvar text_length := ase_file.get_16()\n\tvar text_characters := ase_file.get_buffer(text_length)\n\treturn text_characters.get_string_from_utf8()\n\n\n## Match Aseprite's blend modes to Pixelorama's\nstatic func match_blend_modes(blend_mode: AsepriteBlendMode) -> BaseLayer.BlendModes:\n\tmatch blend_mode:\n\t\tAsepriteBlendMode.MULTIPLY:\n\t\t\treturn BaseLayer.BlendModes.MULTIPLY\n\t\tAsepriteBlendMode.SCREEN:\n\t\t\treturn BaseLayer.BlendModes.SCREEN\n\t\tAsepriteBlendMode.OVERLAY:\n\t\t\treturn BaseLayer.BlendModes.OVERLAY\n\t\tAsepriteBlendMode.DARKEN:\n\t\t\treturn BaseLayer.BlendModes.DARKEN\n\t\tAsepriteBlendMode.LIGHTEN:\n\t\t\treturn BaseLayer.BlendModes.LIGHTEN\n\t\tAsepriteBlendMode.COLOR_DODGE:\n\t\t\treturn BaseLayer.BlendModes.COLOR_DODGE\n\t\tAsepriteBlendMode.COLOR_BURN:\n\t\t\treturn BaseLayer.BlendModes.COLOR_BURN\n\t\tAsepriteBlendMode.HARD_LIGHT:\n\t\t\treturn BaseLayer.BlendModes.HARD_LIGHT\n\t\tAsepriteBlendMode.SOFT_LIGHT:\n\t\t\treturn BaseLayer.BlendModes.SOFT_LIGHT\n\t\tAsepriteBlendMode.DIFFERENCE:\n\t\t\treturn BaseLayer.BlendModes.DIFFERENCE\n\t\tAsepriteBlendMode.EXCLUSION:\n\t\t\treturn BaseLayer.BlendModes.EXCLUSION\n\t\tAsepriteBlendMode.HUE:\n\t\t\treturn BaseLayer.BlendModes.HUE\n\t\tAsepriteBlendMode.SATURATION:\n\t\t\treturn BaseLayer.BlendModes.SATURATION\n\t\tAsepriteBlendMode.COLOR:\n\t\t\treturn BaseLayer.BlendModes.COLOR\n\t\tAsepriteBlendMode.LUMINOSITY:\n\t\t\treturn BaseLayer.BlendModes.LUMINOSITY\n\t\tAsepriteBlendMode.ADD:\n\t\t\treturn BaseLayer.BlendModes.ADD\n\t\tAsepriteBlendMode.SUBTRACT:\n\t\t\treturn BaseLayer.BlendModes.SUBTRACT\n\t\tAsepriteBlendMode.DIVIDE:\n\t\t\treturn BaseLayer.BlendModes.DIVIDE\n\t\t_:\n\t\t\treturn BaseLayer.BlendModes.NORMAL\n\n\nstatic func parse_aseprite_variant(ase_file: FileAccess, property_type: int) -> Variant:\n\tvar property: Variant\n\tmatch property_type:\n\t\t0x0001, 0x0002, 0x0003:  # bool, int8, uint8\n\t\t\tproperty = ase_file.get_8()\n\t\t0x0004, 0x0005:  # int16, uint16\n\t\t\tproperty = ase_file.get_16()\n\t\t0x0006, 0x0007:  # int32, uint32\n\t\t\tproperty = ase_file.get_32()\n\t\t0x0008, 0x0009:  # int64, uint64\n\t\t\tproperty = ase_file.get_64()\n\t\t0x000A, 0x000B:  # Fixed, float\n\t\t\tproperty = ase_file.get_float()\n\t\t0x000C:  # Double\n\t\t\tproperty = ase_file.get_double()\n\t\t0x000D:  # String\n\t\t\tproperty = parse_aseprite_string(ase_file)\n\t\t0x000E, 0x000F:  # Point, size\n\t\t\tproperty = Vector2(ase_file.get_32(), ase_file.get_32())\n\t\t0x0010:  # Rect\n\t\t\tproperty = Rect2()\n\t\t\tproperty.position = Vector2(ase_file.get_32(), ase_file.get_32())\n\t\t\tproperty.size = Vector2(ase_file.get_32(), ase_file.get_32())\n\t\t0x0011:  # Vector\n\t\t\tvar n_of_elements := ase_file.get_32()\n\t\t\tvar element_type := ase_file.get_16()\n\t\t\tproperty = []\n\t\t\tif element_type == 0:  # All elements are not of the same type\n\t\t\t\tfor i in n_of_elements:\n\t\t\t\t\tvar subelement_type := ase_file.get_16()\n\t\t\t\t\tvar subelement = parse_aseprite_variant(ase_file, subelement_type)\n\t\t\t\t\tproperty.append(subelement)\n\t\t\telse:  # All elements are of the same type\n\t\t\t\tfor i in n_of_elements:\n\t\t\t\t\tvar subelement = parse_aseprite_variant(ase_file, element_type)\n\t\t\t\t\tproperty.append(subelement)\n\t\t0x0012:  # Nested properties map\n\t\t\tvar n_of_properties := ase_file.get_32()\n\t\t\tproperty = {}\n\t\t\tfor i in n_of_properties:\n\t\t\t\tvar subproperty_name := parse_aseprite_string(ase_file)\n\t\t\t\tvar subproperty_type := ase_file.get_16()\n\t\t\t\tproperty[subproperty_name] = parse_aseprite_variant(ase_file, subproperty_type)\n\t\t0x0013:  # UUID\n\t\t\tproperty = ase_file.get_buffer(16)\n\treturn property\n\n\nstatic func organize_layer_child_levels(project: Project) -> void:\n\tfor i in project.layers.size():\n\t\tvar layer := project.layers[i]\n\t\tvar layer_child_level: int = layer.get_meta(&\"layer_child_level\", 0)\n\t\tif layer_child_level > 0:\n\t\t\tvar parent_layer: GroupLayer = null\n\t\t\tvar parent_i := 1\n\t\t\twhile parent_layer == null:\n\t\t\t\tvar prev_layer := project.layers[i - parent_i]\n\t\t\t\tif prev_layer is GroupLayer:\n\t\t\t\t\tif prev_layer.get_meta(&\"layer_child_level\", 0) == layer_child_level - 1:\n\t\t\t\t\t\tparent_layer = prev_layer\n\t\t\t\t\t\tbreak\n\t\t\t\tparent_i += 1\n\t\t\tproject.move_layers([i], [i - parent_i], [parent_layer])\n\tfor i in project.layers.size():\n\t\tvar layer := project.layers[i]\n\t\tlayer.remove_meta(&\"layer_child_level\")\n\t\tlayer.index = i\n"
  },
  {
    "path": "src/Classes/SoftwareParsers/AsepriteParser.gd.uid",
    "content": "uid://cjsvxxdgvtutc\n"
  },
  {
    "path": "src/Classes/SoftwareParsers/KritaParser.gd",
    "content": "class_name KritaParser\nextends RefCounted\n\n\n# https://invent.kde.org/documentation/docs-krita-org/-/merge_requests/105/diffs\n# https://github.com/2shady4u/godot-kra-psd-importer/blob/master/docs/KRA_FORMAT.md\nstatic func open_kra_file(path: String) -> void:\n\tvar zip_reader := ZIPReader.new()\n\tvar err := zip_reader.open(path)\n\tif err != OK:\n\t\tprinterr(\"Error opening kra file: \", error_string(err))\n\t\treturn\n\tvar data_xml := zip_reader.read_file(\"maindoc.xml\")\n\tvar parser := XMLParser.new()\n\terr = parser.open_buffer(data_xml)\n\tif err != OK:\n\t\tprinterr(\"Error parsing XML from kra file: \", error_string(err))\n\t\tzip_reader.close()\n\t\treturn\n\tvar xml_as_string := data_xml.get_string_from_utf8()\n\tvar has_animation := xml_as_string.contains(\"keyframes\")\n\tvar new_project := Project.new([Frame.new()], path.get_file().get_basename())\n\tvar selected_layer: BaseLayer\n\tvar group_layer_found := false\n\tvar current_stack: Array[GroupLayer] = []\n\n\tvar n_of_frames := 0\n\tvar starting_frame := 0\n\tvar is_parsing_horizontal_guides := false\n\tvar is_parsing_vertical_guides := false\n\t# First pass: get project, animation and guide data.\n\twhile parser.read() != ERR_FILE_EOF:\n\t\tif parser.get_node_type() == XMLParser.NODE_ELEMENT:\n\t\t\tvar node_name := parser.get_node_name()\n\t\t\tif node_name == \"IMAGE\":\n\t\t\t\tvar width := parser.get_named_attribute_value_safe(\"width\")\n\t\t\t\tif not width.is_empty():\n\t\t\t\t\tnew_project.size.x = int(width)\n\t\t\t\tvar height := parser.get_named_attribute_value_safe(\"height\")\n\t\t\t\tif not height.is_empty():\n\t\t\t\t\tnew_project.size.y = int(height)\n\t\t\t\tvar project_name := parser.get_named_attribute_value_safe(\"name\")\n\t\t\t\tif not project_name.is_empty():\n\t\t\t\t\tnew_project.name = project_name\n\t\t\t\tvar xres := parser.get_named_attribute_value_safe(\"x-res\")\n\t\t\t\tvar yres := parser.get_named_attribute_value_safe(\"y-res\")\n\t\t\t\tnew_project.set_meta(&\"xres\", str_to_var(xres))\n\t\t\t\tnew_project.set_meta(&\"yres\", str_to_var(yres))\n\t\t\telif node_name == \"framerate\":\n\t\t\t\tvar framerate_type := parser.get_named_attribute_value_safe(\"type\")\n\t\t\t\tif framerate_type == \"value\":\n\t\t\t\t\tvar framerate := parser.get_named_attribute_value_safe(\"value\")\n\t\t\t\t\tif not framerate.is_empty():\n\t\t\t\t\t\tnew_project.fps = float(framerate)\n\t\t\telif node_name == \"range\":\n\t\t\t\tvar type := parser.get_named_attribute_value_safe(\"type\")\n\t\t\t\tif type == \"timerange\":\n\t\t\t\t\tvar to := parser.get_named_attribute_value_safe(\"to\")\n\t\t\t\t\tvar from := parser.get_named_attribute_value_safe(\"from\")\n\t\t\t\t\tif not to.is_empty() and not from.is_empty():\n\t\t\t\t\t\tstarting_frame = int(from)\n\t\t\t\t\t\tn_of_frames = int(to) - starting_frame + 1\n\t\t\telif node_name == \"horizontalGuides\":\n\t\t\t\tis_parsing_horizontal_guides = true\n\t\t\telif node_name == \"verticalGuides\":\n\t\t\t\tis_parsing_vertical_guides = true\n\t\t\telif node_name.begins_with(\"item_\"):\n\t\t\t\tif is_parsing_horizontal_guides:\n\t\t\t\t\tvar value_str := parser.get_named_attribute_value_safe(\"value\")\n\t\t\t\t\tvar position_units: float = str_to_var(value_str)\n\t\t\t\t\tvar dpi = new_project.get_meta(&\"xres\")\n\t\t\t\t\tvar position: float = position_units * (dpi / 72.0)\n\t\t\t\t\tvar guide := Guide.new()\n\t\t\t\t\tguide.type = Guide.Types.HORIZONTAL\n\t\t\t\t\tguide.add_point(Vector2(-99999, position))\n\t\t\t\t\tguide.add_point(Vector2(99999, position))\n\t\t\t\t\tguide.has_focus = false\n\t\t\t\t\tguide.project = new_project\n\t\t\t\t\tGlobal.canvas.add_child(guide)\n\t\t\t\telif is_parsing_vertical_guides:\n\t\t\t\t\tvar value_str := parser.get_named_attribute_value_safe(\"value\")\n\t\t\t\t\tvar position_units: float = str_to_var(value_str)\n\t\t\t\t\tvar dpi = new_project.get_meta(&\"xres\")\n\t\t\t\t\tvar position: float = position_units * (dpi / 72.0)\n\t\t\t\t\tvar guide := Guide.new()\n\t\t\t\t\tguide.type = Guide.Types.VERTICAL\n\t\t\t\t\tguide.add_point(Vector2(position, -99999))\n\t\t\t\t\tguide.add_point(Vector2(position, 99999))\n\t\t\t\t\tguide.has_focus = false\n\t\t\t\t\tguide.project = new_project\n\t\t\t\t\tnew_project.guides.append(guide)\n\t\t\t\t\tGlobal.canvas.add_child(guide)\n\t\telif parser.get_node_type() == XMLParser.NODE_ELEMENT_END:\n\t\t\tvar node_name := parser.get_node_name()\n\t\t\tif node_name == \"horizontalGuides\":\n\t\t\t\tis_parsing_horizontal_guides = false\n\t\t\telif node_name == \"verticalGuides\":\n\t\t\t\tis_parsing_vertical_guides = false\n\n\t# Create frames if there is animation.\n\tif has_animation:\n\t\tfor i in range(1, n_of_frames):\n\t\t\tvar frame := Frame.new()\n\t\t\tnew_project.frames.append(frame)\n\n\tn_of_frames = new_project.frames.size()\n\tparser.seek(0)\n\t# Second pass: create layers. Needs to happen after frames have been created.\n\twhile parser.read() != ERR_FILE_EOF:\n\t\tif parser.get_node_type() == XMLParser.NODE_ELEMENT:\n\t\t\tvar node_name := parser.get_node_name()\n\t\t\tif node_name == \"layer\":\n\t\t\t\tvar layer_type := parser.get_named_attribute_value_safe(\"nodetype\")\n\t\t\t\tfor prev_layer in new_project.layers:\n\t\t\t\t\tprev_layer.index += 1\n\t\t\t\tvar layer_name := parser.get_named_attribute_value_safe(\"name\")\n\t\t\t\tvar layer: BaseLayer\n\t\t\t\tvar is_shape_layer := false\n\t\t\t\tif layer_type == \"grouplayer\":\n\t\t\t\t\tgroup_layer_found = true\n\t\t\t\t\tlayer = GroupLayer.new(new_project, layer_name)\n\t\t\t\t\tif current_stack.size() > 0:\n\t\t\t\t\t\tlayer.parent = current_stack[-1]\n\t\t\t\t\tlayer.expanded = parser.get_named_attribute_value_safe(\"collapsed\") == \"0\"\n\t\t\t\t\tvar passthrough := parser.get_named_attribute_value_safe(\"passthrough\")\n\t\t\t\t\tif passthrough == \"1\":\n\t\t\t\t\t\tlayer.blend_mode = BaseLayer.BlendModes.PASS_THROUGH\n\t\t\t\t\tcurrent_stack.append(layer)\n\t\t\t\telif layer_type == \"paintlayer\":\n\t\t\t\t\tlayer = PixelLayer.new(new_project, layer_name)\n\t\t\t\t\tif current_stack.size() > 0:\n\t\t\t\t\t\tlayer.parent = current_stack[-1]\n\t\t\t\t# TODO: Change to VectorLayer once we support them.\n\t\t\t\telif layer_type == \"shapelayer\":\n\t\t\t\t\tis_shape_layer = true\n\t\t\t\t\tlayer = PixelLayer.new(new_project, layer_name)\n\t\t\t\t\tif current_stack.size() > 0:\n\t\t\t\t\t\tlayer.parent = current_stack[-1]\n\t\t\t\tif not is_instance_valid(layer):\n\t\t\t\t\tcontinue\n\t\t\t\tnew_project.layers.insert(0, layer)\n\t\t\t\tif new_project.layers.size() == 1:\n\t\t\t\t\tselected_layer = layer\n\t\t\t\tlayer.index = 0\n\t\t\t\tlayer.opacity = float(parser.get_named_attribute_value_safe(\"opacity\")) / 255.0\n\t\t\t\tif parser.get_named_attribute_value_safe(\"selected\") == \"true\":\n\t\t\t\t\tselected_layer = layer\n\t\t\t\tlayer.visible = parser.get_named_attribute_value_safe(\"visible\") == \"1\"\n\t\t\t\tlayer.locked = parser.get_named_attribute_value_safe(\"locked\") == \"1\"\n\t\t\t\tif layer.blend_mode != BaseLayer.BlendModes.PASS_THROUGH:\n\t\t\t\t\tvar blend_mode := parser.get_named_attribute_value_safe(\"compositeop\")\n\t\t\t\t\tlayer.blend_mode = match_blend_modes(blend_mode)\n\t\t\t\tvar keyframes := parser.get_named_attribute_value_safe(\"keyframes\")\n\n\t\t\t\t# Create cel\n\t\t\t\tvar image_x := int(parser.get_named_attribute_value(\"x\"))\n\t\t\t\tvar image_y := int(parser.get_named_attribute_value(\"y\"))\n\t\t\t\tvar offset := Vector2i(image_x, image_y)\n\t\t\t\tif layer is PixelLayer:\n\t\t\t\t\tvar image_filename := parser.get_named_attribute_value_safe(\"filename\")\n\t\t\t\t\tvar image_path := new_project.name.path_join(\"layers\").path_join(image_filename)\n\t\t\t\t\tvar image: Image\n\t\t\t\t\tif is_shape_layer:\n\t\t\t\t\t\timage_path += \".shapelayer\".path_join(\"content.svg\")\n\t\t\t\t\t\tvar svg_binary := zip_reader.read_file(image_path)\n\t\t\t\t\t\timage = Image.new()\n\t\t\t\t\t\timage.load_svg_from_buffer(svg_binary)\n\t\t\t\t\telse:\n\t\t\t\t\t\tvar image_data := zip_reader.read_file(image_path)\n\t\t\t\t\t\timage = read_krita_image(image_data)\n\n\t\t\t\t\tif keyframes.is_empty():\n\t\t\t\t\t\t# If there are no keyframes, fill all cels with the same layer image.\n\t\t\t\t\t\tfill_frames(new_project, layer, image, 0, n_of_frames, offset)\n\t\t\t\t\telse:\n\t\t\t\t\t\t# Add animation frames, if they exist.\n\t\t\t\t\t\tvar keyframes_path := new_project.name.path_join(\"layers\").path_join(\n\t\t\t\t\t\t\tkeyframes\n\t\t\t\t\t\t)\n\t\t\t\t\t\tvar keyframes_xml_buffer := zip_reader.read_file(keyframes_path)\n\t\t\t\t\t\tvar keyframe_data := get_keyframe_data(keyframes_xml_buffer)\n\t\t\t\t\t\tif keyframe_data.is_empty():\n\t\t\t\t\t\t\tfill_frames(new_project, layer, image, 0, n_of_frames, offset)\n\t\t\t\t\t\telse:\n\t\t\t\t\t\t\tvar prev_time := 0\n\t\t\t\t\t\t\tvar prev_image := image\n\t\t\t\t\t\t\tfor keyframe in keyframe_data:\n\t\t\t\t\t\t\t\tvar time: int = int(keyframe[\"time\"]) - starting_frame\n\t\t\t\t\t\t\t\tif time < 0:\n\t\t\t\t\t\t\t\t\ttime = 0\n\t\t\t\t\t\t\t\t# Fill potentially empty frames with the image of the previous keyframe.\n\t\t\t\t\t\t\t\tfill_frames(new_project, layer, prev_image, prev_time, time, offset)\n\t\t\t\t\t\t\t\tvar frame_file: String = keyframe[\"frame\"]\n\t\t\t\t\t\t\t\tvar frame_path := new_project.name.path_join(\"layers\").path_join(\n\t\t\t\t\t\t\t\t\tframe_file\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\tvar image_data := zip_reader.read_file(frame_path)\n\t\t\t\t\t\t\t\tvar frame_image := read_krita_image(image_data)\n\t\t\t\t\t\t\t\tif not frame_image.is_empty():\n\t\t\t\t\t\t\t\t\tvar current_cel := layer.new_empty_cel()\n\t\t\t\t\t\t\t\t\tvar image_rect := Rect2i(Vector2i.ZERO, frame_image.get_size())\n\t\t\t\t\t\t\t\t\tcurrent_cel.get_image().blit_rect(\n\t\t\t\t\t\t\t\t\t\tframe_image, image_rect, Vector2i(image_x, image_y)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\tnew_project.frames[time].cels.insert(0, current_cel)\n\t\t\t\t\t\t\t\tprev_time = time + 1\n\t\t\t\t\t\t\t\tprev_image = frame_image\n\t\t\t\t\t\t\tif prev_time < n_of_frames:\n\t\t\t\t\t\t\t\t# Fill potentially empty frames with the image of the previous keyframe.\n\t\t\t\t\t\t\t\tfill_frames(\n\t\t\t\t\t\t\t\t\tnew_project, layer, prev_image, prev_time, n_of_frames, offset\n\t\t\t\t\t\t\t\t)\n\n\t\t\t\telse:  # If group layer, fill all frames with empty group cels.\n\t\t\t\t\tfor i in n_of_frames:\n\t\t\t\t\t\tvar frame := new_project.frames[i]\n\t\t\t\t\t\tvar empty_cel := layer.new_empty_cel()\n\t\t\t\t\t\tframe.cels.insert(0, empty_cel)\n\t\t\telif node_name == \"layers\" and group_layer_found:\n\t\t\t\tgroup_layer_found = false\n\t\telif parser.get_node_type() == XMLParser.NODE_ELEMENT_END:\n\t\t\tvar node_name := parser.get_node_name()\n\t\t\tif node_name == \"layers\":\n\t\t\t\tcurrent_stack.pop_back()\n\n\tzip_reader.close()\n\tnew_project.order_layers()\n\tnew_project.selected_cels.clear()\n\tnew_project.save_path = path.get_basename() + \".pxo\"\n\tnew_project.file_name = new_project.name\n\tGlobal.projects.append(new_project)\n\tGlobal.tabs.current_tab = Global.tabs.get_tab_count() - 1\n\tnew_project.change_cel(0, new_project.layers.find(selected_layer))\n\tGlobal.canvas.camera_zoom()\n\n\n# gdlint: ignore=max-line-length\n# https://github.com/Grum999/BuliCommander/blob/tool_repair_file/bulicommander/bulicommander/bc/bcrepairfiles.py#L633\nstatic func read_krita_image(image_data: PackedByteArray) -> Image:\n\tvar number_of_tiles := -1\n\tvar byte_offset := 0\n\t@warning_ignore(\"unused_variable\")\n\tvar version := 0\n\tvar tile_width := 0\n\tvar tile_height := 0\n\tvar pixel_size := 0\n\t# Parse ASCII header lines up to \"DATA N\"\n\tfor i in image_data.size():\n\t\tvar byte := image_data[i]\n\t\tif byte == 10:  # Line break\n\t\t\tvar slice := image_data.slice(byte_offset, i)\n\t\t\tvar text := slice.get_string_from_ascii()\n\t\t\tbyte_offset = i + 1\n\t\t\tif text.begins_with(\"VERSION\"):\n\t\t\t\tversion = int(text.replace(\"VERSION \", \"\"))\n\t\t\telif text.begins_with(\"TILEWIDTH\"):\n\t\t\t\ttile_width = int(text.replace(\"TILEWIDTH \", \"\"))\n\t\t\telif text.begins_with(\"TILEHEIGHT\"):\n\t\t\t\ttile_height = int(text.replace(\"TILEHEIGHT \", \"\"))\n\t\t\telif text.begins_with(\"PIXELSIZE\"):\n\t\t\t\tpixel_size = int(text.replace(\"PIXELSIZE \", \"\"))\n\t\t\telif text.begins_with(\"DATA\"):\n\t\t\t\tnumber_of_tiles = int(text.replace(\"DATA \", \"\"))\n\t\t\t\tbreak\n\tvar decompressed_size := pixel_size * tile_width * tile_height\n\tvar max_left := 0\n\tvar max_top := 0\n\tvar tile_infos := []\n\t# First pass: get info for each tile.\n\tfor tile in number_of_tiles:\n\t\tvar left := -1\n\t\tvar top := -1\n\t\tvar compressed_size := -1\n\t\tvar n_of_bytes := range(byte_offset, image_data.size())\n\t\tfor i in n_of_bytes:\n\t\t\tvar byte := image_data[i]\n\t\t\tvar slice := image_data.slice(byte_offset, i)\n\t\t\tvar text := slice.get_string_from_ascii()\n\t\t\tif byte == 44:  # Comma\n\t\t\t\tif left == -1:\n\t\t\t\t\tleft = int(text.replace(\",\", \"\"))\n\t\t\t\telif top == -1:\n\t\t\t\t\ttop = int(text.replace(\",\", \"\"))\n\t\t\t\tbyte_offset = i + 1\n\t\t\telif byte == 10:  # Line break\n\t\t\t\tcompressed_size = int(text.replace(\"LZF,\", \"\"))\n\t\t\t\tbyte_offset = i + 1\n\t\t\t\tbreak\n\t\ttile_infos.append(\n\t\t\t{\"left\": left, \"top\": top, \"offset\": byte_offset, \"size\": compressed_size}\n\t\t)\n\t\tmax_left = maxi(max_left, left)\n\t\tmax_top = maxi(max_top, top)\n\t\tbyte_offset += compressed_size\n\n\t# Create final image.\n\tvar full_w := max_left + tile_width\n\tvar full_h := max_top + tile_height\n\tvar image := Image.create(full_w, full_h, false, Image.FORMAT_RGBA8)\n\n\t# Second pass: decompress and blit tiles.\n\tfor t in tile_infos:\n\t\tvar decompressed_data: PackedByteArray\n\t\tvar tile_data := image_data.slice(t.offset + 1, t.offset + t.size)\n\t\tif image_data[t.offset] == 1:  # Data are using LZF compression.\n\t\t\tdecompressed_data = lzf_decompress(tile_data, decompressed_size)\n\t\t\tif decompressed_data.size() != decompressed_size:\n\t\t\t\tpush_error(\n\t\t\t\t\t(\n\t\t\t\t\t\t\"Decompression failed at tile %s. Expected %s bytes, got %s bytes instead.\"\n\t\t\t\t\t\t% [t, decompressed_size, decompressed_data.size()]\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\tcontinue\n\t\telse:  # If data are stored raw, without compression.\n\t\t\tdecompressed_data = tile_data\n\n\t\t# Krita stores color data in the following format:\n\t\t# B_1, B_2, ..., B_end, G_1, G_2, ..., G_end, R_1, R_2, ..., R_end, A_1, A_2, ..., A_end\n\t\t@warning_ignore(\"integer_division\")\n\t\tvar n_of_pixels := decompressed_data.size() / 4\n\t\tvar final_data := PackedByteArray()\n\t\tfor i in n_of_pixels:\n\t\t\tvar blue := decompressed_data[i]\n\t\t\tvar green := decompressed_data[i + n_of_pixels]\n\t\t\tvar red := decompressed_data[i + n_of_pixels * 2]\n\t\t\tvar alpha := decompressed_data[i + n_of_pixels * 3]\n\t\t\tvar final_pixel := PackedByteArray([red, green, blue, alpha])\n\t\t\tfinal_data.append_array(final_pixel)\n\t\tvar tile := Image.create_from_data(\n\t\t\ttile_width, tile_height, false, Image.FORMAT_RGBA8, final_data\n\t\t)\n\t\timage.blit_rect(\n\t\t\ttile, Rect2i(Vector2i.ZERO, Vector2i(tile_width, tile_height)), Vector2i(t.left, t.top)\n\t\t)\n\n\treturn image\n\n\n# gdlint: ignore=max-line-length\n# https://invent.kde.org/graphics/krita/-/blob/master/libs/image/tiles3/swap/kis_lzf_compression.cpp#L173\n# gdlint: ignore=max-line-length\n# https://github.com/Grum999/BuliCommander/blob/tool_repair_file/bulicommander/bulicommander/bc/bcrepairfiles.py#L721\nstatic func lzf_decompress(data_in: PackedByteArray, len_data_out: int) -> PackedByteArray:\n\tvar data_out := PackedByteArray()\n\tdata_out.resize(len_data_out)\n\n\tvar len_data_in: int = data_in.size()\n\tvar input_pos: int = 0\n\tvar output_pos: int = 0\n\n\twhile true:\n\t\tif input_pos >= len_data_in:\n\t\t\tbreak\n\n\t\tvar ctrl: int = data_in[input_pos]\n\t\tinput_pos += 1\n\n\t\tif ctrl < 32:\n\t\t\tctrl += 1\n\n\t\t\tif output_pos + ctrl > len_data_out:\n\t\t\t\tprint(\n\t\t\t\t\t(\n\t\t\t\t\t\t\"lzf_uncompress: output buffer too small (1): %s %s %s\"\n\t\t\t\t\t\t% [output_pos, ctrl, len_data_out]\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\treturn PackedByteArray()\n\n\t\t\tfor i in range(ctrl):\n\t\t\t\tdata_out[output_pos] = data_in[input_pos]\n\t\t\t\toutput_pos += 1\n\t\t\t\tinput_pos += 1\n\t\telse:\n\t\t\tvar data_len: int = ctrl >> 5\n\t\t\tvar ref: int = output_pos - ((ctrl & 0x1f) << 8) - 1\n\n\t\t\tif data_len == 7:\n\t\t\t\tdata_len += data_in[input_pos]\n\t\t\t\tinput_pos += 1\n\n\t\t\tref -= data_in[input_pos]\n\t\t\tinput_pos += 1\n\n\t\t\tif output_pos + data_len + 2 > len_data_out:\n\t\t\t\tprint(\n\t\t\t\t\t(\n\t\t\t\t\t\t\"lzf_uncompress: output buffer too small (2): %s %s %s\"\n\t\t\t\t\t\t% [output_pos, data_len + 2, len_data_out]\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\treturn PackedByteArray()\n\n\t\t\tif ref < 0:\n\t\t\t\tprint(\"lzf_uncompress: invalid reference\")\n\t\t\t\treturn PackedByteArray()\n\n\t\t\tfor i in range(data_len + 2):\n\t\t\t\tdata_out[output_pos] = data_out[ref]\n\t\t\t\toutput_pos += 1\n\t\t\t\tref += 1\n\n\treturn data_out\n\n\nstatic func fill_frames(\n\tproject: Project, layer: BaseLayer, image: Image, from: int, to: int, offset: Vector2i\n) -> void:\n\tfor i in range(from, to):\n\t\tvar frame := project.frames[i]\n\t\tvar current_cel := layer.new_empty_cel()\n\t\tvar image_rect := Rect2i(Vector2i.ZERO, image.get_size())\n\t\tcurrent_cel.get_image().blit_rect(image, image_rect, offset)\n\t\tframe.cels.insert(0, current_cel)\n\n\nstatic func get_keyframe_data(keyframe_buffer: PackedByteArray) -> Array[Dictionary]:\n\tvar keyframe_data: Array[Dictionary] = []\n\tvar parser := XMLParser.new()\n\tvar err := parser.open_buffer(keyframe_buffer)\n\tif err != OK:\n\t\treturn keyframe_data\n\twhile parser.read() != ERR_FILE_EOF:\n\t\tif parser.get_node_type() == XMLParser.NODE_ELEMENT:\n\t\t\tvar node_name := parser.get_node_name()\n\t\t\tif node_name == \"keyframe\":\n\t\t\t\tvar time := parser.get_named_attribute_value_safe(\"time\")\n\t\t\t\tvar frame := parser.get_named_attribute_value_safe(\"frame\")\n\t\t\t\tkeyframe_data.append({\"time\": time, \"frame\": frame})\n\treturn keyframe_data\n\n\n## Match Krita's blend modes to Pixelorama's.\nstatic func match_blend_modes(blend_mode: String) -> BaseLayer.BlendModes:\n\tmatch blend_mode:\n\t\t\"erase\":\n\t\t\treturn BaseLayer.BlendModes.ERASE\n\t\t\"darken\":\n\t\t\treturn BaseLayer.BlendModes.DARKEN\n\t\t\"multiply\":\n\t\t\treturn BaseLayer.BlendModes.MULTIPLY\n\t\t\"burn\":\n\t\t\treturn BaseLayer.BlendModes.COLOR_BURN\n\t\t\"linear_burn\":\n\t\t\treturn BaseLayer.BlendModes.LINEAR_BURN\n\t\t\"lighten\":\n\t\t\treturn BaseLayer.BlendModes.LIGHTEN\n\t\t\"screen\":\n\t\t\treturn BaseLayer.BlendModes.SCREEN\n\t\t\"divide\":\n\t\t\treturn BaseLayer.BlendModes.DIVIDE\n\t\t\"diff\":\n\t\t\treturn BaseLayer.BlendModes.DIFFERENCE\n\t\t\"dodge\":\n\t\t\treturn BaseLayer.BlendModes.COLOR_DODGE\n\t\t\"add\":\n\t\t\treturn BaseLayer.BlendModes.ADD\n\t\t\"overlay\":\n\t\t\treturn BaseLayer.BlendModes.OVERLAY\n\t\t\"soft_light\", \"soft_light_svg\", \"soft_light_pegtop_delphi\", \"soft_light_ifs_illusions\":\n\t\t\treturn BaseLayer.BlendModes.SOFT_LIGHT\n\t\t\"hard_light\":\n\t\t\treturn BaseLayer.BlendModes.HARD_LIGHT\n\t\t\"exclusion\":\n\t\t\treturn BaseLayer.BlendModes.EXCLUSION\n\t\t\"subtract\":\n\t\t\treturn BaseLayer.BlendModes.SUBTRACT\n\t\t\"hue_hsl\":\n\t\t\treturn BaseLayer.BlendModes.HUE\n\t\t\"saturation_hsl\":\n\t\t\treturn BaseLayer.BlendModes.SATURATION\n\t\t\"color_hsl\":\n\t\t\treturn BaseLayer.BlendModes.COLOR\n\t\t\"lightness\":\n\t\t\treturn BaseLayer.BlendModes.LUMINOSITY\n\t\t_:\n\t\t\treturn BaseLayer.BlendModes.NORMAL\n"
  },
  {
    "path": "src/Classes/SoftwareParsers/KritaParser.gd.uid",
    "content": "uid://bf7mia7djffw7\n"
  },
  {
    "path": "src/Classes/SoftwareParsers/PhotoshopParser.gd",
    "content": "class_name PhotoshopParser\nextends RefCounted\n\nconst PSB_EIGHT_BYTE_ADDITIONAL_LAYER_KEYS: PackedStringArray = [\n\t\"LMsk\",\n\t\"Lr16\",\n\t\"Lr32\",\n\t\"Layr\",\n\t\"Mt16\",\n\t\"Mt32\",\n\t\"Mtrn\",\n\t\"Alph\",\n\t\"FMsk\",\n\t\"lnk2\",\n\t\"FEid\",\n\t\"FXid\",\n\t\"PxSD\"\n]\n\n\nclass PhotoshopProject:\n\tvar layers: Array[PhotoshopLayer] = []\n\tvar guides: Array[Dictionary] = []\n\tvar frames: Dictionary[int, PhotoshopFrame] = {}\n\tvar size := Vector2i()\n\tvar path: String\n\n\nclass PhotoshopFrame:\n\tvar index := 0\n\tvar delay_cs := 100  ## Delay in centiseconds.\n\tvar layer_data: Dictionary[int, Dictionary] = {}\n\n\tfunc _init(\n\t\t_index := 0, _delay_cs := 100, _layer_data: Dictionary[int, Dictionary] = {}\n\t) -> void:\n\t\tindex = _index\n\t\tdelay_cs = _delay_cs\n\t\tlayer_data = _layer_data\n\n\tfunc _to_string() -> String:\n\t\treturn \"Index: %s, Delay: %s, Layer Data: %s\" % [index, delay_cs, layer_data]\n\n\nclass PhotoshopLayer:\n\tvar index := 0\n\tvar name := \"Layer 0\"\n\tvar top := 0\n\tvar left := 0\n\tvar bottom := 0\n\tvar right := 0\n\tvar width := 0\n\tvar height := 0\n\tvar group_type := \"layer\"\n\tvar blend_mode := \"norm\"\n\tvar channels: Array[Dictionary] = []\n\tvar visible := true\n\tvar opacity := 255.0\n\tvar clipping := false\n\tvar color := Color(0, 0, 0, 0)\n\tvar image: Image\n\tvar layer_child_level := 0\n\n\n# https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/\n# https://github.com/layervault/psd.rb/wiki/Anatomy-of-a-PSD-File\n# https://github.com/gaoyan2659365465/Godot4Library/blob/main/addons/psd/psd.gd\n# gdlint: disable=function-variable-name\nstatic func open_photoshop_file(path: String) -> void:\n\tvar psd_file := FileAccess.open(path, FileAccess.READ)\n\tif FileAccess.get_open_error() != OK or psd_file == null:\n\t\treturn\n\tpsd_file.big_endian = true\n\t# File header\n\tvar signature := psd_file.get_buffer(4).get_string_from_utf8()\n\tif signature != \"8BPS\":\n\t\treturn\n\tvar version := psd_file.get_16()\n\tif version != 1 and version != 2:\n\t\treturn\n\tvar is_psb := version == 2\n\tpsd_file.get_buffer(6)  # Reserved\n\tvar _n_of_channels := psd_file.get_16()\n\tvar height := psd_file.get_32()\n\tvar width := psd_file.get_32()\n\tvar _depth := psd_file.get_16()\n\t# Color Mode Data\n\tvar _color_mode := psd_file.get_16()\n\tvar color_data_length := psd_file.get_32()\n\tif color_data_length > 0:\n\t\tvar data_start := psd_file.get_position()\n\t\tpsd_file.seek(data_start + color_data_length)\n\tvar guides: Array[Dictionary] = []\n\t# Image Resources\n\tvar image_resources_length := psd_file.get_32()\n\tvar frames: Dictionary[int, PhotoshopFrame] = {}\n\tif image_resources_length > 0:\n\t\tvar data_start := psd_file.get_position()\n\t\tvar data_end := data_start + image_resources_length\n\t\twhile psd_file.get_position() < data_end:\n\t\t\tvar image_resources_signature := psd_file.get_buffer(4).get_string_from_ascii()\n\t\t\tif image_resources_signature != \"8BIM\":\n\t\t\t\treturn\n\t\t\tvar resource_id := psd_file.get_16()\n\t\t\tvar name_len := psd_file.get_8()\n\t\t\tvar _name := psd_file.get_buffer(name_len).get_string_from_utf8()\n\t\t\t# Pad to even byte count\n\t\t\tif (name_len + 1) % 2 != 0:\n\t\t\t\tpsd_file.get_8()  # Padding byte\n\n\t\t\tvar size := psd_file.get_32()\n\t\t\tif resource_id == 4000:  # Plug-in resource\n\t\t\t\tvar plugin_data_start := psd_file.get_position()\n\t\t\t\tpsd_file.get_buffer(12)  # Not sure what these are for\n\t\t\t\tvar plugin_signature := psd_file.get_buffer(4).get_string_from_ascii()\n\t\t\t\tif plugin_signature == \"8BIM\":\n\t\t\t\t\tvar plugin_key := psd_file.get_buffer(4).get_string_from_ascii()\n\t\t\t\t\tif plugin_key == \"AnDs\":  # Read frame data\n\t\t\t\t\t\t# Not sure if these are indeed a size and a version\n\t\t\t\t\t\t# because this part is not documented, but it would make the most sense.\n\t\t\t\t\t\tvar _ands_size := psd_file.get_32()\n\t\t\t\t\t\tvar _ands_version := psd_file.get_32()  # Seems to be 16.\n\t\t\t\t\t\tvar descriptor := parse_descriptor(psd_file)\n\t\t\t\t\t\tif descriptor.has(\"FrIn\"):\n\t\t\t\t\t\t\tvar frin: Array = descriptor[\"FrIn\"]\n\t\t\t\t\t\t\tfor i in frin.size():\n\t\t\t\t\t\t\t\tvar frame = frin[i]\n\t\t\t\t\t\t\t\tif not frame.has(\"FrID\") or not frame.has(\"FrDl\"):\n\t\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t\tvar frame_id = frame[\"FrID\"]\n\t\t\t\t\t\t\t\tvar frame_delay = frame[\"FrDl\"]\n\t\t\t\t\t\t\t\tframes[frame_id] = PhotoshopFrame.new(i, frame_delay, {})\n\t\t\t\tpsd_file.seek(plugin_data_start + ((size + 1) & ~1))\n\t\t\telse:\n\t\t\t\tvar data := psd_file.get_buffer(size)\n\t\t\t\tif resource_id == 1032:  # Grid and guides\n\t\t\t\t\tvar gg_version_buffer := data.slice(0, 4)\n\t\t\t\t\tgg_version_buffer.reverse()\n\t\t\t\t\tvar _gg_version := gg_version_buffer.decode_s32(0)\n\t\t\t\t\tvar guide_count_buffer := data.slice(12, 16)\n\t\t\t\t\tguide_count_buffer.reverse()\n\t\t\t\t\tvar guide_count := guide_count_buffer.decode_s32(0)\n\t\t\t\t\tvar byte_index := 16\n\t\t\t\t\tfor i in guide_count:\n\t\t\t\t\t\tvar guide_location_buffer := data.slice(byte_index, byte_index + 4)\n\t\t\t\t\t\tguide_location_buffer.reverse()\n\t\t\t\t\t\tvar guide_location := guide_location_buffer.decode_s32(0)\n\t\t\t\t\t\tvar guide_direction := data[byte_index + 4]\n\t\t\t\t\t\tbyte_index += 5\n\t\t\t\t\t\tguides.append(\n\t\t\t\t\t\t\t{\"position\": guide_location / 32.0, \"direction\": guide_direction}\n\t\t\t\t\t\t)\n\t\t\t\tif size % 2 != 0:\n\t\t\t\t\tpsd_file.get_8()  # Padding byte\n\t\tpsd_file.seek(data_end)\n\t# Layer and Mask Information Section\n\tvar _layer_and_mask_info_section_length: int\n\tif is_psb:\n\t\t_layer_and_mask_info_section_length = psd_file.get_64()\n\telse:\n\t\t_layer_and_mask_info_section_length = psd_file.get_32()\n\t# Layer info\n\tvar _layer_info_length: int\n\tif is_psb:\n\t\t_layer_info_length = psd_file.get_64()\n\telse:\n\t\t_layer_info_length = psd_file.get_32()\n\tvar layer_count := get_signed_16(psd_file)\n\tif layer_count < 0:\n\t\tlayer_count = -layer_count\n\tvar layer_child_level := 0\n\tvar psd_layers: Array[PhotoshopLayer] = []\n\t# Layer records\n\tfor i in layer_count:\n\t\tvar layer := PhotoshopLayer.new()\n\t\tlayer.index = i\n\t\tlayer.top = get_signed_32(psd_file)\n\t\tlayer.left = get_signed_32(psd_file)\n\t\tlayer.bottom = get_signed_32(psd_file)\n\t\tlayer.right = get_signed_32(psd_file)\n\t\tlayer.width = layer.right - layer.left\n\t\tlayer.height = layer.bottom - layer.top\n\t\tlayer.name = \"Layer %s\" % i\n\t\tlayer.group_type = \"layer\"\n\n\t\tvar num_channels := psd_file.get_16()\n\t\tlayer.channels = []\n\n\t\tfor j in range(num_channels):\n\t\t\tvar channel := {}\n\t\t\tchannel.id = get_signed_16(psd_file)\n\t\t\tif is_psb:\n\t\t\t\tchannel.length = psd_file.get_64()\n\t\t\telse:\n\t\t\t\tchannel.length = psd_file.get_32()\n\t\t\tlayer.channels.append(channel)\n\t\tvar blend_mode_signature := psd_file.get_buffer(4).get_string_from_utf8()\n\t\tif blend_mode_signature != \"8BIM\":\n\t\t\treturn\n\t\tvar blend_mode_key := psd_file.get_buffer(4).get_string_from_utf8()\n\t\tlayer.blend_mode = blend_mode_key\n\t\tvar opacity := psd_file.get_8()\n\t\tlayer.opacity = opacity\n\t\tvar clipping := psd_file.get_8()\n\t\tlayer.clipping = clipping\n\t\tvar flags := psd_file.get_8()\n\t\tlayer.visible = flags & 2 != 2\n\t\tvar _filler := psd_file.get_8()\n\t\tvar extra_data_field_length := psd_file.get_32()\n\t\tvar extra_start := psd_file.get_position()\n\t\tvar extra_end := extra_start + extra_data_field_length\n\n\t\t# First 4 bytes: Layer mask data length (skip it)\n\t\tvar layer_mask_data_len := psd_file.get_32()\n\t\tpsd_file.seek(psd_file.get_position() + layer_mask_data_len)\n\n\t\t# Next 4 bytes: Layer blending ranges data length (skip it)\n\t\tvar blend_range_len := psd_file.get_32()\n\t\tpsd_file.seek(psd_file.get_position() + blend_range_len)\n\n\t\t# Next: Pascal string (layer name)\n\t\tvar name_length := psd_file.get_8()\n\t\t@warning_ignore(\"integer_division\")\n\t\tvar padded_length := (((name_length + 4) / 4) * 4) - 1\n\t\tlayer.name = psd_file.get_buffer(padded_length).get_string_from_utf8()\n\n\t\t# Remaining: Additional Layer Information blocks\n\t\twhile psd_file.get_position() < extra_end:\n\t\t\tvar _sig := psd_file.get_buffer(4).get_string_from_utf8()\n\t\t\tvar key := psd_file.get_buffer(4).get_string_from_utf8()\n\t\t\tvar length: int\n\t\t\tif is_psb and key in PSB_EIGHT_BYTE_ADDITIONAL_LAYER_KEYS:\n\t\t\t\tlength = psd_file.get_64()\n\t\t\telse:\n\t\t\t\tlength = psd_file.get_32()\n\t\t\tvar data_start := psd_file.get_position()\n\t\t\tif key == \"lsct\":\n\t\t\t\tvar section_type := psd_file.get_32()\n\t\t\t\tmatch section_type:\n\t\t\t\t\t1:\n\t\t\t\t\t\tlayer.group_type = \"start\"\n\t\t\t\t\t\tlayer_child_level -= 1\n\t\t\t\t\t2:\n\t\t\t\t\t\tlayer.group_type = \"start_closed\"\n\t\t\t\t\t\tlayer_child_level -= 1\n\t\t\t\t\t3:\n\t\t\t\t\t\tlayer.group_type = \"end\"\n\t\t\t\t\t\tlayer_child_level += 1\n\t\t\t\t\t_:\n\t\t\t\t\t\tlayer.group_type = \"layer\"\n\t\t\t\tif length >= 12:\n\t\t\t\t\tvar _section_signature := psd_file.get_buffer(4).get_string_from_utf8()\n\t\t\t\t\tvar section_blend_mode_key := psd_file.get_buffer(4).get_string_from_utf8()\n\t\t\t\t\tlayer.blend_mode = section_blend_mode_key\n\t\t\t\t\tif length >= 16:\n\t\t\t\t\t\t# 0 = normal, 1 = scene group, affects the animation timeline.\n\t\t\t\t\t\tvar _sub_type := psd_file.get_32()\n\t\t\telif key == \"luni\":\n\t\t\t\tvar unicode_layer_name := parse_unicode_string(psd_file)\n\t\t\t\tlayer.name = unicode_layer_name\n\t\t\telif key == \"lclr\":\n\t\t\t\tlayer.color = parse_lclr_block(psd_file.get_buffer(8))\n\t\t\telif key == \"shmd\":\n\t\t\t\tvar metadata_items := psd_file.get_32()\n\t\t\t\tfor metadata_item in metadata_items:\n\t\t\t\t\tvar _metadata_signature := psd_file.get_buffer(4).get_string_from_utf8()\n\t\t\t\t\tvar metadata_key := psd_file.get_buffer(4).get_string_from_utf8()\n\t\t\t\t\tvar _metadata_copy_on_sheet_duplication := psd_file.get_8()\n\t\t\t\t\tvar _metadata_padding := psd_file.get_buffer(3)\n\t\t\t\t\tvar metadata_length := psd_file.get_32()\n\t\t\t\t\tvar metadata_start := psd_file.get_position()\n\t\t\t\t\tif metadata_key == \"mlst\":\n\t\t\t\t\t\tvar _mlst_version := psd_file.get_32()  # Should be equal to 16.\n\t\t\t\t\t\tvar descriptor := parse_descriptor(psd_file)\n\t\t\t\t\t\tif descriptor.has(\"LaSt\"):\n\t\t\t\t\t\t\tvar layer_state: Array = descriptor[\"LaSt\"]\n\t\t\t\t\t\t\tvar layer_enabled := layer.visible\n\t\t\t\t\t\t\tfor layer_state_frame in layer_state:\n\t\t\t\t\t\t\t\tif layer_state_frame.has(\"FrLs\"):\n\t\t\t\t\t\t\t\t\tvar frame_id = layer_state_frame[\"FrLs\"][0]\n\t\t\t\t\t\t\t\t\tif not frames.has(frame_id):\n\t\t\t\t\t\t\t\t\t\tframes[frame_id] = PhotoshopFrame.new(frames.size())\n\t\t\t\t\t\t\t\t\tlayer_enabled = layer_state_frame.get(\"enab\", layer_enabled)\n\t\t\t\t\t\t\t\t\tvar layer_fxrf = layer_state_frame.get(\"FXRf\", {})\n\t\t\t\t\t\t\t\t\tvar layer_offset = layer_state_frame.get(\"Ofst\", {})\n\t\t\t\t\t\t\t\t\tvar layer_dict := {\n\t\t\t\t\t\t\t\t\t\t\"enab\": layer_enabled,\n\t\t\t\t\t\t\t\t\t\t\"FXRf\": layer_fxrf,\n\t\t\t\t\t\t\t\t\t\t\"Ofst\": layer_offset\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tframes[frame_id].layer_data[layer.index] = layer_dict\n\t\t\t\t\tpsd_file.seek(metadata_start + ((metadata_length + 1) & ~1))\n\n\t\t\t# Move to next block (align length to even)\n\t\t\tpsd_file.seek(data_start + ((length + 1) & ~1))\n\n\t\tlayer.layer_child_level = layer_child_level\n\t\tpsd_layers.append(layer)\n\n\t# Track file offset for each layer's image data at Channel Image Data block\n\tfor layer in psd_layers:\n\t\tfor channel in layer.channels:\n\t\t\tchannel.data_offset = psd_file.get_position()\n\t\t\tpsd_file.seek(psd_file.get_position() + channel.length)\n\n\t# Decode images in the PSD's layers.\n\t# This is the most important part of the whole process.\n\tfor layer in psd_layers:\n\t\tif layer.group_type == \"layer\":\n\t\t\tvar image := decode_psd_layer(psd_file, layer, is_psb)\n\t\t\tif is_instance_valid(image) and not image.is_empty():\n\t\t\t\tlayer.image = image\n\n\tpsd_file.close()\n\tvar psd_project := PhotoshopProject.new()\n\tpsd_project.size = Vector2i(width, height)\n\tpsd_project.layers = psd_layers\n\tpsd_project.frames = frames\n\tpsd_project.guides = guides\n\tpsd_project.path = path\n\tpsd_to_pxo_project(psd_project, true)\n\n\nstatic func psd_to_pxo_project(psd_project: PhotoshopProject, add_frames := true) -> void:\n\tvar project_size := psd_project.size\n\tvar new_project := Project.new([], psd_project.path.get_file().get_basename(), project_size)\n\tnew_project.fps = 1\n\t# Initialize frames\n\tif psd_project.frames.size() == 0 or not add_frames:\n\t\tpsd_project.frames = {0: PhotoshopFrame.new()}\n\tvar frames: Array[Frame]\n\tfor frame_id in psd_project.frames:\n\t\tvar psd_frame := psd_project.frames[frame_id]\n\t\tvar frame := Frame.new()\n\t\tvar delay_cs := psd_frame.delay_cs\n\t\tframe.set_duration_in_seconds(delay_cs / 100.0, new_project.fps)\n\t\tframes.append(frame)\n\n\t# Initialize layers\n\tif psd_project.layers.size() == 0:\n\t\tvar layer := PhotoshopLayer.new()\n\t\tlayer.name = \"Layer 0\"\n\t\tlayer.group_type = \"layer\"\n\t\tlayer.right = project_size.x\n\t\tlayer.width = project_size.x\n\t\tlayer.bottom = project_size.y\n\t\tlayer.height = project_size.y\n\t\tlayer.layer_child_level = 0\n\t\tpsd_project.layers = [layer]\n\tvar layer_index := 0\n\tfor psd_layer in psd_project.layers:\n\t\tif psd_layer.group_type == \"end\":\n\t\t\tcontinue\n\t\tif psd_layer.group_type.begins_with(\"start\"):\n\t\t\tvar layer := GroupLayer.new(new_project, psd_layer.name)\n\t\t\tlayer.visible = psd_layer.visible\n\t\t\tlayer.opacity = psd_layer.opacity / 255.0\n\t\t\tlayer.clipping_mask = psd_layer.clipping\n\t\t\tlayer.blend_mode = match_blend_modes(psd_layer.blend_mode)\n\t\t\tlayer.ui_color = psd_layer.get(\"color\")\n\t\t\tlayer.index = layer_index\n\t\t\tlayer.set_meta(&\"psd_layer\", psd_layer)\n\t\t\tlayer.expanded = psd_layer.group_type == \"start\"\n\t\t\tnew_project.layers.append(layer)\n\t\t\tlayer_index += 1\n\t\telse:\n\t\t\tvar layer := PixelLayer.new(new_project, psd_layer.name)\n\t\t\tlayer.visible = psd_layer.visible\n\t\t\tlayer.opacity = psd_layer.opacity / 255.0\n\t\t\tlayer.clipping_mask = psd_layer.clipping\n\t\t\tlayer.blend_mode = match_blend_modes(psd_layer.blend_mode)\n\t\t\tlayer.ui_color = psd_layer.color\n\t\t\tlayer.index = layer_index\n\t\t\tlayer.set_meta(&\"psd_layer\", psd_layer)\n\t\t\tnew_project.layers.append(layer)\n\t\t\tlayer_index += 1\n\n\torganize_layer_child_levels(new_project)\n\n\t# Initialize cels.\n\t# Needs to happen after initializing layers so we can look into the layer's parents\n\t# to see if they are being animated.\n\tfor layer in new_project.layers:\n\t\tvar psd_layer: PhotoshopLayer = layer.get_meta(&\"psd_layer\")\n\t\tif layer is GroupLayer:\n\t\t\tfor frame in frames:\n\t\t\t\tvar cel := layer.new_empty_cel()\n\t\t\t\tframe.cels.append(cel)\n\t\telif layer is PixelLayer:\n\t\t\tif is_instance_valid(psd_layer.image) and not psd_layer.image.is_empty():\n\t\t\t\tvar psd_layer_index := psd_layer.index\n\t\t\t\tvar visible_layer_in_frames := get_layer_visibility_per_frame(\n\t\t\t\t\tpsd_project.frames, psd_layer_index, layer.visible\n\t\t\t\t)\n\t\t\t\tvar animated_layer := layer\n\t\t\t\tif (\n\t\t\t\t\tvisible_layer_in_frames.size() == 0\n\t\t\t\t\tor visible_layer_in_frames.size() == psd_project.frames.size()\n\t\t\t\t):\n\t\t\t\t\t# First, loop through parent layer groups in case they are being animated.\n\t\t\t\t\tfor ancestor in layer.get_ancestors():\n\t\t\t\t\t\tvar psd_ancestor: PhotoshopLayer = ancestor.get_meta(&\"psd_layer\")\n\t\t\t\t\t\tvar psd_ancestor_index := psd_ancestor.index\n\t\t\t\t\t\tvisible_layer_in_frames = get_layer_visibility_per_frame(\n\t\t\t\t\t\t\tpsd_project.frames, psd_ancestor_index, ancestor.visible\n\t\t\t\t\t\t)\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tvisible_layer_in_frames.size() > 0\n\t\t\t\t\t\t\tand visible_layer_in_frames.size() < psd_project.frames.size()\n\t\t\t\t\t\t):\n\t\t\t\t\t\t\t# We found animated data.\n\t\t\t\t\t\t\tanimated_layer = ancestor\n\t\t\t\t\t\t\tbreak\n\t\t\t\tif (\n\t\t\t\t\tvisible_layer_in_frames.size() == 0\n\t\t\t\t\tor visible_layer_in_frames.size() == psd_project.frames.size()\n\t\t\t\t):\n\t\t\t\t\t# If the layer is not visible in any frame or it is visible in all frames,\n\t\t\t\t\t# it means that it is not being animated.\n\t\t\t\t\tfor frame_i in psd_project.frames.size():\n\t\t\t\t\t\tvar image := offset_cel_image(psd_layer.image, layer, psd_project, frame_i)\n\t\t\t\t\t\tvar frame := frames[frame_i]\n\t\t\t\t\t\tvar cel := (layer as PixelLayer).new_cel_from_image(image)\n\t\t\t\t\t\tframe.cels.append(cel)\n\t\t\t\telse:\n\t\t\t\t\t# Layers that are not visible in the first frame will be treated as invisible\n\t\t\t\t\t# in general. So we need to set them to be visible.\n\t\t\t\t\tanimated_layer.visible = true\n\t\t\t\t\tfor frame_i in psd_project.frames.size():\n\t\t\t\t\t\tvar frame := frames[frame_i]\n\t\t\t\t\t\tif frame_i in visible_layer_in_frames:\n\t\t\t\t\t\t\tvar image := offset_cel_image(\n\t\t\t\t\t\t\t\tpsd_layer.image, layer, psd_project, frame_i\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tvar cel := (layer as PixelLayer).new_cel_from_image(image)\n\t\t\t\t\t\t\tframe.cels.append(cel)\n\t\t\t\t\t\telse:\n\t\t\t\t\t\t\tvar cel := layer.new_empty_cel()\n\t\t\t\t\t\t\tframe.cels.append(cel)\n\t\t\telse:\n\t\t\t\tfor frame in frames:\n\t\t\t\t\tvar cel := layer.new_empty_cel()\n\t\t\t\t\tframe.cels.append(cel)\n\n\tnew_project.frames = frames\n\tfor layer in new_project.layers:\n\t\tlayer.remove_meta(&\"psd_layer\")\n\tnew_project.order_layers()\n\t# Initialize guides.\n\tfor psd_guide in psd_project.guides:\n\t\tvar guide := Guide.new()\n\t\tif psd_guide.direction == 0:\n\t\t\tguide.type = Guide.Types.VERTICAL\n\t\t\tguide.add_point(Vector2(psd_guide.position, -99999))\n\t\t\tguide.add_point(Vector2(psd_guide.position, 99999))\n\t\telse:\n\t\t\tguide.type = Guide.Types.HORIZONTAL\n\t\t\tguide.add_point(Vector2(-99999, psd_guide.position))\n\t\t\tguide.add_point(Vector2(99999, psd_guide.position))\n\t\tguide.has_focus = false\n\t\tguide.project = new_project\n\t\tGlobal.canvas.add_child(guide)\n\n\tnew_project.save_path = psd_project.path.get_basename() + \".pxo\"\n\tnew_project.file_name = new_project.name\n\tGlobal.projects.append(new_project)\n\tGlobal.tabs.current_tab = Global.tabs.get_tab_count() - 1\n\tGlobal.canvas.camera_zoom()\n\n\nstatic func offset_cel_image(\n\timage: Image, layer: BaseLayer, psd_project: PhotoshopProject, frame_index: int\n) -> Image:\n\tvar result_image := Image.new()\n\tresult_image.copy_from(image)\n\tvar project_size := psd_project.size\n\tresult_image.crop(project_size.x, project_size.y)\n\tvar img_copy := Image.new()\n\timg_copy.copy_from(result_image)\n\tresult_image.fill(Color(0, 0, 0, 0))\n\tvar psd_layer: PhotoshopLayer = layer.get_meta(&\"psd_layer\")\n\tvar left := psd_layer.left\n\tvar top := psd_layer.top\n\tvar offset := Vector2i(left, top)\n\tfor frame_id in psd_project.frames:\n\t\tvar frame := psd_project.frames[frame_id]\n\t\tif frame.index != frame_index:\n\t\t\tcontinue\n\t\tvar psd_layer_index := psd_layer.index\n\t\tif frame.layer_data.has(psd_layer_index):\n\t\t\tvar offset_dict: Dictionary = frame.layer_data[psd_layer_index].get(\"Ofst\", {})\n\t\t\toffset.x += offset_dict.get(\"Hrzn\", 0)\n\t\t\toffset.y += offset_dict.get(\"Vrtc\", 0)\n\tresult_image.blit_rect(img_copy, Rect2i(Vector2i.ZERO, result_image.get_size()), offset)\n\treturn result_image\n\n\nstatic func get_layer_visibility_per_frame(\n\tframes: Dictionary[int, PhotoshopFrame], layer_index: int, layer_visible: bool\n) -> PackedInt32Array:\n\tvar visible_layer_in_frames: PackedInt32Array\n\tfor frame_id in frames:\n\t\tvar frame := frames[frame_id]\n\t\tvar layer_enabled: bool = layer_visible\n\t\tif frame.layer_data.has(layer_index):\n\t\t\tvar layer_data := frame.layer_data[layer_index]\n\t\t\tlayer_enabled = layer_data.get(\"enab\", layer_visible)\n\t\tif layer_enabled:\n\t\t\tvisible_layer_in_frames.append(frame.index)\n\treturn visible_layer_in_frames\n\n\nstatic func get_signed_16(file: FileAccess) -> int:\n\tvar buffer := file.get_buffer(2)\n\tif file.big_endian:\n\t\tbuffer.reverse()\n\treturn buffer.decode_s16(0)\n\n\nstatic func get_signed_32(file: FileAccess) -> int:\n\tvar buffer := file.get_buffer(4)\n\tif file.big_endian:\n\t\tbuffer.reverse()\n\treturn buffer.decode_s32(0)\n\n\nstatic func get_signed_64(file: FileAccess) -> int:\n\tvar buffer := file.get_buffer(8)\n\tif file.big_endian:\n\t\tbuffer.reverse()\n\treturn buffer.decode_s32(0)\n\n\nstatic func decode_psd_layer(psd_file: FileAccess, layer: PhotoshopLayer, is_psb: bool) -> Image:\n\tvar img_channels := {}\n\tfor channel in layer.channels:\n\t\tpsd_file.seek(channel.data_offset)\n\n\t\tvar compression := psd_file.get_16()\n\t\tvar width: int = layer.width\n\t\tvar height: int = layer.height\n\t\tvar size: int = width * height\n\t\tif size <= 0:\n\t\t\tcontinue\n\n\t\tvar raw_data := PackedByteArray()\n\n\t\tif compression == 0:  # Raw Data\n\t\t\traw_data = psd_file.get_buffer(size)\n\t\telif compression == 1:  # RLE\n\t\t\tvar scanline_counts: PackedInt32Array = []\n\t\t\tfor i in range(height):\n\t\t\t\tif is_psb:\n\t\t\t\t\tscanline_counts.append(psd_file.get_32())\n\t\t\t\telse:\n\t\t\t\t\tscanline_counts.append(psd_file.get_16())\n\n\t\t\tfor i in range(height):\n\t\t\t\tvar scanline := PackedByteArray()\n\t\t\t\tvar bytes_remaining := scanline_counts[i]\n\t\t\t\twhile scanline.size() < width and bytes_remaining > 0:\n\t\t\t\t\tvar n := psd_file.get_8()\n\t\t\t\t\tbytes_remaining -= 1\n\t\t\t\t\tif n >= 128:\n\t\t\t\t\t\tvar count := 257 - n\n\t\t\t\t\t\tvar val := psd_file.get_8()\n\t\t\t\t\t\tbytes_remaining -= 1\n\t\t\t\t\t\tfor j in range(count):\n\t\t\t\t\t\t\tscanline.append(val)\n\t\t\t\t\telse:\n\t\t\t\t\t\tvar count := n + 1\n\t\t\t\t\t\tfor j in range(count):\n\t\t\t\t\t\t\tvar val := psd_file.get_8()\n\t\t\t\t\t\t\tscanline.append(val)\n\t\t\t\t\t\tbytes_remaining -= count\n\t\t\t\traw_data.append_array(scanline)\n\t\telse:\n\t\t\tpush_error(\"Unsupported compression: %d\" % compression)\n\t\t\tcontinue\n\n\t\tif not raw_data.is_empty():\n\t\t\timg_channels[channel.id] = raw_data\n\n\t# Rebuild image\n\tvar img_data := PackedByteArray()\n\tfor i in range(layer.width * layer.height):\n\t\tvar r = img_channels[0][i] if img_channels.has(0) else 255\n\t\tvar g = img_channels[1][i] if img_channels.has(1) else 255\n\t\tvar b = img_channels[2][i] if img_channels.has(2) else 255\n\t\tvar a = img_channels[-1][i] if img_channels.has(-1) else 255\n\t\timg_data.append_array([r, g, b, a])\n\n\tvar image: Image\n\tif layer.width > 0 and layer.height > 0:\n\t\timage = Image.create_from_data(\n\t\t\tlayer.width, layer.height, false, Image.FORMAT_RGBA8, img_data\n\t\t)\n\treturn image\n\n\n## Match Photoshop's blend modes to Pixelorama's\nstatic func match_blend_modes(blend_mode: String) -> BaseLayer.BlendModes:\n\tmatch blend_mode:\n\t\t\"pass\":  # Only used for group layers\n\t\t\treturn BaseLayer.BlendModes.PASS_THROUGH\n\t\t\"norm\":\n\t\t\treturn BaseLayer.BlendModes.NORMAL\n\t\t\"eras\":\n\t\t\treturn BaseLayer.BlendModes.ERASE\n\t\t\"dark\":\n\t\t\treturn BaseLayer.BlendModes.DARKEN\n\t\t\"mul \":\n\t\t\treturn BaseLayer.BlendModes.MULTIPLY\n\t\t\"burn\":\n\t\t\treturn BaseLayer.BlendModes.COLOR_BURN\n\t\t\"ldbr\":\n\t\t\treturn BaseLayer.BlendModes.LINEAR_BURN\n\t\t\"lite\":\n\t\t\treturn BaseLayer.BlendModes.LIGHTEN\n\t\t\"scrn\":\n\t\t\treturn BaseLayer.BlendModes.SCREEN\n\t\t\"div \":\n\t\t\treturn BaseLayer.BlendModes.DIVIDE\n\t\t\"diff\":\n\t\t\treturn BaseLayer.BlendModes.DIFFERENCE\n\t\t\"smud\":  # Not used here, legacy\n\t\t\treturn BaseLayer.BlendModes.NORMAL\n\t\t\"idiv\":\n\t\t\treturn BaseLayer.BlendModes.DIVIDE\n\t\t\"dodg\":\n\t\t\treturn BaseLayer.BlendModes.COLOR_DODGE\n\t\t\"add \":\n\t\t\treturn BaseLayer.BlendModes.ADD\n\t\t\"over\":\n\t\t\treturn BaseLayer.BlendModes.OVERLAY\n\t\t\"sLit\":\n\t\t\treturn BaseLayer.BlendModes.SOFT_LIGHT\n\t\t\"hLit\":\n\t\t\treturn BaseLayer.BlendModes.HARD_LIGHT\n\t\t\"excl\":\n\t\t\treturn BaseLayer.BlendModes.EXCLUSION\n\t\t\"sub \":\n\t\t\treturn BaseLayer.BlendModes.SUBTRACT\n\t\t\"hue \":\n\t\t\treturn BaseLayer.BlendModes.HUE\n\t\t\"sat \":\n\t\t\treturn BaseLayer.BlendModes.SATURATION\n\t\t\"colr\":\n\t\t\treturn BaseLayer.BlendModes.COLOR\n\t\t\"lum \":\n\t\t\treturn BaseLayer.BlendModes.LUMINOSITY\n\t\t_:\n\t\t\treturn BaseLayer.BlendModes.NORMAL\n\n\n## Used to determine the color of the layer in the UI.\nstatic func parse_lclr_block(buffer: PackedByteArray) -> Color:\n\tif buffer.size() < 8:\n\t\treturn Color(0, 0, 0, 0)\n\tvar color_index := buffer[1]\n\tmatch color_index:\n\t\t0:\n\t\t\treturn Color(0, 0, 0, 0)\n\t\t1:\n\t\t\treturn Color.RED\n\t\t2:\n\t\t\treturn Color.ORANGE\n\t\t3:\n\t\t\treturn Color.YELLOW\n\t\t4:\n\t\t\treturn Color.GREEN\n\t\t5:\n\t\t\treturn Color.BLUE\n\t\t6:\n\t\t\treturn Color.VIOLET\n\t\t7:\n\t\t\treturn Color.GRAY\n\t\t_:\n\t\t\treturn Color(0, 0, 0, 0)\n\n\nstatic func parse_unicode_string(f: FileAccess) -> String:\n\tvar length := f.get_32()\n\tif length == 0:\n\t\treturn \"\"\n\tvar bytes := f.get_buffer(length * 2)\n\tvar s := \"\"\n\tfor i in range(length):\n\t\tvar hi := int(bytes[i * 2])\n\t\tvar lo := int(bytes[i * 2 + 1])\n\t\ts += char((hi << 8) | lo)\n\treturn s\n\n\nstatic func parse_class_id(f: FileAccess) -> String:\n\tvar length := f.get_32()\n\tif length == 0:\n\t\treturn f.get_buffer(4).get_string_from_utf8()\n\treturn f.get_buffer(length).get_string_from_utf8()\n\n\nstatic func parse_descriptor(f: FileAccess) -> Dictionary:\n\tvar desc := {}\n\tvar _name := parse_unicode_string(f)\n\tvar _class_id := parse_class_id(f)\n\tvar item_count := f.get_32()\n\tfor i in range(item_count):\n\t\tvar key := parse_class_id(f)\n\t\tvar type_key := f.get_buffer(4).get_string_from_utf8()\n\t\tvar value = parse_descriptor_value(f, type_key)\n\t\tdesc[key] = value\n\treturn desc\n\n\nstatic func parse_descriptor_value(f: FileAccess, type_key: String) -> Variant:\n\tmatch type_key:\n\t\t\"long\":\n\t\t\treturn get_signed_32(f)\n\t\t\"comp\":\n\t\t\treturn get_signed_64(f)\n\t\t\"doub\":\n\t\t\treturn f.get_double()\n\t\t\"bool\":\n\t\t\treturn f.get_8() != 0\n\t\t\"TEXT\":\n\t\t\treturn parse_unicode_string(f)\n\t\t\"enum\":\n\t\t\tvar type := parse_class_id(f)  # enum type\n\t\t\tvar value := parse_class_id(f)  # enum value\n\t\t\treturn {\"enum_type\": type, \"enum_value\": value}\n\t\t\"Objc\", \"GlbO\":\n\t\t\treturn parse_descriptor(f)\n\t\t\"VlLs\":\n\t\t\tvar count := f.get_32()\n\t\t\tvar arr := []\n\t\t\tfor i in range(count):\n\t\t\t\tvar key := f.get_buffer(4).get_string_from_utf8()\n\t\t\t\tarr.append(parse_descriptor_value(f, key))\n\t\t\treturn arr\n\t\t\"UntF\":\n\t\t\treturn parse_unit(f, true)\n\t\t\"UnFl\":\n\t\t\treturn parse_unit(f, false)\n\t\t_:\n\t\t\t# Skip unknown types\n\t\t\tprint(\"Unknown descriptor type:\", type_key)\n\t\t\treturn null\n\n\nstatic func parse_unit(f: FileAccess, double := true) -> Dictionary:\n\tvar unit_id := f.get_buffer(4).get_string_from_utf8()\n\tvar value: float\n\tif double:\n\t\tvalue = f.get_double()\n\telse:\n\t\tvalue = f.get_float()\n\treturn {\"id\": unit_id, \"value\": value}\n\n\nstatic func organize_layer_child_levels(project: Project) -> void:\n\tfor i in project.layers.size():\n\t\tvar layer := project.layers[i]\n\t\tvar psd_layer: PhotoshopLayer = layer.get_meta(&\"psd_layer\")\n\t\tvar layer_child_level := psd_layer.layer_child_level\n\t\tif layer_child_level > 0:\n\t\t\tvar parent_layer: GroupLayer = null\n\t\t\tvar parent_i := 1\n\t\t\twhile parent_layer == null and i + parent_i < project.layers.size():\n\t\t\t\tvar prev_layer := project.layers[i + parent_i]\n\t\t\t\tif prev_layer is GroupLayer:\n\t\t\t\t\tvar prev_psd_layer: PhotoshopLayer = prev_layer.get_meta(&\"psd_layer\")\n\t\t\t\t\tvar prev_layer_child_level := prev_psd_layer.layer_child_level\n\t\t\t\t\tif prev_layer_child_level == layer_child_level - 1:\n\t\t\t\t\t\tparent_layer = prev_layer\n\t\t\t\t\t\tbreak\n\t\t\t\tparent_i += 1\n\t\t\tif is_instance_valid(parent_layer):\n\t\t\t\tlayer.parent = parent_layer\n\tfor i in project.layers.size():\n\t\tvar layer := project.layers[i]\n\t\tlayer.index = i\n"
  },
  {
    "path": "src/Classes/SoftwareParsers/PhotoshopParser.gd.uid",
    "content": "uid://brhs1rib30xqp\n"
  },
  {
    "path": "src/Classes/SteamManager.gd",
    "content": "class_name SteamManager\nextends Node\n\n## A class that manages Steam-specific functionalities. Currently only unlocks achievements.\n## On non-Steam builds, this node gets automatically freed.\n\n## The Steam app id of Pixelorama.\nconst APP_ID := 2779170\n## We are using a variable instead of the `Steam` singleton directly,\n## because it is not available in non-Steam builds.\nstatic var steam_class\nstatic var achievements := {\n\t\"ACH_FIRST_PIXEL\": false,\n\t\"ACH_ERASE_PIXEL\": false,\n\t\"ACH_SAVE\": false,\n\t\"ACH_PREFERENCES\": false,\n\t\"ACH_ONLINE_DOCS\": false,\n\t\"ACH_SUPPORT_DEVELOPMENT\": false,\n\t\"ACH_3D_LAYER\": false,\n}\n\n\nfunc _init() -> void:\n\tif not ClassDB.class_exists(&\"Steam\"):\n\t\tqueue_free()\n\t\treturn\n\tsteam_class = ClassDB.instantiate(&\"Steam\")\n\tOS.set_environment(\"SteamAppID\", str(APP_ID))\n\tOS.set_environment(\"SteamGameID\", str(APP_ID))\n\n\nfunc _ready() -> void:\n\tif not is_instance_valid(steam_class):\n\t\treturn\n\tvar response: Dictionary = steam_class.steamInitEx(APP_ID)\n\tprint(response)\n\tif not steam_class.isSteamRunning():\n\t\tprint(\"Steam is not running!\")\n\t\treturn\n\n\n## Unlocks an achievement on Steam based on its [param achievement_name].\nstatic func set_achievement(achievement_name: String) -> void:\n\tif achievements[achievement_name]:  # Return early if the achievement has already been achieved\n\t\treturn\n\tif not is_instance_valid(steam_class):\n\t\treturn\n\tif not steam_class.isSteamRunning():\n\t\treturn\n\tvar status: Dictionary = steam_class.getAchievement(achievement_name)\n\tif status[\"achieved\"]:\n\t\tachievements[achievement_name] = true\n\t\treturn\n\tsteam_class.setAchievement(achievement_name)\n\tsteam_class.storeStats()\n\tachievements[achievement_name] = true\n"
  },
  {
    "path": "src/Classes/SteamManager.gd.uid",
    "content": "uid://clsjv6vcrcucm\n"
  },
  {
    "path": "src/Classes/TileSetCustom.gd",
    "content": "class_name TileSetCustom\nextends RefCounted\n\n## A Tileset is a collection of tiles, used by [LayerTileMap]s and [CelTileMap]s.\n## The tileset contains its [member name], the size of each individual tile,\n## and the collection of [TileSetCustom.Tile]s itself.\n## Not to be confused with [TileSet], which is a Godot class.\n\n## Emitted on undo/redo. Used to update the tiles panel.\nsignal updated\n## Emitted when a new tile is added to the tileset by a [param cel] on [param index].\nsignal tile_added(cel: CelTileMap, index: int)\n## Emitted when a tile is removed from the tileset by a [param cel] on [param index].\nsignal tile_removed(cel: CelTileMap, index: int)\n## Emitted when a new tile is replaced in the tileset by a [param cel] on [param index].\nsignal tile_replaced(cel: CelTileMap, index)\n## Emitted when the size of the tile images changes.\nsignal resized_content\n\n## The tileset's name.\nvar name := \"\"\n## The collection of tiles in the form of an [Array] of type [TileSetCustom.Tile].\nvar tiles: Array[Tile] = []\n## The size of each tile.\nvar tile_size: Vector2i\n## The shape of each tile.\nvar tile_shape := TileSet.TILE_SHAPE_SQUARE\n## For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\nvar tile_offset_axis := TileSet.TILE_OFFSET_AXIS_HORIZONTAL\n## If [code]true[/code], the code in [method handle_project_resize] does not execute.\n## This variable is used to prevent multiple cels from clearing the tileset at the same time.\n## In [method handle_project_resize], the variable is set to [code]true[/code], and then\n## immediately set to [code]false[/code] in the next frame using [method Object.set_deferred].\nvar _tileset_has_been_resized := false\n\n\n## An internal class of [TileSetCustom], which contains data used by individual tiles of a tileset.\nclass Tile:\n\t## The [Image] tile itself.\n\tvar image: Image\n\t## The amount of tiles this tile is being used in tilemaps.\n\tvar times_used := 1\n\t## The relative probability of this tile appearing when drawing random tiles.\n\tvar probability := 1.0\n\t## User defined data for each individual tile.\n\tvar user_data := \"\"\n\n\tfunc _init(_image: Image) -> void:\n\t\timage = _image\n\n\t## A method that checks if the tile should be removed from the tileset.\n\t## Returns [code]true[/code] if the amount of [member times_used] is 0.\n\tfunc can_be_removed() -> bool:\n\t\treturn times_used <= 0\n\n\tfunc serialize() -> Dictionary:\n\t\treturn {\"times_used\": times_used, \"probability\": probability, \"user_data\": user_data}\n\n\tfunc deserialize(dict: Dictionary, skip_times_used := false) -> void:\n\t\ttimes_used = 0  # We have just now, created the tile and haven't placed it anywhere yet.\n\t\tif not skip_times_used:\n\t\t\t# We are likely loading from a pxo file and would like to re-calculate it for good\n\t\t\t# measure\n\t\t\ttimes_used = dict.get(\"times_used\", times_used)\n\t\tprobability = dict.get(\"probability\", probability)\n\t\tuser_data = dict.get(\"user_data\", user_data)\n\n\nfunc _init(\n\t_tile_size: Vector2i,\n\t_name := \"\",\n\t_tile_shape := TileSet.TILE_SHAPE_SQUARE,\n\tadd_empty_tile := true\n) -> void:\n\ttile_size = _tile_size\n\tname = _name\n\ttile_shape = _tile_shape\n\tif add_empty_tile:\n\t\tvar empty_image := Image.create_empty(tile_size.x, tile_size.y, false, Image.FORMAT_RGBA8)\n\t\ttiles.append(Tile.new(empty_image))\n\n\nfunc duplicate() -> TileSetCustom:\n\tvar new_tileset := TileSetCustom.new(tile_size, name, tile_shape)\n\tnew_tileset.tile_offset_axis = tile_offset_axis\n\treturn new_tileset\n\n\n## Adds a new [param image] as a tile to the tileset.\n## The [param cel] parameter references the [CelTileMap] that this change is coming from,\n## and the [param edit_mode] parameter contains the tile editing mode at the time of this change.\nfunc add_tile(image: Image, cel: CelTileMap, times_used := 1) -> void:\n\tvar tile := Tile.new(image)\n\ttile.times_used = times_used\n\ttiles.append(tile)\n\ttile_added.emit(cel, tiles.size() - 1)\n\n\n## Adds a new [param image] as a tile in a given [param position] in the tileset.\n## The [param cel] parameter references the [CelTileMap] that this change is coming from,\n## and the [param edit_mode] parameter contains the tile editing mode at the time of this change.\nfunc insert_tile(image: Image, position: int, cel: CelTileMap) -> void:\n\tvar tile := Tile.new(image)\n\ttiles.insert(position, tile)\n\ttile_added.emit(cel, position)\n\n\n## Reduces a tile's [member TileSetCustom.Tile.times_used] by one,\n## in a given [param index] in the tileset.\n## If the times that tile is used reaches 0 and it can be removed,\n## it is being removed from the tileset by calling [method remove_tile_at_index].\n## Returns [code]true[/code] if the tile has been removed.\n## The [param cel] parameter references the [CelTileMap] that this change is coming from.\nfunc unuse_tile_at_index(index: int, cel: CelTileMap) -> bool:\n\ttiles[index].times_used -= 1\n\tif tiles[index].can_be_removed():\n\t\tremove_tile_at_index(index, cel)\n\t\treturn true\n\treturn false\n\n\n## Removes a tile in a given [param index] from the tileset.\n## The [param cel] parameter references the [CelTileMap] that this change is coming from.\nfunc remove_tile_at_index(index: int, cel: CelTileMap) -> void:\n\ttiles.remove_at(index)\n\ttile_removed.emit(cel, index)\n\n\n## Replaces a tile in a given [param index] in the tileset with a [param new_tile].\n## The [param cel] parameter references the [CelTileMap] that this change is coming from.\nfunc replace_tile_at(new_tile: Image, index: int, cel: CelTileMap) -> void:\n\ttiles[index].image.copy_from(new_tile)\n\ttile_replaced.emit(cel, index)\n\n\n## Finds and returns the position of a tile [param image] inside the tileset.\nfunc find_tile(image: Image) -> int:\n\tfor i in tiles.size():\n\t\tvar tile := tiles[i]\n\t\tif image.get_data() == tile.image.get_data():\n\t\t\treturn i\n\treturn -1\n\n\n## Loops through the array of tiles, and automatically removes any tile that can be removed.\n## Returns [code]true[/code] if at least one tile has been removed.\n## The [param cel] parameter references the [CelTileMap] that this change is coming from.\nfunc remove_unused_tiles(cel: CelTileMap) -> bool:\n\tvar has_removed_tile := false\n\tfor i in range(tiles.size() - 1, 0, -1):\n\t\tvar tile := tiles[i]\n\t\tif tile.can_be_removed():\n\t\t\tremove_tile_at_index(i, cel)\n\t\t\thas_removed_tile = true\n\treturn has_removed_tile\n\n\n## Clears the used tiles of tileset. Called when the project gets resized,\n## and tilemap cels are updating their size and clearing the tileset to re-create it.\nfunc handle_project_resize(\n\tresize_factor: Vector2, resize_interpolation: Image.Interpolation\n) -> void:\n\tif _tileset_has_been_resized:\n\t\treturn\n\ttile_size = Vector2(tile_size) * resize_factor\n\tfor i in range(tiles.size() - 1, 0, -1):\n\t\tvar tile := tiles[i]\n\t\ttile.image = DrawingAlgos.resize_image(\n\t\t\ttile.image, tile_size.x, tile_size.y, resize_interpolation\n\t\t)\n\t_tileset_has_been_resized = true\n\tset_deferred(\"_tileset_has_been_resized\", false)\n\tresized_content.emit()\n\n\n## Returns the tilemap's info, such as its name and tile size and with a given\n## [param tile_index], in the form of text.\nfunc get_text_info(tileset_index: int) -> String:\n\tvar item_string := \" %s (%s×%s)\" % [tileset_index, tile_size.x, tile_size.y]\n\tif not name.is_empty():\n\t\titem_string += \": \" + name\n\treturn tr(\"Tileset\") + item_string\n\n\n## Finds and returns all of the [LayerTileMap]s that use this tileset.\nfunc find_using_layers(project: Project) -> Array[LayerTileMap]:\n\tvar tilemaps: Array[LayerTileMap]\n\tfor layer in project.layers:\n\t\tif layer is not LayerTileMap:\n\t\t\tcontinue\n\t\tif layer.tileset == self:\n\t\t\ttilemaps.append(layer)\n\treturn tilemaps\n\n\nfunc pick_random_tile(selected_tile_indices: Array[int]) -> int:\n\tif selected_tile_indices.is_empty():\n\t\tfor i in tiles.size():\n\t\t\tselected_tile_indices.append(i)\n\tvar sum := 0.0\n\tfor i in selected_tile_indices:\n\t\tif i < tiles.size():\n\t\t\tsum += tiles[i].probability\n\tvar rand := randf_range(0.0, sum)\n\tvar current := 0.0\n\tfor i in selected_tile_indices:\n\t\tif i < tiles.size():\n\t\t\tcurrent += tiles[i].probability\n\t\t\tif current >= rand:\n\t\t\t\treturn i\n\tif selected_tile_indices[0] < tiles.size():\n\t\treturn selected_tile_indices[0]\n\treturn 0\n\n\nfunc create_image_atlas(rows := 1, skip_first := true) -> Image:\n\tvar tiles_size := tiles.size()\n\tif skip_first:\n\t\ttiles_size -= 1\n\tif tiles_size == 0:\n\t\treturn null\n\tvar columns := ceili(tiles_size / float(rows))\n\tvar width := tile_size.x * columns\n\tvar height := tile_size.y * rows\n\tvar image := Image.create_empty(width, height, false, tiles[0].image.get_format())\n\tvar origin := Vector2i.ZERO\n\tvar hh := 0\n\tvar vv := 0\n\tfor tile in tiles:\n\t\tif skip_first and tile == tiles[0]:\n\t\t\tcontinue\n\t\tif vv < columns:\n\t\t\torigin.x = tile_size.x * vv\n\t\t\tvv += 1\n\t\telse:\n\t\t\thh += 1\n\t\t\torigin.x = 0\n\t\t\tvv = 1\n\t\t\torigin.y = tile_size.y * hh\n\t\timage.blend_rect(tile.image, Rect2i(Vector2i.ZERO, tile_size), origin)\n\treturn image\n\n\nfunc create_godot_tileset(rows := 1) -> TileSet:\n\tvar godot_tileset := TileSet.new()\n\tgodot_tileset.tile_size = tile_size\n\tgodot_tileset.tile_shape = tile_shape\n\tgodot_tileset.tile_offset_axis = tile_offset_axis\n\tvar tileset_atlas_source := TileSetAtlasSource.new()\n\tvar image_atlas := create_image_atlas(rows)\n\ttileset_atlas_source.texture = ImageTexture.create_from_image(image_atlas)\n\ttileset_atlas_source.texture_region_size = tile_size\n\tvar grid_size := tileset_atlas_source.get_atlas_grid_size()\n\tfor y in grid_size.y:\n\t\tfor x in grid_size.x:\n\t\t\tvar coords := Vector2i(x, y)\n\t\t\ttileset_atlas_source.create_tile(coords)\n\tgodot_tileset.add_source(tileset_atlas_source)\n\treturn godot_tileset\n\n\n## Serializes the data of this class into the form of a [Dictionary],\n## which is used so the data can be stored in pxo files.\nfunc serialize() -> Dictionary:\n\tvar dict := {\n\t\t\"name\": name, \"tile_size\": tile_size, \"tile_amount\": tiles.size(), \"tile_shape\": tile_shape\n\t}\n\tvar tile_data := {}\n\tfor i in tiles.size():\n\t\ttile_data[i] = tiles[i].serialize()\n\tdict[\"tile_data\"] = tile_data\n\treturn dict\n\n\n## Deserializes the data of a given [member dict] [Dictionary] into class data,\n## which is used so data can be loaded from pxo files.\nfunc deserialize(dict: Dictionary) -> void:\n\tname = dict.get(\"name\", name)\n\ttile_size = str_to_var(\"Vector2i\" + dict.get(\"tile_size\"))\n\ttile_shape = dict.get(\"tile_shape\", tile_shape)\n\tvar tile_data := dict.get(\"tile_data\", {}) as Dictionary\n\tfor i_str in tile_data:\n\t\tvar i := int(i_str)\n\t\tvar tile: Tile\n\t\tif i > tiles.size() - 1:\n\t\t\ttile = Tile.new(null)\n\t\t\ttiles.append(tile)\n\t\telse:\n\t\t\ttile = tiles[i]\n\t\ttile.deserialize(tile_data[i_str], true)\n\n\n## Serializes the data of each tile in [member tiles] into the form of a [Dictionary],\n## which is used by the undo/redo system.\nfunc serialize_undo_data() -> Dictionary:\n\tvar dict := {\"tile_size\": tile_size, \"tiles\": {}}\n\tfor tile in tiles:\n\t\tvar image_data := tile.image.get_data()\n\t\tdict[\"tiles\"][tile.image] = [\n\t\t\timage_data.compress(), image_data.size(), tile.image.get_size(), tile.serialize()\n\t\t]\n\treturn dict\n\n\n## Deserializes the data of each tile in [param dict], which is used by the undo/redo system.\nfunc deserialize_undo_data(dict: Dictionary, _cel: CelTileMap) -> void:\n\ttiles.resize(dict[\"tiles\"].size())\n\tvar prev_tile_size := tile_size\n\ttile_size = dict[\"tile_size\"]\n\tvar i := 0\n\tfor image: Image in dict[\"tiles\"]:\n\t\tvar tile_data = dict[\"tiles\"][image]\n\t\tvar buffer_size := tile_data[1] as int\n\t\tvar image_size := tile_data[2] as Vector2i\n\t\tvar tile_dictionary := tile_data[3] as Dictionary\n\t\tvar image_data := (tile_data[0] as PackedByteArray).decompress(buffer_size)\n\t\timage.set_data(image_size.x, image_size.y, false, image.get_format(), image_data)\n\t\ttiles[i] = Tile.new(image)\n\t\ttiles[i].deserialize(tile_dictionary)\n\t\ti += 1\n\tupdated.emit()\n\tif tile_size != prev_tile_size:\n\t\tresized_content.emit()\n"
  },
  {
    "path": "src/Classes/TileSetCustom.gd.uid",
    "content": "uid://dkd2y552o12qq\n"
  },
  {
    "path": "src/Classes/Tiles.gd",
    "content": "class_name Tiles\nextends RefCounted\n\nenum MODE { NONE, BOTH, X_AXIS, Y_AXIS }\n\nvar mode := MODE.NONE\nvar x_basis: Vector2i\nvar y_basis: Vector2i\nvar tile_size: Vector2i\nvar tile_mask := Image.new()\nvar has_mask := false\n\n\nfunc _init(size: Vector2i) -> void:\n\tx_basis = Vector2i(size.x, 0)\n\ty_basis = Vector2i(0, size.y)\n\ttile_size = size\n\ttile_mask = Image.create(tile_size.x, tile_size.y, false, Image.FORMAT_RGBA8)\n\ttile_mask.fill(Color.WHITE)\n\n\nfunc get_bounding_rect() -> Rect2i:\n\tmatch mode:\n\t\tMODE.BOTH:\n\t\t\tvar diagonal := x_basis + y_basis\n\t\t\tvar cross_diagonal := x_basis - y_basis\n\t\t\tvar bounding_rect := Rect2i(-diagonal, Vector2.ZERO)\n\t\t\tbounding_rect = bounding_rect.expand(diagonal)\n\t\t\tbounding_rect = bounding_rect.expand(-cross_diagonal)\n\t\t\tbounding_rect = bounding_rect.expand(cross_diagonal)\n\t\t\tbounding_rect = bounding_rect.grow_individual(0, 0, tile_size.x, tile_size.y)\n\t\t\treturn bounding_rect\n\t\tMODE.X_AXIS:\n\t\t\tvar bounding_rect := Rect2i(-x_basis, Vector2.ZERO)\n\t\t\tbounding_rect = bounding_rect.expand(x_basis)\n\t\t\tbounding_rect = bounding_rect.grow_individual(0, 0, tile_size.x, tile_size.y)\n\t\t\treturn bounding_rect\n\t\tMODE.Y_AXIS:\n\t\t\tvar bounding_rect := Rect2i(-y_basis, Vector2.ZERO)\n\t\t\tbounding_rect = bounding_rect.expand(y_basis)\n\t\t\tbounding_rect = bounding_rect.grow_individual(0, 0, tile_size.x, tile_size.y)\n\t\t\treturn bounding_rect\n\t\t_:\n\t\t\treturn Rect2i(Vector2i.ZERO, tile_size)\n\n\nfunc get_nearest_tile(point: Vector2i) -> Rect2i:\n\tvar positions: Array[Vector2i] = Global.canvas.tile_mode.get_tile_positions()\n\tpositions.append(Vector2i.ZERO)\n\n\tvar candidates: Array[Rect2i] = []\n\tfor pos in positions:\n\t\tvar test_rect := Rect2i(pos, tile_size)\n\t\tif test_rect.has_point(point):\n\t\t\tcandidates.append(test_rect)\n\tif candidates.is_empty():\n\t\treturn Rect2i(Vector2i.ZERO, tile_size)\n\n\tvar final: Array[Rect2i] = []\n\tfor candidate in candidates:\n\t\tvar rel_pos := point - candidate.position\n\t\tif tile_mask.get_pixelv(rel_pos).a == 1.0:\n\t\t\tfinal.append(candidate)\n\n\tif final.is_empty():\n\t\treturn Rect2i(Vector2i.ZERO, tile_size)\n\tfinal.sort_custom(func(a: Rect2i, b: Rect2i): return a.position.y < b.position.y)\n\treturn final[0]\n\n\nfunc get_canon_position(position: Vector2i) -> Vector2i:\n\tif mode == MODE.NONE:\n\t\treturn position\n\tvar nearest_tile := get_nearest_tile(position)\n\tif nearest_tile.has_point(position):\n\t\tposition -= nearest_tile.position\n\treturn position\n\n\nfunc get_point_in_tiles(pixel: Vector2i) -> Array[Vector2i]:\n\tvar positions: Array[Vector2i] = Global.canvas.tile_mode.get_tile_positions()\n\tpositions.append(Vector2i.ZERO)\n\tvar result: Array[Vector2i] = []\n\tfor pos in positions:\n\t\tresult.append(pos + pixel)\n\treturn result\n\n\nfunc has_point(point: Vector2i) -> bool:\n\tvar positions: Array[Vector2i] = Global.canvas.tile_mode.get_tile_positions()\n\tpositions.append(Vector2i.ZERO)  # The central tile is included manually\n\tfor tile_pos in positions:\n\t\tvar test_rect := Rect2i(tile_pos, tile_size)\n\t\tvar rel_pos := point - tile_pos\n\t\tif test_rect.has_point(point) and tile_mask.get_pixelv(rel_pos).a == 1.0:\n\t\t\treturn true\n\treturn false\n\n\nfunc reset_mask() -> void:\n\ttile_mask = Image.create(tile_size.x, tile_size.y, false, Image.FORMAT_RGBA8)\n\ttile_mask.fill(Color.WHITE)\n\thas_mask = false\n"
  },
  {
    "path": "src/Classes/Tiles.gd.uid",
    "content": "uid://c7e4fju2q2c6l\n"
  },
  {
    "path": "src/HandleExtensions.gd",
    "content": "class_name Extensions\nextends Control\n\nsignal extension_loaded(extension: Extension, extension_name: String)\nsignal extension_uninstalled(file_name: String)\n\nenum UninstallMode { KEEP_FILE, FILE_TO_BIN, REMOVE_PERMANENT }\n\nconst EXTENSIONS_PATH := \"user://extensions\"\nconst BUG_EXTENSIONS_PATH := \"user://give_in_bug_report\"\nconst BIN_ACTION := \"trash\"\n\nvar extensions := {}  ## Extension name: Extension class\nvar extension_selected := -1\nvar damaged_extensions := PackedStringArray()\nvar prev_damaged_extensions := PackedStringArray()\n## Extensions built using the versions in this array are considered compatible with the current Api\nvar legacy_api_versions := []\nvar sane_timer := Timer.new()  # Used to ping that at least one session is alive during Timer's run.\n\n\nclass Extension:\n\tvar file_name := \"\"\n\tvar display_name := \"\"\n\tvar description := \"\"\n\tvar author := \"\"\n\tvar version := \"\"\n\tvar license := \"\"\n\tvar nodes := []\n\tvar enabled: bool:\n\t\tset(value):\n\t\t\tenabled = value\n\t\t\tenabled_once = true\n\tvar internal := false\n\tvar enabled_once := false\n\n\tfunc serialize(dict: Dictionary) -> void:\n\t\tif dict.has(\"name\"):\n\t\t\tfile_name = dict[\"name\"]\n\t\tif dict.has(\"display_name\"):\n\t\t\tdisplay_name = dict[\"display_name\"]\n\t\tif dict.has(\"description\"):\n\t\t\tdescription = dict[\"description\"]\n\t\tif dict.has(\"author\"):\n\t\t\tauthor = dict[\"author\"]\n\t\tif dict.has(\"version\"):\n\t\t\tversion = dict[\"version\"]\n\t\tif dict.has(\"license\"):\n\t\t\tlicense = dict[\"license\"]\n\t\tif dict.has(\"nodes\"):\n\t\t\tnodes = dict[\"nodes\"]\n\n\nfunc _ready() -> void:\n\t_add_internal_extensions()\n\tprev_damaged_extensions = initialize_extension_monitor()\n\tif !prev_damaged_extensions.is_empty():\n\t\tif prev_damaged_extensions.size() == 1:\n\t\t\t# gdlint: ignore=max-line-length\n\t\t\tvar error_text = \"A Faulty extension was found in previous session:\\n%s\\nIt will be moved to:\\n%s\"\n\t\t\tvar extension_name = prev_damaged_extensions[0]\n\t\t\tGlobal.popup_error(\n\t\t\t\terror_text % [extension_name, ProjectSettings.globalize_path(BUG_EXTENSIONS_PATH)]\n\t\t\t)\n\t\telse:\n\t\t\tGlobal.popup_error(\n\t\t\t\t\"Previous session crashed, extensions are automatically disabled as a precausion\"\n\t\t\t)\n\n\tvar file_names: PackedStringArray = []\n\tvar dir := DirAccess.open(\"user://\")\n\tdir.make_dir(EXTENSIONS_PATH)\n\tdir = DirAccess.open(EXTENSIONS_PATH)\n\tif DirAccess.get_open_error() == OK:\n\t\tdir.list_dir_begin()\n\t\tvar file_name := dir.get_next()\n\t\twhile file_name != \"\":\n\t\t\tvar ext := file_name.to_lower().get_extension()\n\t\t\tif not dir.current_is_dir() and ext in [\"pck\", \"zip\"]:\n\t\t\t\tfile_names.append(file_name)\n\t\t\tfile_name = dir.get_next()\n\t\tdir.list_dir_end()\n\n\tif file_names.is_empty():\n\t\treturn\n\n\tfor file_name in file_names:\n\t\t_add_extension(file_name)\n\n\n## This is an empty function at the moment, but internal extensions here should be added here\n## For example:\n## [code]_load_extension(\"ExtensionName\", true)[/code]\nfunc _add_internal_extensions() -> void:\n\tpass\n\n\nfunc install_extension(path: String) -> void:\n\tvar file_name := path.uri_decode().get_file()\n\tvar err := DirAccess.copy_absolute(path, EXTENSIONS_PATH.path_join(file_name))\n\tif err != OK:\n\t\tvar msg := tr(\"Extension failed to install. Error code %s (%s)\") % [err, error_string(err)]\n\t\tGlobal.popup_error(msg)\n\t\treturn\n\t_add_extension(file_name)\n\n\nfunc _add_extension(file_name: String) -> void:\n\tadd_suspicion(file_name)\n\tif extensions.has(file_name):\n\t\tuninstall_extension(file_name, UninstallMode.KEEP_FILE)\n\t\t# Wait two frames so the previous nodes can get freed\n\t\tawait get_tree().process_frame\n\t\tawait get_tree().process_frame\n\n\tvar file_path := EXTENSIONS_PATH.path_join(file_name)\n\tvar success := ProjectSettings.load_resource_pack(file_path)\n\tif !success:\n\t\t# Don't delete the extension\n\t\t# Context: pixelorama deletes v0.11.x extensions when you open v1.0, this will prevent it.\n\t\tprint(\"EXTENSION ERROR: Failed loading resource pack %s.\" % file_name)\n\t\tprint(\"There may be errors in extension code or extension is incompatible\")\n\t\tclear_suspicion(file_name)\n\t\treturn\n\t_load_extension(file_name)\n\n\nfunc _load_extension(extension_file_or_folder_name: StringName, internal := false) -> void:\n\tvar file_name_no_ext := extension_file_or_folder_name.uri_decode().get_basename()\n\tvar extension_path := \"res://src/Extensions/%s/\" % file_name_no_ext\n\tvar extension_config_file_path := extension_path.path_join(\"extension.json\")\n\tvar extension_config_file := FileAccess.open(extension_config_file_path, FileAccess.READ)\n\tvar err := FileAccess.get_open_error()\n\tif err != OK:\n\t\tvar msg := (\n\t\t\ttr(\"Error loading extension config file. Error code %s (%s)\") % [err, error_string(err)]\n\t\t)\n\t\tGlobal.popup_error(msg)\n\t\tif extension_config_file:\n\t\t\textension_config_file.close()\n\t\treturn\n\n\tvar test_json_conv := JSON.new()\n\ttest_json_conv.parse(extension_config_file.get_as_text())\n\tvar extension_json = test_json_conv.get_data()\n\textension_config_file.close()\n\n\tif not extension_json:\n\t\tGlobal.popup_error(tr(\"No JSON data found in the extension.\"))\n\t\treturn\n\n\tif extension_json.has(\"supported_api_versions\"):\n\t\tvar supported_api_versions = extension_json[\"supported_api_versions\"]\n\t\tvar current_api_version = ExtensionsApi.get_api_version()\n\t\tif typeof(supported_api_versions) == TYPE_ARRAY:\n\t\t\tsupported_api_versions = PackedInt32Array(supported_api_versions)\n\t\t\t# Extensions that support API version 4 are backwards compatible with version 5.\n\t\t\t# Version 5 only adds new methods and does not break compatibility.\n\t\t\t# TODO: Find a better way to determine which API versions\n\t\t\t# have backwards compatibility with each other.\n\t\t\tif not current_api_version in supported_api_versions:\n\t\t\t\tfor legacy_version: int in legacy_api_versions:\n\t\t\t\t\tif legacy_version in supported_api_versions:\n\t\t\t\t\t\tsupported_api_versions.append(current_api_version)\n\t\t\tif not ExtensionsApi.get_api_version() in supported_api_versions:\n\t\t\t\tvar err_text := (\n\t\t\t\t\t\"The extension %s will not work on this version of Pixelorama \\n\"\n\t\t\t\t\t% file_name_no_ext\n\t\t\t\t)\n\t\t\t\tvar required_text := str(\n\t\t\t\t\t\"Extension works on API versions: %s\" % str(supported_api_versions),\n\t\t\t\t\t\"\\n\",\n\t\t\t\t\t\"But Pixelorama's API version is: %s\" % current_api_version\n\t\t\t\t)\n\t\t\t\tGlobal.popup_error(str(err_text, required_text))\n\t\t\t\tprint(\"Incompatible API\")\n\t\t\t\tif !internal:  # The file isn't created for internal extensions, no need for removal\n\t\t\t\t\t# Don't put it in faulty, it's merely incompatible\n\t\t\t\t\tclear_suspicion(extension_file_or_folder_name)\n\t\t\t\treturn\n\n\tvar extension := Extension.new()\n\textension.serialize(extension_json)\n\textension.internal = internal\n\textensions[extension_file_or_folder_name] = extension\n\textension_loaded.emit(extension, extension_file_or_folder_name)\n\t# Enable internal extensions if it is the first time they are being loaded\n\textension.enabled = Global.config_cache.get_value(\"extensions\", extension.file_name, internal)\n\t# If this extension was enabled in previous session (which crashed) then disable it.\n\tif extension_file_or_folder_name in prev_damaged_extensions:\n\t\tGlobal.config_cache.set_value(\"extensions\", extension.file_name, false)\n\t\textension.enabled = false\n\n\tif extension.enabled:\n\t\tenable_extension(extension)\n\n\t# if extension is loaded and enabled successfully then update suspicion\n\tif !internal:  # the file isn't created for internal extensions, so no need to remove it.\n\t\t# At this point the extension has been enabled (and has added it's nodes) successfully\n\t\t# If an extension misbehaves at this point, we are certain which on it is so we will\n\t\t# quarantine it in the next session.\n\t\tclear_suspicion(extension_file_or_folder_name)\n\n\nfunc enable_extension(extension: Extension, save_to_config := true) -> void:\n\tvar extension_path: String = \"res://src/Extensions/%s/\" % extension.file_name\n\n\t# If an Extension has nodes, it may still crash pixelorama so it is still not cleared from\n\t# suspicion, keep an eve on them (When we enable them)\n\tif !extension.nodes.is_empty():\n\t\tawait get_tree().process_frame\n\t\t# NOTE: await will make sure the below line of code will run AFTER all required extensions\n\t\t# are enabled. (At this point we are no longer exactly sure which extension is faulty). so\n\t\t# we shall disable All enabled extensions in next session if any of them misbehave.\n\t\tadd_suspicion(str(extension.file_name, \".pck\"))\n\n\t# A unique id for the extension (currently set to file_name). More parameters (version etc.)\n\t# can be easily added using the str() function. for example\n\t# var id: String = str(extension.file_name, extension.version)\n\tvar id: String = extension.file_name\n\n\tif extension.enabled:\n\t\tExtensionsApi.clear_history(extension.file_name)\n\t\tfor node in extension.nodes:\n\t\t\tvar scene_path: String = extension_path.path_join(node)\n\t\t\tvar extension_scene: PackedScene = load(scene_path)\n\t\t\tif extension_scene:\n\t\t\t\tvar extension_node: Node = extension_scene.instantiate()\n\t\t\t\t# Keep an eye on extension nodes, so that they don't misbehave\n\t\t\t\textension_node.tree_exited.connect(\n\t\t\t\t\tclear_suspicion.bind(str(extension.file_name, \".pck\"))\n\t\t\t\t)\n\t\t\t\tadd_child(extension_node)\n\t\t\t\textension_node.add_to_group(id)  # Keep track of what to remove later\n\t\t\telse:\n\t\t\t\tprint(\"Failed to load extension %s\" % id)\n\telse:\n\t\tfor ext_node in get_children():\n\t\t\tif ext_node.is_in_group(id):  # Node for extension found\n\t\t\t\tremove_child(ext_node)\n\t\t\t\text_node.queue_free()\n\t\tExtensionsApi.check_sanity(extension.file_name)\n\n\tif save_to_config:\n\t\tGlobal.config_cache.set_value(\"extensions\", extension.file_name, extension.enabled)\n\t\tGlobal.config_cache.save(Global.CONFIG_PATH)\n\n\nfunc uninstall_extension(file_name := \"\", remove_mode := UninstallMode.REMOVE_PERMANENT) -> void:\n\tvar err := OK\n\tmatch remove_mode:\n\t\tUninstallMode.FILE_TO_BIN:\n\t\t\terr = OS.move_to_trash(\n\t\t\t\tProjectSettings.globalize_path(EXTENSIONS_PATH).path_join(file_name)\n\t\t\t)\n\t\tUninstallMode.REMOVE_PERMANENT:\n\t\t\terr = DirAccess.remove_absolute(EXTENSIONS_PATH.path_join(file_name))\n\tif remove_mode != UninstallMode.KEEP_FILE:\n\t\tif err != OK:\n\t\t\tprint(err)\n\t\t\treturn\n\n\tvar extension: Extension = extensions[file_name]\n\textension.enabled = false\n\tenable_extension(extension, false)\n\n\textensions.erase(file_name)\n\textension_selected = -1\n\textension_uninstalled.emit(file_name)\n\n\nfunc initialize_extension_monitor() -> PackedStringArray:\n\tvar tester_file: FileAccess  # For testing and deleting damaged extensions\n\t# Remove any extension that was proven guilty before this extension is loaded\n\tsane_timer.wait_time = 10  # Ping that at least one session is alive during this time\n\tadd_child(sane_timer)\n\tsane_timer.timeout.connect(update_monitoring_time)\n\tsane_timer.start()\n\tif FileAccess.file_exists(EXTENSIONS_PATH.path_join(\"Monitoring.ini\")):\n\t\t# This code will decide if pixelorama crashed or not\n\t\tvar faulty_path := EXTENSIONS_PATH.path_join(\"Monitoring.ini\")\n\t\ttester_file = FileAccess.open(faulty_path, FileAccess.READ)\n\t\tvar last_update_time = str_to_var(tester_file.get_line())\n\t\tvar damaged_extension_names = str_to_var(tester_file.get_line())\n\t\ttester_file.close()\n\t\tif typeof(last_update_time) == TYPE_INT:\n\t\t\tif int(Time.get_unix_time_from_system()) - last_update_time <= sane_timer.wait_time:\n\t\t\t\treturn PackedStringArray()  # Assume the file is still in use (session didn't crash)\n\t\t# If this line is reached then it's likely that the app crashed last session\n\t\tDirAccess.remove_absolute(EXTENSIONS_PATH.path_join(\"Monitoring.ini\"))\n\t\tif typeof(damaged_extension_names) == TYPE_PACKED_STRING_ARRAY:\n\t\t\tif damaged_extension_names.size() == 1:  # We are certain which extension crashed\n\t\t\t\t# NOTE: get_file() is used as a countermeasure towards possible malicious tampering\n\t\t\t\t# with Monitoring.ini file (to inject paths leading outside EXTENSIONS_PATH using \"../\")\n\t\t\t\tvar extension_name = damaged_extension_names[0].get_file()\n\t\t\t\tDirAccess.make_dir_recursive_absolute(BUG_EXTENSIONS_PATH)\n\t\t\t\tif FileAccess.file_exists(EXTENSIONS_PATH.path_join(extension_name)):\n\t\t\t\t\t# don't delete the extension permanently\n\t\t\t\t\t# (so that it may be given to the developer in the bug report)\n\t\t\t\t\tDirAccess.rename_absolute(\n\t\t\t\t\t\tEXTENSIONS_PATH.path_join(extension_name),\n\t\t\t\t\t\tBUG_EXTENSIONS_PATH.path_join(extension_name)\n\t\t\t\t\t)\n\t\t\treturn damaged_extension_names\n\treturn PackedStringArray()\n\n\nfunc add_suspicion(extension_name: StringName):\n\t# The new (about to load) extension will be considered guilty till it's proven innocent\n\tif not extension_name in damaged_extensions:\n\t\tvar tester_file := FileAccess.open(\n\t\t\tEXTENSIONS_PATH.path_join(\"Monitoring.ini\"), FileAccess.WRITE\n\t\t)\n\t\tdamaged_extensions.append(extension_name)\n\t\ttester_file.store_line(var_to_str(int(Time.get_unix_time_from_system())))\n\t\ttester_file.store_line(var_to_str(damaged_extensions))\n\t\ttester_file.close()\n\n\nfunc clear_suspicion(extension_name: StringName):\n\tif extension_name in damaged_extensions:\n\t\tdamaged_extensions.remove_at(damaged_extensions.find(extension_name))\n\t# Delete the faulty.txt, if there are no more damaged extensions, else update it\n\tif !damaged_extensions.is_empty():\n\t\tvar tester_file := FileAccess.open(\n\t\t\tEXTENSIONS_PATH.path_join(\"Monitoring.ini\"), FileAccess.WRITE\n\t\t)\n\t\ttester_file.store_line(var_to_str(int(Time.get_unix_time_from_system())))\n\t\ttester_file.store_line(var_to_str(damaged_extensions))\n\t\ttester_file.close()\n\telse:\n\t\tDirAccess.remove_absolute(EXTENSIONS_PATH.path_join(\"Monitoring.ini\"))\n\n\nfunc update_monitoring_time():\n\tvar tester_file := FileAccess.open(EXTENSIONS_PATH.path_join(\"Monitoring.ini\"), FileAccess.READ)\n\tvar active_extensions_str: String\n\tif FileAccess.get_open_error() == OK:\n\t\ttester_file.get_line()  # Ignore first line\n\t\tactive_extensions_str = tester_file.get_line()\n\t\ttester_file.close()\n\ttester_file = FileAccess.open(EXTENSIONS_PATH.path_join(\"Monitoring.ini\"), FileAccess.WRITE)\n\ttester_file.store_line(var_to_str(int(Time.get_unix_time_from_system())))\n\ttester_file.store_line(active_extensions_str)\n\ttester_file.close()\n"
  },
  {
    "path": "src/HandleExtensions.gd.uid",
    "content": "uid://dyififbas7e2t\n"
  },
  {
    "path": "src/Main.gd",
    "content": "extends Control\n\n## Needed because it is not possible to detect if a native file dialog is open or not.\nsignal save_file_dialog_opened(opened: bool)\n\nconst RUNNING_FILE_PATH := \"user://.running\"\nconst SPLASH_DIALOG_SCENE_PATH := \"res://src/UI/Dialogs/SplashDialog.tscn\"\n\nvar opensprite_file_selected := false\nvar redone := false\nvar is_quitting_on_save := false\nvar is_writing_text := false\nvar changed_projects_on_quit: Array[Project]\nvar cursor_image := preload(\"res://assets/graphics/cursor.png\")\n## Used to download an image when dragged and dropped directly from a browser into Pixelorama\nvar url_to_download := \"\"\nvar splash_dialog: AcceptDialog:\n\tget:\n\t\tif not is_instance_valid(splash_dialog):\n\t\t\tsplash_dialog = load(SPLASH_DIALOG_SCENE_PATH).instantiate()\n\t\t\tadd_child(splash_dialog)\n\t\treturn splash_dialog\n\n@onready var top_menu_container := $MenuAndUI/TopMenuContainer as Panel\n@onready var main_ui := $MenuAndUI/UI/DockableContainer as DockableContainer\n## Dialog used to open images and project (.pxo) files.\n@onready var open_sprite_dialog := $Dialogs/OpenSprite as FileDialog\n## Dialog used to save project (.pxo) files.\n@onready var save_sprite_dialog := $Dialogs/SaveSprite as FileDialog\n@onready var save_sprite_html5: ConfirmationDialog = $Dialogs/SaveSpriteHTML5\n@onready var tile_mode_offsets_dialog: ConfirmationDialog = $Dialogs/TileModeOffsetsDialog\n@onready var quit_dialog: ConfirmationDialog = $Dialogs/QuitDialog\n@onready var quit_and_save_dialog: ConfirmationDialog = $Dialogs/QuitAndSaveDialog\n@onready var restore_session_confirmation_dialog := (\n\t$Dialogs/RestoreSessionConfirmationDialog as ConfirmationDialog\n)\n@onready var download_confirmation := $Dialogs/DownloadImageConfirmationDialog as ConfirmationDialog\n@onready var left_cursor: Sprite2D = $LeftCursor\n@onready var right_cursor: Sprite2D = $RightCursor\n@onready var image_request := $ImageRequest as HTTPRequest\n\n\nclass CLI:\n\tstatic var args_list := {\n\t\t[\"--version\", \"--pixelorama-version\"]:\n\t\t[CLI.print_version, \"Prints current Pixelorama version\"],\n\t\t[\"--size\"]: [CLI.print_project_size, \"Prints size of the given project\"],\n\t\t[\"--framecount\"]: [CLI.print_frame_count, \"Prints total frames in the current project\"],\n\t\t[\"--export\", \"-e\"]: [CLI.enable_export, \"Indicates given project should be exported\"],\n\t\t[\"--spritesheet\", \"-s\"]:\n\t\t[CLI.enable_spritesheet, \"Indicates given project should be exported as spritesheet\"],\n\t\t[\"--output\", \"-o\"]: [CLI.set_output, \"[path] Name of output file (with extension)\"],\n\t\t[\"--scale\"]: [CLI.set_export_scale, \"[integer] Scales up the export image by a number\"],\n\t\t[\"--frames\", \"-f\"]: [CLI.set_frames, \"[integer-integer] Used to specify frame range\"],\n\t\t[\"--direction\", \"-d\"]: [CLI.set_direction, \"[0, 1, 2] Specifies direction\"],\n\t\t[\"--json\"]: [CLI.set_json, \"Export the JSON data of the project\"],\n\t\t[\"--split-layers\"]: [CLI.set_split_layers, \"Each layer exports separately\"],\n\t\t[\"--sheet_layers_as_separate_files\"]:\n\t\t[\n\t\t\tCLI.set_sheet_layers_as_separate_files,\n\t\t\t\"Spritesheets in split layer mode will export multiple files for each layer.\"\n\t\t],\n\t\t[\"--help\", \"-h\", \"-?\"]: [CLI.generate_help, \"Displays this help page\"],\n\t\t[\"--scene\"]: [CLI.dummy, \"Used internally by Godot.\"]\n\t}\n\n\tstatic func generate_help(_project: Project, _next_arg: String):\n\t\tvar help := str(\n\t\t\t(\n\t\t\t\t\"\"\"\n =========================================================================\\n\nHelp for Pixelorama's CLI.\n\nUsage:\n\\t%s [SYSTEM OPTIONS] -- [USER OPTIONS] [FILES]...\n\nUse -h in place of [SYSTEM OPTIONS] to see [SYSTEM OPTIONS].\nOr use -h in place of [USER OPTIONS] to see [USER OPTIONS].\n\nsome useful [SYSTEM OPTIONS] are:\n--headless     Run in headless mode.\n--quit         Close pixelorama after current command.\n\n\n[USER OPTIONS]:\\n\n(The terms in [ ] reflect the valid type for corresponding argument).\n\n\"\"\"\n\t\t\t\t% OS.get_executable_path().get_file()\n\t\t\t)\n\t\t)\n\t\tfor command_group: Array in args_list.keys():\n\t\t\thelp += str(\n\t\t\t\tvar_to_str(command_group).replace(\"[\", \"\").replace(\"]\", \"\").replace('\"', \"\"),\n\t\t\t\t\"\\t\\t\".c_unescape(),\n\t\t\t\targs_list[command_group][1],\n\t\t\t\t\"\\n\".c_unescape()\n\t\t\t)\n\t\thelp += \"=========================================================================\"\n\t\tprint(help)\n\n\t## Dedicated place for command line args callables\n\tstatic func print_version(_project: Project, _next_arg: String) -> void:\n\t\tprint(Global.current_version)\n\n\tstatic func print_project_size(project: Project, _next_arg: String) -> void:\n\t\tprint(project.size)\n\n\tstatic func print_frame_count(project: Project, _next_arg: String) -> void:\n\t\tprint(project.frames.size())\n\n\tstatic func enable_export(_project: Project, _next_arg: String):\n\t\treturn true\n\n\tstatic func enable_spritesheet(_project: Project, _next_arg: String):\n\t\tExport.current_tab = Export.ExportTab.SPRITESHEET\n\t\treturn true\n\n\tstatic func set_output(project: Project, next_arg: String) -> void:\n\t\tif not next_arg.is_empty():\n\t\t\tproject.file_name = next_arg.get_file().get_basename()\n\t\t\tvar directory_path = next_arg.get_base_dir()\n\t\t\tif directory_path != \".\":\n\t\t\t\tproject.export_directory_path = directory_path\n\t\t\tvar extension := next_arg.get_extension()\n\t\t\tproject.file_format = Export.get_file_format_from_extension(extension)\n\n\tstatic func set_export_scale(_project: Project, next_arg: String) -> void:\n\t\tif not next_arg.is_empty():\n\t\t\tif next_arg.is_valid_float():\n\t\t\t\tExport.resize = next_arg.to_float() * 100\n\n\tstatic func set_frames(project: Project, next_arg: String) -> void:\n\t\tif not next_arg.is_empty():\n\t\t\tif next_arg.contains(\"-\"):\n\t\t\t\tvar frame_numbers := next_arg.split(\"-\")\n\t\t\t\tif frame_numbers.size() > 1:\n\t\t\t\t\tproject.selected_cels.clear()\n\t\t\t\t\tvar frame_number_1 := 0\n\t\t\t\t\tif frame_numbers[0].is_valid_int():\n\t\t\t\t\t\tframe_number_1 = frame_numbers[0].to_int() - 1\n\t\t\t\t\tframe_number_1 = clampi(frame_number_1, 0, project.frames.size() - 1)\n\t\t\t\t\tvar frame_number_2 := project.frames.size() - 1\n\t\t\t\t\tif frame_numbers[1].is_valid_int():\n\t\t\t\t\t\tframe_number_2 = frame_numbers[1].to_int() - 1\n\t\t\t\t\tframe_number_2 = clampi(frame_number_2, 0, project.frames.size() - 1)\n\t\t\t\t\tfor frame in range(frame_number_1, frame_number_2 + 1):\n\t\t\t\t\t\tproject.selected_cels.append([frame, project.current_layer])\n\t\t\t\t\t\tproject.change_cel(frame)\n\t\t\t\t\t\tExport.frame_current_tag = Export.ExportFrames.SELECTED_FRAMES\n\t\t\telif next_arg.is_valid_int():\n\t\t\t\tvar frame_number := next_arg.to_int() - 1\n\t\t\t\tframe_number = clampi(frame_number, 0, project.frames.size() - 1)\n\t\t\t\tproject.selected_cels = [[frame_number, project.current_layer]]\n\t\t\t\tproject.change_cel(frame_number)\n\t\t\t\tExport.frame_current_tag = Export.ExportFrames.SELECTED_FRAMES\n\n\tstatic func set_direction(_project: Project, next_arg: String) -> void:\n\t\tif not next_arg.is_empty():\n\t\t\tnext_arg = next_arg.to_lower()\n\t\t\tif next_arg == \"0\" or next_arg.contains(\"forward\"):\n\t\t\t\tExport.direction = Export.AnimationDirection.FORWARD\n\t\t\telif next_arg == \"1\" or next_arg.contains(\"backward\"):\n\t\t\t\tExport.direction = Export.AnimationDirection.BACKWARDS\n\t\t\telif next_arg == \"2\" or next_arg.contains(\"ping\"):\n\t\t\t\tExport.direction = Export.AnimationDirection.PING_PONG\n\t\t\telse:\n\t\t\t\tprint(Export.AnimationDirection.keys()[Export.direction])\n\t\telse:\n\t\t\tprint(Export.AnimationDirection.keys()[Export.direction])\n\n\tstatic func set_json(_project: Project, _next_arg: String) -> void:\n\t\tExport.export_json = true\n\n\tstatic func set_split_layers(_project: Project, _next_arg: String) -> void:\n\t\tExport.split_layers = true\n\n\tstatic func set_sheet_layers_as_separate_files(_project: Project, _next_arg: String) -> void:\n\t\tExport.sheet_layers_as_separate_files = true\n\n\tstatic func dummy(_project: Project, _next_arg: String) -> void:\n\t\tpass\n\n\nfunc _init() -> void:\n\tGlobal.project_switched.connect(_project_switched)\n\tif not DirAccess.dir_exists_absolute(OpenSave.BACKUPS_DIRECTORY):\n\t\tDirAccess.make_dir_recursive_absolute(OpenSave.BACKUPS_DIRECTORY)\n\tGlobal.shrink = _get_auto_display_scale()\n\tGlobal.auto_content_scale_factor = _get_auto_display_scale()\n\t_handle_layout_files()\n\tApplinks.data_received.connect(_on_applinks_data_received)\n\t# Load dither matrix images.\n\tvar dither_matrices_path := \"user://dither_matrices\"\n\tif DirAccess.dir_exists_absolute(dither_matrices_path):\n\t\tfor file_name in DirAccess.get_files_at(dither_matrices_path):\n\t\t\tvar file_path := dither_matrices_path.path_join(file_name)\n\t\t\tShaderLoader.load_dither_matrix_from_file(file_path)\n\n\nfunc _ready() -> void:\n\tget_tree().set_auto_accept_quit(false)\n\n\tget_window().title = tr(\"untitled\") + \" - Pixelorama \" + Global.current_version\n\n\tGlobal.current_project.layers.append(PixelLayer.new(Global.current_project))\n\tGlobal.current_project.frames.append(Global.current_project.new_empty_frame())\n\tGlobal.animation_timeline.project_changed()\n\n\tImport.import_brushes(Global.path_join_array(Global.data_directories, \"Brushes\"))\n\tImport.import_patterns(Global.path_join_array(Global.data_directories, \"Patterns\"))\n\n\tquit_and_save_dialog.add_button(\"Exit without saving\", false, \"ExitWithoutSaving\")\n\t_handle_cmdline_arguments()\n\tget_tree().root.files_dropped.connect(_on_files_dropped)\n\tif OS.get_name() == \"Android\":\n\t\tvar intent_data := Applinks.get_data()\n\t\tif not intent_data.is_empty():\n\t\t\t_on_applinks_data_received(intent_data)\n\tif not DisplayServer.has_feature(DisplayServer.FEATURE_NATIVE_DIALOG_FILE_EXTRA):\n\t\tsave_sprite_dialog.option_count = 0\n\n\t# Detect if Pixelorama crashed last time.\n\tvar crashed_last_time := FileAccess.file_exists(RUNNING_FILE_PATH)\n\tif crashed_last_time and OpenSave.had_backups_on_startup:\n\t\trestore_session_confirmation_dialog.popup_centered_clamped()\n\t# Create a file that only exists while Pixelorama is running,\n\t# and delete it when it closes. If Pixelorama opens and this file exists,\n\t# it means that Pixelorama crashed last time.\n\tFileAccess.open(RUNNING_FILE_PATH, FileAccess.WRITE)\n\tawait get_tree().process_frame\n\tif Global.open_last_project:\n\t\tload_last_project()\n\t_setup_application_window_size()\n\t_show_splash_screen()\n\tGlobal.pixelorama_opened.emit()\n\n\nfunc _input(event: InputEvent) -> void:\n\tif event.is_action_pressed(&\"layer_visibility\"):\n\t\tfor selected_cel in Global.current_project.selected_cels:\n\t\t\tvar layer := Global.current_project.layers[selected_cel[1]]\n\t\t\tlayer.visible = not layer.visible\n\t\tGlobal.canvas.update_all_layers = true\n\t\tGlobal.canvas.queue_redraw()\n\tif event.is_action_pressed(&\"layer_lock\"):\n\t\tfor selected_cel in Global.current_project.selected_cels:\n\t\t\tvar layer := Global.current_project.layers[selected_cel[1]]\n\t\t\tlayer.locked = not layer.locked\n\t\tGlobal.canvas.update_all_layers = true\n\t\tGlobal.canvas.queue_redraw()\n\tif is_writing_text and event is InputEventKey and is_instance_valid(Global.main_viewport):\n\t\tGlobal.main_viewport.get_child(0).push_input(event)\n\tleft_cursor.position = get_global_mouse_position() + Vector2(-32, 32)\n\tright_cursor.position = get_global_mouse_position() + Vector2(32, 32)\n\n\tif event is InputEventKey and (event.keycode == KEY_ENTER or event.keycode == KEY_KP_ENTER):\n\t\tif get_viewport().gui_get_focus_owner() is LineEdit:\n\t\t\tget_viewport().gui_get_focus_owner().release_focus()\n\n\nfunc _project_switched() -> void:\n\tif Global.current_project.export_directory_path != \"\":\n\t\topen_sprite_dialog.current_dir = Global.current_project.export_directory_path\n\t\tsave_sprite_dialog.current_dir = Global.current_project.export_directory_path\n\n\n# Taken from\n# https://github.com/godotengine/godot/blob/master/editor/settings/editor_settings.cpp#L1801\nfunc _get_auto_display_scale() -> float:\n\tif OS.get_name() == \"macOS\" or OS.get_name() == \"Android\":\n\t\treturn DisplayServer.screen_get_max_scale()\n\n\tvar dpi := DisplayServer.screen_get_dpi()\n\tvar smallest_dimension := mini(\n\t\tDisplayServer.screen_get_size().x, DisplayServer.screen_get_size().y\n\t)\n\tif dpi >= 192 && smallest_dimension >= 1400:\n\t\treturn 2.0  # hiDPI display.\n\telif smallest_dimension >= 1700:\n\t\treturn 1.5  # Likely a hiDPI display, but we aren't certain due to the returned DPI.\n\t# TODO: Return 0.75 if smallest_dimension <= 800, once we make icons looks good\n\t# when scaled to non-integer display scale values. Might need SVGs.\n\treturn 1.0\n\n\nfunc _handle_layout_files() -> void:\n\tif not DirAccess.dir_exists_absolute(Global.LAYOUT_DIR):\n\t\tDirAccess.make_dir_absolute(Global.LAYOUT_DIR)\n\tvar dir := DirAccess.open(Global.LAYOUT_DIR)\n\tvar files := dir.get_files()\n\tif files.size() == 0:\n\t\tfor layout in Global.default_layouts:\n\t\t\tvar file_name := layout.resource_path.get_basename().get_file() + \".tres\"\n\t\t\tvar new_layout := layout.clone()\n\t\t\tnew_layout.layout_reset_path = layout.resource_path\n\t\t\tResourceSaver.save(new_layout, Global.LAYOUT_DIR.path_join(file_name))\n\t\tfiles = dir.get_files()\n\tfor file in files:\n\t\tvar layout := ResourceLoader.load(Global.LAYOUT_DIR.path_join(file))\n\t\tif layout is DockableLayout:\n\t\t\tif layout.layout_reset_path.is_empty():\n\t\t\t\tif file == \"Default.tres\":\n\t\t\t\t\tlayout.layout_reset_path = Global.default_layouts[0].resource_path\n\t\t\t\telif file == \"Tallscreen.tres\":\n\t\t\t\t\tlayout.layout_reset_path = Global.default_layouts[1].resource_path\n\t\t\tGlobal.layouts.append(layout)\n\t\t\t# Save the layout every time it changes\n\t\t\tlayout.save_on_change = true\n\n\nfunc _setup_application_window_size() -> void:\n\tif DisplayServer.get_name() == \"headless\":\n\t\treturn\n\tset_display_scale()\n\tif Global.font_size != theme.default_font_size:\n\t\ttheme.default_font_size = Global.font_size\n\t\ttheme.set_font_size(\"font_size\", \"HeaderSmall\", Global.font_size + 2)\n\n\tif OS.get_name() == \"Web\":\n\t\treturn\n\n\t# Restore the window position/size if values are present in the configuration cache\n\tif Global.config_cache.has_section_key(\"window\", \"screen\"):\n\t\t# Restore the window configuration if the screen in cache is not available\n\t\tif (\n\t\t\tDisplayServer.get_screen_count()\n\t\t\t< (Global.config_cache.get_value(\"window\", \"screen\") + 1)\n\t\t):\n\t\t\treturn\n\t\tget_window().current_screen = Global.config_cache.get_value(\"window\", \"screen\")\n\tif Global.config_cache.has_section_key(\"window\", \"maximized\"):\n\t\tget_window().mode = (\n\t\t\tWindow.MODE_MAXIMIZED\n\t\t\tif (Global.config_cache.get_value(\"window\", \"maximized\"))\n\t\t\telse Window.MODE_WINDOWED\n\t\t)\n\n\tif !(get_window().mode == Window.MODE_MAXIMIZED):\n\t\tif Global.config_cache.has_section_key(\"window\", \"position\"):\n\t\t\tget_window().position = Global.config_cache.get_value(\"window\", \"position\")\n\t\tif Global.config_cache.has_section_key(\"window\", \"size\"):\n\t\t\tget_window().size = Global.config_cache.get_value(\"window\", \"size\")\n\tset_mobile_fullscreen_safe_area()\n\n\nfunc set_display_scale() -> void:\n\tvar root := get_window()\n\troot.content_scale_aspect = Window.CONTENT_SCALE_ASPECT_IGNORE\n\troot.content_scale_mode = Window.CONTENT_SCALE_MODE_DISABLED\n\t# Set a minimum window size to prevent UI elements from collapsing on each other.\n\troot.min_size = Vector2(320, 200)\n\troot.content_scale_factor = Global.shrink\n\tset_custom_cursor()\n\n\nfunc set_mobile_fullscreen_safe_area() -> void:\n\tif not OS.has_feature(\"mobile\"):\n\t\treturn\n\tawait get_tree().process_frame\n\tvar is_fullscreen := (\n\t\t(get_window().mode == Window.MODE_EXCLUSIVE_FULLSCREEN)\n\t\tor (get_window().mode == Window.MODE_FULLSCREEN)\n\t)\n\tvar menu_and_ui: VBoxContainer = $MenuAndUI\n\tif is_fullscreen:\n\t\tvar safe_area := DisplayServer.get_display_safe_area()\n\t\tmenu_and_ui.set_anchors_preset(Control.PRESET_TOP_LEFT)\n\t\tvar pos := safe_area.position / get_window().content_scale_factor\n\t\tmenu_and_ui.position = pos\n\t\tmenu_and_ui.size = (safe_area.size / get_window().content_scale_factor)\n\telse:\n\t\tmenu_and_ui.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT)\n\n\nfunc set_custom_cursor() -> void:\n\tif Global.native_cursors:\n\t\treturn\n\tif Global.shrink == 1.0:\n\t\tInput.set_custom_mouse_cursor(cursor_image, Input.CURSOR_CROSS, Vector2(15, 15))\n\telse:\n\t\tvar cursor_data := cursor_image.get_image()\n\t\tvar cursor_size := cursor_data.get_size() * Global.shrink\n\t\tcursor_data.resize(cursor_size.x, cursor_size.y, Image.INTERPOLATE_NEAREST)\n\t\tvar cursor_tex := ImageTexture.create_from_image(cursor_data)\n\t\tInput.set_custom_mouse_cursor(\n\t\t\tcursor_tex, Input.CURSOR_CROSS, Vector2(15, 15) * Global.shrink\n\t\t)\n\n\nfunc _show_splash_screen() -> void:\n\tif not Global.config_cache.has_section_key(\"preferences\", \"startup\"):\n\t\tGlobal.config_cache.set_value(\"preferences\", \"startup\", true)\n\n\tif Global.config_cache.get_value(\"preferences\", \"startup\"):\n\t\t# Wait for the window to adjust itself, so the popup is correctly centered\n\t\tawait get_tree().process_frame\n\n\t\tsplash_dialog.popup_centered_clamped()  # Splash screen\n\t\tmodulate = Color(0.5, 0.5, 0.5)\n\n\nfunc _handle_cmdline_arguments() -> void:\n\tvar args := OS.get_cmdline_args()\n\targs.append_array(OS.get_cmdline_user_args())\n\tif args.is_empty():\n\t\treturn\n\t# Load the files first\n\tfor arg in args:\n\t\tif arg.begins_with(\"lospec-palette://\"):\n\t\t\tPalettes.import_lospec_palette(arg)\n\t\t\tbreak\n\t\tvar file_path := arg\n\t\t# if we think the file could be a potential relative path it can mean two things:\n\t\t# 1. The file is relative to executable\n\t\t# 2. The file is relative to the working directory.\n\t\tif file_path.is_relative_path():\n\t\t\t# we first try to convert it to be relative to executable\n\t\t\tif file_path.is_relative_path():\n\t\t\t\tfile_path = OS.get_executable_path().get_base_dir().path_join(arg)\n\t\t\tif !FileAccess.file_exists(file_path):\n\t\t\t\t# it is not relative to executable so we have to convert it to an\n\t\t\t\t# absolute path instead (this is when file is relative to working directory)\n\t\t\t\tvar output = []\n\t\t\t\tmatch OS.get_name():\n\t\t\t\t\t\"Linux\":\n\t\t\t\t\t\tOS.execute(\"pwd\", [], output)\n\t\t\t\t\t\"macOS\":\n\t\t\t\t\t\tOS.execute(\"pwd\", [], output)\n\t\t\t\t\t\"Windows\":\n\t\t\t\t\t\tOS.execute(\"cd\", [], output)\n\t\t\t\tif output.size() > 0:\n\t\t\t\t\tfile_path = str(output[0]).strip_edges().path_join(arg)\n\t\t# Do one last failsafe to see everything is in order\n\t\tif FileAccess.file_exists(file_path):\n\t\t\tOpenSave.handle_loading_file(file_path)\n\n\tvar project := Global.current_project\n\t# True when exporting from the CLI.\n\t# Exporting should be done last, this variable helps with that\n\tvar should_export := false\n\n\tvar parse_dic := {}\n\tfor command_group: Array in CLI.args_list.keys():\n\t\tfor command: String in command_group:\n\t\t\tparse_dic[command] = CLI.args_list[command_group][0]\n\tfor i in args.size():  # Handle the rest of the CLI arguments\n\t\tvar arg := args[i]\n\t\tvar next_argument := \"\"\n\t\tif i + 1 < args.size():\n\t\t\tnext_argument = args[i + 1]\n\t\tif arg.begins_with(\"-\") or arg.begins_with(\"--\"):\n\t\t\tif arg in parse_dic.keys():\n\t\t\t\tvar callable: Callable = parse_dic[arg]\n\t\t\t\tvar output = callable.call(project, next_argument)\n\t\t\t\tif typeof(output) == TYPE_BOOL:\n\t\t\t\t\tshould_export = output\n\t\t\telse:\n\t\t\t\tprint(\"==========\")\n\t\t\t\tprint(\"Unknown option: %s\" % arg)\n\t\t\t\tfor compare_arg in parse_dic.keys():\n\t\t\t\t\tif arg.similarity(compare_arg) >= 0.4:\n\t\t\t\t\t\tprint(\"Similar option: %s\" % compare_arg)\n\t\t\t\tprint(\"==========\")\n\t\t\t\tshould_export = false\n\t\t\t\tget_tree().quit()\n\t\t\t\tbreak\n\tif should_export:\n\t\tExport.external_export(project)\n\n\nfunc _on_applinks_data_received(uri: String) -> void:\n\tif uri.begins_with(\"lospec-palette://\"):\n\t\tPalettes.import_lospec_palette(uri)\n\telif uri.begins_with(\"content://\"):\n\t\tvar path = Applinks.get_file_from_content_uri(uri)\n\t\tif path:\n\t\t\tOpenSave.handle_loading_file(path)\n\telif uri.begins_with(\"file://\"):\n\t\tvar path := uri.trim_prefix(\"file://\")\n\t\tOpenSave.handle_loading_file(path)\n\n\nfunc _notification(what: int) -> void:\n\tif not is_inside_tree():\n\t\treturn\n\tmatch what:\n\t\tNOTIFICATION_WM_CLOSE_REQUEST:\n\t\t\tshow_quit_dialog()\n\t\tNOTIFICATION_WM_GO_BACK_REQUEST:\n\t\t\tvar subwindows := get_window().get_embedded_subwindows()\n\t\t\tif subwindows.is_empty():\n\t\t\t\tshow_quit_dialog()\n\t\t\telse:\n\t\t\t\tif subwindows[-1] == save_sprite_dialog:\n\t\t\t\t\t_on_save_sprite_canceled()\n\t\t\t\tsubwindows[-1].hide()\n\t\t# If the mouse exits the window and another application has the focus,\n\t\t# pause the application\n\t\tNOTIFICATION_APPLICATION_FOCUS_OUT:\n\t\t\tif Global.pause_when_unfocused:\n\t\t\t\tget_tree().paused = true\n\t\tNOTIFICATION_WM_MOUSE_EXIT:\n\t\t\t# Do not pause the application if the mouse leaves the main window\n\t\t\t# but there are child subwindows opened, because that makes them unresponsive.\n\t\t\tvar window_count := DisplayServer.get_window_list().size()\n\t\t\tif not get_window().has_focus() and window_count == 1 and Global.pause_when_unfocused:\n\t\t\t\tget_tree().paused = true\n\t\t# Unpause it when the mouse enters the window or when it gains focus\n\t\tNOTIFICATION_WM_MOUSE_ENTER:\n\t\t\tget_tree().paused = false\n\t\tNOTIFICATION_APPLICATION_FOCUS_IN:\n\t\t\tget_tree().paused = false\n\n\nfunc _on_files_dropped(files: PackedStringArray) -> void:\n\tfor file in files:\n\t\tif not FileAccess.file_exists(file):\n\t\t\t# If the file doesn't exist, it could be a URL. This can occur when dragging\n\t\t\t# and dropping an image directly from the browser into Pixelorama.\n\t\t\t# For security reasons, ask the user if they want to confirm the image download.\n\t\t\tdownload_confirmation.dialog_text = (\n\t\t\t\ttr(\"Do you want to download the image from %s?\") % file\n\t\t\t)\n\t\t\tdownload_confirmation.popup_centered_clamped()\n\t\t\turl_to_download = file\n\t\telse:\n\t\t\tOpenSave.handle_loading_file(file)\n\tif splash_dialog.visible:\n\t\tsplash_dialog.hide()\n\n\nfunc load_last_project() -> void:\n\tif OS.get_name() == \"Web\":\n\t\treturn\n\t# Check if any project was saved or opened last time\n\tif Global.config_cache.has_section_key(\"data\", \"last_project_path\"):\n\t\t# Check if file still exists on disk\n\t\tvar file_path = Global.config_cache.get_value(\"data\", \"last_project_path\")\n\t\tload_recent_project_file(file_path)\n\t\t(func(): Global.cel_switched.emit()).call_deferred()\n\n\nfunc load_recent_project_file(path: String) -> void:\n\tif OS.get_name() == \"Web\":\n\t\treturn\n\t# Check if file still exists on disk\n\tif FileAccess.file_exists(path):  # If yes then load the file\n\t\tOpenSave.handle_loading_file(path)\n\telse:\n\t\t# If file doesn't exist on disk then warn user about this\n\t\tGlobal.popup_error(\"Cannot find project file.\")\n\n\nfunc _on_OpenSprite_files_selected(paths: PackedStringArray) -> void:\n\t# Wait for file dialog to close otherwise an \"Attempting to make child window exclusive\"\n\t# error will appear\n\tawait get_tree().process_frame\n\tfor path in paths:\n\t\tOpenSave.handle_loading_file(path, true)\n\tsave_sprite_dialog.current_dir = paths[0].get_base_dir()\n\n\nfunc show_save_dialog(project := Global.current_project) -> void:\n\tGlobal.dialog_open(true, true)\n\tif OS.get_name() == \"Web\":\n\t\tsave_sprite_html5.popup_centered_clamped()\n\t\tvar save_filename_line_edit := save_sprite_html5.get_node(\"%FileNameLineEdit\")\n\t\tsave_filename_line_edit.text = project.name\n\telse:\n\t\tsave_sprite_dialog.current_file = project.name + \".pxo\"\n\t\tsave_sprite_dialog.popup_centered_clamped()\n\t\tsave_file_dialog_opened.emit(true)\n\n\nfunc _on_SaveSprite_file_selected(path: String) -> void:\n\tsave_project(path)\n\tsave_file_dialog_opened.emit(false)\n\n\nfunc _on_save_sprite_canceled() -> void:\n\tsave_file_dialog_opened.emit(false)\n\tis_quitting_on_save = false\n\n\nfunc save_project(path: String, through_dialog := true) -> void:\n\tvar project_to_save := Global.current_project\n\tif is_quitting_on_save:\n\t\tproject_to_save = changed_projects_on_quit[0]\n\tvar include_blended := false\n\tif OS.get_name() == \"Web\":\n\t\tif through_dialog:\n\t\t\tvar save_filename_line_edit := save_sprite_html5.get_node(\"%FileNameLineEdit\")\n\t\t\tproject_to_save.name = save_filename_line_edit.text\n\t\tvar file_name := project_to_save.name + \".pxo\"\n\t\tpath = \"user://\".path_join(file_name)\n\t\tinclude_blended = save_sprite_html5.get_node(\"%IncludeBlended\").button_pressed\n\telse:\n\t\tif save_sprite_dialog.get_selected_options().size() > 0:\n\t\t\tinclude_blended = save_sprite_dialog.get_selected_options()[\n\t\t\t\tsave_sprite_dialog.get_option_name(0)\n\t\t\t]\n\tvar success := OpenSave.save_pxo_file(path, false, include_blended, project_to_save)\n\tif success:\n\t\topen_sprite_dialog.current_dir = path.get_base_dir()\n\tif is_quitting_on_save:\n\t\tchanged_projects_on_quit.pop_front()\n\t\t_save_on_quit_confirmation()\n\n\nfunc _on_open_sprite_visibility_changed() -> void:\n\tif !opensprite_file_selected:\n\t\t_can_draw_true()\n\n\nfunc _can_draw_true() -> void:\n\tGlobal.dialog_open(false)\n\n\nfunc _on_restore_session_confirmation_dialog_confirmed() -> void:\n\t$MenuAndUI/TopMenuContainer.backup_dialog.popup()\n\n\nfunc show_quit_dialog() -> void:\n\tchanged_projects_on_quit = []\n\tfor project in Global.projects:\n\t\tif project.has_changed:\n\t\t\tchanged_projects_on_quit.append(project)\n\n\tif not quit_dialog.visible:\n\t\tif changed_projects_on_quit.size() == 0:\n\t\t\tif Global.quit_confirmation:\n\t\t\t\tquit_dialog.popup_centered_clamped()\n\t\t\telse:\n\t\t\t\t_quit()\n\t\telse:\n\t\t\tquit_and_save_dialog.dialog_text = (\n\t\t\t\ttr(\"Project %s has unsaved progress. How do you wish to proceed?\")\n\t\t\t\t% changed_projects_on_quit[0].name\n\t\t\t)\n\t\t\tquit_and_save_dialog.popup_centered_clamped()\n\n\tGlobal.dialog_open(true)\n\n\nfunc _save_on_quit_confirmation() -> void:\n\tif changed_projects_on_quit.size() == 0:\n\t\t_quit()\n\telse:\n\t\tquit_and_save_dialog.dialog_text = (\n\t\t\ttr(\"Project %s has unsaved progress. How do you wish to proceed?\")\n\t\t\t% changed_projects_on_quit[0].name\n\t\t)\n\t\tquit_and_save_dialog.popup_centered_clamped()\n\t\tGlobal.dialog_open(true)\n\n\nfunc _on_QuitDialog_confirmed() -> void:\n\t_quit()\n\n\nfunc _on_QuitAndSaveDialog_custom_action(action: String) -> void:\n\tif action == \"ExitWithoutSaving\":\n\t\tchanged_projects_on_quit.pop_front()\n\t\t_save_on_quit_confirmation()\n\n\nfunc _on_QuitAndSaveDialog_confirmed() -> void:\n\tis_quitting_on_save = true\n\tshow_save_dialog(changed_projects_on_quit[0])\n\n\nfunc _quit() -> void:\n\tGlobal.pixelorama_about_to_close.emit()\n\t# Darken the UI to denote that the application is currently exiting\n\t# (it won't respond to user input in this state).\n\tmodulate = Color(0.5, 0.5, 0.5)\n\tget_tree().quit()\n\n\nfunc _exit_tree() -> void:\n\tDirAccess.remove_absolute(RUNNING_FILE_PATH)\n\tfor project in Global.projects:\n\t\tproject.remove()\n\tif DisplayServer.get_name() == \"headless\":\n\t\treturn\n\tGlobal.config_cache.set_value(\"window\", \"layout\", Global.layouts.find(main_ui.layout))\n\tGlobal.config_cache.set_value(\"window\", \"screen\", get_window().current_screen)\n\tGlobal.config_cache.set_value(\n\t\t\"window\",\n\t\t\"maximized\",\n\t\t(\n\t\t\t(get_window().mode == Window.MODE_MAXIMIZED)\n\t\t\t|| (\n\t\t\t\t(get_window().mode == Window.MODE_EXCLUSIVE_FULLSCREEN)\n\t\t\t\tor (get_window().mode == Window.MODE_FULLSCREEN)\n\t\t\t)\n\t\t)\n\t)\n\tGlobal.config_cache.set_value(\"window\", \"position\", get_window().position)\n\tGlobal.config_cache.set_value(\"window\", \"size\", get_window().size)\n\tGlobal.config_cache.set_value(\"view_menu\", \"draw_grid\", Global.draw_grid)\n\tGlobal.config_cache.set_value(\"view_menu\", \"draw_pixel_grid\", Global.draw_pixel_grid)\n\tGlobal.config_cache.set_value(\"view_menu\", \"show_pixel_indices\", Global.show_pixel_indices)\n\tGlobal.config_cache.set_value(\"view_menu\", \"show_rulers\", Global.show_rulers)\n\tGlobal.config_cache.set_value(\"view_menu\", \"show_guides\", Global.show_guides)\n\tGlobal.config_cache.set_value(\"view_menu\", \"show_mouse_guides\", Global.show_mouse_guides)\n\tGlobal.config_cache.set_value(\n\t\t\"view_menu\", \"display_layer_effects\", Global.display_layer_effects\n\t)\n\tGlobal.config_cache.set_value(\n\t\t\"view_menu\", \"snap_to_rectangular_grid_boundary\", Global.snap_to_rectangular_grid_boundary\n\t)\n\tGlobal.config_cache.set_value(\n\t\t\"view_menu\", \"snap_to_rectangular_grid_center\", Global.snap_to_rectangular_grid_center\n\t)\n\tGlobal.config_cache.set_value(\"view_menu\", \"snap_to_guides\", Global.snap_to_guides)\n\tGlobal.config_cache.set_value(\n\t\t\"view_menu\", \"snap_to_perspective_guides\", Global.snap_to_perspective_guides\n\t)\n\tGlobal.config_cache.set_value(\"FileDialog\", \"favourite_paths\", FileDialog.get_favorite_list())\n\tGlobal.config_cache.set_value(\"FileDialog\", \"recent_paths\", FileDialog.get_recent_list())\n\tGlobal.config_cache.save(Global.CONFIG_PATH)\n\n\nfunc _on_download_image_confirmation_dialog_confirmed() -> void:\n\timage_request.request(url_to_download)\n\n\nfunc _on_image_request_request_completed(\n\t_result: int, _response_code: int, _headers: PackedStringArray, body: PackedByteArray\n) -> void:\n\tvar image := OpenSave.load_image_from_buffer(body)\n\tif image.is_empty():\n\t\treturn\n\tOpenSave.handle_loading_image(OS.get_system_dir(OS.SYSTEM_DIR_DESKTOP), image)\n"
  },
  {
    "path": "src/Main.gd.uid",
    "content": "uid://dlxqc0hc51xu4\n"
  },
  {
    "path": "src/Main.tscn",
    "content": "[gd_scene format=3 uid=\"uid://dbylw5k04ulp8\"]\n\n[ext_resource type=\"Theme\" uid=\"uid://dog5j8wjiwikc\" path=\"res://assets/themes/dark/theme.tres\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://dlxqc0hc51xu4\" path=\"res://src/Main.gd\" id=\"2\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bsgwar3l6qtgv\" path=\"res://src/UI/TopMenuContainer/TopMenuContainer.tscn\" id=\"3\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://c8dsi6ggkqa7a\" path=\"res://src/UI/UI.tscn\" id=\"4\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://d1jyt8wleg8ft\" path=\"res://src/UI/Buttons/PatternsPopup.tscn\" id=\"5\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://c5x85ysdouh4t\" path=\"res://src/UI/Buttons/BrushesPopup.tscn\" id=\"6\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://cltlo2whtiejd\" path=\"res://src/UI/Dialogs/SaveSpriteHTML5.tscn\" id=\"8\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bs3dnnvnxyp68\" path=\"res://src/UI/Timeline/FrameProperties.tscn\" id=\"9\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://d4euwo633u33b\" path=\"res://src/UI/Dialogs/SaveSprite.tscn\" id=\"11\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://b3aeqj2k58wdk\" path=\"res://src/UI/Dialogs/OpenSprite.tscn\" id=\"12\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://d3dt1gdlf7hox\" path=\"res://src/UI/Timeline/LayerProperties.tscn\" id=\"13_4dhva\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://c0nuukjakmai2\" path=\"res://src/UI/Dialogs/TileModeOffsetsDialog.tscn\" id=\"14\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://c6fyrnyt3663o\" path=\"res://src/UI/Timeline/TagProperties.tscn\" id=\"14_fw6cf\"]\n[ext_resource type=\"Script\" uid=\"uid://dyififbas7e2t\" path=\"res://src/HandleExtensions.gd\" id=\"15_v0k2h\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://clsp16gq4sng3\" path=\"res://src/UI/Dialogs/ImportTagDialog.tscn\" id=\"16_ohhks\"]\n[ext_resource type=\"Script\" uid=\"uid://clsjv6vcrcucm\" path=\"res://src/Classes/SteamManager.gd\" id=\"17_k1xhp\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://clbjfkdupw52l\" path=\"res://src/UI/Timeline/CelProperties.tscn\" id=\"17_ucs64\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://clgu8wb5o6oup\" path=\"res://src/UI/Dialogs/ExportDialog.tscn\" id=\"39\"]\n\n[node name=\"Control\" type=\"Control\" unique_id=1088730198]\nlayout_mode = 3\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nmouse_filter = 1\ntheme = ExtResource(\"1\")\nscript = ExtResource(\"2\")\n\n[node name=\"MenuAndUI\" type=\"VBoxContainer\" parent=\".\" unique_id=481271712]\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\ntheme_override_constants/separation = 0\n\n[node name=\"TopMenuContainer\" parent=\"MenuAndUI\" unique_id=24159826 instance=ExtResource(\"3\")]\nlayout_mode = 2\n\n[node name=\"UI\" parent=\"MenuAndUI\" unique_id=1965471564 instance=ExtResource(\"4\")]\nlayout_mode = 2\n\n[node name=\"Dialogs\" type=\"Control\" parent=\".\" unique_id=1816933375]\nanchors_preset = 0\nmouse_filter = 2\n\n[node name=\"BrushesPopup\" parent=\"Dialogs\" unique_id=1807948416 instance=ExtResource(\"6\")]\n\n[node name=\"PatternsPopup\" parent=\"Dialogs\" unique_id=1460330370 instance=ExtResource(\"5\")]\n\n[node name=\"OpenSprite\" parent=\"Dialogs\" unique_id=1925344067 instance=ExtResource(\"12\")]\n\n[node name=\"SaveSprite\" parent=\"Dialogs\" unique_id=464926544 instance=ExtResource(\"11\")]\n\n[node name=\"SaveSpriteHTML5\" parent=\"Dialogs\" unique_id=836849037 instance=ExtResource(\"8\")]\n\n[node name=\"ExportDialog\" parent=\"Dialogs\" unique_id=875979980 instance=ExtResource(\"39\")]\n\n[node name=\"UnsavedCanvasDialog\" type=\"ConfirmationDialog\" parent=\"Dialogs\" unique_id=1933103769]\ntitle = \"Unsaved Image\"\ndialog_text = \"You have unsaved changes. If you proceed, the progress you have made will be lost.\"\n\n[node name=\"QuitDialog\" type=\"ConfirmationDialog\" parent=\"Dialogs\" unique_id=695542545]\ndialog_text = \"Are you sure you want to exit Pixelorama?\"\n\n[node name=\"QuitAndSaveDialog\" type=\"ConfirmationDialog\" parent=\"Dialogs\" unique_id=1193937743]\ntitle = \"Save before exiting?\"\nok_button_text = \"Save & Exit\"\ndialog_text = \"Project %s has unsaved progress. How do you wish to proceed?\"\n\n[node name=\"RestoreSessionConfirmationDialog\" type=\"ConfirmationDialog\" parent=\"Dialogs\" unique_id=1360804656]\ndialog_text = \"Pixelorama did not close properly last time. Would you like to restore a previous session?\"\n\n[node name=\"ErrorDialog\" type=\"AcceptDialog\" parent=\"Dialogs\" unique_id=1836925387]\ndialog_text = \"This is an error message!\"\n\n[node name=\"CelProperties\" parent=\"Dialogs\" unique_id=555411532 instance=ExtResource(\"17_ucs64\")]\n\n[node name=\"FrameProperties\" parent=\"Dialogs\" unique_id=551734942 instance=ExtResource(\"9\")]\nsize = Vector2i(224, 146)\n\n[node name=\"LayerProperties\" parent=\"Dialogs\" unique_id=2111319245 instance=ExtResource(\"13_4dhva\")]\n\n[node name=\"TagProperties\" parent=\"Dialogs\" unique_id=273757866 instance=ExtResource(\"14_fw6cf\")]\n\n[node name=\"ImportTagDialog\" parent=\"Dialogs\" unique_id=1798947291 instance=ExtResource(\"16_ohhks\")]\npopup_window = true\n\n[node name=\"TileModeOffsetsDialog\" parent=\"Dialogs\" unique_id=640395109 instance=ExtResource(\"14\")]\n\n[node name=\"DownloadImageConfirmationDialog\" type=\"ConfirmationDialog\" parent=\"Dialogs\" unique_id=2074938928]\nsize = Vector2i(400, 200)\ndialog_text = \"Do you want to download the image from %s?\"\ndialog_autowrap = true\n\n[node name=\"Extensions\" type=\"Control\" parent=\".\" unique_id=181783269]\nanchors_preset = 0\nscript = ExtResource(\"15_v0k2h\")\n\n[node name=\"LeftCursor\" type=\"Sprite2D\" parent=\".\" unique_id=299532283]\nvisible = false\n\n[node name=\"RightCursor\" type=\"Sprite2D\" parent=\".\" unique_id=331472447]\nvisible = false\n\n[node name=\"ImageRequest\" type=\"HTTPRequest\" parent=\".\" unique_id=1031132651]\n\n[node name=\"SteamManager\" type=\"Node\" parent=\".\" unique_id=2008731856]\nscript = ExtResource(\"17_k1xhp\")\n\n[connection signal=\"files_selected\" from=\"Dialogs/OpenSprite\" to=\".\" method=\"_on_OpenSprite_files_selected\"]\n[connection signal=\"visibility_changed\" from=\"Dialogs/OpenSprite\" to=\".\" method=\"_on_open_sprite_visibility_changed\"]\n[connection signal=\"canceled\" from=\"Dialogs/SaveSprite\" to=\".\" method=\"_on_save_sprite_canceled\"]\n[connection signal=\"file_selected\" from=\"Dialogs/SaveSprite\" to=\".\" method=\"_on_SaveSprite_file_selected\"]\n[connection signal=\"visibility_changed\" from=\"Dialogs/SaveSprite\" to=\".\" method=\"_can_draw_true\"]\n[connection signal=\"confirmed\" from=\"Dialogs/SaveSpriteHTML5\" to=\".\" method=\"save_project\" binds= [\"\"]]\n[connection signal=\"visibility_changed\" from=\"Dialogs/SaveSpriteHTML5\" to=\".\" method=\"_can_draw_true\"]\n[connection signal=\"visibility_changed\" from=\"Dialogs/ExportDialog\" to=\".\" method=\"_can_draw_true\"]\n[connection signal=\"visibility_changed\" from=\"Dialogs/UnsavedCanvasDialog\" to=\".\" method=\"_can_draw_true\"]\n[connection signal=\"confirmed\" from=\"Dialogs/QuitDialog\" to=\".\" method=\"_on_QuitDialog_confirmed\"]\n[connection signal=\"visibility_changed\" from=\"Dialogs/QuitDialog\" to=\".\" method=\"_can_draw_true\"]\n[connection signal=\"confirmed\" from=\"Dialogs/QuitAndSaveDialog\" to=\".\" method=\"_on_QuitAndSaveDialog_confirmed\"]\n[connection signal=\"custom_action\" from=\"Dialogs/QuitAndSaveDialog\" to=\".\" method=\"_on_QuitAndSaveDialog_custom_action\"]\n[connection signal=\"visibility_changed\" from=\"Dialogs/QuitAndSaveDialog\" to=\".\" method=\"_can_draw_true\"]\n[connection signal=\"confirmed\" from=\"Dialogs/RestoreSessionConfirmationDialog\" to=\".\" method=\"_on_restore_session_confirmation_dialog_confirmed\"]\n[connection signal=\"visibility_changed\" from=\"Dialogs/ErrorDialog\" to=\".\" method=\"_can_draw_true\"]\n[connection signal=\"confirmed\" from=\"Dialogs/DownloadImageConfirmationDialog\" to=\".\" method=\"_on_download_image_confirmation_dialog_confirmed\"]\n[connection signal=\"request_completed\" from=\"ImageRequest\" to=\".\" method=\"_on_image_request_request_completed\"]\n"
  },
  {
    "path": "src/Palette/CreatePaletteDialog.gd",
    "content": "extends ConfirmationDialog\n\n## Emitted when user confirms their changes\nsignal saved(preset, name, comment, width, height, add_alpha_colors, colors_from)\n\n## Reference to current palette stored when dialog opens\nvar current_palette: Palette\n\n@onready var preset_input := $VBoxContainer/PaletteMetadata/Preset as OptionButton\n@onready var name_input := $VBoxContainer/PaletteMetadata/Name as LineEdit\n@onready var comment_input := $VBoxContainer/PaletteMetadata/Comment as TextEdit\n@onready var width_input := $VBoxContainer/PaletteMetadata/Width as SpinBox\n@onready var height_input := $VBoxContainer/PaletteMetadata/Height as SpinBox\n@onready var alpha_colors_input := $VBoxContainer/ColorsSettings/AddAlphaColors as CheckBox\n@onready var get_colors_from_input := (\n\t$VBoxContainer/ColorsSettings/GetColorsFrom/GetColorsFrom as OptionButton\n)\n\n@onready var colors_settings := $VBoxContainer/ColorsSettings as VBoxContainer\n@onready var already_exists_warning := $VBoxContainer/AlreadyExistsWarning as Label\n@onready var enter_name_warning := $VBoxContainer/EnterNameWarning as Label\n\n\n## Opens dialog\nfunc open(opened_current_palette: Palette) -> void:\n\t# Only to fill dialog when preset is FROM_CURRENT_PALETTE\n\tcurrent_palette = opened_current_palette\n\n\tset_default_values()\n\tpreset_input.selected = Palettes.NewPalettePresetType.EMPTY\n\t# Colors settings are only available for FROM_CURRENT_SPRITE and FROM_CURRENT_SELECTION presets\n\tcolors_settings.hide()\n\n\t# Hide warning\n\ttoggle_already_exists_warning(false)\n\n\t# Disable ok button until user enters name\n\ttoggle_ok_button_disability(true)\n\n\t# Disable create \"From Current Palette\" if there's no palette\n\tpreset_input.set_item_disabled(1, !current_palette)\n\n\t# Stop all inputs in the rest of the app\n\tGlobal.dialog_open(true)\n\tpopup_centered_clamped()\n\twidth_input.editable = true\n\theight_input.editable = true\n\n\n## Resets all dialog values to default\nfunc set_default_values() -> void:\n\tname_input.text = \"\"\n\tcomment_input.text = \"\"\n\twidth_input.value = Palette.DEFAULT_WIDTH\n\theight_input.value = Palette.DEFAULT_HEIGHT\n\talpha_colors_input.button_pressed = true\n\tget_colors_from_input.selected = Palettes.GetColorsFrom.CURRENT_FRAME\n\n\n## Shows/hides a warning when palette already exists\nfunc toggle_already_exists_warning(to_show: bool) -> void:\n\talready_exists_warning.visible = to_show\n\n\t# Required to resize window to correct size if warning causes content overflow\n\tsize = size\n\n\nfunc toggle_ok_button_disability(disable: bool) -> void:\n\tget_ok_button().disabled = disable\n\tenter_name_warning.visible = disable\n\n\nfunc _on_CreatePaletteDialog_visibility_changed() -> void:\n\tGlobal.dialog_open(visible)\n\n\nfunc _on_CreatePaletteDialog_confirmed() -> void:\n\tsaved.emit(\n\t\tpreset_input.selected,\n\t\tname_input.text,\n\t\tcomment_input.text,\n\t\twidth_input.value,\n\t\theight_input.value,\n\t\talpha_colors_input.button_pressed,\n\t\tget_colors_from_input.selected,\n\t\tfalse\n\t)\n\n\nfunc _on_Preset_item_selected(index: int) -> void:\n\t# Enable width and height inputs (can be disabled by current palette preset)\n\twidth_input.editable = true\n\theight_input.editable = true\n\ttoggle_already_exists_warning(false)\n\ttoggle_ok_button_disability(true)\n\n\tmatch index:\n\t\tPalettes.NewPalettePresetType.EMPTY:\n\t\t\tcolors_settings.hide()\n\t\t\tset_default_values()\n\t\tPalettes.NewPalettePresetType.FROM_CURRENT_PALETTE:\n\t\t\tcolors_settings.hide()\n\t\t\t# If any palette was selected, copy its settings to dialog\n\t\t\tif current_palette:\n\t\t\t\tname_input.text = current_palette.name\n\t\t\t\tcomment_input.text = current_palette.comment\n\t\t\t\twidth_input.value = current_palette.width\n\t\t\t\theight_input.value = current_palette.height\n\t\t\t\ttoggle_already_exists_warning(true)\n\t\t\t\t# Copying palette presets grid size\n\t\t\t\twidth_input.editable = false\n\t\t\t\theight_input.editable = false\n\t\tPalettes.NewPalettePresetType.FROM_CURRENT_SPRITE:\n\t\t\tcolors_settings.show()\n\t\t\tset_default_values()\n\t\tPalettes.NewPalettePresetType.FROM_CURRENT_SELECTION:\n\t\t\tcolors_settings.show()\n\t\t\tset_default_values()\n\n\nfunc _on_Name_text_changed(new_name: String) -> void:\n\tvar disable_warning := false\n\tif Palettes.does_palette_exist(new_name):\n\t\tdisable_warning = true\n\n\ttoggle_already_exists_warning(disable_warning)\n\ttoggle_ok_button_disability(disable_warning)\n\n\t# Disable ok button on empty name\n\tif new_name == \"\":\n\t\ttoggle_ok_button_disability(true)\n"
  },
  {
    "path": "src/Palette/CreatePaletteDialog.gd.uid",
    "content": "uid://ddiwy0yrvpblt\n"
  },
  {
    "path": "src/Palette/CreatePaletteDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://68aakj2l6ee1\"]\n\n[ext_resource type=\"Script\" uid=\"uid://ddiwy0yrvpblt\" path=\"res://src/Palette/CreatePaletteDialog.gd\" id=\"1\"]\n\n[node name=\"CreatePaletteDialog\" type=\"ConfirmationDialog\" unique_id=608696027]\ntitle = \"Create a new project palette\"\nposition = Vector2i(0, 36)\nsize = Vector2i(421, 315)\nscript = ExtResource(\"1\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=283160639]\nanchors_preset = -1\nanchor_left = 0.000793701\nanchor_right = 0.000793701\noffset_left = 7.66585\noffset_top = 8.0\noffset_right = 412.666\noffset_bottom = 266.0\n\n[node name=\"PaletteMetadata\" type=\"GridContainer\" parent=\"VBoxContainer\" unique_id=1633343946]\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"PresetLabel\" type=\"Label\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=394171995]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\ntext = \"Preset:\"\n\n[node name=\"Preset\" type=\"OptionButton\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=1883062411]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nselected = 0\nitem_count = 4\npopup/item_0/text = \"Empty\"\npopup/item_0/id = 0\npopup/item_1/text = \"From Current Palette\"\npopup/item_1/id = 1\npopup/item_2/text = \"From Current Sprite\"\npopup/item_2/id = 2\npopup/item_3/text = \"From Current Selection\"\npopup/item_3/id = 3\n\n[node name=\"NameLabel\" type=\"Label\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=1485236600]\ncustom_minimum_size = Vector2(50, 0)\nlayout_mode = 2\ntext = \"Name:\"\n\n[node name=\"Name\" type=\"LineEdit\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=1825237239]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"CommentLabel\" type=\"Label\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=327247049]\ncustom_minimum_size = Vector2(50, 0)\nlayout_mode = 2\ntext = \"Comment:\"\n\n[node name=\"Comment\" type=\"TextEdit\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=1266643704]\ncustom_minimum_size = Vector2(0, 75)\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"WidthLabel\" type=\"Label\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=205994458]\nlayout_mode = 2\ntext = \"Width:\"\n\n[node name=\"Width\" type=\"SpinBox\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=1379308149]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmin_value = 1.0\nmax_value = 64.0\nvalue = 1.0\n\n[node name=\"HeightLabel\" type=\"Label\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=1514092522]\nlayout_mode = 2\ntext = \"Height:\"\n\n[node name=\"Height\" type=\"SpinBox\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=230586321]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmin_value = 1.0\nmax_value = 64.0\nvalue = 1.0\n\n[node name=\"ColorsSettings\" type=\"VBoxContainer\" parent=\"VBoxContainer\" unique_id=905783038]\nvisible = false\nlayout_mode = 2\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"VBoxContainer/ColorsSettings\" unique_id=1784011897]\nlayout_mode = 2\n\n[node name=\"AddAlphaColors\" type=\"CheckBox\" parent=\"VBoxContainer/ColorsSettings\" unique_id=681946268]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\ntext = \"Create colors with alpha component\"\n\n[node name=\"GetColorsFrom\" type=\"HBoxContainer\" parent=\"VBoxContainer/ColorsSettings\" unique_id=1782770613]\nlayout_mode = 2\n\n[node name=\"GetColorsFromLabel\" type=\"Label\" parent=\"VBoxContainer/ColorsSettings/GetColorsFrom\" unique_id=74476782]\nlayout_mode = 2\ntext = \"Get colors from:\"\n\n[node name=\"GetColorsFrom\" type=\"OptionButton\" parent=\"VBoxContainer/ColorsSettings/GetColorsFrom\" unique_id=601962716]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nitem_count = 3\npopup/item_0/text = \"Current frame\"\npopup/item_0/id = 0\npopup/item_1/text = \"Selected cels\"\npopup/item_1/id = 1\npopup/item_2/text = \"All frames\"\npopup/item_2/id = 2\n\n[node name=\"AlreadyExistsWarning\" type=\"Label\" parent=\"VBoxContainer\" unique_id=186762094]\nvisible = false\nlayout_mode = 2\nsize_flags_vertical = 7\ntheme_override_colors/font_color = Color(1, 0.603922, 0.603922, 1)\ntext = \"Palette with the same name and path already exists!\"\nhorizontal_alignment = 1\nvertical_alignment = 2\n\n[node name=\"EnterNameWarning\" type=\"Label\" parent=\"VBoxContainer\" unique_id=1844457054]\nvisible = false\nlayout_mode = 2\nsize_flags_vertical = 7\ntheme_override_colors/font_color = Color(1, 0.603922, 0.603922, 1)\ntext = \"Palette name is required!\"\nhorizontal_alignment = 1\nvertical_alignment = 2\n\n[connection signal=\"confirmed\" from=\".\" to=\".\" method=\"_on_CreatePaletteDialog_confirmed\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_CreatePaletteDialog_visibility_changed\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/PaletteMetadata/Preset\" to=\".\" method=\"_on_Preset_item_selected\"]\n[connection signal=\"text_changed\" from=\"VBoxContainer/PaletteMetadata/Name\" to=\".\" method=\"_on_Name_text_changed\"]\n"
  },
  {
    "path": "src/Palette/EditPaletteDialog.gd",
    "content": "extends ConfirmationDialog\n\n## Emitted when the user confirms their changes\nsignal saved(name: String, comment: String, width: int, height: int)\n## Emitted when the user deletes a palette\nsignal deleted\n## Emitted when the user exports a palette\nsignal exported(path: String)\n\nconst EXPORT_ACTION := &\"export\"\nconst DELETE_ACTION := &\"delete\"\nconst BIN_ACTION := &\"trash\"\n\n# Keeps original size of edited palette\nvar origin_width := 0\nvar origin_height := 0\n\nvar old_name := \"\"\nvar trash_button: Button\nvar is_proj_palette := false\n\n@onready var name_input := $VBoxContainer/PaletteMetadata/Name\n@onready var comment_input := $VBoxContainer/PaletteMetadata/Comment\n@onready var width_input := $VBoxContainer/PaletteMetadata/Width\n@onready var height_input := $VBoxContainer/PaletteMetadata/Height\n@onready var path_input := $VBoxContainer/PaletteMetadata/Path\n@onready var type_checkbox: CheckBox = $VBoxContainer/PaletteTypeSettings/TypeCheckBox\n\n@onready var size_reduced_warning := $VBoxContainer/SizeReducedWarning\n@onready var already_exists_warning := $VBoxContainer/AlreadyExistsWarning\n@onready var delete_confirmation := $DeleteConfirmation\n@onready var export_file_dialog: FileDialog = $ExportFileDialog\n\n\nfunc _ready() -> void:\n\texport_file_dialog.use_native_dialog = Global.use_native_file_dialogs\n\t# Add delete and export buttons to edit palette dialog\n\tadd_button(\"Delete\", false, DELETE_ACTION)\n\tadd_button(\"Export\", false, EXPORT_ACTION)\n\ttrash_button = delete_confirmation.add_button(\"Move to Trash\", false, BIN_ACTION)\n\n\nfunc open(current_palette: Palette) -> void:\n\tif current_palette:\n\t\tis_proj_palette = current_palette.is_project_palette\n\t\tvar type := \"global\" if current_palette.is_project_palette else \"project wide\"\n\t\ttype_checkbox.text = \"Create a %s copy when confirming the dialog.\" % type\n\t\ttype_checkbox.button_pressed = false\n\t\ttrash_button.visible = !current_palette.is_project_palette\n\t\tpath_input.visible = !current_palette.is_project_palette\n\t\t$VBoxContainer/PaletteMetadata/PathLabel.visible = path_input.visible\n\t\tname_input.text = current_palette.name\n\t\tcomment_input.text = current_palette.comment\n\t\twidth_input.value = current_palette.width\n\t\theight_input.value = current_palette.height\n\t\tpath_input.text = current_palette.path\n\t\texport_file_dialog.current_file = current_palette.name\n\n\t\t# Store original size so it can be compared with changed values\n\t\t# and warning can be shown if it is reduced\n\t\torigin_width = current_palette.width\n\t\torigin_height = current_palette.height\n\t\ttoggle_size_reduced_warning(false)\n\n\t\t# Hide warning\n\t\told_name = current_palette.name\n\t\ttoggle_already_exists_warning(false)\n\n\t\t# Stop all inputs in the rest of the app\n\t\tGlobal.dialog_open(true)\n\t\tpopup_centered_clamped()\n\n\n## Shows/hides a warning when palette size is being reduced\nfunc toggle_size_reduced_warning(to_show: bool) -> void:\n\tsize_reduced_warning.visible = to_show\n\t# Required to resize window to correct size if warning causes content overflow\n\tsize = size\n\n\n## Shows/hides a warning when palette already exists\nfunc toggle_already_exists_warning(to_show: bool) -> void:\n\talready_exists_warning.visible = to_show\n\n\t# Disable confirm button so user cannot save\n\tget_ok_button().disabled = to_show\n\n\t# Required to resize window to correct size if warning causes content overflow\n\tsize = size\n\n\nfunc _on_EditPaletteDialog_visibility_changed() -> void:\n\tGlobal.dialog_open(visible)\n\n\nfunc _on_EditPaletteDialog_confirmed() -> void:\n\tif type_checkbox.button_pressed:\n\t\tis_proj_palette = !is_proj_palette\n\tsaved.emit(\n\t\tname_input.text, comment_input.text, width_input.value, height_input.value, !is_proj_palette\n\t)\n\n\nfunc _on_EditPaletteDialog_custom_action(action: StringName) -> void:\n\tif action == DELETE_ACTION:\n\t\tdelete_confirmation.popup_centered_clamped()\n\telif action == EXPORT_ACTION:\n\t\tif OS.has_feature(\"web\"):\n\t\t\texported.emit()\n\t\telse:\n\t\t\texport_file_dialog.popup_centered_clamped()\n\n\nfunc _on_delete_confirmation_confirmed() -> void:\n\tdeleted.emit(true)\n\tdelete_confirmation.hide()\n\thide()\n\n\nfunc _on_delete_confirmation_custom_action(action: StringName) -> void:\n\tif action == BIN_ACTION:\n\t\tdeleted.emit(false)\n\t\tdelete_confirmation.hide()\n\t\thide()\n\n\nfunc _on_size_value_changed(_value: int):\n\t# Toggle resize warning label if palette size was reduced\n\tvar size_decreased: bool = (\n\t\theight_input.value < origin_height or width_input.value < origin_width\n\t)\n\ttoggle_size_reduced_warning(size_decreased)\n\n\nfunc _on_Name_text_changed(new_name: String):\n\tif old_name != new_name:\n\t\tif Palettes.does_palette_exist(new_name):\n\t\t\ttoggle_already_exists_warning(true)\n\t\telse:\n\t\t\ttoggle_already_exists_warning(false)\n\n\t\t# Disable ok button on empty name\n\t\tif new_name == \"\":\n\t\t\tget_ok_button().disabled = true\n\n\nfunc _on_export_file_dialog_file_selected(path: String) -> void:\n\texported.emit(path)\n"
  },
  {
    "path": "src/Palette/EditPaletteDialog.gd.uid",
    "content": "uid://d31hld1f7vyhh\n"
  },
  {
    "path": "src/Palette/EditPaletteDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://c0p84w7umxwt1\"]\n\n[ext_resource type=\"Script\" uid=\"uid://d31hld1f7vyhh\" path=\"res://src/Palette/EditPaletteDialog.gd\" id=\"1\"]\n\n[node name=\"EditPaletteDialog\" type=\"ConfirmationDialog\" unique_id=208430126]\ntitle = \"Edit Palette\"\nsize = Vector2i(421, 414)\nscript = ExtResource(\"1\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=1096765786]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 8.0\noffset_top = 8.0\noffset_right = -8.0\noffset_bottom = -49.0\n\n[node name=\"PaletteMetadata\" type=\"GridContainer\" parent=\"VBoxContainer\" unique_id=1550444553]\nlayout_mode = 2\nsize_flags_vertical = 3\ncolumns = 2\n\n[node name=\"NameLabel\" type=\"Label\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=151302913]\ncustom_minimum_size = Vector2(50, 0)\nlayout_mode = 2\ntext = \"Name:\"\n\n[node name=\"Name\" type=\"LineEdit\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=84421491]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"CommentLabel\" type=\"Label\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=1782191067]\ncustom_minimum_size = Vector2(50, 0)\nlayout_mode = 2\nsize_flags_vertical = 0\ntext = \"Comment:\"\n\n[node name=\"Comment\" type=\"TextEdit\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=286681361]\ncustom_minimum_size = Vector2(0, 75)\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"WidthLabel\" type=\"Label\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=679573317]\nlayout_mode = 2\ntext = \"Width:\"\n\n[node name=\"Width\" type=\"SpinBox\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=1753173970]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmin_value = 1.0\nmax_value = 64.0\nvalue = 1.0\n\n[node name=\"HeightLabel\" type=\"Label\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=1780662826]\nlayout_mode = 2\ntext = \"Height:\"\n\n[node name=\"Height\" type=\"SpinBox\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=694995173]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmin_value = 1.0\nmax_value = 64.0\nvalue = 1.0\n\n[node name=\"PathLabel\" type=\"Label\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=606772638]\nlayout_mode = 2\ntext = \"Path:\"\n\n[node name=\"Path\" type=\"TextEdit\" parent=\"VBoxContainer/PaletteMetadata\" unique_id=671388217]\ncustom_minimum_size = Vector2(0, 50)\nlayout_mode = 2\nsize_flags_horizontal = 3\neditable = false\n\n[node name=\"PaletteTypeSettings\" type=\"VBoxContainer\" parent=\"VBoxContainer\" unique_id=556436550]\nlayout_mode = 2\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"VBoxContainer/PaletteTypeSettings\" unique_id=367000313]\nlayout_mode = 2\n\n[node name=\"TypeCheckBox\" type=\"CheckBox\" parent=\"VBoxContainer/PaletteTypeSettings\" unique_id=448356247]\nlayout_mode = 2\n\n[node name=\"SizeReducedWarning\" type=\"Label\" parent=\"VBoxContainer\" unique_id=362838787]\ncustom_minimum_size = Vector2(0, 27)\nlayout_mode = 2\ntheme_override_colors/font_color = Color(1, 0.603922, 0.603922, 1)\ntext = \"Reducing palette size will reset positions of colors.\nColors that don't fit in new palette size will be lost!\"\nhorizontal_alignment = 1\nvertical_alignment = 2\n\n[node name=\"AlreadyExistsWarning\" type=\"Label\" parent=\"VBoxContainer\" unique_id=2125566309]\nlayout_mode = 2\ntheme_override_colors/font_color = Color(1, 0.603922, 0.603922, 1)\ntext = \"Palette with the same name and path already exists!\"\nhorizontal_alignment = 1\nvertical_alignment = 1\n\n[node name=\"DeleteConfirmation\" type=\"ConfirmationDialog\" parent=\".\" unique_id=918135483]\nsize = Vector2i(445, 105)\nexclusive = false\npopup_window = true\nok_button_text = \"Delete Permanently\"\n\n[node name=\"Label\" type=\"Label\" parent=\"DeleteConfirmation\" unique_id=121861684]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 8.0\noffset_top = 8.0\noffset_right = -8.0\noffset_bottom = -49.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntext = \"Delete Palette?\"\nhorizontal_alignment = 1\nvertical_alignment = 1\n\n[node name=\"ExportFileDialog\" type=\"FileDialog\" parent=\".\" unique_id=1245396939 groups=[\"FileDialogs\"]]\nsize = Vector2i(677, 400)\naccess = 2\nfilters = PackedStringArray(\"*.png ; PNG Image\", \"*.jpg,*.jpeg ; JPEG Image\", \"*.webp ; WebP Image\")\n\n[connection signal=\"confirmed\" from=\".\" to=\".\" method=\"_on_EditPaletteDialog_confirmed\"]\n[connection signal=\"custom_action\" from=\".\" to=\".\" method=\"_on_EditPaletteDialog_custom_action\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_EditPaletteDialog_visibility_changed\"]\n[connection signal=\"text_changed\" from=\"VBoxContainer/PaletteMetadata/Name\" to=\".\" method=\"_on_Name_text_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/PaletteMetadata/Width\" to=\".\" method=\"_on_size_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/PaletteMetadata/Height\" to=\".\" method=\"_on_size_value_changed\"]\n[connection signal=\"confirmed\" from=\"DeleteConfirmation\" to=\".\" method=\"_on_delete_confirmation_confirmed\"]\n[connection signal=\"custom_action\" from=\"DeleteConfirmation\" to=\".\" method=\"_on_delete_confirmation_custom_action\"]\n[connection signal=\"file_selected\" from=\"ExportFileDialog\" to=\".\" method=\"_on_export_file_dialog_file_selected\"]\n"
  },
  {
    "path": "src/Palette/Palette.gd",
    "content": "class_name Palette\nextends RefCounted\n\nsignal data_changed\n\nconst DEFAULT_WIDTH := 8\nconst DEFAULT_HEIGHT := 8\n\n# Metadata\nvar name := \"Custom Palette\":\n\tset(value):\n\t\tname = value.strip_edges()\nvar comment := \"\"\nvar path := \"\"\nvar is_project_palette := false:\n\tset(value):\n\t\tif value:\n\t\t\tpath = \"\"\n\t\tis_project_palette = value\n\n## The width of the grid.\nvar width := DEFAULT_WIDTH\n## The height of the grid.\nvar height := DEFAULT_HEIGHT\n## Sparse colors dictionary. Actual color position in the palette is determined by its index.\nvar colors: Dictionary[int, PaletteColor] = {}\n## How many colors fit in palette grid.\nvar colors_max := 0\n\n\nclass PaletteColor:\n\tvar color := Color(0, 0, 0, 0)\n\tvar index := -1\n\n\tfunc _init(init_color := Color.BLACK, init_index := -1) -> void:\n\t\tcolor = init_color\n\t\tindex = init_index\n\n\tfunc duplicate() -> PaletteColor:\n\t\treturn PaletteColor.new(color, index)\n\n\tfunc serialize() -> Dictionary:\n\t\treturn {\"color\": color, \"index\": index}\n\n\tfunc deserialize(dict: Dictionary) -> void:\n\t\tif dict.has(\"color\"):\n\t\t\tcolor = dict[\"color\"]\n\t\tif dict.has(\"index\"):\n\t\t\tindex = dict[\"index\"]\n\n\nfunc _init(\n\t_name := \"Custom Palette\", _width := DEFAULT_WIDTH, _height := DEFAULT_HEIGHT, _comment := \"\"\n) -> void:\n\tname = _name\n\tcomment = _comment\n\twidth = _width\n\theight = _height\n\tcolors_max = _width * _height\n\tcolors = {}\n\n\nfunc edit(new_name: String, new_width: int, new_height: int, new_comment: String) -> void:\n\tvar old_width := width\n\tvar old_height := height\n\twidth = new_width\n\theight = new_height\n\tname = new_name\n\tcomment = new_comment\n\n\tvar old_colors_max := colors_max\n\tcolors_max = width * height\n\n\tif colors_max < old_colors_max:\n\t\t# If size was reduced colors must be reindexed to fit into new smaller size\n\t\treindex_colors_on_size_reduce(true)\n\n\tif old_width < new_width and height >= old_height:\n\t\t# If width increases colors have to be reindexed so they keep same grid positions\n\t\t# unless the height has become smaller and we have to re-position the colors\n\t\t# so that they won't get erased\n\t\treindex_colors_on_width_increase(old_width)\n\n\nfunc duplicate() -> Palette:\n\tvar new_palette := Palette.new(name, width, height, comment)\n\tnew_palette.set_color_data(colors)\n\treturn new_palette\n\n\n## Sets data without referencing the new_colors dictionary. Useful for undo/redo.\nfunc set_color_data(new_colors: Dictionary[int, PaletteColor]):\n\tcolors.clear()\n\tfor color in new_colors:\n\t\tcolors[color] = new_colors[color].duplicate()\n\n\n## Gets data without referencing the original dictionary. Useful for undo/redo.\nfunc get_color_data() -> Dictionary[int, PaletteColor]:\n\tvar color_data: Dictionary[int, PaletteColor] = {}\n\tfor color in colors:\n\t\tcolor_data[color] = colors[color].duplicate()\n\treturn color_data\n\n\nfunc serialize() -> String:\n\tvar serialize_data := {\"comment\": comment, \"colors\": [], \"width\": width, \"height\": height}\n\tfor color in colors:\n\t\tserialize_data.colors.push_back(colors[color].serialize())\n\n\treturn JSON.stringify(serialize_data, \" \")\n\n\nfunc deserialize(json_string: String) -> void:\n\tvar test_json_conv := JSON.new()\n\tvar err := test_json_conv.parse(json_string)\n\tif err != OK:  # If parse has errors\n\t\tprinterr(\"JSON palette import error\")\n\t\tprinterr(\"Error: \", err)\n\t\tprinterr(\"Error Line: \", test_json_conv.get_error_line())\n\t\tprinterr(\"Error String: \", test_json_conv.get_error_message())\n\t\treturn\n\n\tvar data = test_json_conv.get_data()\n\tif not typeof(data) == TYPE_DICTIONARY:\n\t\treturn\n\tdeserialize_from_dictionary(data)\n\n\nfunc deserialize_from_dictionary(data: Dictionary) -> void:\n\tif data.has(\"comment\"):\n\t\tcomment = data.comment\n\tif data.has(\"colors\"):\n\t\tfor color_data in data.colors:\n\t\t\tvar color: Color\n\t\t\tif typeof(color_data[\"color\"]) == TYPE_STRING:\n\t\t\t\tcolor = str_to_var(\"Color\" + color_data[\"color\"])\n\t\t\telif typeof(color_data[\"color\"]) == TYPE_COLOR:\n\t\t\t\tcolor = color_data[\"color\"]\n\t\t\tvar index := color_data[\"index\"] as int\n\t\t\tvar palette_color := PaletteColor.new(color, index)\n\t\t\tcolors[index] = palette_color\n\tif data.has(\"width\"):\n\t\twidth = data.width\n\tif data.has(\"height\"):\n\t\theight = data.height\n\tcolors_max = width * height\n\n\nfunc save_to_file() -> Error:\n\tif is_project_palette:\n\t\t# Project palettes are not a physical file so nothing needs to be saved\n\t\treturn OK\n\tvar file := FileAccess.open(path, FileAccess.WRITE)\n\tif not is_instance_valid(file):\n\t\treturn FileAccess.get_open_error()\n\tfile.store_string(serialize())\n\tfile.close()\n\treturn OK\n\n\n## Iterates all colors from lowest index and reindexes them so they start at zero index\n## Remove trailing removes all colors that are over colors_max limit and thus don't fit into grid\nfunc reindex_colors_on_size_reduce(remove_trailing: bool) -> void:\n\tvar sorted_colors_indexes := colors.keys()\n\tsorted_colors_indexes.sort()\n\tvar new_index := 0\n\tfor old_index: int in sorted_colors_indexes:\n\t\t# Color cannot fit into grid anymore - erase it\n\t\tif remove_trailing and new_index >= colors_max:\n\t\t\tcolors.erase(old_index)\n\n\t\t# Move color to new lower index - erase it from its original index\n\t\telif new_index < old_index:\n\t\t\tcolors[new_index] = colors[old_index]\n\t\t\tcolors[new_index].index = new_index\n\t\t\tcolors.erase(old_index)\n\n\t\tnew_index += 1\n\n\n## Adds difference of old and new width to color indexes\n## so they remain on the same position as before resize\nfunc reindex_colors_on_width_increase(old_width: int) -> void:\n\tvar sorted_colors_indices := colors.keys()\n\tsorted_colors_indices.sort()\n\tvar new_colors: Dictionary[int, PaletteColor]\n\tfor old_index: int in sorted_colors_indices:\n\t\t@warning_ignore(\"integer_division\")\n\t\tvar new_index := old_index + (width - old_width) * (old_index / old_width)\n\t\tnew_colors[new_index] = colors[old_index]\n\t\tnew_colors[new_index].index = new_index\n\n\tcolors = new_colors\n\n\n## Adds new color to the first empty swatch\nfunc add_color(new_color: Color, start_index := 0) -> void:\n\tif start_index >= colors_max:\n\t\treturn\n\n\t# If palette is full automatically increase the palette height\n\tif is_full():\n\t\theight += 1\n\t\tcolors_max = width * height\n\n\t# Find the first empty index since start index and insert a new color\n\tfor i in range(start_index, colors_max):\n\t\tif not colors.has(i):\n\t\t\tcolors[i] = PaletteColor.new(new_color, i)\n\t\t\tbreak\n\tdata_changed.emit()\n\n\n## Returns color at index or null if no color exists\nfunc get_color(index: int):\n\tvar palette_color: PaletteColor = colors.get(index)\n\tif palette_color != null:\n\t\treturn palette_color.color\n\treturn null\n\n\n## Changes color data\nfunc set_color(index: int, new_color: Color) -> void:\n\tif colors.has(index):\n\t\tcolors[index].color = new_color\n\t\tdata_changed.emit()\n\n\n## Removes a color at the specified index\nfunc remove_color(index: int) -> void:\n\tcolors.erase(index)\n\tdata_changed.emit()\n\n\n## Inserts a color to the specified index\n## If index is already occupied move the original color to right\nfunc insert_color(index: int, new_color: Color) -> void:\n\tvar c := PaletteColor.new(new_color, index)\n\t# If insert happens on non empty swatch recursively move the original color\n\t# and every other color to its right one swatch to right\n\tif colors.has(index):\n\t\t_move_right(index)\n\tcolors[index] = c\n\tdata_changed.emit()\n\n\n## Recursive function that moves every color to right until one of them is moved to empty swatch\nfunc _move_right(index: int) -> void:\n\t# Moving colors to right would overflow the size of the palette\n\t# so increase its height automatically\n\tif index + 1 == colors_max:\n\t\theight += 1\n\t\tcolors_max = width * height\n\n\t# If swatch to right to this color is not empty move that color right too\n\tif colors.has(index + 1):\n\t\t_move_right(index + 1)\n\n\tcolors[index + 1] = colors[index]\n\n\n## Swaps two colors\nfunc swap_colors(from_index: int, to_index: int) -> void:\n\tvar from_color: PaletteColor = colors.get(from_index)\n\tvar to_color: PaletteColor = colors.get(to_index)\n\n\tif not from_color and to_color:\n\t\tcolors[from_index] = to_color\n\t\tcolors[from_index].index = from_index\n\t\tcolors.erase(to_index)\n\telif from_color and not to_color:\n\t\tcolors[to_index] = from_color\n\t\tcolors[to_index].index = to_index\n\t\tcolors.erase(from_index)\n\telif from_color and to_color:\n\t\tcolors[to_index] = from_color\n\t\tcolors[to_index].index = to_index\n\t\tcolors[from_index] = to_color\n\t\tcolors[from_index].index = from_index\n\tdata_changed.emit()\n\n\n## Copies color\nfunc copy_colors(from_index: int, to_index: int) -> void:\n\t# Only allow copy of existing colors\n\tif colors[from_index] != null:\n\t\tcolors[to_index] = colors[from_index].duplicate()\n\t\tcolors[to_index].index = to_index\n\tdata_changed.emit()\n\n\nfunc reverse_colors() -> void:\n\tvar reversed_colors := colors.values()\n\treversed_colors.reverse()\n\tcolors.clear()\n\tfor i in reversed_colors.size():\n\t\treversed_colors[i].index = i\n\t\tcolors[i] = reversed_colors[i]\n\tdata_changed.emit()\n\n\nfunc sort(option: Palettes.SortOptions) -> void:\n\tvar sorted_colors := colors.values()\n\tvar sort_method: Callable\n\tmatch option:\n\t\tPalettes.SortOptions.HUE:\n\t\t\tsort_method = func(a: PaletteColor, b: PaletteColor): return a.color.h < b.color.h\n\t\tPalettes.SortOptions.SATURATION:\n\t\t\tsort_method = func(a: PaletteColor, b: PaletteColor): return a.color.s < b.color.s\n\t\tPalettes.SortOptions.VALUE:\n\t\t\tsort_method = func(a: PaletteColor, b: PaletteColor): return a.color.v < b.color.v\n\t\tPalettes.SortOptions.LIGHTNESS:\n\t\t\t# Code inspired from:\n\t\t\t# gdlint: ignore=max-line-length\n\t\t\t# https://github.com/bottosson/bottosson.github.io/blob/master/misc/colorpicker/colorconversion.js#L519\n\t\t\tsort_method = func(a: PaletteColor, b: PaletteColor):\n\t\t\t\t# function that returns OKHSL lightness\n\t\t\t\tvar lum: Callable = func(c: Color):\n\t\t\t\t\tvar l = 0.4122214708 * (c.r) + 0.5363325363 * (c.g) + 0.0514459929 * (c.b)\n\t\t\t\t\tvar m = 0.2119034982 * (c.r) + 0.6806995451 * (c.g) + 0.1073969566 * (c.b)\n\t\t\t\t\tvar s = 0.0883024619 * (c.r) + 0.2817188376 * (c.g) + 0.6299787005 * (c.b)\n\t\t\t\t\tvar l_cr = pow(l, 1 / 3.0)\n\t\t\t\t\tvar m_cr = pow(m, 1 / 3.0)\n\t\t\t\t\tvar s_cr = pow(s, 1 / 3.0)\n\t\t\t\t\tvar oklab_l = 0.2104542553 * l_cr + 0.7936177850 * m_cr - 0.0040720468 * s_cr\n\t\t\t\t\t# calculating toe\n\t\t\t\t\tvar k_1 = 0.206\n\t\t\t\t\tvar k_2 = 0.03\n\t\t\t\t\tvar k_3 = (1 + k_1) / (1 + k_2)\n\t\t\t\t\treturn (\n\t\t\t\t\t\t0.5\n\t\t\t\t\t\t* (\n\t\t\t\t\t\t\tk_3 * oklab_l\n\t\t\t\t\t\t\t- k_1\n\t\t\t\t\t\t\t+ sqrt(\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(k_3 * oklab_l - k_1) * (k_3 * oklab_l - k_1)\n\t\t\t\t\t\t\t\t\t+ 4 * k_2 * k_3 * oklab_l\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\treturn lum.call(a.color.srgb_to_linear()) < lum.call(b.color.srgb_to_linear())\n\t\tPalettes.SortOptions.RED:\n\t\t\tsort_method = func(a: PaletteColor, b: PaletteColor): return a.color.r < b.color.r\n\t\tPalettes.SortOptions.GREEN:\n\t\t\tsort_method = func(a: PaletteColor, b: PaletteColor): return a.color.g < b.color.g\n\t\tPalettes.SortOptions.BLUE:\n\t\t\tsort_method = func(a: PaletteColor, b: PaletteColor): return a.color.b < b.color.b\n\t\tPalettes.SortOptions.ALPHA:\n\t\t\tsort_method = func(a: PaletteColor, b: PaletteColor): return a.color.a < b.color.a\n\tsorted_colors.sort_custom(sort_method)\n\tcolors.clear()\n\tfor i in sorted_colors.size():\n\t\tsorted_colors[i].index = i\n\t\tcolors[i] = sorted_colors[i]\n\tdata_changed.emit()\n\n\n## True if all swatches are occupied\nfunc is_full() -> bool:\n\treturn colors.size() >= colors_max\n\n\n## True if palette has no colors\nfunc is_empty() -> bool:\n\treturn colors.size() == 0\n\n\nfunc has_theme_color(color: Color) -> bool:\n\tfor palette_color in colors.values():\n\t\tif palette_color.color.is_equal_approx(color):\n\t\t\treturn true\n\treturn false\n\n\n## Makes an un-referenced copy of the color_data. Useful for undo/redo.\nstatic func duplicate_color_data(\n\tcolor_data: Dictionary[int, PaletteColor]\n) -> Dictionary[int, PaletteColor]:\n\tvar new_colors: Dictionary[int, PaletteColor]\n\tfor color in color_data:\n\t\tnew_colors[color] = color_data[color].duplicate()\n\treturn new_colors\n\n\nstatic func strip_unvalid_characters(string_to_strip: String) -> String:\n\tvar regex := RegEx.new()\n\tregex.compile(\"[^a-zA-Z0-9_]+\")\n\treturn regex.sub(string_to_strip, \"\", true)\n\n\nfunc convert_to_image(crop_image := true) -> Image:\n\tvar image := Image.create(colors_max, 1, false, Image.FORMAT_RGBA8)\n\tfor i in colors_max:\n\t\tif colors.has(i):\n\t\t\timage.set_pixel(i, 0, Color(colors[i].color.to_html()))\n\tif crop_image:\n\t\timage.copy_from(image.get_region(image.get_used_rect()))\n\treturn image\n"
  },
  {
    "path": "src/Palette/Palette.gd.uid",
    "content": "uid://citowyuesb4rw\n"
  },
  {
    "path": "src/Palette/PaletteGrid.gd",
    "content": "class_name PaletteGrid\nextends GridContainer\n\nsignal swatch_pressed(mouse_button: int, index: int)\nsignal swatch_double_clicked(mouse_button: int, index: int, position: Vector2)\nsignal swatch_dropped(source_index: int, target_index: int)\n\nconst DEFAULT_SWATCH_SIZE := Vector2(26, 26)\nconst MIN_SWATCH_SIZE := Vector2(8, 8)\nconst MAX_SWATCH_SIZE := Vector2(64, 64)\n\nvar swatches: Array[PaletteSwatch] = []\nvar current_palette: Palette = null\nvar grid_window_origin := Vector2i.ZERO\nvar grid_size := Vector2i.ZERO\nvar grid_locked := true:\n\tset(value):\n\t\tgrid_locked = value\n\t\tif grid_locked:\n\t\t\tcolumns = maxi(1, grid_size.x)\n\t\telse:\n\t\t\t_on_resized()\nvar swatch_size := DEFAULT_SWATCH_SIZE\n\n\nfunc _ready() -> void:\n\tswatch_size = Global.config_cache.get_value(\"palettes\", \"swatch_size\", DEFAULT_SWATCH_SIZE)\n\tPalettes.palette_selected.connect(select_palette)\n\tTools.color_changed.connect(find_and_select_color)\n\tresized.connect(_on_resized)\n\n\nfunc _gui_input(event: InputEvent) -> void:\n\tif event is InputEventMouseButton and event.pressed and event.ctrl_pressed:\n\t\tif event.button_index == MOUSE_BUTTON_WHEEL_UP:\n\t\t\tchange_swatch_size(Vector2i.ONE)\n\t\telif event.button_index == MOUSE_BUTTON_WHEEL_DOWN:\n\t\t\tchange_swatch_size(-Vector2i.ONE)\n\t\telse:\n\t\t\treturn\n\t\tresize_grid()\n\t\tget_window().set_input_as_handled()\n\n\nfunc select_palette(_new_palette_name: String) -> void:\n\tvar new_palette := Palettes.current_palette\n\tif current_palette != new_palette:\n\t\tcurrent_palette = new_palette\n\t\tgrid_window_origin = Vector2.ZERO\n\tresize_grid()\n\tfind_and_select_color({\"color\": Tools._slots[MOUSE_BUTTON_LEFT].color}, MOUSE_BUTTON_LEFT)\n\tfind_and_select_color({\"color\": Tools._slots[MOUSE_BUTTON_RIGHT].color}, MOUSE_BUTTON_RIGHT)\n\tvar left_selected := Palettes.left_selected_color\n\tvar right_selected := Palettes.right_selected_color\n\tselect_swatch(MOUSE_BUTTON_LEFT, left_selected, left_selected)\n\tselect_swatch(MOUSE_BUTTON_RIGHT, right_selected, right_selected)\n\n\nfunc setup_swatches() -> void:\n\tif grid_locked:\n\t\tcolumns = maxi(1, grid_size.x)  # Columns cannot be 0\n\tfor child in get_children():\n\t\tchild.queue_free()\n\tswatches.clear()\n\tfor i in range(grid_size.x * grid_size.y):\n\t\tvar swatch := PaletteSwatch.new()\n\t\tswatch.index = i\n\t\tinit_swatch(swatch)\n\t\tswatch.pressed.connect(_on_palette_swatch_pressed.bind(i))\n\t\tswatch.double_clicked.connect(_on_palette_swatch_double_clicked.bind(i))\n\t\tswatch.dropped.connect(_on_palette_swatch_dropped)\n\t\tadd_child(swatch)\n\t\tswatches.push_back(swatch)\n\n\nfunc init_swatch(swatch: PaletteSwatch) -> void:\n\tswatch.color_index = swatch.index\n\tvar color = current_palette.get_color(swatch.index)\n\tif color != null:\n\t\tswatch.set_swatch_color(color)\n\t\tswatch.empty = false\n\telse:\n\t\tswatch.set_swatch_color(PaletteSwatch.DEFAULT_COLOR)\n\t\tswatch.empty = true\n\tswatch.set_swatch_size(swatch_size)\n\n\n## Called when the color changes, either the left or the right, determined by [param mouse_button].\n## If current palette has [param color_info], then select the first slot that has it.\n## This is helpful when we select color indirectly (e.g through colorpicker)\nfunc find_and_select_color(color_info: Dictionary, mouse_button: int) -> void:\n\tvar target_color: Color = color_info.get(\"color\", Color(0, 0, 0, 0))\n\tvar palette_color_index: int = color_info.get(\"index\", -1)\n\tif not is_instance_valid(current_palette):\n\t\treturn\n\tvar selected_index := Palettes.current_palette_get_selected_color_index(mouse_button)\n\tif palette_color_index != -1:  # If color has a defined index in palette then prioritize index\n\t\tif selected_index == palette_color_index:  # Index already selected\n\t\t\treturn\n\t\tselect_swatch(mouse_button, palette_color_index, selected_index)\n\t\tmatch mouse_button:\n\t\t\tMOUSE_BUTTON_LEFT:\n\t\t\t\tPalettes.left_selected_color = palette_color_index\n\t\t\tMOUSE_BUTTON_RIGHT:\n\t\t\t\tPalettes.right_selected_color = palette_color_index\n\t\treturn\n\telse:  # If it doesn't then select the first match in the palette\n\t\tif get_swatch_color(selected_index) == target_color:  # Color already selected\n\t\t\treturn\n\t\tfor color_ind in swatches.size():\n\t\t\tif (\n\t\t\t\ttarget_color.is_equal_approx(swatches[color_ind].color)\n\t\t\t\tor target_color.to_html() == swatches[color_ind].color.to_html()\n\t\t\t):\n\t\t\t\tvar index := convert_grid_index_to_palette_index(color_ind)\n\t\t\t\tselect_swatch(mouse_button, index, selected_index)\n\t\t\t\tmatch mouse_button:\n\t\t\t\t\tMOUSE_BUTTON_LEFT:\n\t\t\t\t\t\tPalettes.left_selected_color = index\n\t\t\t\t\tMOUSE_BUTTON_RIGHT:\n\t\t\t\t\t\tPalettes.right_selected_color = index\n\t\t\t\treturn\n\t# Unselect swatches when tools color is changed\n\tvar swatch_to_unselect := -1\n\tif mouse_button == MOUSE_BUTTON_LEFT:\n\t\tswatch_to_unselect = Palettes.left_selected_color\n\t\tPalettes.left_selected_color = -1\n\telif mouse_button == MOUSE_BUTTON_RIGHT:\n\t\tswatch_to_unselect = Palettes.right_selected_color\n\t\tPalettes.right_selected_color = -1\n\n\tunselect_swatch(mouse_button, swatch_to_unselect)\n\n\n## Displays a left/right highlight over a swatch\nfunc select_swatch(mouse_button: int, palette_index: int, old_palette_index: int) -> void:\n\tif not is_instance_valid(current_palette):\n\t\treturn\n\tvar index := convert_palette_index_to_grid_index(palette_index)\n\tvar old_index := convert_palette_index_to_grid_index(old_palette_index)\n\tif index >= 0 and index < swatches.size():\n\t\t# Remove highlight from old index swatch and add to index swatch\n\t\tif old_index >= 0 and old_index < swatches.size():\n\t\t\t# Old index could be undefined when no swatch was previously selected\n\t\t\tswatches[old_index].show_selected_highlight(false, mouse_button)\n\t\tswatches[index].show_selected_highlight(true, mouse_button)\n\n\nfunc unselect_swatch(mouse_button: int, palette_index: int) -> void:\n\tvar index := convert_palette_index_to_grid_index(palette_index)\n\tif index >= 0 and index < swatches.size():\n\t\tswatches[index].show_selected_highlight(false, mouse_button)\n\n\nfunc set_swatch_color(palette_index: int, color: Color) -> void:\n\tvar index := convert_palette_index_to_grid_index(palette_index)\n\tif index >= 0 and index < swatches.size():\n\t\tswatches[index].set_swatch_color(color)\n\n\nfunc get_swatch_color(palette_index: int) -> Color:\n\tvar index := convert_palette_index_to_grid_index(palette_index)\n\tif index >= 0 and index < swatches.size():\n\t\treturn swatches[index].color\n\treturn Color.TRANSPARENT\n\n\n## Grid index adds grid window origin\nfunc convert_grid_index_to_palette_index(index: int) -> int:\n\treturn (\n\t\t(index / grid_size.x + grid_window_origin.y) * current_palette.width\n\t\t+ (index % grid_size.x + grid_window_origin.x)\n\t)\n\n\nfunc convert_palette_index_to_grid_index(palette_index: int) -> int:\n\tvar x := palette_index % current_palette.width\n\tvar y := palette_index / current_palette.width\n\treturn (x - grid_window_origin.x) + (y - grid_window_origin.y) * grid_size.x\n\n\nfunc resize_grid() -> void:\n\tif is_instance_valid(current_palette):\n\t\tgrid_size.x = current_palette.width\n\t\tgrid_size.y = current_palette.height\n\telse:\n\t\tgrid_size = Vector2i.ZERO\n\tsetup_swatches()\n\n\nfunc change_swatch_size(size_diff: Vector2) -> void:\n\tswatch_size += size_diff\n\tif swatch_size.x < MIN_SWATCH_SIZE.x:\n\t\tswatch_size = MIN_SWATCH_SIZE\n\telif swatch_size.x > MAX_SWATCH_SIZE.x:\n\t\tswatch_size = MAX_SWATCH_SIZE\n\n\tfor swatch in get_children():\n\t\tswatch.set_swatch_size(swatch_size)\n\n\tGlobal.config_cache.set_value(\"palettes\", \"swatch_size\", swatch_size)\n\t_on_resized()\n\n\nfunc _on_resized() -> void:\n\tif not grid_locked:\n\t\tcolumns = maxi(1, size.x / (swatch_size.x + 3))\n\n\nfunc _on_palette_swatch_pressed(mouse_button: int, index: int) -> void:\n\tvar palette_index := convert_grid_index_to_palette_index(index)\n\tswatch_pressed.emit(mouse_button, palette_index)\n\n\nfunc _on_palette_swatch_double_clicked(mouse_button: int, pos: Vector2, index: int) -> void:\n\tvar palette_index := convert_grid_index_to_palette_index(index)\n\tswatch_double_clicked.emit(mouse_button, palette_index, pos)\n\n\nfunc _on_palette_swatch_dropped(source_index: int, target_index: int) -> void:\n\tvar palette_source_index := convert_grid_index_to_palette_index(source_index)\n\tvar palette_target_index := convert_grid_index_to_palette_index(target_index)\n\tswatch_dropped.emit(palette_source_index, palette_target_index)\n"
  },
  {
    "path": "src/Palette/PaletteGrid.gd.uid",
    "content": "uid://brrmadr5hbecl\n"
  },
  {
    "path": "src/Palette/PalettePanel.gd",
    "content": "class_name PalettePanel\nextends Container\n\nconst CREATE_PALETTE_SCENE_PATH := \"res://src/Palette/CreatePaletteDialog.tscn\"\nconst EDIT_PALETTE_SCENE_PATH := \"res://src/Palette/EditPaletteDialog.tscn\"\n\nvar palettes_name_id := {}\nvar palettes_id_name := {}\n\nvar edited_swatch_index := -1\nvar edited_swatch_color := Color.TRANSPARENT\nvar sort_submenu := PopupMenu.new()\n\nvar create_palette_dialog: ConfirmationDialog:\n\tget:\n\t\tif not is_instance_valid(create_palette_dialog):\n\t\t\tcreate_palette_dialog = load(CREATE_PALETTE_SCENE_PATH).instantiate()\n\t\t\tcreate_palette_dialog.saved.connect(_on_create_palette_dialog_saved)\n\t\t\tadd_child(create_palette_dialog)\n\t\treturn create_palette_dialog\nvar edit_palette_dialog: ConfirmationDialog:\n\tget:\n\t\tif not is_instance_valid(edit_palette_dialog):\n\t\t\tedit_palette_dialog = load(EDIT_PALETTE_SCENE_PATH).instantiate()\n\t\t\tedit_palette_dialog.deleted.connect(_on_edit_palette_dialog_deleted)\n\t\t\tedit_palette_dialog.exported.connect(_on_edit_palette_dialog_exported)\n\t\t\tedit_palette_dialog.saved.connect(_on_edit_palette_dialog_saved)\n\t\t\tadd_child(edit_palette_dialog)\n\t\treturn edit_palette_dialog\n\n@onready var palette_select := $\"%PaletteSelect\" as OptionButton\n@onready var palette_grid := $\"%PaletteGrid\" as PaletteGrid\n\n@onready var add_color_button := $\"%AddColor\"\n@onready var delete_color_button := $\"%DeleteColor\"\n@onready var sort_button := %Sort as MenuButton\n@onready var sort_button_popup := sort_button.get_popup()\n@onready var lock_grid: Button = %LockGrid\n\n## This color picker button itself is hidden, but its popup is used to edit color swatches.\n@onready var hidden_color_picker := $\"%HiddenColorPickerButton\" as ColorPickerButton\n\n\nfunc _ready() -> void:\n\tsort_button_popup.add_check_item(\"Auto add new colors\", 0)\n\tsort_submenu.add_check_item(\"Create a new palette\", Palettes.SortOptions.NEW_PALETTE)\n\tsort_submenu.set_item_checked(Palettes.SortOptions.NEW_PALETTE, true)\n\tsort_submenu.add_item(\"Reverse colors\", Palettes.SortOptions.REVERSE)\n\tsort_submenu.add_separator()\n\tsort_submenu.add_item(\"Sort by hue\", Palettes.SortOptions.HUE)\n\tsort_submenu.add_item(\"Sort by saturation\", Palettes.SortOptions.SATURATION)\n\tsort_submenu.add_item(\"Sort by value\", Palettes.SortOptions.VALUE)\n\tsort_submenu.add_separator()\n\tsort_submenu.add_item(\"Sort by lightness\", Palettes.SortOptions.LIGHTNESS)\n\tsort_submenu.add_separator()\n\tsort_submenu.add_item(\"Sort by red\", Palettes.SortOptions.RED)\n\tsort_submenu.add_item(\"Sort by green\", Palettes.SortOptions.GREEN)\n\tsort_submenu.add_item(\"Sort by blue\", Palettes.SortOptions.BLUE)\n\tsort_submenu.add_item(\"Sort by alpha\", Palettes.SortOptions.ALPHA)\n\tsort_button_popup.add_child(sort_submenu)\n\tsort_button_popup.add_submenu_node_item(\"Palette Sort\", sort_submenu)\n\tlock_grid.button_pressed = Global.config_cache.get_value(\n\t\t\"palettes\", \"palette_locked\", palette_grid.grid_locked\n\t)\n\n\tPalettes.palette_selected.connect(select_palette)\n\tPalettes.new_palette_created.connect(_new_palette_created)\n\tPalettes.palette_removed.connect(setup_palettes_selector)\n\tPalettes.new_palette_imported.connect(setup_palettes_selector)\n\tGlobal.project_switched.connect(_project_switched)\n\tsort_submenu.id_pressed.connect(sort_pressed)\n\tsort_button_popup.id_pressed.connect(\n\t\tfunc(id: int):\n\t\t\tif id == 0:\n\t\t\t\tsort_button_popup.set_item_checked(0, not Palettes.auto_add_colors)\n\t\t\t\tPalettes.auto_add_colors = sort_button_popup.is_item_checked(0)\n\t)\n\n\tsetup_palettes_selector()\n\tredraw_current_palette()\n\n\t# Hide presets from color picker\n\thidden_color_picker.get_picker().presets_visible = false\n\thidden_color_picker.get_picker().visibility_changed.connect(_on_colorpicker_visibility_changed)\n\n\n## Setup palettes selector with available palettes\nfunc setup_palettes_selector() -> void:\n\t# Clear selector\n\tpalettes_name_id.clear()\n\tpalettes_id_name.clear()\n\tpalette_select.clear()\n\n\tvar id := 0\n\tfor palette_name in Palettes.palettes:\n\t\t# Add palette selector item\n\t\tpalette_select.add_item(Palettes.palettes[palette_name].name, id)\n\n\t\t# Map palette name to item id's and otherwise\n\t\tpalettes_name_id[palette_name] = id\n\t\tpalettes_id_name[id] = palette_name\n\t\tid += 1\n\tvar project := Global.current_project\n\tif project:\n\t\tif project.palettes.size() > 0:\n\t\t\tpalette_select.add_separator(\"\")\n\t\t\tid += 1\n\t\tfor palette_name in project.palettes:\n\t\t\t# Add palette selector item\n\t\t\tvar disp_name := Palettes.get_name_without_suffix(\n\t\t\t\tproject.palettes[palette_name].name, true\n\t\t\t)\n\t\t\tpalette_select.add_item(\"%s (project palette)\" % disp_name, id)\n\n\t\t\t# Map palette name to item id's and otherwise\n\t\t\tpalettes_name_id[palette_name] = id\n\t\t\tpalettes_id_name[id] = palette_name\n\t\t\tid += 1\n\n\nfunc select_palette(palette_name: String) -> void:\n\tvar palette_id = palettes_name_id.get(palette_name)\n\tif palette_id != null:\n\t\tpalette_select.selected = palette_id\n\ttoggle_add_delete_buttons()\n\n\n## Select and display current palette\nfunc redraw_current_palette() -> void:\n\tif is_instance_valid(Palettes.current_palette):\n\t\tPalettes.select_palette(Palettes.current_palette.name)\n\t\tadd_color_button.show()\n\t\tdelete_color_button.show()\n\t\tsort_button.show()\n\telse:\n\t\tadd_color_button.hide()\n\t\tdelete_color_button.hide()\n\t\tsort_button.hide()\n\n\nfunc toggle_add_delete_buttons() -> void:\n\tif not is_instance_valid(Palettes.current_palette):\n\t\treturn\n\tadd_color_button.disabled = Palettes.current_palette.is_full()\n\tif add_color_button.disabled:\n\t\tadd_color_button.mouse_default_cursor_shape = CURSOR_FORBIDDEN\n\telse:\n\t\tadd_color_button.mouse_default_cursor_shape = CURSOR_POINTING_HAND\n\tdelete_color_button.disabled = Palettes.current_palette.is_empty()\n\tsort_button_popup.set_item_disabled(1, Palettes.current_palette.is_empty())\n\tif delete_color_button.disabled:\n\t\tdelete_color_button.mouse_default_cursor_shape = CURSOR_FORBIDDEN\n\telse:\n\t\tdelete_color_button.mouse_default_cursor_shape = CURSOR_POINTING_HAND\n\n\nfunc _on_AddPalette_pressed() -> void:\n\tcreate_palette_dialog.open(Palettes.current_palette)\n\n\nfunc _on_EditPalette_pressed() -> void:\n\tedit_palette_dialog.open(Palettes.current_palette)\n\n\nfunc _on_PaletteSelect_item_selected(index: int) -> void:\n\tPalettes.select_palette(palettes_id_name.get(index))\n\n\nfunc _on_AddColor_gui_input(event: InputEvent) -> void:\n\tif Palettes.is_any_palette_selected():\n\t\tif (\n\t\t\tevent is InputEventMouseButton\n\t\t\tand event.pressed\n\t\t\tand (\n\t\t\t\tevent.button_index == MOUSE_BUTTON_LEFT or event.button_index == MOUSE_BUTTON_RIGHT\n\t\t\t)\n\t\t):\n\t\t\t# Gets the grid index that corresponds to the top left of current grid window\n\t\t\t# Color will be added at the start of the currently scrolled part of palette\n\t\t\t# - not the absolute beginning of palette\n\t\t\tvar start_index := palette_grid.convert_grid_index_to_palette_index(0)\n\t\t\tvar new_color := Tools.get_assigned_color(event.button_index)\n\t\t\t_current_palette_undo_redo_add_color(new_color, start_index)\n\n\nfunc _on_DeleteColor_gui_input(event: InputEvent) -> void:\n\tif Palettes.is_any_palette_selected():\n\t\tif event is InputEventMouseButton and event.pressed:\n\t\t\tvar selected_color_index := Palettes.current_palette_get_selected_color_index(\n\t\t\t\tevent.button_index\n\t\t\t)\n\n\t\t\tif selected_color_index != -1:\n\t\t\t\t_current_palette_undo_redo_remove_color(selected_color_index)\n\n\nfunc sort_pressed(id: Palettes.SortOptions) -> void:\n\tvar new_palette := sort_submenu.is_item_checked(Palettes.SortOptions.NEW_PALETTE)\n\tif id == Palettes.SortOptions.NEW_PALETTE:\n\t\tsort_submenu.set_item_checked(Palettes.SortOptions.NEW_PALETTE, not new_palette)\n\t\treturn\n\tif Palettes.current_palette.is_project_palette or new_palette:\n\t\tvar palette_to_sort := Palettes.current_palette\n\t\tvar undo_redo := Global.current_project.undo_redo\n\t\tundo_redo.create_action(\"Sort Palette\")\n\t\tif new_palette:\n\t\t\tpalette_to_sort = palette_to_sort.duplicate()\n\t\t\tpalette_to_sort.is_project_palette = true\n\t\t\tPalettes.undo_redo_add_palette(palette_to_sort)\n\t\t\tundo_redo.add_undo_method(\n\t\t\t\tPalettes.palette_delete_and_reselect.bind(true, palette_to_sort)\n\t\t\t)\n\t\telse:\n\t\t\tvar old_colors := Palette.duplicate_color_data(palette_to_sort.colors)\n\t\t\tundo_redo.add_undo_method(palette_to_sort.set_color_data.bind(old_colors))\n\t\t\tundo_redo.add_undo_method(redraw_current_palette)\n\t\tundo_redo.add_do_method(Palettes.sort_colors.bind(id, palette_to_sort))\n\t\tundo_redo.add_do_method(redraw_current_palette)\n\t\tcommit_undo()\n\telse:\n\t\tPalettes.sort_colors(id)\n\t\tredraw_current_palette()\n\n\nfunc _on_lock_grid_toggled(toggled_on: bool) -> void:\n\tpalette_grid.grid_locked = toggled_on\n\tvar texture_button: TextureRect = lock_grid.get_node(\"TextureRect\")\n\tvar file_name := \"lock.png\"\n\tif not toggled_on:\n\t\tfile_name = \"unlock.png\"\n\tGlobal.change_button_texturerect(texture_button, file_name)\n\tGlobal.config_cache.set_value(\"palettes\", \"palette_locked\", toggled_on)\n\n\nfunc _on_create_palette_dialog_saved(\n\tpreset: int,\n\tpalette_name: String,\n\tcomment: String,\n\twidth: int,\n\theight: int,\n\tadd_alpha_colors: bool,\n\tcolors_from: int,\n\tis_global: bool\n) -> void:\n\tPalettes.create_new_palette(\n\t\tpreset, palette_name, comment, width, height, add_alpha_colors, colors_from, is_global\n\t)\n\n\nfunc _on_edit_palette_dialog_saved(\n\tpalette_name: String, comment: String, width: int, height: int, is_global\n) -> void:\n\tPalettes.current_palette_edit(palette_name, comment, width, height, is_global)\n\tsetup_palettes_selector()\n\tredraw_current_palette()\n\n\nfunc _on_PaletteGrid_swatch_double_clicked(_mb: int, index: int, click_position: Vector2) -> void:\n\tvar color := Palettes.current_palette_get_color(index)\n\tedited_swatch_index = index\n\thidden_color_picker.color = color\n\thidden_color_picker.color_changed.emit(hidden_color_picker.color)\n\n\t# Open color picker popup with its right bottom corner next to swatch\n\tvar popup := hidden_color_picker.get_popup()\n\tvar popup_position := click_position - Vector2(popup.size)\n\tpopup.popup_on_parent(Rect2i(popup_position, Vector2i.ONE))\n\n\nfunc _on_PaletteGrid_swatch_dropped(s_index: int, t_index: int) -> void:\n\tvar undo_redo := Global.current_project.undo_redo\n\tundo_redo.create_action(\"Swatch dropped\")\n\tvar palette_in_focus = Palettes.current_palette\n\tif not palette_in_focus.is_project_palette:\n\t\tpalette_in_focus = palette_in_focus.duplicate()\n\t\tpalette_in_focus.is_project_palette = true\n\t\tundo_redo.add_do_method(Palettes.add_palette_as_project_palette.bind(palette_in_focus))\n\tif Input.is_key_pressed(KEY_SHIFT):\n\t\tundo_redo.add_do_method(Palettes.current_palette_insert_color.bind(s_index, t_index))\n\t\tundo_redo.add_undo_method(\n\t\t\tpalette_in_focus.set_color_data.bind(palette_in_focus.get_color_data())\n\t\t)\n\t\tundo_redo.add_undo_property(palette_in_focus, \"width\", palette_in_focus.width)\n\t\tundo_redo.add_undo_property(palette_in_focus, \"height\", palette_in_focus.height)\n\t\tundo_redo.add_undo_property(palette_in_focus, \"colors_max\", palette_in_focus.colors_max)\n\telif Input.is_key_pressed(KEY_CTRL):\n\t\tundo_redo.add_do_method(Palettes.current_palette_copy_colors.bind(s_index, t_index))\n\t\tvar old_color = palette_in_focus.get_color(t_index)\n\t\tundo_redo.add_undo_method(palette_in_focus.set_color.bind(t_index, old_color))\n\telse:\n\t\tundo_redo.add_do_method(Palettes.current_palette_swap_colors.bind(s_index, t_index))\n\t\tundo_redo.add_undo_method(Palettes.current_palette_swap_colors.bind(t_index, s_index))\n\tif Palettes.current_palette != palette_in_focus:\n\t\tundo_redo.add_undo_method(Palettes.palette_delete_and_reselect.bind(true, palette_in_focus))\n\tundo_redo.add_do_method(redraw_current_palette)\n\tundo_redo.add_undo_method(redraw_current_palette)\n\tcommit_undo()\n\n\nfunc _on_PaletteGrid_swatch_pressed(mouse_button: int, index: int) -> void:\n\t# NOTE: here index is relative to palette, not the grid\n\t# Gets previously selected color index\n\tvar old_index := Palettes.current_palette_get_selected_color_index(mouse_button)\n\tvar is_empty_swatch = Palettes.current_palette.get_color(index) == null\n\tif is_empty_swatch:  # Add colors with Left/Right Click\n\t\tvar new_color := Tools.get_assigned_color(mouse_button)\n\t\t_current_palette_undo_redo_add_color(new_color, index)\n\telse:\n\t\tif Input.is_key_pressed(KEY_CTRL):  # Delete colors with Ctrl + Click\n\t\t\t_current_palette_undo_redo_remove_color(index)\n\t\t\treturn\n\t# Gets previously selected color index\n\tPalettes.current_palette_select_color(mouse_button, index)\n\tpalette_grid.select_swatch(mouse_button, index, old_index)\n\n\nfunc _on_ColorPicker_color_changed(color: Color) -> void:\n\tif edited_swatch_index != -1:\n\t\tedited_swatch_color = color\n\t\tpalette_grid.set_swatch_color(edited_swatch_index, color)\n\t\tif (\n\t\t\tedited_swatch_index\n\t\t\t== Palettes.current_palette_get_selected_color_index(MOUSE_BUTTON_LEFT)\n\t\t):\n\t\t\tTools.assign_color(color, MOUSE_BUTTON_LEFT)\n\t\tif (\n\t\t\tedited_swatch_index\n\t\t\t== Palettes.current_palette_get_selected_color_index(MOUSE_BUTTON_RIGHT)\n\t\t):\n\t\t\tTools.assign_color(color, MOUSE_BUTTON_RIGHT)\n\t\tPalettes.current_palette_set_color(edited_swatch_index, edited_swatch_color)\n\n\nfunc _on_colorpicker_visibility_changed() -> void:\n\tvar undo_redo := Global.current_project.undo_redo\n\tif hidden_color_picker.get_picker().is_visible_in_tree():\n\t\tundo_redo.create_action(\"Change swatch color\")\n\t\tvar old_color := Palettes.current_palette_get_color(edited_swatch_index)\n\t\tif not Palettes.current_palette.is_project_palette:\n\t\t\t# Reset color on the original palette, and make a copy instead\n\t\t\tundo_redo.add_do_method(\n\t\t\t\tPalettes.current_palette_set_color.bind(edited_swatch_index, old_color)\n\t\t\t)\n\t\t\tPalettes.copy_current_palette(Palettes.current_palette.name)\n\t\tundo_redo.add_undo_method(\n\t\t\tPalettes.current_palette_set_color.bind(edited_swatch_index, old_color)\n\t\t)\n\t\tundo_redo.add_undo_method(\n\t\t\tpalette_grid.set_swatch_color.bind(edited_swatch_index, old_color)\n\t\t)\n\telse:\n\t\tundo_redo.add_do_method(\n\t\t\tPalettes.current_palette_set_color.bind(edited_swatch_index, edited_swatch_color)\n\t\t)\n\t\tundo_redo.add_do_method(\n\t\t\tpalette_grid.set_swatch_color.bind(edited_swatch_index, edited_swatch_color)\n\t\t)\n\t\tcommit_undo()\n\n\nfunc _on_edit_palette_dialog_deleted(permanent: bool) -> void:\n\tif Palettes.current_palette.is_project_palette:\n\t\tvar undo_redo = Global.current_project.undo_redo\n\t\tundo_redo.create_action(\"Remove project palette\")\n\t\tundo_redo.add_do_method(Palettes.palette_delete_and_reselect)\n\t\tundo_redo.add_undo_method(\n\t\t\tPalettes.add_palette_as_project_palette.bind(Palettes.current_palette)\n\t\t)\n\t\tundo_redo.add_do_method(setup_palettes_selector)\n\t\tundo_redo.add_do_method(redraw_current_palette)\n\t\tundo_redo.add_undo_method(setup_palettes_selector)\n\t\tundo_redo.add_undo_method(redraw_current_palette)\n\t\tundo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\t\tundo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\tundo_redo.commit_action()\n\telse:\n\t\tPalettes.palette_delete_and_reselect(permanent)\n\t\tsetup_palettes_selector()\n\t\tredraw_current_palette()\n\n\nfunc _project_switched() -> void:\n\tvar proj_palette_name := Global.current_project.project_current_palette_name\n\tsetup_palettes_selector()\n\t# Switch to the recent active project palette if it exists\n\tif proj_palette_name != \"\":\n\t\tPalettes.select_palette(proj_palette_name)\n\tredraw_current_palette()\n\n\nfunc _new_palette_created() -> void:\n\tsetup_palettes_selector()\n\tredraw_current_palette()\n\n\nfunc _on_edit_palette_dialog_exported(path := \"\") -> void:\n\tvar image := Palettes.current_palette.convert_to_image()\n\tif OS.has_feature(\"web\"):\n\t\tJavaScriptBridge.download_buffer(\n\t\t\timage.save_png_to_buffer(), Palettes.current_palette.name, \"image/png\"\n\t\t)\n\tif path.is_empty():\n\t\treturn\n\tvar extension := path.get_extension()\n\tmatch extension:\n\t\t\"png\":\n\t\t\timage.save_png(path)\n\t\t\"jpg\", \"jpeg\":\n\t\t\timage.save_jpg(path)\n\t\t\"webp\":\n\t\t\timage.save_webp(path)\n\n\n## Helper methods for undo/redo\n\n\nfunc commit_undo() -> void:\n\tvar undo_redo := Global.current_project.undo_redo\n\tundo_redo.add_undo_method(Global.general_undo)\n\tundo_redo.add_do_method(Global.general_redo)\n\tundo_redo.commit_action()\n\n\nfunc _current_palette_undo_redo_add_color(color: Color, start_index := 0) -> void:\n\tvar undo_redo := Global.current_project.undo_redo\n\tundo_redo.create_action(\"Add palette color\")\n\tvar palette_in_focus = Palettes.current_palette\n\tif not palette_in_focus.is_project_palette:\n\t\tpalette_in_focus = palette_in_focus.duplicate()\n\t\tpalette_in_focus.is_project_palette = true\n\t\tPalettes.undo_redo_add_palette(palette_in_focus)\n\t\tundo_redo.add_do_property(\n\t\t\tpalette_grid, \"grid_window_origin\", palette_grid.grid_window_origin\n\t\t)\n\t# Get an estimate of where the color will end up (used for undo)\n\tvar index := start_index\n\tvar color_max: int = palette_in_focus.colors_max\n\t# If palette is full automatically increase the palette height\n\tif palette_in_focus.is_full():\n\t\tcolor_max = palette_in_focus.width * (palette_in_focus.height + 1)\n\tfor i in range(start_index, color_max):\n\t\tif not palette_in_focus.colors.has(i):\n\t\t\tindex = i\n\t\t\tbreak\n\tundo_redo.add_do_method(palette_in_focus.add_color.bind(color, start_index))\n\tundo_redo.add_undo_method(palette_in_focus.remove_color.bind(index))\n\tundo_redo.add_do_method(redraw_current_palette)\n\tundo_redo.add_undo_method(redraw_current_palette)\n\tundo_redo.add_do_method(toggle_add_delete_buttons)\n\tundo_redo.add_undo_method(toggle_add_delete_buttons)\n\tcommit_undo()\n\n\nfunc _current_palette_undo_redo_remove_color(index := 0) -> void:\n\tvar undo_redo := Global.current_project.undo_redo\n\tundo_redo.create_action(\"Remove palette color\")\n\tvar old_color := Palettes.current_palette_get_color(index)\n\tvar palette_in_focus = Palettes.current_palette\n\tif not palette_in_focus.is_project_palette:\n\t\tpalette_in_focus = palette_in_focus.duplicate()\n\t\tpalette_in_focus.is_project_palette = true\n\t\tPalettes.undo_redo_add_palette(palette_in_focus)\n\t\tundo_redo.add_do_property(\n\t\t\tpalette_grid, \"grid_window_origin\", palette_grid.grid_window_origin\n\t\t)\n\tundo_redo.add_do_method(palette_in_focus.remove_color.bind(index))\n\tundo_redo.add_undo_method(palette_in_focus.add_color.bind(old_color, index))\n\tundo_redo.add_do_method(redraw_current_palette)\n\tundo_redo.add_do_method(toggle_add_delete_buttons)\n\tundo_redo.add_undo_method(redraw_current_palette)\n\tundo_redo.add_undo_method(toggle_add_delete_buttons)\n\tcommit_undo()\n"
  },
  {
    "path": "src/Palette/PalettePanel.gd.uid",
    "content": "uid://bxugfciwcodjx\n"
  },
  {
    "path": "src/Palette/PalettePanel.tscn",
    "content": "[gd_scene format=3 uid=\"uid://wplk62pbgih4\"]\n\n[ext_resource type=\"Texture2D\" uid=\"uid://biyn51upnlxle\" path=\"res://assets/graphics/palette/edit.png\" id=\"2\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://d1urikaf1lxwl\" path=\"res://assets/graphics/timeline/new_frame.png\" id=\"2_j1lig\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://b7ydn1tt37rcl\" path=\"res://assets/graphics/palette/add.png\" id=\"3\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bt72662c3gp2f\" path=\"res://assets/graphics/timeline/remove_frame.png\" id=\"3_0e27e\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://db4i3w3yencxg\" path=\"res://assets/graphics/palette/sort.png\" id=\"4_hcsuy\"]\n[ext_resource type=\"Script\" uid=\"uid://brrmadr5hbecl\" path=\"res://src/Palette/PaletteGrid.gd\" id=\"5\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://des606sdhau2i\" path=\"res://assets/graphics/layers/lock.png\" id=\"5_unk2t\"]\n[ext_resource type=\"Script\" uid=\"uid://bxugfciwcodjx\" path=\"res://src/Palette/PalettePanel.gd\" id=\"8\"]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_4n3yg\"]\naction = &\"edit_palette\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_jl8vt\"]\nevents = [SubResource(\"InputEventAction_4n3yg\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_mdfjt\"]\naction = &\"new_palette\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_6f4gc\"]\nevents = [SubResource(\"InputEventAction_mdfjt\")]\n\n[node name=\"PalettePanel\" type=\"MarginContainer\" unique_id=499798294]\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\nscript = ExtResource(\"8\")\n\n[node name=\"PaletteVBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=1686199193]\nlayout_mode = 2\n\n[node name=\"PaletteButtons\" type=\"HBoxContainer\" parent=\"PaletteVBoxContainer\" unique_id=290481916]\nlayout_mode = 2\n\n[node name=\"AddColor\" type=\"Button\" parent=\"PaletteVBoxContainer/PaletteButtons\" unique_id=1738955467 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Add a new color\"\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"PaletteVBoxContainer/PaletteButtons/AddColor\" unique_id=2104564033]\nlayout_mode = 1\nanchors_preset = 8\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -6.0\noffset_top = -6.0\noffset_right = 6.0\noffset_bottom = 6.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"2_j1lig\")\n\n[node name=\"DeleteColor\" type=\"Button\" parent=\"PaletteVBoxContainer/PaletteButtons\" unique_id=1984983129 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 0)\nlayout_mode = 2\ntooltip_text = \"Remove a selected color\"\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"PaletteVBoxContainer/PaletteButtons/DeleteColor\" unique_id=1443491847]\nlayout_mode = 1\nanchors_preset = 8\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -6.0\noffset_top = -1.0\noffset_right = 6.0\noffset_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"3_0e27e\")\n\n[node name=\"Sort\" type=\"MenuButton\" parent=\"PaletteVBoxContainer/PaletteButtons\" unique_id=1626175714 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 0)\nlayout_mode = 2\ntooltip_text = \"Sort palette\"\nmouse_default_cursor_shape = 2\nflat = false\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"PaletteVBoxContainer/PaletteButtons/Sort\" unique_id=1569204056]\nlayout_mode = 1\nanchors_preset = 8\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -6.0\noffset_top = -6.0\noffset_right = 6.0\noffset_bottom = 6.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"4_hcsuy\")\n\n[node name=\"LockGrid\" type=\"Button\" parent=\"PaletteVBoxContainer/PaletteButtons\" unique_id=396920274 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 0)\nlayout_mode = 2\ntooltip_text = \"Lock palette grid\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_pressed = true\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"PaletteVBoxContainer/PaletteButtons/LockGrid\" unique_id=2071442706]\nlayout_mode = 1\nanchors_preset = 8\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -6.0\noffset_top = -1.0\noffset_right = 6.0\noffset_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"5_unk2t\")\n\n[node name=\"PaletteSelect\" type=\"OptionButton\" parent=\"PaletteVBoxContainer/PaletteButtons\" unique_id=837684490]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(100, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Choose a palette\"\nmouse_default_cursor_shape = 2\nalignment = 1\nclip_text = true\n\n[node name=\"EditPalette\" type=\"Button\" parent=\"PaletteVBoxContainer/PaletteButtons\" unique_id=2044011141 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(22, 22)\nlayout_mode = 2\ntooltip_text = \"Edit currently selected palette\"\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_jl8vt\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"PaletteVBoxContainer/PaletteButtons/EditPalette\" unique_id=1462799397]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"2\")\nstretch_mode = 3\n\n[node name=\"AddPalette\" type=\"Button\" parent=\"PaletteVBoxContainer/PaletteButtons\" unique_id=10393364 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(22, 22)\nlayout_mode = 2\ntooltip_text = \"Create a new palette\"\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_6f4gc\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"PaletteVBoxContainer/PaletteButtons/AddPalette\" unique_id=786826714]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"3\")\nstretch_mode = 3\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"PaletteVBoxContainer\" unique_id=1598266660]\nlayout_mode = 2\n\n[node name=\"ScrollContainer\" type=\"ScrollContainer\" parent=\"PaletteVBoxContainer\" unique_id=1411394111]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"PaletteGrid\" type=\"GridContainer\" parent=\"PaletteVBoxContainer/ScrollContainer\" unique_id=779665014]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\ntheme_override_constants/h_separation = 3\ntheme_override_constants/v_separation = 3\nscript = ExtResource(\"5\")\n\n[node name=\"HiddenColorPickerButton\" type=\"ColorPickerButton\" parent=\".\" unique_id=169510189]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\n\n[connection signal=\"gui_input\" from=\"PaletteVBoxContainer/PaletteButtons/AddColor\" to=\".\" method=\"_on_AddColor_gui_input\"]\n[connection signal=\"gui_input\" from=\"PaletteVBoxContainer/PaletteButtons/DeleteColor\" to=\".\" method=\"_on_DeleteColor_gui_input\"]\n[connection signal=\"toggled\" from=\"PaletteVBoxContainer/PaletteButtons/LockGrid\" to=\".\" method=\"_on_lock_grid_toggled\"]\n[connection signal=\"item_selected\" from=\"PaletteVBoxContainer/PaletteButtons/PaletteSelect\" to=\".\" method=\"_on_PaletteSelect_item_selected\"]\n[connection signal=\"pressed\" from=\"PaletteVBoxContainer/PaletteButtons/EditPalette\" to=\".\" method=\"_on_EditPalette_pressed\"]\n[connection signal=\"pressed\" from=\"PaletteVBoxContainer/PaletteButtons/AddPalette\" to=\".\" method=\"_on_AddPalette_pressed\"]\n[connection signal=\"swatch_double_clicked\" from=\"PaletteVBoxContainer/ScrollContainer/PaletteGrid\" to=\".\" method=\"_on_PaletteGrid_swatch_double_clicked\"]\n[connection signal=\"swatch_dropped\" from=\"PaletteVBoxContainer/ScrollContainer/PaletteGrid\" to=\".\" method=\"_on_PaletteGrid_swatch_dropped\"]\n[connection signal=\"swatch_pressed\" from=\"PaletteVBoxContainer/ScrollContainer/PaletteGrid\" to=\".\" method=\"_on_PaletteGrid_swatch_pressed\"]\n[connection signal=\"color_changed\" from=\"HiddenColorPickerButton\" to=\".\" method=\"_on_ColorPicker_color_changed\"]\n"
  },
  {
    "path": "src/Palette/PaletteSwatch.gd",
    "content": "class_name PaletteSwatch\nextends ColorRect\n\nsignal pressed(mouse_button: int)\nsignal double_clicked(mouse_button: int, position: Vector2)\nsignal dropped(source_index: int, new_index: int)\n\nconst DEFAULT_COLOR := Color(0.0, 0.0, 0.0, 0.0)\n\nvar index := -1\nvar color_index := -1\nvar show_left_highlight := false\nvar show_right_highlight := false\nvar empty := true:\n\tset(value):\n\t\tempty = value\n\t\tif empty:\n\t\t\tmouse_default_cursor_shape = Control.CURSOR_ARROW\n\t\t\tcolor = Global.control.theme.get_stylebox(\"disabled\", \"Button\").bg_color\n\t\telse:\n\t\t\tmouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\n\nfunc _init() -> void:\n\tcolor = DEFAULT_COLOR\n\tcustom_minimum_size = Vector2(8, 8)\n\tsize = Vector2(8, 8)\n\tmouse_filter = Control.MOUSE_FILTER_PASS\n\tmouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\tgui_input.connect(_on_gui_input)\n\n\nfunc _ready() -> void:\n\tvar transparent_checker := TransparentChecker.new()\n\ttransparent_checker.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT)\n\ttransparent_checker.show_behind_parent = true\n\ttransparent_checker.visible = not is_equal_approx(color.a, 1.0)\n\tadd_child(transparent_checker)\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_THEME_CHANGED:\n\t\tif empty:\n\t\t\tempty = true\n\n\nfunc set_swatch_color(new_color: Color) -> void:\n\tcolor = new_color\n\tif get_child_count() > 0:\n\t\tget_child(0).visible = not is_equal_approx(color.a, 1.0)\n\n\nfunc set_swatch_size(swatch_size: Vector2) -> void:\n\tcustom_minimum_size = swatch_size\n\tsize = swatch_size\n\n\nfunc _draw() -> void:\n\tif not empty:\n\t\t# Black border around swatches with a color\n\t\tdraw_rect(Rect2(Vector2.ONE, size), Color.BLACK, false, 1)\n\n\tif show_left_highlight:\n\t\t# Display outer border highlight\n\t\tdraw_rect(Rect2(Vector2.ONE, size), Color.WHITE, false, 1)\n\t\tdraw_rect(Rect2(Vector2(2, 2), size - Vector2(2, 2)), Color.BLACK, false, 1)\n\n\tif show_right_highlight:\n\t\t# Display inner border highlight\n\t\tvar margin := size / 4\n\t\tdraw_rect(Rect2(margin, size - margin * 2), Color.BLACK, false, 1)\n\t\tdraw_rect(\n\t\t\tRect2(margin - Vector2.ONE, size - margin * 2 + Vector2(2, 2)), Color.WHITE, false, 1\n\t\t)\n\tif Global.show_pixel_indices:\n\t\tvar text := str(color_index + 1)\n\t\tvar font := Themes.get_font()\n\t\tvar str_pos := Vector2(size.x / 2, size.y - 2)\n\t\tvar text_color := Global.control.theme.get_color(&\"font_color\", &\"Label\")\n\t\tdraw_string_outline(\n\t\t\tfont,\n\t\t\tstr_pos,\n\t\t\ttext,\n\t\t\tHORIZONTAL_ALIGNMENT_RIGHT,\n\t\t\t-1,\n\t\t\tsize.x / 2,\n\t\t\t1,\n\t\t\ttext_color.inverted()\n\t\t)\n\t\tdraw_string(font, str_pos, text, HORIZONTAL_ALIGNMENT_RIGHT, -1, size.x / 2, text_color)\n\n\n## Enables drawing of highlights which indicate selected swatches\nfunc show_selected_highlight(new_value: bool, mouse_button: int) -> void:\n\tif not empty:\n\t\tmatch mouse_button:\n\t\t\tMOUSE_BUTTON_LEFT:\n\t\t\t\tshow_left_highlight = new_value\n\t\t\tMOUSE_BUTTON_RIGHT:\n\t\t\t\tshow_right_highlight = new_value\n\t\tqueue_redraw()\n\n\nfunc _get_drag_data(_position: Vector2) -> Variant:\n\tif DisplayServer.is_touchscreen_available() and not show_left_highlight:\n\t\treturn null\n\tif empty:\n\t\treturn [\"Swatch\", null]\n\tvar drag_icon: PaletteSwatch = duplicate()\n\tdrag_icon.show_left_highlight = false\n\tdrag_icon.show_right_highlight = false\n\tdrag_icon.empty = false\n\tset_drag_preview(drag_icon)\n\treturn [\"Swatch\", {source_index = index}]\n\n\nfunc _can_drop_data(_position: Vector2, data) -> bool:\n\tif typeof(data) != TYPE_ARRAY:\n\t\treturn false\n\tif data[0] != \"Swatch\":\n\t\treturn false\n\treturn true\n\n\nfunc _drop_data(_position: Vector2, data) -> void:\n\tdropped.emit(data[1].source_index, index)\n\n\nfunc _on_gui_input(event: InputEvent) -> void:\n\tif event is InputEventMouseButton:\n\t\tif not get_global_rect().has_point(event.global_position):\n\t\t\treturn\n\t\tif event.double_click and not empty:\n\t\t\tdouble_clicked.emit(event.button_index, get_global_rect().position)\n\t\tif event.is_released():\n\t\t\tif event.button_index == MOUSE_BUTTON_LEFT or event.button_index == MOUSE_BUTTON_RIGHT:\n\t\t\t\tpressed.emit(event.button_index)\n\t\telif event.is_pressed():\n\t\t\tif DisplayServer.is_touchscreen_available() and show_left_highlight:\n\t\t\t\taccept_event()\n"
  },
  {
    "path": "src/Palette/PaletteSwatch.gd.uid",
    "content": "uid://l6fh38cc26m5\n"
  },
  {
    "path": "src/Preferences/ExtensionsPreferences.gd",
    "content": "extends VBoxContainer\n\n@export var preferences_dialog: AcceptDialog\n@export var add_extension_file_dialog: FileDialog\n\n@onready var extensions := Global.control.get_node(\"Extensions\") as Extensions\n@onready var extension_list := $InstalledExtensions as ItemList\n@onready var enable_button := $HBoxContainer/EnableButton as Button\n@onready var uninstall_button := $HBoxContainer/UninstallButton as Button\n@onready var enable_confirmation := %EnableExtensionConfirmation as ConfirmationDialog\n@onready var delete_confirmation := %DeleteExtensionConfirmation as ConfirmationDialog\n\n\nfunc _ready() -> void:\n\tfor extension_name: String in extensions.extensions:\n\t\tvar extension: Extensions.Extension = extensions.extensions[extension_name]\n\t\t_extension_loaded(extension, extension_name)\n\tadd_extension_file_dialog.use_native_dialog = Global.use_native_file_dialogs\n\textensions.extension_loaded.connect(_extension_loaded)\n\textensions.extension_uninstalled.connect(_extension_uninstalled)\n\tdelete_confirmation.add_button(\"Move to Trash\", false, Extensions.BIN_ACTION)\n\tif OS.get_name() == \"Web\":\n\t\t$HBoxContainer/AddExtensionButton.disabled = true\n\telse:\n\t\t# TODO: Remove the loop when https://github.com/godotengine/godot/issues/92848 gets fixed.\n\t\tfor dialog_child in add_extension_file_dialog.find_children(\"\", \"Window\", true, false):\n\t\t\tif dialog_child is Window:\n\t\t\t\tdialog_child.always_on_top = add_extension_file_dialog.always_on_top\n\n\nfunc _extension_loaded(extension: Extensions.Extension, extension_name: String) -> void:\n\textension_list.add_item(extension.display_name)\n\tvar item_count := extension_list.get_item_count() - 1\n\tvar tooltip = (\n\t\t\"\"\"\nVersion: %s\nAuthor: %s\nDescription: %s\nLicense: %s\n\"\"\"\n\t\t% [str(extension.version), extension.author, extension.description, extension.license]\n\t)\n\textension_list.set_item_tooltip(item_count, tooltip)\n\textension_list.set_item_metadata(item_count, extension_name)\n\n\nfunc _extension_uninstalled(extension_name: String) -> void:\n\tvar item := -1\n\tfor i in extension_list.get_item_count():\n\t\tif extension_list.get_item_metadata(i) == extension_name:\n\t\t\titem = i\n\t\t\tbreak\n\tif item == -1:\n\t\tprint(\"Failed to find extension %s\" % extension_name)\n\t\treturn\n\textension_list.remove_item(item)\n\tenable_button.disabled = true\n\tuninstall_button.disabled = true\n\n\nfunc _on_InstalledExtensions_item_selected(index: int) -> void:\n\textensions.extension_selected = index\n\tvar file_name: String = extension_list.get_item_metadata(extensions.extension_selected)\n\tvar extension: Extensions.Extension = extensions.extensions[file_name]\n\tif extension.enabled:\n\t\tenable_button.text = \"Disable\"\n\telse:\n\t\tenable_button.text = \"Enable\"\n\tenable_button.disabled = false\n\tif !extension.internal:\n\t\tuninstall_button.disabled = false\n\telse:\n\t\tuninstall_button.disabled = true\n\n\nfunc _on_InstalledExtensions_empty_clicked(_position: Vector2, _button_index: int) -> void:\n\textension_list.deselect_all()  # Clicking empty won't deselect by default, so doing it manually.\n\tenable_button.disabled = true\n\tuninstall_button.disabled = true\n\n\nfunc _on_AddExtensionButton_pressed() -> void:\n\tadd_extension_file_dialog.popup_centered_clamped()\n\n\nfunc _on_EnableButton_pressed() -> void:\n\tvar file_name: String = extension_list.get_item_metadata(extensions.extension_selected)\n\tvar extension: Extensions.Extension = extensions.extensions[file_name]\n\t# Don't allow disabling internal extensions through this button.\n\tif extension.internal and extension.enabled_once:\n\t\tpreferences_dialog.preference_update(true)\n\telse:\n\t\tif extension.enabled:  # If enabled, disable\n\t\t\textension.enabled = false\n\t\t\textensions.enable_extension(extension)\n\t\t\tenable_button.text = \"Enable\"\n\t\telse:  # If disabled, ask for user confirmation to enable\n\t\t\tif enable_confirmation.confirmed.is_connected(\n\t\t\t\t_on_enable_extension_confirmation_confirmed\n\t\t\t):\n\t\t\t\tenable_confirmation.confirmed.disconnect(\n\t\t\t\t\t_on_enable_extension_confirmation_confirmed\n\t\t\t\t)\n\t\t\tenable_confirmation.confirmed.connect(\n\t\t\t\t_on_enable_extension_confirmation_confirmed.bind(extension)\n\t\t\t)\n\t\t\tenable_confirmation.popup_centered_clamped()\n\n\nfunc _on_UninstallButton_pressed() -> void:\n\tdelete_confirmation.popup_centered_clamped()\n\n\nfunc _on_OpenFolderButton_pressed() -> void:\n\tOS.shell_open(ProjectSettings.globalize_path(extensions.EXTENSIONS_PATH))\n\n\nfunc _on_AddExtensionFileDialog_files_selected(paths: PackedStringArray) -> void:\n\tfor path in paths:\n\t\textensions.install_extension(path)\n\n\nfunc _on_delete_confirmation_custom_action(action: StringName) -> void:\n\tif action == Extensions.BIN_ACTION:\n\t\tvar extension_name: String = extension_list.get_item_metadata(extensions.extension_selected)\n\t\textensions.uninstall_extension(extension_name, Extensions.UninstallMode.FILE_TO_BIN)\n\tdelete_confirmation.hide()\n\n\nfunc _on_enable_extension_confirmation_confirmed(extension: Extensions.Extension) -> void:\n\textension.enabled = true\n\textensions.enable_extension(extension)\n\tenable_button.text = \"Disable\"\n\tenable_confirmation.confirmed.disconnect(_on_enable_extension_confirmation_confirmed)\n\n\nfunc _on_delete_confirmation_confirmed() -> void:\n\textensions.uninstall_extension(extension_list.get_item_metadata(extensions.extension_selected))\n"
  },
  {
    "path": "src/Preferences/ExtensionsPreferences.gd.uid",
    "content": "uid://dxjamv5np8av3\n"
  },
  {
    "path": "src/Preferences/GridPreferences.gd",
    "content": "extends GridContainer\n\n# We should use pre defined initial grid colors instead of random colors\nconst INITIAL_GRID_COLORS := [\n\tColor.BLACK,\n\tColor.WHITE,\n\tColor.YELLOW,\n\tColor.GREEN,\n\tColor.BLUE,\n\tColor.GRAY,\n\tColor.ORANGE,\n\tColor.PINK,\n\tColor.SIENNA,\n\tColor.CORAL,\n]\n\nvar grid_preferences: Array[GridPreference] = [\n\tGridPreference.new(\"grid_type\", \"GridType\", \"selected\", Global.GridTypes.CARTESIAN),\n\tGridPreference.new(\"grid_size\", \"GridSizeValue\", \"value\", Vector2i(2, 2)),\n\tGridPreference.new(\"grid_offset\", \"GridOffsetValue\", \"value\", Vector2i.ZERO),\n\tGridPreference.new(\"grid_draw_over_tile_mode\", \"GridDrawOverTileMode\", \"button_pressed\", false),\n\tGridPreference.new(\"is_pixelated\", \"GridPixelated\", \"button_pressed\", false),\n\tGridPreference.new(\"y_separated\", \"GridYSeperated\", \"button_pressed\", false),\n\tGridPreference.new(\"grid_color\", \"GridColor\", \"color\", Color.BLACK),\n]\n\nvar grid_selected: int = 0:\n\tset(key):\n\t\tgrid_selected = key\n\t\tfor child: BaseButton in grids_select_container.get_children():\n\t\t\tif child.get_index() == grid_selected:\n\t\t\t\tchild.self_modulate = Color.WHITE\n\t\t\telse:\n\t\t\t\tchild.self_modulate = Color.DIM_GRAY\n\t\tvar grids: Dictionary = Global.config_cache.get_value(\n\t\t\t\"preferences\", \"grids\", {0: create_default_properties()}\n\t\t)\n\t\tif grids.has(key):\n\t\t\tload_grid_ui(grids[key])\n\n@onready var grids_count_slider: ValueSlider = $GridsCount\n@onready var grids_select_container: HFlowContainer = $GridsSelectContainer\n\n\nclass GridPreference:\n\tvar prop_name: String\n\tvar node_path: String\n\tvar value_type: String\n\tvar default_value\n\n\tfunc _init(\n\t\t_prop_name: String,\n\t\t_node_path: String,\n\t\t_value_type: String,\n\t\t_default_value = null,\n\t\t_require_restart := false\n\t) -> void:\n\t\tprop_name = _prop_name\n\t\tnode_path = _node_path\n\t\tvalue_type = _value_type\n\t\tif _default_value != null:\n\t\t\tdefault_value = _default_value\n\n\nfunc _ready() -> void:\n\tvar grids = Global.config_cache.get_value(\n\t\t\"preferences\", \"grids\", {0: create_default_properties()}\n\t)\n\tGlobal.config_cache.set_value(\"preferences\", \"grids\", grids)\n\t$GridsCount.value = grids.size()\n\tif grids.size() == 1:\n\t\tadd_remove_select_button(0)\n\tfor pref in grid_preferences:\n\t\tif not has_node(pref.node_path):\n\t\t\tcontinue\n\t\tvar node := get_node(pref.node_path)\n\t\tvar restore_default_button := RestoreDefaultButton.new()\n\t\trestore_default_button.pressed.connect(\n\t\t\t_on_grid_pref_value_changed.bind(pref.default_value, pref, restore_default_button)\n\t\t)\n\t\trestore_default_button.setting_name = pref.prop_name\n\t\trestore_default_button.value_type = pref.value_type\n\t\trestore_default_button.default_value = pref.default_value\n\t\trestore_default_button.node = node\n\n\t\tvar node_position := node.get_index()\n\t\tnode.get_parent().add_child(restore_default_button)\n\t\tnode.get_parent().move_child(restore_default_button, node_position)\n\n\t\tmatch pref.value_type:\n\t\t\t\"button_pressed\":\n\t\t\t\tnode.toggled.connect(_on_grid_pref_value_changed.bind(pref, restore_default_button))\n\t\t\t\"value\":\n\t\t\t\tnode.value_changed.connect(\n\t\t\t\t\t_on_grid_pref_value_changed.bind(pref, restore_default_button)\n\t\t\t\t)\n\t\t\t\"color\":\n\t\t\t\tnode.get_picker().presets_visible = false\n\t\t\t\tnode.color_changed.connect(\n\t\t\t\t\t_on_grid_pref_value_changed.bind(pref, restore_default_button)\n\t\t\t\t)\n\t\t\t\"selected\":\n\t\t\t\tnode.item_selected.connect(\n\t\t\t\t\t_on_grid_pref_value_changed.bind(pref, restore_default_button)\n\t\t\t\t)\n\tgrid_selected = 0\n\n\nfunc _on_grid_pref_value_changed(value, pref: GridPreference, button: RestoreDefaultButton) -> void:\n\tvar grids: Dictionary = Global.config_cache.get_value(\n\t\t\"preferences\", \"grids\", {0: create_default_properties()}\n\t)\n\tvar prop := pref.prop_name\n\tvar grid_info := {}\n\tif grids.has(grid_selected):  # Failsafe (Always true)\n\t\tgrid_info = grids[grid_selected]\n\t\tgrid_info[prop] = value\n\t\tgrids[grid_selected] = grid_info\n\t\t# NOTE: All prop values of bool type in grid_info that don't have a direct mapping in\n\t\t# the Grid class gets assigned or removed from the special_flags based on if it's value\n\t\t# is true or false.\n\t\tGlobal.update_grids(grids)\n\t\tvar default_value = pref.default_value\n\t\tvar disable: bool = Global.grids[grid_selected].get(prop) == default_value\n\t\t# NOTE: special_flags are special switches that may be different for different grids\n\t\t# for example the y_separated flag is only specific to the isometric grid.\n\t\tvar special_flags = Global.grids[grid_selected].get(\"special_flags\")\n\t\tif (\n\t\t\tspecial_flags\n\t\t\tand typeof(special_flags) == TYPE_PACKED_STRING_ARRAY\n\t\t\tand typeof(default_value) == TYPE_BOOL\n\t\t):\n\t\t\tdisable = (prop in special_flags) == default_value if !disable else disable\n\t\tif typeof(value) == TYPE_COLOR:\n\t\t\tdisable = value.is_equal_approx(default_value)\n\t\tdisable_restore_default_button(button, disable)\n\tGlobal.config_cache.set_value(\"preferences\", \"grids\", grids)\n\tmanage_button_disabling(grid_info)\n\n\nfunc _on_grids_count_value_changed(value: float) -> void:\n\tvar new_grids: Dictionary = Global.config_cache.get_value(\n\t\t\"preferences\", \"grids\", {0: create_default_properties()}\n\t)\n\tvar last_grid_idx = int(value - 1)\n\tif last_grid_idx >= grids_select_container.get_child_count():\n\t\t# Add missing grids\n\t\tfor key in range(grids_select_container.get_child_count(), value):\n\t\t\tif not new_grids.has(key):\n\t\t\t\tvar new_grid := create_default_properties()\n\t\t\t\tif new_grids.has(key - 1):  # Failsafe\n\t\t\t\t\tvar last_grid = new_grids[key - 1]\n\t\t\t\t\t# This small bit of code is there to make ui look a little neater\n\t\t\t\t\t# Reasons:\n\t\t\t\t\t# - Usually user intends to make the next grid twice the size.\n\t\t\t\t\t# - Having all grids being same size initially may cause confusion for some\n\t\t\t\t\t# users when they try to change color of a middle grid not seeing it's changing\n\t\t\t\t\t# (due to being covered by grids above it).\n\t\t\t\t\tif new_grid.has(\"grid_size\") and new_grid.has(\"grid_color\"):\n\t\t\t\t\t\tnew_grid[\"grid_size\"] = last_grid[\"grid_size\"] * 2\n\t\t\t\t\t\tif key < INITIAL_GRID_COLORS.size():\n\t\t\t\t\t\t\tnew_grid[\"grid_color\"] = INITIAL_GRID_COLORS[key]\n\t\t\t\tnew_grids[key] = new_grid\n\t\t\tadd_remove_select_button(key)\n\telse:\n\t\t# Remove extra grids\n\t\tfor key: int in range(value, new_grids.size()):\n\t\t\tnew_grids.erase(key)\n\t\t\tadd_remove_select_button(key, true)\n\tgrid_selected = min(grid_selected, last_grid_idx)\n\tGlobal.update_grids(new_grids)\n\tGlobal.config_cache.set_value(\"preferences\", \"grids\", new_grids)\n\n\nfunc create_default_properties() -> Dictionary:\n\tvar grid_info := {}\n\tfor pref in grid_preferences:\n\t\tgrid_info[pref.prop_name] = pref.default_value\n\treturn grid_info\n\n\nfunc disable_restore_default_button(button: RestoreDefaultButton, disable: bool) -> void:\n\tbutton.disabled = disable\n\tif disable:\n\t\tbutton.mouse_default_cursor_shape = Control.CURSOR_ARROW\n\t\tbutton.tooltip_text = \"\"\n\telse:\n\t\tbutton.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\t\tbutton.tooltip_text = \"Restore default value\"\n\n\nfunc add_remove_select_button(grid_idx: int, remove := false):\n\tif not remove:\n\t\tvar select_button = Button.new()\n\t\tselect_button.text = str(grid_idx)\n\t\tgrids_select_container.add_child(select_button)\n\t\tselect_button.pressed.connect(func(): grid_selected = grid_idx)\n\telse:\n\t\tif grid_idx < grids_select_container.get_child_count():\n\t\t\tgrids_select_container.get_child(grid_idx).queue_free()\n\n\nfunc load_grid_ui(grid_data: Dictionary):\n\tfor pref in grid_preferences:\n\t\tvar key = pref.prop_name\n\t\tif grid_data.has(key):\n\t\t\tvar node := get_node(pref.node_path)\n\t\t\tnode.set(pref.value_type, grid_data[key])\n\t\t\tif pref.value_type == \"color\":\n\t\t\t\t# the signal doesn't seem to be emitted automatically\n\t\t\t\tnode.color_changed.emit(grid_data[key])\n\tmanage_button_disabling(grid_data)\n\n\nfunc manage_button_disabling(grid_data: Dictionary):\n\t$GridPixelated.disabled = true\n\t$GridYSeperated.disabled = true\n\tif grid_data.get(\"grid_type\", 0) == Global.GridTypes.ISOMETRIC:\n\t\t$GridPixelated.disabled = false\n\t\tif grid_data.get(\"is_pixelated\", false) == true:\n\t\t\t$GridYSeperated.disabled = false\n\t$GridPixelated.text = \"Disabled\" if $GridPixelated.disabled else \"On\"\n\t$GridYSeperated.text = \"Disabled\" if $GridYSeperated.disabled else \"On\"\n"
  },
  {
    "path": "src/Preferences/GridPreferences.gd.uid",
    "content": "uid://cybud13k7nk1c\n"
  },
  {
    "path": "src/Preferences/PreferencesDialog.gd",
    "content": "extends AcceptDialog\n\nvar preferences: Array[Preference] = [\n\tPreference.new(\n\t\t\"open_last_project\", \"Startup/StartupContainer/OpenLastProject\", \"button_pressed\", false\n\t),\n\tPreference.new(\n\t\t\"quit_confirmation\", \"Startup/StartupContainer/QuitConfirmation\", \"button_pressed\", false\n\t),\n\tPreference.new(\"ffmpeg_path\", \"Startup/StartupContainer/FFMPEGPath\", \"text\", \"\"),\n\tPreference.new(\"shrink\", \"%ShrinkSlider\", \"value\", Global.auto_content_scale_factor),\n\tPreference.new(\"theme_font_index\", \"%FontOptionButton\", \"selected\", 1),\n\tPreference.new(\"font_size\", \"%FontSizeSlider\", \"value\", 16),\n\tPreference.new(\n\t\t\"dim_on_popup\", \"Interface/InterfaceOptions/DimCheckBox\", \"button_pressed\", true\n\t),\n\tPreference.new(\n\t\t\"screen_orientation\",\n\t\t\"Interface/InterfaceOptions/ScreenOrientationOptionButton\",\n\t\t\"selected\",\n\t\tDisplayServer.SCREEN_SENSOR\n\t),\n\tPreference.new(\n\t\t\"show_notification_label\",\n\t\t\"Interface/InterfaceOptions/ShowNotificationCheckBox\",\n\t\t\"button_pressed\",\n\t\ttrue\n\t),\n\tPreference.new(\n\t\t\"use_native_file_dialogs\",\n\t\t\"Interface/InterfaceOptions/NativeFileDialogs\",\n\t\t\"button_pressed\",\n\t\tfalse\n\t),\n\tPreference.new(\n\t\t\"single_window_mode\",\n\t\t\"Interface/InterfaceOptions/SingleWindowMode\",\n\t\t\"button_pressed\",\n\t\ttrue,\n\t\ttrue\n\t),\n\t(\n\t\tPreference\n\t\t. new(\n\t\t\t\"collapse_main_menu\",\n\t\t\t\"Interface/InterfaceOptions/CollapseMainMenu\",\n\t\t\t\"button_pressed\",\n\t\t\tOS.has_feature(\"mobile\"),\n\t\t)\n\t),\n\tPreference.new(\n\t\t\"icon_color_from\",\n\t\t\"Interface/ButtonOptions/IconColorOptionButton\",\n\t\t\"selected\",\n\t\tGlobal.ColorFrom.THEME\n\t),\n\tPreference.new(\n\t\t\"custom_icon_color\", \"Interface/ButtonOptions/IconColorButton\", \"color\", Color.GRAY\n\t),\n\tPreference.new(\n\t\t\"reset_swap_on_shortcut_release\",\n\t\t\"Tools/ToolOptions/ResetSwapCheckBox\",\n\t\t\"button_pressed\",\n\t\tfalse\n\t),\n\tPreference.new(\n\t\t\"swap_color_on_tool_swap\",\n\t\t\"Tools/ToolOptions/SwapColorWithToolCheckBox\",\n\t\t\"button_pressed\",\n\t\tfalse\n\t),\n\tPreference.new(\n\t\t\"single_tool_mode\",\n\t\t\"Tools/ToolOptions/SingleToolModeCheckBox\",\n\t\t\"button_pressed\",\n\t\tDisplayServer.is_touchscreen_available()\n\t),\n\tPreference.new(\n\t\t\"share_options_between_tools\",\n\t\t\"Tools/ToolOptions/ShareOptionsCheckBox\",\n\t\t\"button_pressed\",\n\t\tfalse\n\t),\n\tPreference.new(\n\t\t\"left_tool_color\", \"Tools/ToolOptions/LeftToolColorButton\", \"color\", Color(\"0086cf\")\n\t),\n\tPreference.new(\n\t\t\"right_tool_color\", \"Tools/ToolOptions/RightToolColorButton\", \"color\", Color(\"fd6d14\")\n\t),\n\tPreference.new(\n\t\t\"tool_button_size\",\n\t\t\"Interface/ButtonOptions/ToolButtonSizeOptionButton\",\n\t\t\"selected\",\n\t\tGlobal.ButtonSize.SMALL\n\t),\n\tPreference.new(\n\t\t\"show_left_tool_icon\",\n\t\t\"Cursors/CursorsContainer/LeftToolIconCheckbox\",\n\t\t\"button_pressed\",\n\t\ttrue\n\t),\n\tPreference.new(\n\t\t\"show_right_tool_icon\",\n\t\t\"Cursors/CursorsContainer/RightToolIconCheckbox\",\n\t\t\"button_pressed\",\n\t\ttrue\n\t),\n\tPreference.new(\n\t\t\"left_square_indicator_visible\",\n\t\t\"Cursors/CursorsContainer/LeftIndicatorCheckbox\",\n\t\t\"button_pressed\",\n\t\ttrue\n\t),\n\tPreference.new(\n\t\t\"right_square_indicator_visible\",\n\t\t\"Cursors/CursorsContainer/RightIndicatorCheckbox\",\n\t\t\"button_pressed\",\n\t\ttrue\n\t),\n\tPreference.new(\n\t\t\"native_cursors\", \"Cursors/CursorsContainer/NativeCursorsCheckbox\", \"button_pressed\", false\n\t),\n\tPreference.new(\n\t\t\"cross_cursor\", \"Cursors/CursorsContainer/CrossCursorCheckbox\", \"button_pressed\", true\n\t),\n\tPreference.new(\n\t\t\"max_backed_sessions\", \"Backup/AutosaveContainer/MaxStoredSessions\", \"value\", 20.0\n\t),\n\tPreference.new(\"autosave_interval\", \"Backup/AutosaveContainer/AutosaveInterval\", \"value\", 1.0),\n\tPreference.new(\n\t\t\"enable_autosave\", \"Backup/AutosaveContainer/EnableAutosave\", \"button_pressed\", true\n\t),\n\tPreference.new(\"default_width\", \"Image/ImageOptions/ImageDefaultWidth\", \"value\", 64),\n\tPreference.new(\"default_height\", \"Image/ImageOptions/ImageDefaultHeight\", \"value\", 64),\n\tPreference.new(\"default_fill_color\", \"Image/ImageOptions/DefaultFillColor\", \"color\", Color(0)),\n\tPreference.new(\"smooth_zoom\", \"Canvas/ZoomOptions/SmoothZoom\", \"button_pressed\", true),\n\tPreference.new(\"integer_zoom\", \"Canvas/ZoomOptions/IntegerZoom\", \"button_pressed\", false),\n\tPreference.new(\"snapping_distance\", \"Canvas/SnappingOptions/DistanceValue\", \"value\", 32.0),\n\tPreference.new(\n\t\t\"pixel_grid_show_at_zoom\", \"Canvas/PixelGridOptions/ShowAtZoom\", \"value\", 1500.0\n\t),\n\tPreference.new(\n\t\t\"pixel_grid_color\", \"Canvas/PixelGridOptions/GridColor\", \"color\", Color(\"21212191\")\n\t),\n\tPreference.new(\"guide_color\", \"Canvas/GuideOptions/GuideColor\", \"color\", Color.PURPLE),\n\tPreference.new(\"checker_size\", \"Canvas/CheckerOptions/CheckerSizeValue\", \"value\", 10),\n\tPreference.new(\n\t\t\"checker_color_1\",\n\t\t\"Canvas/CheckerOptions/CheckerColor1\",\n\t\t\"color\",\n\t\tColor(0.47, 0.47, 0.47, 1)\n\t),\n\tPreference.new(\n\t\t\"checker_color_2\",\n\t\t\"Canvas/CheckerOptions/CheckerColor2\",\n\t\t\"color\",\n\t\tColor(0.34, 0.35, 0.34, 1)\n\t),\n\tPreference.new(\n\t\t\"checker_follow_movement\",\n\t\t\"Canvas/CheckerOptions/CheckerFollowMovement\",\n\t\t\"button_pressed\",\n\t\tfalse\n\t),\n\tPreference.new(\n\t\t\"checker_follow_scale\", \"Canvas/CheckerOptions/CheckerFollowScale\", \"button_pressed\", false\n\t),\n\tPreference.new(\"tilemode_opacity\", \"Canvas/CheckerOptions/TileModeOpacity\", \"value\", 1.0),\n\tPreference.new(\n\t\t\"clear_color_from\",\n\t\t\"Canvas/BackgroundOptions/ColorOptionButton\",\n\t\t\"selected\",\n\t\tGlobal.ColorFrom.THEME\n\t),\n\tPreference.new(\n\t\t\"modulate_clear_color\", \"Canvas/BackgroundOptions/BackgroundColor\", \"color\", Color.GRAY\n\t),\n\tPreference.new(\n\t\t\"select_layer_on_button_click\",\n\t\t\"Timeline/TimelineOptions/SelectLayerOnButton\",\n\t\t\"button_pressed\",\n\t\tfalse\n\t),\n\tPreference.new(\n\t\t\"onion_skinning_past_color\",\n\t\t\"Timeline/TimelineOptions/OnionSkinningPastColor\",\n\t\t\"color\",\n\t\tColor.RED\n\t),\n\tPreference.new(\n\t\t\"onion_skinning_future_color\",\n\t\t\"Timeline/TimelineOptions/OnionSkinningFutureColor\",\n\t\t\"color\",\n\t\tColor.BLUE\n\t),\n\tPreference.new(\n\t\t\"selection_animated_borders\", \"Selection/SelectionOptions/Animate\", \"button_pressed\", true\n\t),\n\tPreference.new(\n\t\t\"selection_border_color_1\", \"Selection/SelectionOptions/BorderColor1\", \"color\", Color.WHITE\n\t),\n\tPreference.new(\n\t\t\"selection_border_color_2\", \"Selection/SelectionOptions/BorderColor2\", \"color\", Color.BLACK\n\t),\n\tPreference.new(\n\t\t\"transformation_preview_alpha\",\n\t\t\"Selection/SelectionOptions/TransformationPreviewAlpha\",\n\t\t\"value\",\n\t\t0.5\n\t),\n\tPreference.new(\"fps_limit\", \"Performance/PerformanceContainer/SetFPSLimit\", \"value\", 0),\n\tPreference.new(\"max_undo_steps\", \"Performance/PerformanceContainer/MaxUndoSteps\", \"value\", 0),\n\tPreference.new(\n\t\t\"pause_when_unfocused\",\n\t\t\"Performance/PerformanceContainer/PauseAppFocus\",\n\t\t\"button_pressed\",\n\t\ttrue\n\t),\n\tPreference.new(\n\t\t\"update_continuously\",\n\t\t\"Performance/PerformanceContainer/UpdateContinuously\",\n\t\t\"button_pressed\",\n\t\tfalse\n\t),\n\tPreference.new(\n\t\t\"window_transparency\",\n\t\t\"Performance/PerformanceContainer/WindowTransparency\",\n\t\t\"button_pressed\",\n\t\tfalse,\n\t\ttrue\n\t),\n\tPreference.new(\n\t\t\"dummy_audio_driver\",\n\t\t\"Performance/PerformanceContainer/DummyAudioDriver\",\n\t\t\"button_pressed\",\n\t\tfalse,\n\t\ttrue\n\t),\n\tPreference.new(\"tablet_driver\", \"Drivers/DriversContainer/TabletDriver\", \"selected\", 0)\n]\n\nvar content_list := PackedStringArray([])\nvar selected_item := 0\n\n@onready var search_line_edit: LineEdit = %SearchLineEdit\n@onready var list: ItemList = $HSplitContainer/SearchandList/List\n@onready var right_side: VBoxContainer = $\"%RightSide\"\n@onready var language: VBoxContainer = %Language\n@onready var system_language := language.get_node(^\"System Language\") as CheckBox\n@onready var grid_options: GridContainer = %GridOptions\n@onready var autosave_container: Container = right_side.get_node(\"Backup/AutosaveContainer\")\n@onready var autosave_interval: SpinBox = autosave_container.get_node(\"AutosaveInterval\")\n@onready var themes: BoxContainer = right_side.get_node(\"Interface/Themes\")\n@onready var shortcuts: Control = right_side.get_node(\"Shortcuts/ShortcutEdit\")\n@onready var tablet_driver_label: Label = $\"%TabletDriverLabel\"\n@onready var tablet_driver: OptionButton = $\"%TabletDriver\"\n@onready var extensions: BoxContainer = right_side.get_node(\"Extensions\")\n@onready var reset_category: VBoxContainer = %Reset\n@onready var must_restart: BoxContainer = $\"%MustRestart\"\n\n\nclass Preference:\n\tvar prop_name: String\n\tvar node_path: String\n\tvar value_type: String\n\tvar default_value\n\tvar require_restart := false\n\n\tfunc _init(\n\t\t_prop_name: String,\n\t\t_node_path: String,\n\t\t_value_type: String,\n\t\t_default_value = null,\n\t\t_require_restart := false\n\t) -> void:\n\t\tprop_name = _prop_name\n\t\tnode_path = _node_path\n\t\tvalue_type = _value_type\n\t\trequire_restart = _require_restart\n\t\tif _default_value != null:\n\t\t\tdefault_value = _default_value\n\t\telse:\n\t\t\tdefault_value = Global.get(prop_name)\n\n\nfunc _ready() -> void:\n\tGlobal.font_loaded.connect(_add_fonts)\n\t# Replace OK since preference changes are being applied immediately, not after OK confirmation\n\tget_ok_button().text = \"Close\"\n\tget_ok_button().size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\n\tshortcuts.profile_option_button.item_selected.connect(func(_i): Tools.update_hint_tooltips())\n\tif shortcuts.profile_option_button.selected != 0:\n\t\t# Manually update tooltips if the shortcut profile is not the default\n\t\tTools.update_hint_tooltips()\n\tfor child in shortcuts.get_children():\n\t\tif not child is AcceptDialog:\n\t\t\tcontinue\n\t\tchild.confirmed.connect(Tools.update_hint_tooltips)\n\n\tif OS.get_name() == \"Web\":\n\t\tvar startup := right_side.get_node(^\"Startup\")\n\t\tright_side.remove_child(startup)\n\t\tstartup.queue_free()\n\t\tright_side.get_node(^\"Language\").visible = true\n\t\tGlobal.open_last_project = false\n\t\t%ClearRecentFiles.hide()\n\tif OS.get_name() == \"Windows\":\n\t\ttablet_driver_label.visible = true\n\t\ttablet_driver.visible = true\n\t\tfor driver in DisplayServer.tablet_get_driver_count():\n\t\t\tvar driver_name := DisplayServer.tablet_get_driver_name(driver)\n\t\t\ttablet_driver.add_item(driver_name, driver)\n\telse:\n\t\tvar drivers := right_side.get_node(^\"Drivers\")\n\t\tright_side.remove_child(drivers)\n\t\tdrivers.queue_free()\n\tif OS.is_sandboxed():\n\t\tget_tree().call_group(&\"NoSandbox\", &\"free\")\n\tif not OS.has_feature(\"pc\"):\n\t\tget_tree().call_group(&\"DesktopOnly\", &\"free\")\n\tif not OS.has_feature(\"mobile\"):\n\t\tget_tree().call_group(&\"MobileOnly\", &\"free\")\n\tif (\n\t\tnot DisplayServer.has_feature(DisplayServer.FEATURE_NATIVE_DIALOG_FILE)\n\t\tor OS.get_name() == \"Android\"\n\t):\n\t\t# We want to force all file dialogs to be native in Android to use SAF,\n\t\t# to avoid requesting permission, which Google discourages.\n\t\tget_tree().call_group(&\"NativeFileDialog\", &\"free\")\n\n\tfor child in right_side.get_children():\n\t\tcontent_list.append(child.name)\n\n\t# Create buttons for each language\n\tvar button_group: ButtonGroup = system_language.button_group\n\tfor locale in Global.loaded_locales:  # Create radiobuttons for each language\n\t\tvar button := CheckBox.new()\n\t\tbutton.text = Global.LANGUAGES_DICT[locale][0] + \" [%s]\" % [locale]\n\t\tbutton.name = Global.LANGUAGES_DICT[locale][1]\n\t\tbutton.tooltip_text = Global.LANGUAGES_DICT[locale][1]\n\t\tbutton.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\t\tbutton.button_group = button_group\n\t\tbutton.size_flags_horizontal = Control.SIZE_SHRINK_BEGIN\n\t\tif locale == TranslationServer.get_locale():\n\t\t\tbutton.button_pressed = true\n\t\tlanguage.add_child(button)\n\t\tbutton.pressed.connect(_on_language_pressed.bind(button.get_index()))\n\n\t_add_fonts()\n\n\tfor pref in preferences:\n\t\tif not right_side.has_node(pref.node_path):\n\t\t\tcontinue\n\t\tvar node := right_side.get_node(pref.node_path)\n\t\tvar restore_default_button := RestoreDefaultButton.new()\n\t\trestore_default_button.setting_name = pref.prop_name\n\t\trestore_default_button.value_type = pref.value_type\n\t\trestore_default_button.default_value = pref.default_value\n\t\trestore_default_button.require_restart = pref.require_restart\n\t\trestore_default_button.node = node\n\t\tif pref.node_path in [\"%ShrinkSlider\", \"%FontSizeSlider\"]:\n\t\t\t# Add the default button to the shrink slider's grandparent\n\t\t\tvar node_position := node.get_parent().get_index()\n\t\t\tnode.get_parent().get_parent().add_child(restore_default_button)\n\t\t\tnode.get_parent().get_parent().move_child(restore_default_button, node_position)\n\t\telse:\n\t\t\tvar node_position := node.get_index()\n\t\t\tnode.get_parent().add_child(restore_default_button)\n\t\t\tnode.get_parent().move_child(restore_default_button, node_position)\n\n\t\tmatch pref.value_type:\n\t\t\t\"button_pressed\":\n\t\t\t\tnode.toggled.connect(\n\t\t\t\t\t_on_Preference_value_changed.bind(pref, restore_default_button)\n\t\t\t\t)\n\t\t\t\"value\":\n\t\t\t\tnode.value_changed.connect(\n\t\t\t\t\t_on_Preference_value_changed.bind(pref, restore_default_button)\n\t\t\t\t)\n\t\t\t\"color\":\n\t\t\t\tnode.get_picker().presets_visible = false\n\t\t\t\tnode.color_changed.connect(\n\t\t\t\t\t_on_Preference_value_changed.bind(pref, restore_default_button)\n\t\t\t\t)\n\t\t\t\"selected\":\n\t\t\t\tnode.item_selected.connect(\n\t\t\t\t\t_on_Preference_value_changed.bind(pref, restore_default_button)\n\t\t\t\t)\n\t\t\t\"text\":\n\t\t\t\tnode.text_changed.connect(\n\t\t\t\t\t_on_Preference_value_changed.bind(pref, restore_default_button)\n\t\t\t\t)\n\n\t\tvar value = Global.get(pref.prop_name)\n\t\tif node is OptionButton:\n\t\t\tvar item_index = node.get_item_index(value)\n\t\t\tnode.set(pref.value_type, item_index)\n\t\telse:\n\t\t\tnode.set(pref.value_type, value)\n\t\tvar is_default: bool = value == pref.default_value\n\t\t# This is needed because color_changed doesn't fire if the color changes in code\n\t\tif typeof(value) == TYPE_VECTOR2 or typeof(value) == TYPE_COLOR:\n\t\t\tis_default = value.is_equal_approx(pref.default_value)\n\t\tdisable_restore_default_button(restore_default_button, is_default)\n\tSteamManager.set_achievement(\"ACH_PREFERENCES\")\n\n\nfunc _on_Preference_value_changed(value, pref: Preference, button: RestoreDefaultButton) -> void:\n\tvar prop := pref.prop_name\n\tvar default_value = pref.default_value\n\tvar node := right_side.get_node(pref.node_path)\n\tif node is OptionButton:\n\t\tvalue = node.get_item_id(value)\n\tGlobal.set(prop, value)\n\tif not pref.require_restart:\n\t\tGlobal.config_cache.set_value(\"preferences\", prop, value)\n\tpreference_update(pref.require_restart)\n\tvar disable: bool = Global.get(prop) == default_value\n\tif typeof(value) == TYPE_COLOR:\n\t\tdisable = Global.get(prop).is_equal_approx(default_value)\n\tdisable_restore_default_button(button, disable)\n\n\n## Add fonts to the font option button.\nfunc _add_fonts() -> void:\n\t%FontOptionButton.clear()\n\tfor font_name in Global.get_available_font_names():\n\t\t%FontOptionButton.add_item(font_name)\n\t%FontOptionButton.select(Global.theme_font_index)\n\n\nfunc preference_update(require_restart := false) -> void:\n\tif require_restart:\n\t\tmust_restart.visible = true\n\t\treturn\n\n\nfunc disable_restore_default_button(button: RestoreDefaultButton, disable: bool) -> void:\n\tbutton.disabled = disable\n\tif disable:\n\t\tbutton.mouse_default_cursor_shape = Control.CURSOR_ARROW\n\t\tbutton.tooltip_text = \"\"\n\telse:\n\t\tbutton.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\t\tbutton.tooltip_text = \"Restore default value\"\n\n\nfunc _on_PreferencesDialog_about_to_show() -> void:\n\tadd_tabs(false)\n\n\nfunc add_tabs(changed_language := false) -> void:\n\tfor item in content_list:\n\t\tlist.add_item(\" \" + tr(item))\n\n\tvar language_index := content_list.find(\"Language\")\n\tlist.select(language_index if changed_language else selected_item)\n\tautosave_interval.suffix = tr(\"minute(s)\")\n\n\nfunc _on_PreferencesDialog_visibility_changed() -> void:\n\tif not visible:\n\t\tlist.clear()\n\t\tGlobal.dialog_open(false)\n\t\tGlobal.config_cache.save(Global.CONFIG_PATH)\n\n\nfunc _on_search_line_edit_text_changed(new_text: String) -> void:\n\tif new_text.is_empty():\n\t\t# If the text is empty/the search bar gets cleared.\n\t\tthemes.visible = true\n\t\tget_tree().call_group(&\"HeaderLabels\", &\"show\")\n\t\tfor pref in preferences:\n\t\t\tif not right_side.has_node(pref.node_path):\n\t\t\t\tcontinue\n\t\t\tvar node := right_side.get_node(pref.node_path)\n\t\t\t_show_node_when_searching(node, new_text)\n\t\tfor pref in grid_options.grid_preferences:\n\t\t\tif not grid_options.has_node(pref.node_path):\n\t\t\t\tcontinue\n\t\t\tvar node := grid_options.get_node(pref.node_path)\n\t\t\t_show_node_when_searching(node, new_text)\n\t\t_show_node_when_searching(grid_options.grids_count_slider, new_text)\n\t\t_show_node_when_searching(grid_options.grids_select_container, new_text)\n\t\t_on_List_item_selected(selected_item)\n\t\treturn\n\n\t# When the search bar has text, show relevant nodes.\n\tfor child in right_side.get_children():\n\t\tchild.visible = true\n\tlanguage.visible = false\n\tthemes.visible = false\n\tshortcuts.get_parent().visible = false\n\textensions.visible = false\n\treset_category.visible = false\n\tget_tree().call_group(&\"HeaderLabels\", &\"hide\")\n\tfor pref in preferences:\n\t\tif not right_side.has_node(pref.node_path):\n\t\t\tcontinue\n\t\tvar node := right_side.get_node(pref.node_path)\n\t\t_show_node_when_searching(node, new_text)\n\tfor pref in grid_options.grid_preferences:\n\t\tif not grid_options.has_node(pref.node_path):\n\t\t\tcontinue\n\t\tvar node := grid_options.get_node(pref.node_path)\n\t\t_show_node_when_searching(node, new_text)\n\t_show_node_when_searching(grid_options.grids_count_slider, new_text)\n\t_show_node_when_searching(grid_options.grids_select_container, new_text)\n\n\nfunc _show_node_when_searching(node: Control, search_text: String) -> void:\n\tvar node_index := node.get_index()\n\tvar node_parent := node.get_parent()\n\tvar default_button := node_parent.get_child(node_index - 1)\n\tvar label := node_parent.get_child(node_index - 2)\n\tif node_parent.get_child_count() < 3 and label is not Label:\n\t\tvar node_parent_index := node_parent.get_index()\n\t\tnode = node_parent\n\t\tdefault_button = node_parent.get_parent().get_child(node_parent_index - 1)\n\t\tlabel = node_parent.get_parent().get_child(node_parent_index - 2)\n\tvar show_node := true\n\tif not search_text.is_empty():\n\t\tshow_node = search_text.is_subsequence_ofn(node.name)\n\t\tif label is Label:\n\t\t\tshow_node = show_node or search_text.is_subsequence_ofn(label.text)\n\tnode.visible = show_node\n\tdefault_button.visible = node.visible\n\tlabel.visible = node.visible\n\n\nfunc _on_List_item_selected(index: int) -> void:\n\tif not search_line_edit.text.is_empty():\n\t\tsearch_line_edit.clear()\n\tselected_item = index\n\tfor child in right_side.get_children():\n\t\tchild.visible = child.name == content_list[index]\n\n\nfunc _on_shrink_apply_button_pressed() -> void:\n\tGlobal.control.set_display_scale()\n\tGlobal.control.set_mobile_fullscreen_safe_area()\n\thide()\n\tpopup_centered_clamped(Vector2(600, 400))\n\tGlobal.dialog_open(true)\n\tawait get_tree().process_frame\n\tGlobal.camera.fit_to_frame(Global.current_project.size)\n\n\nfunc _on_font_size_apply_button_pressed() -> void:\n\tGlobal.control.theme.default_font_size = Global.font_size\n\tGlobal.control.theme.set_font_size(\"font_size\", \"HeaderSmall\", Global.font_size + 2)\n\n\nfunc _on_language_pressed(index: int) -> void:\n\tvar locale := OS.get_locale()\n\tif index > 1:\n\t\tlocale = Global.loaded_locales[index - 2]\n\tGlobal.set_locale(locale)\n\tGlobal.config_cache.set_value(\"preferences\", \"locale\", TranslationServer.get_locale())\n\tGlobal.config_cache.save(Global.CONFIG_PATH)\n\n\t# Update some UI elements with the new translations\n\tTools.update_hint_tooltips()\n\tlist.clear()\n\tadd_tabs(true)\n\n\nfunc _on_reset_button_pressed() -> void:\n\t$ResetOptionsConfirmation.popup_centered_clamped()\n\n\nfunc _on_reset_options_confirmation_confirmed() -> void:\n\t# Clear preferences\n\tif %ResetPreferences.button_pressed:\n\t\tsystem_language.button_pressed = true\n\t\t_on_language_pressed(0)\n\t\tthemes.buttons_container.get_child(0).button_pressed = true\n\t\tThemes.change_theme(0)\n\t\tfor pref in preferences:\n\t\t\tvar property_name := pref.prop_name\n\t\t\tvar default_value = pref.default_value\n\t\t\tif right_side.has_node(pref.node_path):\n\t\t\t\tvar node := right_side.get_node(pref.node_path)\n\t\t\t\tif is_instance_valid(node):\n\t\t\t\t\tnode.set(pref.value_type, default_value)\n\t\t\tGlobal.set(property_name, default_value)\n\t\t_on_shrink_apply_button_pressed()\n\t\t_on_font_size_apply_button_pressed()\n\t\tGlobal.config_cache.erase_section(\"preferences\")\n\t# Clear timeline options\n\tif %ResetTimelineOptions.button_pressed:\n\t\tGlobal.animation_timeline.reset_settings()\n\t\tGlobal.config_cache.erase_section(\"timeline\")\n\t# Clear tool options\n\tif %ResetAllToolOptions.button_pressed:\n\t\tGlobal.config_cache.erase_section(\"color_picker\")\n\t\tGlobal.config_cache.erase_section(\"tools\")\n\t\tGlobal.config_cache.erase_section(\"left_tool\")\n\t\tGlobal.config_cache.erase_section(\"right_tool\")\n\t\tTools.options_reset.emit()\n\t# Remove all extensions\n\tif %RemoveAllExtensions.button_pressed:\n\t\tvar extensions_node := Global.control.get_node(\"Extensions\") as Extensions\n\t\tvar extensions_list := extensions_node.extensions.duplicate()\n\t\tfor extension in extensions_list:\n\t\t\textensions_node.uninstall_extension(extension)\n\t\tGlobal.config_cache.erase_section(\"extensions\")\n\t# Remove all backups\n\tif %RemoveAllBackups.button_pressed:\n\t\tfor session_folder in DirAccess.get_directories_at(OpenSave.BACKUPS_DIRECTORY):\n\t\t\tvar folder_path := OpenSave.BACKUPS_DIRECTORY.path_join(session_folder)\n\t\t\tfor file in DirAccess.get_files_at(folder_path):\n\t\t\t\tvar file_path := folder_path.path_join(file)\n\t\t\t\tDirAccess.remove_absolute(file_path)\n\t\t\tDirAccess.remove_absolute(folder_path)\n\t# Clear recent files list\n\tif %ClearRecentFiles.button_pressed:\n\t\tGlobal.config_cache.erase_section_key(\"data\", \"last_project_path\")\n\t\tGlobal.config_cache.erase_section_key(\"data\", \"recent_projects\")\n\t\tGlobal.top_menu_container.recent_projects_submenu.clear()\n\n\tGlobal.config_cache.save(Global.CONFIG_PATH)\n"
  },
  {
    "path": "src/Preferences/PreferencesDialog.gd.uid",
    "content": "uid://dek2dqmbe5dt3\n"
  },
  {
    "path": "src/Preferences/PreferencesDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://b3hkjj3s6pe4x\"]\n\n[ext_resource type=\"Script\" uid=\"uid://dek2dqmbe5dt3\" path=\"res://src/Preferences/PreferencesDialog.gd\" id=\"1\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://0ij8aasy3k3b\" path=\"res://addons/keychain/assets/search.svg\" id=\"2_praud\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bq7ibhm0txl5p\" path=\"res://addons/keychain/ShortcutEdit.tscn\" id=\"3\"]\n[ext_resource type=\"Script\" uid=\"uid://dx8vbnfkoahh6\" path=\"res://src/Preferences/ThemesPreferences.gd\" id=\"3_nvl8k\"]\n[ext_resource type=\"Script\" uid=\"uid://cybud13k7nk1c\" path=\"res://src/Preferences/GridPreferences.gd\" id=\"4_76iff\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"5_rlmsh\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bbnqcxa20a5a5\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\" id=\"7\"]\n[ext_resource type=\"Script\" uid=\"uid://dxjamv5np8av3\" path=\"res://src/Preferences/ExtensionsPreferences.gd\" id=\"7_8ume5\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"8\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://chy5d42l72crk\" path=\"res://src/UI/ExtensionExplorer/ExtensionExplorer.tscn\" id=\"8_jmnx8\"]\n\n[sub_resource type=\"ButtonGroup\" id=\"ButtonGroup_8vsfb\"]\n\n[node name=\"PreferencesDialog\" type=\"AcceptDialog\" unique_id=903428661]\noversampling_override = 1.0\ntitle = \"Preferences\"\nposition = Vector2i(0, 36)\nsize = Vector2i(800, 500)\nscript = ExtResource(\"1\")\n\n[node name=\"HSplitContainer\" type=\"HSplitContainer\" parent=\".\" unique_id=628880388]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 8.0\noffset_top = 8.0\noffset_right = -8.0\noffset_bottom = -49.0\nsize_flags_horizontal = 3\ntheme_override_constants/separation = 20\ntheme_override_constants/autohide = 0\n\n[node name=\"SearchandList\" type=\"VBoxContainer\" parent=\"HSplitContainer\" unique_id=290079676]\ncustom_minimum_size = Vector2(120, 0)\nlayout_mode = 2\n\n[node name=\"SearchLineEdit\" type=\"LineEdit\" parent=\"HSplitContainer/SearchandList\" unique_id=1278841217]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nplaceholder_text = \"Search\"\nclear_button_enabled = true\nright_icon = ExtResource(\"2_praud\")\n\n[node name=\"List\" type=\"ItemList\" parent=\"HSplitContainer/SearchandList\" unique_id=1463984799]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"HSplitContainer\" unique_id=2089711935]\nlayout_mode = 2\n\n[node name=\"ScrollContainer\" type=\"ScrollContainer\" parent=\"HSplitContainer/VBoxContainer\" unique_id=2072505239]\ncustom_minimum_size = Vector2(100, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"RightSide\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer\" unique_id=1985942867]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"Startup\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide\" unique_id=1563469815]\nlayout_mode = 2\n\n[node name=\"StartupHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Startup\" unique_id=900597839 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Startup/StartupHeader\" unique_id=459165217]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Startup\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Startup/StartupHeader\" unique_id=75653484]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"StartupContainer\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Startup\" unique_id=2042545579]\nlayout_mode = 2\ncolumns = 3\n\n[node name=\"OpenLastProjectLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Startup/StartupContainer\" unique_id=1151940046]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Open last project on startup\"\n\n[node name=\"OpenLastProject\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Startup/StartupContainer\" unique_id=111562442]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Opens last opened project on startup\"\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"QuitConfirmationLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Startup/StartupContainer\" unique_id=222526746]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Quit confirmation\"\n\n[node name=\"QuitConfirmation\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Startup/StartupContainer\" unique_id=1754105967]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"FFMPEGPathLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Startup/StartupContainer\" unique_id=34180567 groups=[\"DesktopOnly\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"FFMPEG path\"\n\n[node name=\"FFMPEGPath\" type=\"LineEdit\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Startup/StartupContainer\" unique_id=465096376 groups=[\"DesktopOnly\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"Language\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide\" unique_id=771798959]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\n\n[node name=\"LanguageHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Language\" unique_id=1905956384]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Language/LanguageHeader\" unique_id=551249573]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Language\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Language/LanguageHeader\" unique_id=1493154484]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"System Language\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Language\" unique_id=1803960261]\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"System Language\"\nmouse_default_cursor_shape = 2\nbutton_pressed = true\nbutton_group = SubResource(\"ButtonGroup_8vsfb\")\ntext = \"System Language\"\n\n[node name=\"Interface\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide\" unique_id=1545393531]\nvisible = false\nlayout_mode = 2\n\n[node name=\"InterfaceHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface\" unique_id=1895464287 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceHeader\" unique_id=1736260386]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Interface\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceHeader\" unique_id=214601175]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"InterfaceOptions\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface\" unique_id=1063929304]\nlayout_mode = 2\ncolumns = 3\n\n[node name=\"ShrinkLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=264035340]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Display scale:\"\n\n[node name=\"ShrinkContainer\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=1849360573]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"ShrinkSlider\" type=\"TextureProgressBar\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions/ShrinkContainer\" unique_id=500888479]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 0.5\nmax_value = 4.0\nstep = 0.25\nvalue = 1.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"8\")\n\n[node name=\"ShrinkApplyButton\" type=\"Button\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions/ShrinkContainer\" unique_id=593115609]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Apply\"\n\n[node name=\"FontSizeLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=936928817]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Font size:\"\n\n[node name=\"FontSizeContainer\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=185179612]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"FontSizeSlider\" type=\"TextureProgressBar\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions/FontSizeContainer\" unique_id=1041107682]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 4.0\nmax_value = 32.0\nvalue = 6.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"8\")\n\n[node name=\"FontSizeApplyButton\" type=\"Button\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions/FontSizeContainer\" unique_id=584273172]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Apply\"\n\n[node name=\"FontLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=1065654499]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Font:\"\n\n[node name=\"FontOptionButton\" type=\"OptionButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=1451717562]\nunique_name_in_owner = true\nlayout_mode = 2\n\n[node name=\"ScreenOrientationLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=1833295930 groups=[\"MobileOnly\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Screen orientation:\"\n\n[node name=\"ScreenOrientationOptionButton\" type=\"OptionButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=394327867 groups=[\"MobileOnly\"]]\nlayout_mode = 2\nselected = 0\nitem_count = 3\npopup/item_0/text = \"Auto\"\npopup/item_0/id = 6\npopup/item_1/text = \"Landscape\"\npopup/item_1/id = 4\npopup/item_2/text = \"Portrait\"\npopup/item_2/id = 5\n\n[node name=\"DimLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=911983286]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Dim interface on dialog popup\"\n\n[node name=\"DimCheckBox\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=1345583296]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"ShowNotificationLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=433460795]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Show notification labels\"\n\n[node name=\"ShowNotificationCheckBox\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=1242688440]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"NativeFileDialogsLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=1080421200 groups=[\"NativeFileDialog\", \"NoSandbox\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Use native file dialogs\"\n\n[node name=\"NativeFileDialogs\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=1686591217 groups=[\"NativeFileDialog\", \"NoSandbox\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"When this setting is enabled, the native file dialogs of the operating system are being used, instead of Pixelorama's custom ones.\"\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"SingleWindowModeLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=1448861993 groups=[\"DesktopOnly\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Single window mode\"\n\n[node name=\"SingleWindowMode\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=1410980692 groups=[\"DesktopOnly\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"When this setting is enabled, Pixelorama's subwindows will be embedded in the main window, otherwise each dialog will be its own separate window.\"\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"CollapseMainMenuLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=1021982752]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Collapse main menu\"\n\n[node name=\"CollapseMainMenu\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions\" unique_id=665816244]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"ThemesHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface\" unique_id=1872888973 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/ThemesHeader\" unique_id=58743703]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Themes\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/ThemesHeader\" unique_id=1884744089]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"Themes\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface\" unique_id=153560318]\nlayout_mode = 2\nscript = ExtResource(\"3_nvl8k\")\n\n[node name=\"ThemeButtons\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/Themes\" unique_id=370270642]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"ThemeColors\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/Themes\" unique_id=322880514]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntheme_override_constants/separation = 16\n\n[node name=\"ButtonHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface\" unique_id=4954884 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/ButtonHeader\" unique_id=314586079]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Buttons\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/ButtonHeader\" unique_id=1766494602]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"ButtonOptions\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface\" unique_id=1600284949]\nlayout_mode = 2\ncolumns = 3\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/ButtonOptions\" unique_id=1972884047]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Tool button size:\"\n\n[node name=\"ToolButtonSizeOptionButton\" type=\"OptionButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/ButtonOptions\" unique_id=651072558]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 2\npopup/item_0/text = \"Small\"\npopup/item_0/id = 0\npopup/item_1/text = \"Big\"\npopup/item_1/id = 1\n\n[node name=\"Label2\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/ButtonOptions\" unique_id=250908542]\nlayout_mode = 2\ntext = \"Icon color from:\"\n\n[node name=\"IconColorOptionButton\" type=\"OptionButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/ButtonOptions\" unique_id=990110604]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 2\npopup/item_0/text = \"Theme\"\npopup/item_0/id = 0\npopup/item_1/text = \"Custom\"\npopup/item_1/id = 1\n\n[node name=\"Label3\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/ButtonOptions\" unique_id=1863691022]\nlayout_mode = 2\ntext = \"Icon color:\"\n\n[node name=\"IconColorButton\" type=\"ColorPickerButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/ButtonOptions\" unique_id=1048917968]\ncustom_minimum_size = Vector2(64, 20)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ncolor = Color(0.75, 0.75, 0.75, 1)\n\n[node name=\"Canvas\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide\" unique_id=1561441708]\nvisible = false\nlayout_mode = 2\n\n[node name=\"ZoomHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas\" unique_id=535474102 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"ZoomLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/ZoomHeader\" unique_id=362088951]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Zoom\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/ZoomHeader\" unique_id=1011336316]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"ZoomOptions\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas\" unique_id=2040492270]\nlayout_mode = 2\ncolumns = 3\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/ZoomOptions\" unique_id=1854083987]\ncustom_minimum_size = Vector2(110, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Smooth Zoom\"\n\n[node name=\"SmoothZoom\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/ZoomOptions\" unique_id=1979035944]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Adds a smoother transition when zooming in or out\"\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"Label2\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/ZoomOptions\" unique_id=826567461]\ncustom_minimum_size = Vector2(110, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Integer Zoom\"\n\n[node name=\"IntegerZoom\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/ZoomOptions\" unique_id=1739108670]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Restricts the value to be an integer multiple of 100%\"\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"GuideHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas\" unique_id=1064458972 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"GuideLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GuideHeader\" unique_id=2108952364]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Guides\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GuideHeader\" unique_id=2058245641]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"GuideOptions\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas\" unique_id=1321435594]\nlayout_mode = 2\ntheme_override_constants/h_separation = 4\ntheme_override_constants/v_separation = 4\ncolumns = 3\n\n[node name=\"GuideColorLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GuideOptions\" unique_id=81661735]\ncustom_minimum_size = Vector2(110, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"A color of ruler guides displayed on the canvas\"\nmouse_filter = 1\ntext = \"Guides color:\"\n\n[node name=\"GuideColor\" type=\"ColorPickerButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GuideOptions\" unique_id=1380545427]\ncustom_minimum_size = Vector2(64, 20)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"A color of ruler guides displayed on the canvas\"\nmouse_default_cursor_shape = 2\ncolor = Color(0.63, 0.13, 0.94, 1)\n\n[node name=\"SnappingHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas\" unique_id=2075192206 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"SnappingLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/SnappingHeader\" unique_id=645888014]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Snapping\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/SnappingHeader\" unique_id=807057084]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"SnappingOptions\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas\" unique_id=978642457]\nlayout_mode = 2\ntheme_override_constants/h_separation = 4\ntheme_override_constants/v_separation = 4\ncolumns = 3\n\n[node name=\"DistanceLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/SnappingOptions\" unique_id=398585434]\ncustom_minimum_size = Vector2(110, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nmouse_filter = 1\ntext = \"Snapping distance:\"\n\n[node name=\"DistanceValue\" type=\"TextureProgressBar\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/SnappingOptions\" unique_id=1577239260]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"This is the distance in screen pixels where guide and grid snapping gets activated.\"\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nmax_value = 255.0\nvalue = 32.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"8\")\nsuffix = \"px\"\nsnap_step = 10.0\n\n[node name=\"GridHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas\" unique_id=215667851 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"GridLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridHeader\" unique_id=869855590]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Grid\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridHeader\" unique_id=1524806959]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"GridOptions\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas\" unique_id=25290666]\nunique_name_in_owner = true\nlayout_mode = 2\ntheme_override_constants/h_separation = 4\ntheme_override_constants/v_separation = 4\ncolumns = 3\nscript = ExtResource(\"4_76iff\")\n\n[node name=\"GridsCountLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=1675741372]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Grids visible:\"\n\n[node name=\"Spacer\" type=\"Control\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=29449997]\nlayout_mode = 2\n\n[node name=\"GridsCount\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=1094094664 instance=ExtResource(\"5_rlmsh\")]\nlayout_mode = 2\nmin_value = 1.0\nmax_value = 10.0\nvalue = 1.0\n\n[node name=\"GridsSelectLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=355755179]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Editing grid:\"\n\n[node name=\"Spacer2\" type=\"Control\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=1812473260]\nlayout_mode = 2\n\n[node name=\"GridsSelectContainer\" type=\"HFlowContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=151919839]\nlayout_mode = 2\n\n[node name=\"GridTypeLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=646433986]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Sets the type of the grid between rectangular, isometric or both\"\nmouse_filter = 1\ntext = \"Grid type:\"\n\n[node name=\"GridType\" type=\"OptionButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=365606391]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Sets the type of the grid between rectangular, isometric or both\"\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 4\npopup/item_0/text = \"Rectangular\"\npopup/item_0/id = 0\npopup/item_1/text = \"Isometric\"\npopup/item_1/id = 1\npopup/item_2/text = \"Hexagonal (pointy-top)\"\npopup/item_2/id = 2\npopup/item_3/text = \"Hexagonal (flat-top)\"\npopup/item_3/id = 3\n\n[node name=\"GridSizeLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=362301710]\ncustom_minimum_size = Vector2(110, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 1\nmouse_filter = 1\ntext = \"Grid size:\"\n\n[node name=\"GridSizeValue\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=214590981 instance=ExtResource(\"7\")]\nlayout_mode = 2\nsize_flags_horizontal = 3\nvalue = Vector2(2, 2)\nmin_value = Vector2(1, 1)\nallow_greater = true\nshow_ratio = true\nprefix_x = \"Width:\"\nprefix_y = \"Height:\"\nsuffix_x = \"px\"\nsuffix_y = \"px\"\n\n[node name=\"GridOffsetLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=801237451]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 1\ntooltip_text = \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nmouse_filter = 1\ntext = \"Grid offset:\"\n\n[node name=\"GridOffsetValue\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=2056210960 instance=ExtResource(\"7\")]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Sets grid's offset from the canvas origin (top left corner of the image)\"\nallow_greater = true\nallow_lesser = true\nsuffix_x = \"px\"\nsuffix_y = \"px\"\n\n[node name=\"GridDrawOverTileModeLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=176178032]\ncustom_minimum_size = Vector2(110, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"If disabled, the grid will be drawn only over the original image\"\nmouse_filter = 1\ntext = \"Draw over Tile Mode:\"\n\n[node name=\"GridDrawOverTileMode\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=419700051]\nlayout_mode = 2\ntooltip_text = \"If disabled, the grid will be drawn only over the original image\"\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"PixelatedLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=1700005513]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Pixelated\"\n\n[node name=\"GridPixelated\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=1201043390]\nlayout_mode = 2\ndisabled = true\ntext = \"On\"\nclip_text = true\n\n[node name=\"YSeperatedLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=1788843291]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Y Separated\"\n\n[node name=\"GridYSeperated\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=996259005]\nlayout_mode = 2\ntooltip_text = \"Disabled: Tiles below start immediately after above tiles.\n\nEnabled: Tiles below start with a vertical offset depending on tile size\"\ndisabled = true\ntext = \"On\"\n\n[node name=\"GridColorLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=57528496]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"A color of the grid\"\nmouse_filter = 1\ntext = \"Grid color:\"\n\n[node name=\"GridColor\" type=\"ColorPickerButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" unique_id=1599852557]\ncustom_minimum_size = Vector2(64, 20)\nlayout_mode = 2\ntooltip_text = \"A color of the grid\"\nmouse_default_cursor_shape = 2\n\n[node name=\"PixelGridHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas\" unique_id=1076018001 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"PixelGridLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/PixelGridHeader\" unique_id=1659330570]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Pixel Grid\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/PixelGridHeader\" unique_id=541566552]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"PixelGridOptions\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas\" unique_id=1516636899]\nlayout_mode = 2\ntheme_override_constants/h_separation = 4\ntheme_override_constants/v_separation = 4\ncolumns = 3\n\n[node name=\"ShowAtZoomLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/PixelGridOptions\" unique_id=496426551]\ncustom_minimum_size = Vector2(110, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Sets the minimal zoom at which pixel grid will be shown\"\nmouse_filter = 1\ntext = \"Show at zoom:\"\n\n[node name=\"ShowAtZoom\" type=\"TextureProgressBar\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/PixelGridOptions\" unique_id=581068369]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Sets the minimal zoom at which pixel grid will be shown\"\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 50.0\nmax_value = 15000.0\nstep = 50.0\nvalue = 1500.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"8\")\nsuffix = \"%\"\nsnap_step = 100.0\n\n[node name=\"GridColorLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/PixelGridOptions\" unique_id=119146772]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"A color of the pixel grid\"\nmouse_filter = 1\ntext = \"Pixel grid color:\"\n\n[node name=\"GridColor\" type=\"ColorPickerButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/PixelGridOptions\" unique_id=854719042]\ncustom_minimum_size = Vector2(64, 20)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"A color of the pixel grid\"\nmouse_default_cursor_shape = 2\n\n[node name=\"TransparencyHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas\" unique_id=1630825351 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"TransparencyLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/TransparencyHeader\" unique_id=1906609185]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Transparency\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/TransparencyHeader\" unique_id=51885050]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"CheckerOptions\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas\" unique_id=1080793438]\nlayout_mode = 2\ntheme_override_constants/h_separation = 4\ntheme_override_constants/v_separation = 4\ncolumns = 3\n\n[node name=\"SizeLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/CheckerOptions\" unique_id=1582085567]\ncustom_minimum_size = Vector2(110, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Size of the transparent checker background\"\nmouse_filter = 1\ntext = \"Checker size:\"\n\n[node name=\"CheckerSizeValue\" type=\"TextureProgressBar\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/CheckerOptions\" unique_id=151272836]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Size of the transparent checker background\"\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nmax_value = 1000.0\nvalue = 10.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"8\")\nsnap_step = 10.0\n\n[node name=\"CheckerColor1Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/CheckerOptions\" unique_id=1792482207]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"First color of the transparent checker background\"\nmouse_filter = 1\ntext = \"Checker color 1:\"\n\n[node name=\"CheckerColor1\" type=\"ColorPickerButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/CheckerOptions\" unique_id=890079261]\ncustom_minimum_size = Vector2(64, 20)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"First color of the transparent checker background\"\nmouse_default_cursor_shape = 2\ncolor = Color(0.470588, 0.470588, 0.470588, 1)\n\n[node name=\"CheckerColor2Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/CheckerOptions\" unique_id=369886268]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Second color of the transparent checker background\"\nmouse_filter = 1\ntext = \"Checker color 2:\"\n\n[node name=\"CheckerColor2\" type=\"ColorPickerButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/CheckerOptions\" unique_id=2012600059]\ncustom_minimum_size = Vector2(64, 20)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Second color of the transparent checker background\"\nmouse_default_cursor_shape = 2\ncolor = Color(0.341176, 0.34902, 0.341176, 1)\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/CheckerOptions\" unique_id=1384299143]\ncustom_minimum_size = Vector2(110, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 1\ntext = \"Follow Canvas Movement\"\n\n[node name=\"CheckerFollowMovement\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/CheckerOptions\" unique_id=1613364946]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"The transparent checker follow the movement of canvas\"\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"Label2\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/CheckerOptions\" unique_id=1128626743]\ncustom_minimum_size = Vector2(110, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 1\ntext = \"Follow Canvas Zoom Level\"\n\n[node name=\"CheckerFollowScale\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/CheckerOptions\" unique_id=1898874099]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"The transparent checker follow the zoom level of canvas\"\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"Label3\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/CheckerOptions\" unique_id=1822424898]\ncustom_minimum_size = Vector2(110, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 1\ntext = \"Tile mode opacity:\"\n\n[node name=\"TileModeOpacity\" type=\"TextureProgressBar\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/CheckerOptions\" unique_id=1537361059]\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 1.0\nstep = 0.01\nvalue = 1.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"8\")\nsnap_step = 0.1\n\n[node name=\"BackgroundHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas\" unique_id=1147276346 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/BackgroundHeader\" unique_id=1128383153]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Background\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/BackgroundHeader\" unique_id=1790630177]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"BackgroundOptions\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas\" unique_id=202912210]\nlayout_mode = 2\ntheme_override_constants/h_separation = 4\ntheme_override_constants/v_separation = 4\ncolumns = 3\n\n[node name=\"ColorFromLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/BackgroundOptions\" unique_id=1320026830]\ncustom_minimum_size = Vector2(110, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 1\ntext = \"Background color from:\"\n\n[node name=\"ColorOptionButton\" type=\"OptionButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/BackgroundOptions\" unique_id=318317743]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 2\npopup/item_0/text = \"Theme\"\npopup/item_0/id = 0\npopup/item_1/text = \"Custom\"\npopup/item_1/id = 1\n\n[node name=\"ColorLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/BackgroundOptions\" unique_id=1530363288]\nlayout_mode = 2\nmouse_filter = 1\ntext = \"Background color:\"\n\n[node name=\"BackgroundColor\" type=\"ColorPickerButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/BackgroundOptions\" unique_id=1003812793]\ncustom_minimum_size = Vector2(64, 20)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ncolor = Color(0.470588, 0.470588, 0.470588, 1)\n\n[node name=\"Timeline\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide\" unique_id=1361637336]\nvisible = false\nlayout_mode = 2\n\n[node name=\"TimelineHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Timeline\" unique_id=1597061057 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Timeline/TimelineHeader\" unique_id=1557400348]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Timeline\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Timeline/TimelineHeader\" unique_id=69131920]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"TimelineOptions\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Timeline\" unique_id=1643892956]\nlayout_mode = 2\ntheme_override_constants/h_separation = 4\ntheme_override_constants/v_separation = 4\ncolumns = 3\n\n[node name=\"SelectLayerOnButtonLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Timeline/TimelineOptions\" unique_id=790644009]\ncustom_minimum_size = Vector2(110, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Select layer when clicking on one of its buttons:\"\n\n[node name=\"SelectLayerOnButton\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Timeline/TimelineOptions\" unique_id=1656187791]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"OnionSkinningPastColorLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Timeline/TimelineOptions\" unique_id=445210351]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Onion skinning past color:\"\n\n[node name=\"OnionSkinningPastColor\" type=\"ColorPickerButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Timeline/TimelineOptions\" unique_id=646798904]\ncustom_minimum_size = Vector2(64, 20)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ncolor = Color(1, 0, 0, 1)\n\n[node name=\"OnionSkinningFutureColorLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Timeline/TimelineOptions\" unique_id=1395983268]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Onion skinning future color:\"\n\n[node name=\"OnionSkinningFutureColor\" type=\"ColorPickerButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Timeline/TimelineOptions\" unique_id=1095794229]\ncustom_minimum_size = Vector2(64, 20)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ncolor = Color(0, 0, 1, 1)\n\n[node name=\"Tools\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide\" unique_id=718539927]\nvisible = false\nlayout_mode = 2\n\n[node name=\"ToolOptions\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Tools\" unique_id=508595581]\nlayout_mode = 2\ncolumns = 3\n\n[node name=\"SingleToolModeLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Tools/ToolOptions\" unique_id=1865489429]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmouse_filter = 1\ntext = \"Single tool mode\"\n\n[node name=\"SingleToolModeCheckBox\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Tools/ToolOptions\" unique_id=1173978563]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"If this is enabled, the right mouse button will always activate the same tool as the left mouse button.\"\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"ShareOptionsLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Tools/ToolOptions\" unique_id=1285804480]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"If this is enabled, options will be synced between the left and the right tool.\nFor example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmouse_filter = 1\ntext = \"Share options between left and right tools\"\n\n[node name=\"ShareOptionsCheckBox\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Tools/ToolOptions\" unique_id=1440690003]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"If this is enabled, options will be synced between the left and the right tool.\nFor example, both tools will share the same brush size, and changing it on one tool will instantly change on the other.\"\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"ResetSwapLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Tools/ToolOptions\" unique_id=1531957513]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 1\ntext = \"Reverse tool swap on shortcut release\"\n\n[node name=\"ResetSwapCheckBox\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Tools/ToolOptions\" unique_id=299297280]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"SwapColorWithToolLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Tools/ToolOptions\" unique_id=1008374465]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 1\ntext = \"Swap colors when swapping tools\"\n\n[node name=\"SwapColorWithToolCheckBox\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Tools/ToolOptions\" unique_id=302883789]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"LeftToolColorLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Tools/ToolOptions\" unique_id=1055178686]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Left tool color:\"\n\n[node name=\"LeftToolColorButton\" type=\"ColorPickerButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Tools/ToolOptions\" unique_id=75661995]\ncustom_minimum_size = Vector2(64, 20)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ncolor = Color(0, 0.52549, 0.811765, 1)\n\n[node name=\"RightToolColorLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Tools/ToolOptions\" unique_id=1774140156]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Right tool color:\"\n\n[node name=\"RightToolColorButton\" type=\"ColorPickerButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Tools/ToolOptions\" unique_id=210597057]\ncustom_minimum_size = Vector2(64, 20)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ncolor = Color(0.992157, 0.427451, 0.0784314, 1)\n\n[node name=\"Selection\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide\" unique_id=1692342142]\nvisible = false\nlayout_mode = 2\n\n[node name=\"SelectionHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Selection\" unique_id=33563362 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Selection/SelectionHeader\" unique_id=1659940875]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Selection\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Selection/SelectionHeader\" unique_id=390258308]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"SelectionOptions\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Selection\" unique_id=899083069]\nlayout_mode = 2\ntheme_override_constants/h_separation = 4\ntheme_override_constants/v_separation = 4\ncolumns = 3\n\n[node name=\"AnimateLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Selection/SelectionOptions\" unique_id=4538832]\ncustom_minimum_size = Vector2(110, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Animated selection borders\"\n\n[node name=\"Animate\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Selection/SelectionOptions\" unique_id=1756082178]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"BorderColor1Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Selection/SelectionOptions\" unique_id=199518191]\nlayout_mode = 2\ntext = \"Border color 1:\"\n\n[node name=\"BorderColor1\" type=\"ColorPickerButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Selection/SelectionOptions\" unique_id=1109994579]\ncustom_minimum_size = Vector2(64, 20)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ncolor = Color(1, 1, 1, 1)\n\n[node name=\"BorderColor2Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Selection/SelectionOptions\" unique_id=1174975695]\nlayout_mode = 2\ntext = \"Border color 2:\"\n\n[node name=\"BorderColor2\" type=\"ColorPickerButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Selection/SelectionOptions\" unique_id=1047319312]\ncustom_minimum_size = Vector2(64, 20)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\n\n[node name=\"TransformationPreviewAlphaLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Selection/SelectionOptions\" unique_id=659701038]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Transformation preview alpha:\"\n\n[node name=\"TransformationPreviewAlpha\" type=\"TextureProgressBar\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Selection/SelectionOptions\" unique_id=1577721106]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 1.0\nstep = 0.01\nvalue = 0.5\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"8\")\nmetadata/_custom_type_script = \"uid://tfdhqto6j5j0\"\n\n[node name=\"Shortcuts\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide\" unique_id=709100301]\nvisible = false\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"ShortcutHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Shortcuts\" unique_id=459866276 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Shortcuts/ShortcutHeader\" unique_id=1412561518]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Shortcuts\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Shortcuts/ShortcutHeader\" unique_id=1421761389]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"ShortcutEdit\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Shortcuts\" unique_id=2049703513 instance=ExtResource(\"3\")]\nlayout_mode = 2\n\n[node name=\"Backup\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide\" unique_id=1886005275]\nvisible = false\nlayout_mode = 2\n\n[node name=\"BackupHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Backup\" unique_id=713437029 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Backup/BackupHeader\" unique_id=676273720]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Backup\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Backup/BackupHeader\" unique_id=787374861]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"AutosaveContainer\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Backup\" unique_id=1948323099]\nlayout_mode = 2\ncolumns = 3\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Backup/AutosaveContainer\" unique_id=463116683]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Enable autosave\"\n\n[node name=\"EnableAutosave\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Backup/AutosaveContainer\" unique_id=734819418]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"MaxStoredSessionsLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Backup/AutosaveContainer\" unique_id=854807030]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Maximum backed sessions:\"\n\n[node name=\"MaxStoredSessions\" type=\"SpinBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Backup/AutosaveContainer\" unique_id=1160596235]\ncustom_minimum_size = Vector2(95, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmin_value = 1.0\nvalue = 20.0\nallow_greater = true\n\n[node name=\"AutosaveIntervalLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Backup/AutosaveContainer\" unique_id=1727061825]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Autosave interval:\"\n\n[node name=\"AutosaveInterval\" type=\"SpinBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Backup/AutosaveContainer\" unique_id=203430546]\ncustom_minimum_size = Vector2(95, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmin_value = 0.1\nmax_value = 30.0\nstep = 0.25\nvalue = 1.1\nsuffix = \"minute(s)\"\n\n[node name=\"Performance\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide\" unique_id=1548055898]\nvisible = false\nlayout_mode = 2\n\n[node name=\"PerformanceHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Performance\" unique_id=315490513 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Performance/PerformanceHeader\" unique_id=2068659533]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Performance\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Performance/PerformanceHeader\" unique_id=2039388766]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"PerformanceContainer\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Performance\" unique_id=2124694885]\nlayout_mode = 2\ncolumns = 3\n\n[node name=\"SetFPSLimitLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Performance/PerformanceContainer\" unique_id=243239163]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmouse_filter = 1\ntext = \"Set application FPS limit:\"\n\n[node name=\"SetFPSLimit\" type=\"SpinBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Performance/PerformanceContainer\" unique_id=1528762354]\ncustom_minimum_size = Vector2(95, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Sets the limit of the application's frames per second. The lower the number, the lower the CPU usage, but the application gets slower, choppier and unresponsive. 0 means that there is no limit.\"\nmouse_default_cursor_shape = 2\nmax_value = 144.0\n\n[node name=\"MaxUndoStepsLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Performance/PerformanceContainer\" unique_id=730991182]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 1\ntext = \"Max undo steps:\"\n\n[node name=\"MaxUndoSteps\" type=\"SpinBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Performance/PerformanceContainer\" unique_id=1026177271]\ncustom_minimum_size = Vector2(95, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmax_value = 1000.0\nallow_greater = true\n\n[node name=\"PauseAppFocusLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Performance/PerformanceContainer\" unique_id=599983267]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmouse_filter = 1\ntext = \"Pause application when it loses focus\"\n\n[node name=\"PauseAppFocus\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Performance/PerformanceContainer\" unique_id=581941784]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"If this is toggled on, when the application's window loses focus, it gets paused. This helps lower CPU usage when idle. The application gets unpaused when the mouse enters the application's window.\"\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"UpdateContinuouslyLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Performance/PerformanceContainer\" unique_id=128001647]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmouse_filter = 1\ntext = \"Update continuously\"\n\n[node name=\"UpdateContinuously\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Performance/PerformanceContainer\" unique_id=709224560]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"If this is toggled on, the application will redraw the screen continuously, even while it's not used. Turning this off helps lower CPU and GPU usage when idle.\"\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"WindowTransparencyLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Performance/PerformanceContainer\" unique_id=433249142 groups=[\"DesktopOnly\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmouse_filter = 1\ntext = \"Enable window transparency\"\n\n[node name=\"WindowTransparency\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Performance/PerformanceContainer\" unique_id=156053227 groups=[\"DesktopOnly\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"If enabled, the application window can become transparent. This affects performance, so keep it off if you don't need it.\"\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"DummyAudioDriverLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Performance/PerformanceContainer\" unique_id=555036522 groups=[\"DesktopOnly\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 1\ntext = \"Use dummy audio driver\"\n\n[node name=\"DummyAudioDriver\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Performance/PerformanceContainer\" unique_id=1009268996 groups=[\"DesktopOnly\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"Drivers\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide\" unique_id=1209566191]\nvisible = false\nlayout_mode = 2\n\n[node name=\"DriversHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Drivers\" unique_id=124834766 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Drivers/DriversHeader\" unique_id=1076476179]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Drivers\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Drivers/DriversHeader\" unique_id=1211618303]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"DriversContainer\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Drivers\" unique_id=1405615463]\nlayout_mode = 2\ncolumns = 3\n\n[node name=\"TabletDriverLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Drivers/DriversContainer\" unique_id=48446239]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Tablet driver:\"\n\n[node name=\"TabletDriver\" type=\"OptionButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Drivers/DriversContainer\" unique_id=1350253988]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Specifies the tablet driver being used on Windows. If you have Windows Ink enabled, select winink.\"\nmouse_default_cursor_shape = 2\n\n[node name=\"Extensions\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide\" unique_id=326880860 node_paths=PackedStringArray(\"preferences_dialog\", \"add_extension_file_dialog\")]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\nscript = ExtResource(\"7_8ume5\")\npreferences_dialog = NodePath(\"../../../../..\")\nadd_extension_file_dialog = NodePath(\"../../../../../AddExtensionFileDialog\")\n\n[node name=\"ExtensionsHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions\" unique_id=168061996]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions/ExtensionsHeader\" unique_id=840349992]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Extensions\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions/ExtensionsHeader\" unique_id=425309560]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"Explore\" type=\"Button\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions/ExtensionsHeader\" unique_id=442187437]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Explore Online\"\n\n[node name=\"InstalledExtensions\" type=\"ItemList\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions\" unique_id=184760795]\nlayout_mode = 2\nauto_height = true\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions\" unique_id=917928675]\nlayout_mode = 2\n\n[node name=\"AddExtensionButton\" type=\"Button\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions/HBoxContainer\" unique_id=275635855]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Add Extension\"\n\n[node name=\"EnableButton\" type=\"Button\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions/HBoxContainer\" unique_id=792987344]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ndisabled = true\ntext = \"Enable\"\n\n[node name=\"UninstallButton\" type=\"Button\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions/HBoxContainer\" unique_id=66713514]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ndisabled = true\ntext = \"Uninstall\"\n\n[node name=\"OpenFolderButton\" type=\"Button\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions/HBoxContainer\" unique_id=1324879976 groups=[\"DesktopOnly\"]]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Open Folder\"\n\n[node name=\"Cursors\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide\" unique_id=1215092020]\nvisible = false\nlayout_mode = 2\n\n[node name=\"CursorsHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Cursors\" unique_id=1056271693 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Cursors/CursorsHeader\" unique_id=994191354]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Cursors\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Cursors/CursorsHeader\" unique_id=1915500945]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"CursorsContainer\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Cursors\" unique_id=891414706]\nlayout_mode = 2\ntheme_override_constants/h_separation = 4\ntheme_override_constants/v_separation = 4\ncolumns = 3\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Cursors/CursorsContainer\" unique_id=550924116]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Left pixel indicator\"\n\n[node name=\"LeftIndicatorCheckbox\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Cursors/CursorsContainer\" unique_id=1909819947]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Show left mouse pixel indicator or brush on the canvas when drawing\"\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"Label2\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Cursors/CursorsContainer\" unique_id=981566869]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Right pixel indicator\"\n\n[node name=\"RightIndicatorCheckbox\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Cursors/CursorsContainer\" unique_id=1620239659]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Show right mouse pixel indicator or brush on the canvas when drawing\"\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"Label3\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Cursors/CursorsContainer\" unique_id=44218030]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Show left tool icon\"\n\n[node name=\"LeftToolIconCheckbox\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Cursors/CursorsContainer\" unique_id=1999405425]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Displays an icon of the selected left tool next to the cursor on the canvas\"\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"Label4\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Cursors/CursorsContainer\" unique_id=36547986]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Show right tool icon\"\n\n[node name=\"RightToolIconCheckbox\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Cursors/CursorsContainer\" unique_id=28317713]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Displays an icon of the selected right tool next to the cursor on the canvas\"\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"Label5\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Cursors/CursorsContainer\" unique_id=2092951659]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Use native mouse cursors\"\n\n[node name=\"NativeCursorsCheckbox\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Cursors/CursorsContainer\" unique_id=643160192]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"Label6\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Cursors/CursorsContainer\" unique_id=2064409033]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Use cross cursor for the canvas\"\n\n[node name=\"CrossCursorCheckbox\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Cursors/CursorsContainer\" unique_id=2063386056]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"Image\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide\" unique_id=1231191107]\nvisible = false\nlayout_mode = 2\n\n[node name=\"ImageHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Image\" unique_id=106703053 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Image/ImageHeader\" unique_id=1656174468]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Image\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Image/ImageHeader\" unique_id=163092032]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"ImageOptions\" type=\"GridContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Image\" unique_id=1742345587]\nlayout_mode = 2\ntheme_override_constants/h_separation = 4\ntheme_override_constants/v_separation = 4\ncolumns = 3\n\n[node name=\"DefaultWidthLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Image/ImageOptions\" unique_id=2097487487]\ncustom_minimum_size = Vector2(110, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"A default width of a new image\"\nmouse_filter = 1\ntext = \"Default width:\"\n\n[node name=\"ImageDefaultWidth\" type=\"SpinBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Image/ImageOptions\" unique_id=142328240]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"A default width of a new image\"\nmouse_default_cursor_shape = 2\nmin_value = 1.0\nmax_value = 16384.0\nvalue = 64.0\nrounded = true\nsuffix = \"px\"\n\n[node name=\"DefaultHeightLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Image/ImageOptions\" unique_id=2079427645]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"A default height of a new image\"\nmouse_filter = 1\ntext = \"Default height:\"\n\n[node name=\"ImageDefaultHeight\" type=\"SpinBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Image/ImageOptions\" unique_id=607223067]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"A default height of a new image\"\nmouse_default_cursor_shape = 2\nmin_value = 1.0\nmax_value = 16384.0\nvalue = 64.0\nrounded = true\nsuffix = \"px\"\n\n[node name=\"DefaultFillColorLabel\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Image/ImageOptions\" unique_id=2104998950]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"A default background color of a new image\"\nmouse_filter = 1\ntext = \"Default fill color:\"\n\n[node name=\"DefaultFillColor\" type=\"ColorPickerButton\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Image/ImageOptions\" unique_id=1723530944]\ncustom_minimum_size = Vector2(64, 20)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"A default background color of a new image\"\nmouse_default_cursor_shape = 2\ncolor = Color(0, 0, 0, 0)\n\n[node name=\"Reset\" type=\"VBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide\" unique_id=999644847]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\n\n[node name=\"ResetHeader\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Reset\" unique_id=586721992 groups=[\"HeaderLabels\"]]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Reset/ResetHeader\" unique_id=477973951]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Reset\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Reset/ResetHeader\" unique_id=365543003]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"ResetPreferences\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Reset\" unique_id=1236348324]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"Reset all options available in the Preferences\"\n\n[node name=\"ResetTimelineOptions\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Reset\" unique_id=726280198]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Reset timeline options\"\n\n[node name=\"ResetAllToolOptions\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Reset\" unique_id=352405478]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Reset all tool options\"\n\n[node name=\"RemoveAllExtensions\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Reset\" unique_id=1524584285]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Remove all extensions\"\n\n[node name=\"RemoveAllBackups\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Reset\" unique_id=1909988252]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Remove all backups\"\n\n[node name=\"ClearRecentFiles\" type=\"CheckBox\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Reset\" unique_id=2051986577]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Clear the recently opened file list\"\n\n[node name=\"ResetButton\" type=\"Button\" parent=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Reset\" unique_id=592118046]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Reset\"\n\n[node name=\"MustRestart\" type=\"HBoxContainer\" parent=\"HSplitContainer/VBoxContainer\" unique_id=1322046406]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"HSplitContainer/VBoxContainer/MustRestart\" unique_id=677769665]\nlayout_mode = 2\ntext = \"Pixelorama must be restarted for changes to take effect.\"\n\n[node name=\"AddExtensionFileDialog\" type=\"FileDialog\" parent=\".\" unique_id=504575157 groups=[\"FileDialogs\"]]\nmode = 1\ntitle = \"Open File(s)\"\nsize = Vector2i(560, 400)\nalways_on_top = true\nok_button_text = \"Open\"\nfile_mode = 1\naccess = 2\nfilters = PackedStringArray(\"*.pck ; Godot Resource Pack File\", \"*.zip\")\nshow_hidden_files = true\n\n[node name=\"ExtensionExplorer\" parent=\".\" unique_id=523014809 instance=ExtResource(\"8_jmnx8\")]\ntransient = true\n\n[node name=\"EnableExtensionConfirmation\" type=\"ConfirmationDialog\" parent=\".\" unique_id=1187640624]\nunique_name_in_owner = true\nalways_on_top = true\ndialog_text = \"Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust.\"\ndialog_autowrap = true\n\n[node name=\"DeleteExtensionConfirmation\" type=\"ConfirmationDialog\" parent=\".\" unique_id=1856910560]\nunique_name_in_owner = true\nposition = Vector2i(0, 36)\nsize = Vector2i(400, 100)\nalways_on_top = true\nok_button_text = \"Delete Permanently\"\ndialog_text = \"Are you sure you want to delete this extension?\"\ndialog_autowrap = true\n\n[node name=\"ResetOptionsConfirmation\" type=\"ConfirmationDialog\" parent=\".\" unique_id=1646743103]\nalways_on_top = true\ndialog_text = \"Are you sure you want to reset the selected options? There will be no way to undo this.\"\n\n[connection signal=\"about_to_popup\" from=\".\" to=\".\" method=\"_on_PreferencesDialog_about_to_show\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_PreferencesDialog_visibility_changed\"]\n[connection signal=\"text_changed\" from=\"HSplitContainer/SearchandList/SearchLineEdit\" to=\".\" method=\"_on_search_line_edit_text_changed\"]\n[connection signal=\"item_selected\" from=\"HSplitContainer/SearchandList/List\" to=\".\" method=\"_on_List_item_selected\"]\n[connection signal=\"pressed\" from=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Language/System Language\" to=\".\" method=\"_on_language_pressed\" binds= [1]]\n[connection signal=\"pressed\" from=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions/ShrinkContainer/ShrinkApplyButton\" to=\".\" method=\"_on_shrink_apply_button_pressed\"]\n[connection signal=\"pressed\" from=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Interface/InterfaceOptions/FontSizeContainer/FontSizeApplyButton\" to=\".\" method=\"_on_font_size_apply_button_pressed\"]\n[connection signal=\"value_changed\" from=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions/GridsCount\" to=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Canvas/GridOptions\" method=\"_on_grids_count_value_changed\"]\n[connection signal=\"pressed\" from=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions/ExtensionsHeader/Explore\" to=\"ExtensionExplorer\" method=\"_on_explore_pressed\"]\n[connection signal=\"empty_clicked\" from=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions/InstalledExtensions\" to=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions\" method=\"_on_InstalledExtensions_empty_clicked\"]\n[connection signal=\"item_selected\" from=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions/InstalledExtensions\" to=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions\" method=\"_on_InstalledExtensions_item_selected\"]\n[connection signal=\"pressed\" from=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions/HBoxContainer/AddExtensionButton\" to=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions\" method=\"_on_AddExtensionButton_pressed\"]\n[connection signal=\"pressed\" from=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions/HBoxContainer/EnableButton\" to=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions\" method=\"_on_EnableButton_pressed\"]\n[connection signal=\"pressed\" from=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions/HBoxContainer/UninstallButton\" to=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions\" method=\"_on_UninstallButton_pressed\"]\n[connection signal=\"pressed\" from=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions/HBoxContainer/OpenFolderButton\" to=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions\" method=\"_on_OpenFolderButton_pressed\"]\n[connection signal=\"pressed\" from=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Reset/ResetButton\" to=\".\" method=\"_on_reset_button_pressed\"]\n[connection signal=\"files_selected\" from=\"AddExtensionFileDialog\" to=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions\" method=\"_on_AddExtensionFileDialog_files_selected\"]\n[connection signal=\"confirmed\" from=\"DeleteExtensionConfirmation\" to=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions\" method=\"_on_delete_confirmation_confirmed\"]\n[connection signal=\"custom_action\" from=\"DeleteExtensionConfirmation\" to=\"HSplitContainer/VBoxContainer/ScrollContainer/RightSide/Extensions\" method=\"_on_delete_confirmation_custom_action\"]\n[connection signal=\"confirmed\" from=\"ResetOptionsConfirmation\" to=\".\" method=\"_on_reset_options_confirmation_confirmed\"]\n"
  },
  {
    "path": "src/Preferences/RestoreDefaultButton.gd",
    "content": "class_name RestoreDefaultButton\nextends TextureButton\n\nvar setting_name: String\nvar value_type: String\nvar default_value\nvar require_restart := false\nvar node: Node\n\n\nfunc _ready() -> void:\n\tdisabled = true\n\tadd_to_group(&\"UIButtons\")\n\tmodulate = Global.modulate_icon_color\n\ttexture_normal = preload(\"res://assets/graphics/misc/icon_reload.png\")\n\ttexture_disabled = ImageTexture.new()\n\tsize_flags_horizontal = Control.SIZE_SHRINK_END\n\tsize_flags_vertical = Control.SIZE_SHRINK_CENTER\n\tpressed.connect(_on_pressed)\n\n\nfunc _on_pressed() -> void:\n\tGlobal.set(setting_name, default_value)\n\tif not require_restart:\n\t\tGlobal.config_cache.set_value(\"preferences\", setting_name, default_value)\n\tif node is OptionButton:\n\t\tvar item_index = node.get_item_index(default_value)\n\t\tnode.set(value_type, item_index)\n\t\tnode.item_selected.emit(item_index)\n\telse:\n\t\tnode.set(value_type, default_value)\n\tif node is LineEdit:\n\t\tnode.text_changed.emit(default_value)\n\telif node is ColorPickerButton:\n\t\tnode.color_changed.emit(default_value)\n"
  },
  {
    "path": "src/Preferences/RestoreDefaultButton.gd.uid",
    "content": "uid://cxy28acpejxb0\n"
  },
  {
    "path": "src/Preferences/ThemeColorPreview.tscn",
    "content": "[gd_scene format=3 uid=\"uid://coml8w5ajc2ru\"]\n\n[node name=\"ThemeColorPreview\" type=\"ColorRect\" unique_id=1261703384]\ncustom_minimum_size = Vector2(50, 16)\noffset_right = 50.0\noffset_bottom = 14.0\nmouse_filter = 2\ncolor = Color(0.380392, 0.384314, 0.380392, 1)\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\".\" unique_id=840259230]\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 3.0\noffset_top = 3.0\noffset_right = -3.0\noffset_bottom = -3.0\n\n[node name=\"ColorRect\" type=\"ColorRect\" parent=\"HBoxContainer\" unique_id=1916634000]\ncustom_minimum_size = Vector2(20, 10)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\ncolor = Color(0.152941, 0.152941, 0.152941, 1)\n\n[node name=\"ColorRect2\" type=\"ColorRect\" parent=\"HBoxContainer\" unique_id=425209868]\ncustom_minimum_size = Vector2(20, 10)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\ncolor = Color(0.411765, 0.411765, 0.411765, 1)\n"
  },
  {
    "path": "src/Preferences/ThemesPreferences.gd",
    "content": "extends Node\n\nvar theme_button_group := ButtonGroup.new()\n\n@onready var buttons_container: BoxContainer = $ThemeButtons\n@onready var colors_container: BoxContainer = $ThemeColors\n@onready var theme_color_preview_scene := preload(\"res://src/Preferences/ThemeColorPreview.tscn\")\n\n\nfunc _ready() -> void:\n\tThemes.theme_added.connect(_add_theme)\n\tThemes.theme_removed.connect(_remove_theme)\n\tfor theme in Themes.themes:\n\t\t_add_theme(theme)\n\tbuttons_container.get_child(Themes.theme_index).button_pressed = true\n\n\nfunc _on_theme_pressed(index: int) -> void:\n\tThemes.change_theme(index)\n\n\nfunc _add_theme(theme: Theme) -> void:\n\tvar button := CheckBox.new()\n\tvar theme_name := theme.resource_name\n\tbutton.name = theme_name\n\tbutton.text = theme_name\n\tbutton.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\tbutton.button_group = theme_button_group\n\tbutton.size_flags_horizontal = Control.SIZE_SHRINK_BEGIN\n\tbuttons_container.add_child(button)\n\tbutton.pressed.connect(_on_theme_pressed.bind(button.get_index()))\n\n\tvar panel_stylebox: StyleBox = theme.get_stylebox(\"panel\", \"Panel\")\n\tvar panel_container_stylebox: StyleBox = theme.get_stylebox(\"panel\", \"PanelContainer\")\n\tif panel_stylebox is StyleBoxFlat and panel_container_stylebox is StyleBoxFlat:\n\t\tvar theme_color_preview: ColorRect = theme_color_preview_scene.instantiate()\n\t\tvar color1: Color = panel_stylebox.bg_color\n\t\tvar color2: Color = panel_container_stylebox.bg_color\n\t\ttheme_color_preview.get_child(0).get_child(0).color = color1\n\t\ttheme_color_preview.get_child(0).get_child(1).color = color2\n\t\tcolors_container.add_child(theme_color_preview)\n\n\nfunc _remove_theme(theme: Theme) -> void:\n\tvar index := Themes.themes.find(theme)\n\tvar theme_button := buttons_container.get_child(index)\n\tvar color_previews := colors_container.get_child(index)\n\tbuttons_container.remove_child(theme_button)\n\ttheme_button.queue_free()\n\tcolors_container.remove_child(color_previews)\n\tcolor_previews.queue_free()\n"
  },
  {
    "path": "src/Preferences/ThemesPreferences.gd.uid",
    "content": "uid://dx8vbnfkoahh6\n"
  },
  {
    "path": "src/Shaders/AutoInvertColors.gdshader",
    "content": "shader_type canvas_item;\n#include \"CanvasCommon.gdshaderinc\"\n\nuniform sampler2D screen_texture : hint_screen_texture;\nuniform bool hollow_shapes = true;\n\nvoid fragment() {\n\tvec4 color = texture(TEXTURE, UV);\n\tvec3 inverted = vec3(1.0) - color.rgb;\n\tvec3 screen_color = textureLod(screen_texture, SCREEN_UV, 0.0).rgb;\n\tfloat screen_avg = (screen_color.r + screen_color.g + screen_color.b) / 3.0;\n\n\tcolor.rgb = inverted * step(0.5, screen_avg) + color.rgb * step(screen_avg, 0.5);\n\tif (hollow_shapes) {\n\t\tif (COLOR.a > 0.0 && has_contrary_neighbour(UV, TEXTURE_PIXEL_SIZE, TEXTURE)) {\n\t\t\tCOLOR = color;\n\t\t}\n\t\telse { // Erase the texture's pixels in order to only keep the outline visible\n\t\t\tCOLOR.a = 0.0;\n\t\t}\n\t}\n\telse {\n\t\tCOLOR = color;\n\t}\n}\n"
  },
  {
    "path": "src/Shaders/AutoInvertColors.gdshader.uid",
    "content": "uid://jvo6i3t4snow\n"
  },
  {
    "path": "src/Shaders/BlendLayers.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nconst float HCV_EPSILON = 1e-10;\nconst float HSL_EPSILON = 1e-10;\n\nuniform sampler2DArray layers : filter_nearest;\n// Nx4 texture, where N is the number of layers and the first row are the blend modes,\n// the second are the opacities, the third are the origins and the fourth are the\n// clipping mask booleans.\nuniform sampler2D metadata : filter_nearest;\nuniform bool origin_x_positive = true;\nuniform bool origin_y_positive = true;\n\n// Conversion functions from\n// https://gist.github.com/unitycoder/aaf94ddfe040ec2da93b58d3c65ab9d9\n// licensed under MIT\n\n// Converts from pure Hue to linear RGB\nvec3 hue_to_rgb(float hue)\n{\n    float R = abs(hue * 6.0 - 3.0) - 1.0;\n    float G = 2.0 - abs(hue * 6.0 - 2.0);\n    float B = 2.0 - abs(hue * 6.0 - 4.0);\n    return clamp(vec3(R, G, B), 0.0, 1.0);\n}\n\n// Converts from HSL to linear RGB\nvec3 hsl_to_rgb(vec3 hsl)\n{\n    vec3 rgb = hue_to_rgb(hsl.x);\n    float C = (1.0 - abs(2.0 * hsl.z - 1.0)) * hsl.y;\n    return (rgb - 0.5) * C + hsl.z;\n}\n\n\n// Converts a value from linear RGB to HCV (Hue, Chroma, Value)\nvec3 rgb_to_hcv(vec3 rgb)\n{\n    // Based on work by Sam Hocevar and Emil Persson\n    vec4 P = (rgb.g < rgb.b) ? vec4(rgb.bg, -1.0, 2.0/3.0) : vec4(rgb.gb, 0.0, -1.0/3.0);\n    vec4 Q = (rgb.r < P.x) ? vec4(P.xyw, rgb.r) : vec4(rgb.r, P.yzx);\n    float C = Q.x - min(Q.w, Q.y);\n    float H = abs((Q.w - Q.y) / (6.0 * C + HCV_EPSILON) + Q.z);\n    return vec3(H, C, Q.x);\n}\n\n// Converts from linear rgb to HSL\nvec3 rgb_to_hsl(vec3 rgb)\n{\n    vec3 HCV = rgb_to_hcv(rgb);\n    float L = HCV.z - HCV.y * 0.5;\n    float S = HCV.y / (1.0 - abs(L * 2.0 - 1.0) + HSL_EPSILON);\n    return vec3(HCV.x, S, L);\n}\n\n\nvec4 blend(int blend_type, vec4 current_color, vec4 prev_color, float opacity) {\n\tcurrent_color.a *= opacity;  // Combine the layer opacity\n\tif (current_color.a <= 0.001) {\n\t\treturn prev_color;\n\t}\n\tvec4 result;\n\tbool should_blend_alpha = true;\n\tswitch(blend_type) {\n\t\tcase 1: // Erase\n\t\t\tresult = prev_color;\n\t\t\tresult.a -= current_color.a;  // clamping will be done at the end so not doing it here.\n\t\t\tshould_blend_alpha = false;\n\t\t\tbreak;\n\t\tcase 2: // Darken\n\t\t\tresult.rgb = min(prev_color.rgb, current_color.rgb);\n\t\t\tbreak;\n\t\tcase 3: // Multiply\n\t\t\tresult.rgb = prev_color.rgb * current_color.rgb;\n\t\t\tbreak;\n\t\tcase 4: // Color burn\n\t\t\tresult.rgb = 1.0 - (1.0 - prev_color.rgb) / current_color.rgb;\n\t\t\tbreak;\n\t\tcase 5: // Linear burn\n\t\t\tresult.rgb = prev_color.rgb + current_color.rgb - 1.0;\n\t\t\tbreak;\n\t\tcase 6: // Lighten\n\t\t\tresult.rgb = max(prev_color.rgb, current_color.rgb);\n\t\t\tbreak;\n\t\tcase 7: // Screen\n\t\t\tresult.rgb = 1.0 - (1.0 - prev_color.rgb) * (1.0 - current_color.rgb);\n\t\t\tbreak;\n\t\tcase 8: // Color dodge\n\t\t\tresult.rgb = prev_color.rgb / (1.0 - current_color.rgb);\n\t\t\tbreak;\n\t\tcase 9: // Add (linear dodge)\n\t\t\tresult.rgb = prev_color.rgb + current_color.rgb;\n\t\t\tbreak;\n\t\tcase 10: // Overlay\n\t\t\tresult.rgb = mix(2.0 * prev_color.rgb * current_color.rgb, 1.0 - 2.0 * (1.0 - current_color.rgb) * (1.0 - prev_color.rgb), round(prev_color.rgb));\n\t\t\tbreak;\n\t\tcase 11: // Soft light\n\t\t\tresult.rgb = mix(2.0 * prev_color.rgb * current_color.rgb + prev_color.rgb * prev_color.rgb * (1.0 - 2.0 * current_color.rgb), sqrt(prev_color.rgb) * (2.0 * current_color.rgb - 1.0) + (2.0 * prev_color.rgb) * (1.0 - current_color.rgb), round(prev_color.rgb));\n\t\t\tbreak;\n\t\tcase 12: // Hard light\n\t\t\tresult.rgb = mix(2.0 * prev_color.rgb * current_color.rgb, 1.0 - 2.0 * (1.0 - current_color.rgb) * (1.0 - prev_color.rgb), round(current_color.rgb));\n\t\t\tbreak;\n\t\tcase 13: // Difference\n\t\t\tresult.rgb = abs(prev_color.rgb - current_color.rgb);\n\t\t\tbreak;\n\t\tcase 14: // Exclusion\n\t\t\tresult.rgb = prev_color.rgb + current_color.rgb - 2.0 * prev_color.rgb * current_color.rgb;\n\t\t\tbreak;\n\t\tcase 15: // Subtract\n\t\t\tresult.rgb = prev_color.rgb - current_color.rgb;\n\t\t\tbreak;\n\t\tcase 16: // Divide\n\t\t\tresult.rgb = prev_color.rgb / current_color.rgb;\n\t\t\tbreak;\n\t\tcase 17: // Hue\n\t\t\tvec3 current_hsl = rgb_to_hsl(current_color.rgb);\n\t\t\tvec3 prev_hsl = rgb_to_hsl(prev_color.rgb);\n\t\t\tresult.rgb = hsl_to_rgb(vec3(current_hsl.r, prev_hsl.g, prev_hsl.b));\n\t\t\tbreak;\n\t\tcase 18: // Saturation\n\t\t\tvec3 current_hsl = rgb_to_hsl(current_color.rgb);\n\t\t\tvec3 prev_hsl = rgb_to_hsl(prev_color.rgb);\n\t\t\tresult.rgb = hsl_to_rgb(vec3(prev_hsl.r, current_hsl.g, prev_hsl.b));\n\t\t\tbreak;\n\t\tcase 19: // Color\n\t\t\tvec3 current_hsl = rgb_to_hsl(current_color.rgb);\n\t\t\tvec3 prev_hsl = rgb_to_hsl(prev_color.rgb);\n\t\t\tresult.rgb = hsl_to_rgb(vec3(current_hsl.r, current_hsl.g, prev_hsl.b));\n\t\t\tbreak;\n\t\tcase 20: // Luminosity\n\t\t\tvec3 current_hsl = rgb_to_hsl(current_color.rgb);\n\t\t\tvec3 prev_hsl = rgb_to_hsl(prev_color.rgb);\n\t\t\tresult.rgb = hsl_to_rgb(vec3(prev_hsl.r, prev_hsl.g, current_hsl.b));\n\t\t\tbreak;\n\t\tdefault: // Normal (case 0)\n\t\t\tresult.rgb = current_color.rgb;\n\t\t\tbreak;\n\t}\n\tresult.rgb = mix(prev_color.rgb, result.rgb, current_color.a);\n\tif (should_blend_alpha){\n\t\tresult.a = prev_color.a * (1.0 - current_color.a) + current_color.a;\n\t}\n\tresult = clamp(result, 0.0, 1.0);\n\treturn mix(current_color, result, prev_color.a);\n}\n\n\n// Zeroes the alpha values of textures when UV < 0 and UV > 1\nfloat border_trim(vec4 color, vec2 uv) {\n\treturn min(step(uv.x, 1.0) * step(0.0, uv.x) * step(uv.y, 1.0) * step(0.0, uv.y), color.a);\n}\n\n\nint find_previous_opaque_layer(int index, vec2 metadata_size_float) {\n\tfor (int i = index - 1; i > 0; i--) {\n\t\tfloat layer_index = float(i) / metadata_size_float.x;\n\t\tfloat clipping_mask = texture(metadata, vec2(layer_index, 3.0 / metadata_size_float.y)).r;\n\t\t// If the red value is ~0.2, it means that it should be skipped.\n\t\t// Otherwise, return the index.\n\t\tif (clipping_mask > 0.25 || clipping_mask < 0.15) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn 0;\n}\n\n\nvoid fragment() {\n\tivec2 metadata_size = textureSize(metadata, 0) - 1;\n\tvec2 metadata_size_float = vec2(metadata_size);\n\tvec2 first_origin = texture(metadata, vec2(0.0, 2.0 / metadata_size_float.y)).rg;\n\tif (!origin_x_positive) {\n\t\tfirst_origin.x = -first_origin.x;\n\t}\n\tif (!origin_y_positive) {\n\t\tfirst_origin.y = -first_origin.y;\n\t}\n\tfloat first_opacity = texture(metadata, vec2(0.0, 1.0 / metadata_size_float.y)).r;\n\tvec4 result_color = texture(layers, vec3(UV - first_origin, 0.0));\n\tresult_color.a = border_trim(result_color, UV - first_origin);\n\tresult_color.a *= first_opacity;\n\tfor(int i = 1; i < metadata_size.x + 1; i++) // Loops through every layer\n\t{\n\t\tfloat layer_index = float(i) / metadata_size_float.x;\n\t\tfloat blend_mode_float = texture(metadata, vec2(layer_index, 0.0)).r;\n\t\t// Blend modes are being stored as integers divided by 255, so convert them back to\n\t\t// their integer form\n\t\tint current_blend_mode = int(floor(blend_mode_float * 255.0));\n\t\tvec2 current_origin = texture(metadata, vec2(layer_index, 2.0 / metadata_size_float.y)).rg;\n\t\tif (!origin_x_positive) {\n\t\t\tcurrent_origin.x = -current_origin.x;\n\t\t}\n\t\tif (!origin_y_positive) {\n\t\t\tcurrent_origin.y = -current_origin.y;\n\t\t}\n\t\t// get origin of previous layer (used for clipping masks to work correctly)\n\t\tint clipping_i = find_previous_opaque_layer(i, metadata_size_float);\n\t\tfloat clipping_mask_index = float(clipping_i) / metadata_size_float.x;\n\t\tvec2 prev_origin = texture(metadata, vec2(clipping_mask_index, 2.0 / metadata_size_float.y)).rg;\n\t\tif (!origin_x_positive) {\n\t\t\tprev_origin.x = -prev_origin.x;\n\t\t}\n\t\tif (!origin_y_positive) {\n\t\t\tprev_origin.y = -prev_origin.y;\n\t\t}\n\t\tfloat current_opacity = texture(metadata, vec2(layer_index, 1.0 / metadata_size_float.y)).r;\n\t\tvec2 uv = UV - current_origin;\n\t\tvec4 layer_color = texture(layers, vec3(uv, float(i)));\n\t\tvec4 prev_layer_color = texture(layers, vec3(UV - prev_origin, float(clipping_i)));\n\t\tfloat clipping_mask = texture(metadata, vec2(layer_index, 3.0 / metadata_size_float.y)).r;\n\t\tlayer_color.a *= prev_layer_color.a * step(0.5, clipping_mask) + 1.0 * step(clipping_mask, 0.5);\n\t\tlayer_color.a = border_trim(layer_color, uv);\n\t\tresult_color = blend(current_blend_mode, layer_color, result_color, current_opacity);\n\t}\n\tCOLOR = result_color;\n}\n"
  },
  {
    "path": "src/Shaders/BlendLayers.gdshader.uid",
    "content": "uid://b3cj543ir4o23\n"
  },
  {
    "path": "src/Shaders/CanvasCommon.gdshaderinc",
    "content": "uniform float width : hint_range(0, 2) = 0.05;\n\nbool is_zero_approx(float num) {\n\treturn num < 0.0001;\n}\n\n\nbool has_contrary_neighbour(vec2 uv, vec2 texture_pixel_size, sampler2D tex) {\n\tfloat i = -ceil(width);\n\tfloat j = ceil(width);\n\tfloat x1 = abs(i) > width ? width * sign(i) : i;\n\tfloat x2 = abs(j) > width ? width * sign(j) : j;\n\tfloat y1 = abs(i) > width ? width * sign(i) : i;\n\tfloat y2 = abs(j) > width ? width * sign(j) : j;\n\n\tvec2 xy1 = uv + texture_pixel_size * vec2(x1, y1);\n\tvec2 xy2 = uv + texture_pixel_size * vec2(x2, y2);\n\n\tif (xy1 != clamp(xy1, vec2(0.0), vec2(1.0)) || is_zero_approx(texture(tex, xy1).a) || xy2 != clamp(xy2, vec2(0.0), vec2(1.0)) || is_zero_approx(texture(tex, xy2).a)) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n"
  },
  {
    "path": "src/Shaders/CanvasCommon.gdshaderinc.uid",
    "content": "uid://j3x1qwe8rxyf\n"
  },
  {
    "path": "src/Shaders/ColorReplace.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nuniform vec2 size;\n\nuniform vec4 old_color;\nuniform vec4 new_color;\nuniform float tolerance : hint_range(0.0, 1.0);\n\n// Must be the same size as image\n// Selected pixels are 1,1,1,1 and unselected 0,0,0,0\nuniform sampler2D selection : filter_nearest;\n\nuniform bool has_pattern;\nuniform sampler2D pattern: repeat_enable;\nuniform vec2 pattern_size;\nuniform vec2 pattern_uv_offset;\n\n\nbool similar_colors(vec4 c1, vec4 c2, float tol) {\n\treturn (\n\t\tabs(c1.r - c2.r) <= tol\n\t\t&& abs(c1.g - c2.g) <= tol\n\t\t&& abs(c1.b - c2.b) <= tol\n\t\t&& abs(c1.a - c2.a) <= tol\n\t);\n}\n\n\nvoid fragment() {\n\tvec4 original_color = texture(TEXTURE, UV);\n\tvec4 selection_color = texture(selection, UV);\n\tvec4 col = original_color;\n\tif (similar_colors(original_color, old_color, tolerance))\n\t\tif (has_pattern)\n\t\t\tcol = textureLod(pattern, UV * (size / pattern_size) + pattern_uv_offset, 0.0);\n\t\telse\n\t\t\tcol = new_color;\n\n\tCOLOR = mix(original_color, col, selection_color.a);\n}\n"
  },
  {
    "path": "src/Shaders/ColorReplace.gdshader.uid",
    "content": "uid://ba4mqmhwitw5y\n"
  },
  {
    "path": "src/Shaders/ColorSelect.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nuniform sampler2D selection : filter_nearest, hint_default_black;\nuniform vec4 color;\nuniform float tolerance : hint_range(0.0, 1.0);\nuniform int operation = 0; // 0 = add, 1 = subtract, 2 = intersect\n\nbool similar_colors(vec4 c1, vec4 c2, float tol) {\n\treturn (\n\t\tabs(c1.r - c2.r) <= tol\n\t\t&& abs(c1.g - c2.g) <= tol\n\t\t&& abs(c1.b - c2.b) <= tol\n\t\t&& abs(c1.a - c2.a) <= tol\n\t);\n}\n\nvoid fragment() {\n\tvec4 original_color = texture(TEXTURE, UV);\n\n\tvec4 col = texture(selection, UV);\n\tif (col.rgb == vec3(0.0))\n\t\tcol.a = 0.0;\n\n\tif (similar_colors(original_color, color, tolerance))\n\t{\n\t\tif (operation == 0)\n\t\t\tcol = vec4(1.0);\n\t\telse if (operation == 1)\n\t\t\tcol = vec4(0.0);\n\t}\n\telse\n\t\tif (operation == 2)\n\t\t\tcol = vec4(0.0);\n\n\tCOLOR = col;\n}\n"
  },
  {
    "path": "src/Shaders/ColorSelect.gdshader.uid",
    "content": "uid://dcbeq6nstlde\n"
  },
  {
    "path": "src/Shaders/DummyPreMulAlpha.gdshader",
    "content": "shader_type canvas_item;\n\nrender_mode unshaded, blend_premul_alpha;\n"
  },
  {
    "path": "src/Shaders/DummyPreMulAlpha.gdshader.uid",
    "content": "uid://opqarie5kndq\n"
  },
  {
    "path": "src/Shaders/Effects/BrightnessContrast.gdshader",
    "content": "// Shader from https://godotshaders.com/shader/color-manipulator/\n// Licensed under CC0\nshader_type canvas_item;\nrender_mode unshaded;\n\nuniform float brightness : hint_range(-1, 1) = 0;\nuniform float contrast : hint_range(0, 3) = 1.0;\nuniform float saturation : hint_range(0, 3) = 1.0;\n\nuniform float red_value : hint_range(0, 1) = 1.0;\nuniform float green_value : hint_range(0, 1) = 1.0;\nuniform float blue_value : hint_range(0, 1) = 1.0;\n\nuniform vec4 tint_color : source_color = vec4(1.0, 1.0, 1.0, 1.0);\nuniform float tint_effect_factor : hint_range(0, 1) = 0.0;\n\nuniform sampler2D selection : filter_nearest;\n\nmat4 contrastMatrix( float _contrast )\n{\n\tfloat t = ( 1.0 - _contrast ) / 2.0;\n\treturn mat4(\n\t\tvec4(_contrast, 0, 0, 0),\n\t\tvec4(0, _contrast, 0, 0),\n\t\tvec4(0, 0, _contrast, 0),\n\t\tvec4(t, t, t, 1));\n}\n\nmat4 brightnessMatrix( float _brightness )\n{\n\treturn mat4( vec4(1, 0, 0, 0),\n\t\t\t\t vec4(0, 1, 0, 0),\n\t\t\t\t vec4(0, 0, 1, 0),\n\t\t\t\t vec4(_brightness, _brightness, _brightness, 1));\n}\n\nmat4 saturationMatrix( float _saturation )\n{\n\tvec3 luminance = vec3( 0.3086, 0.6094, 0.0820 );\n\tfloat oneMinusSat = 1.0 - _saturation;\n\n\tvec3 red = vec3( luminance.x * oneMinusSat );\n\tred+= vec3(_saturation, 0, 0) * red_value;\n\tvec3 green = vec3( luminance.y * oneMinusSat );\n\tgreen += vec3(0, _saturation, 0) * green_value;\n\tvec3 blue = vec3( luminance.z * oneMinusSat );\n\tblue += vec3(0, 0, _saturation ) * blue_value;\n\n\treturn mat4(vec4(red, 0), vec4(green, 0), vec4(blue, 0), vec4(0, 0, 0, 1));\n}\n\nvoid fragment()\n{\n\tvec4 original_color = texture(TEXTURE, UV);\n\tvec4 selection_color = texture(selection, UV);\n\tvec4 c2 = original_color * tint_color;\n\tvec4 col = brightnessMatrix(brightness) * contrastMatrix(contrast) * saturationMatrix(saturation) * mix(original_color, c2, tint_effect_factor);\n\tvec3 output = mix(original_color.rgb, col.rgb, selection_color.a);\n\tCOLOR = vec4(output.rgb, original_color.a);\n}\n"
  },
  {
    "path": "src/Shaders/Effects/BrightnessContrast.gdshader.uid",
    "content": "uid://dniwy151saxkt\n"
  },
  {
    "path": "src/Shaders/Effects/ColorCurves.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nuniform sampler2D selection : filter_nearest;\n// CurveTexture(s)\ngroup_uniforms channel;\nuniform sampler2D curve_rgb;\nuniform sampler2D curve_red;\nuniform sampler2D curve_green;\nuniform sampler2D curve_blue;\nuniform sampler2D curve_alpha;\nuniform sampler2D curve_hue;\nuniform sampler2D curve_sat;\nuniform sampler2D curve_value;\n\n\nvec3 rgb2hsb(vec3 c) {\n\tvec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n\tvec4 p = mix(vec4(c.bg, K.wz),\n\t\t\t\tvec4(c.gb, K.xy),\n\t\t\t\tstep(c.b, c.g));\n\tvec4 q = mix(vec4(p.xyw, c.r),\n\t\t\t\tvec4(c.r, p.yzx),\n\t\t\t\tstep(p.x, c.r));\n\tfloat d = q.x - min(q.w, q.y);\n\tfloat e = 1.0e-10;\n\treturn vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)),\n\t\t\t\td / (q.x + e),\n\t\t\t\tq.x);\n}\n\nvec3 hsb2rgb(vec3 c)\n{\n\tvec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n\tvec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n\treturn c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}\n\n\nvoid fragment() {\n\tvec4 original_color = texture(TEXTURE, UV);\n\tvec4 selection_color = texture(selection, UV);\n\tvec4 col;\n\tfloat red_curve_color = texture(curve_red, vec2(COLOR.r, 0.0)).r;\n\tfloat green_curve_color = texture(curve_green, vec2(COLOR.g, 0.0)).r;\n\tfloat blue_curve_color = texture(curve_blue, vec2(COLOR.b, 0.0)).r;\n\tfloat alpha_curve_color = texture(curve_alpha, vec2(COLOR.a, 0.0)).r;\n\tcol.r = red_curve_color;\n\tcol.g = green_curve_color;\n\tcol.b = blue_curve_color;\n\tcol.a = alpha_curve_color;\n\n\tvec3 hsb = rgb2hsb(col.rgb);\n\tfloat hue_curve_color = texture(curve_hue, vec2(hsb.r, 0.0)).r;\n\tfloat sat_curve_color = texture(curve_sat, vec2(hsb.g, 0.0)).r;\n\tfloat value_curve_color = texture(curve_value, vec2(hsb.b, 0.0)).r;\n\thsb.r = hue_curve_color;\n\thsb.g = sat_curve_color;\n\thsb.b = value_curve_color;\n\n\tcol.rgb = hsb2rgb(hsb);\n\n\tfloat rgb_curve_color_r = texture(curve_rgb, vec2(col.r, 0.0)).r;\n\tfloat rgb_curve_color_g = texture(curve_rgb, vec2(col.g, 0.0)).r;\n\tfloat rgb_curve_color_b = texture(curve_rgb, vec2(col.b, 0.0)).r;\n\tcol.rgb = vec3(rgb_curve_color_r, rgb_curve_color_g, rgb_curve_color_b);\n\tvec4 output = mix(original_color.rgba, col, selection_color.a);\n\tCOLOR = output;\n}\n"
  },
  {
    "path": "src/Shaders/Effects/ColorCurves.gdshader.uid",
    "content": "uid://cngtsyw8tyy0\n"
  },
  {
    "path": "src/Shaders/Effects/ConvolutionMatrix.gdshader",
    "content": "shader_type canvas_item;\n\n// author : csblo\n// Work made just by consulting :\n// https://en.wikipedia.org/wiki/Kernel_(image_processing)\n\nuniform mat3 kernel = mat3(vec3(0, 0, 0), vec3(0, 1, 0), vec3(0, 0, 0));\nuniform float kernel_normalization = 1.0;\n\n// Find coordinate of matrix element from index\nvec2 kpos(int index, vec2 iResolution)\n{\n\treturn vec2[9] (\n\t\tvec2(-1, -1), vec2(0, -1), vec2(1, -1),\n\t\tvec2(-1, 0), vec2(0, 0), vec2(1, 0),\n\t\tvec2(-1, 1), vec2(0, 1), vec2(1, 1)\n\t)[index] / iResolution.xy;\n}\n\n\n// Extract region of dimension 3x3 from sampler centered in uv\n// sampler : texture sampler\n// uv : current coordinates on sampler\n// return : an array of mat3, each index corresponding with a color channel\nmat3[3] region3x3(sampler2D sampler, vec2 uv, vec2 iResolution)\n{\n\t// Create each pixels for region\n\tvec4[9] region;\n\n\tfor (int i = 0; i < 9; i++)\n\t\tregion[i] = texture(sampler, uv + kpos(i, iResolution));\n\n\t// Create 3x3 region with 3 color channels (red, green, blue)\n\tmat3[3] mRegion;\n\n\tfor (int i = 0; i < 3; i++)\n\t\tmRegion[i] = mat3(\n\t\t\tvec3(region[0][i], region[1][i], region[2][i]),\n\t\t\tvec3(region[3][i], region[4][i], region[5][i]),\n\t\t\tvec3(region[6][i], region[7][i], region[8][i])\n\t\t);\n\n\treturn mRegion;\n}\n\n// Convolve a texture with kernel\n// kernel : kernel used for convolution\n// sampler : texture sampler\n// uv : current coordinates on sampler\nvec3 convolution(sampler2D sampler, vec2 uv, vec2 iResolution)\n{\n\tvec3 fragment;\n\n\t// Extract a 3x3 region centered in uv\n\tmat3[3] region = region3x3(sampler, uv, iResolution);\n\tmat3 normalized_kernel = kernel / kernel_normalization;\n\n\t// for each color channel of region\n\tfor (int i = 0; i < 3; i++)\n\t{\n\t\t// get region channel\n\t\tmat3 rc = region[i];\n\t\t// component wise multiplication of kernel by region channel\n\t\tmat3 c = matrixCompMult(normalized_kernel, rc);\n\t\t// add each component of matrix\n\t\tfloat r = c[0][0] + c[1][0] + c[2][0]\n\t\t\t\t+ c[0][1] + c[1][1] + c[2][1]\n\t\t\t\t+ c[0][2] + c[1][2] + c[2][2];\n\n\t\t// for fragment at channel i, set result\n\t\tfragment[i] = r;\n\t}\n\n\treturn fragment;\n}\n\nvoid fragment()\n{\n\t// Convolve kernel with texture\n\tvec3 col = convolution(TEXTURE, UV, 1.0 / TEXTURE_PIXEL_SIZE);\n\n\t// Output to screen\n\tCOLOR.rgb = col;\n}\n"
  },
  {
    "path": "src/Shaders/Effects/ConvolutionMatrix.gdshader.uid",
    "content": "uid://chc5xeigqi7r2\n"
  },
  {
    "path": "src/Shaders/Effects/Desaturate.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nuniform bool red = true;\nuniform bool green = true;\nuniform bool blue = true;\nuniform bool alpha = false;\nuniform sampler2D selection : filter_nearest;\n\nfloat stolChannel(float x) {\n\treturn (x < 0.04045) ? (x / 12.92) : pow((x + 0.055) / 1.055, 2.4);\n}\n\nvec3 standardToLinear(vec3 c) {\n\treturn vec3(\n\t\tstolChannel(c.r),\n\t\tstolChannel(c.g),\n\t\tstolChannel(c.b));\n}\n\nfloat ltosChannel(float x) {\n\treturn (x > 0.0031308) ? (pow(x, 1.0 / 2.4) * 1.055 - 0.055) : (x * 12.92);\n}\n\nvec3 linearToStandard(vec3 c) {\n\treturn vec3(\n\t\tltosChannel(c.r),\n\t\tltosChannel(c.g),\n\t\tltosChannel(c.b));\n}\n\nfloat luminance(vec3 lin) {\n\treturn 0.21264935 * lin.r\n\t     + 0.71516913 * lin.g\n\t\t + 0.07218152 * lin.b;\n}\n\nvoid fragment() {\n\t// Get color from the sprite texture at the current pixel we are rendering\n\tvec4 original_color = texture(TEXTURE, UV);\n\tvec4 selection_color = texture(selection, UV);\n\n\t// Transform from standard RGB to linear RGB.\n\tvec3 std = original_color.rgb;\n\tvec3 lin = standardToLinear(std);\n\n\t// Find the y component of linear RGB to XYZ transformation.\n\tfloat lum = luminance(lin);\n\tvec3 des = vec3(\n\t\tred ? lum : lin.r,\n\t\tgreen ? lum : lin.g,\n\t\tblue ? lum : lin.b);\n\tvec3 stdPrime = linearToStandard(des);\n\n\tvec3 output = mix(original_color.rgb, stdPrime, selection_color.a);\n\n    if (alpha) {\n\t    COLOR = vec4(output.rgb, ltosChannel(lum));\n\t} else {\n        COLOR = vec4(output.rgb, original_color.a);\n\t}\n}"
  },
  {
    "path": "src/Shaders/Effects/Desaturate.gdshader.uid",
    "content": "uid://l1rt2q7jthsm\n"
  },
  {
    "path": "src/Shaders/Effects/DropShadow.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nuniform vec2 offset = vec2(5.0, 5.0); // Offset, in pixel coordinate [0, 1, 2, and so on]\nuniform vec4 shadow_color : source_color = vec4(0.08, 0.08, 0.08, 0.63);\nuniform sampler2D selection : filter_nearest;\n\n\nvoid fragment() {\n\tvec2 normalized_offset = offset * TEXTURE_PIXEL_SIZE; // Normalize offset to [0..1]\n\tvec4 original = texture(TEXTURE, UV); // Original texture\n\tfloat shadow = texture(TEXTURE, UV - normalized_offset).a; // Shadow, alpha only\n\tshadow *= shadow_color.a; // Multiply this mask by shadow alpha\n\tshadow = mix(0.0, shadow, texture(selection, UV).a); // Clip shadow by selection mask\n\tshadow = mix(shadow, 0.0, original.a); // Erase shadow alpha on original area\n\n\t// Make a border to prevent stretching pixels on the edge\n\tvec2 border_uv = UV - normalized_offset;\n\tborder_uv -= 0.5;\n\tborder_uv *= 2.0;\n\tborder_uv = abs(border_uv);\n\n\tfloat border = max(border_uv.x, border_uv.y);\n\tborder = floor(border);\n\tborder = 1.0 - clamp(border, 0.0, 1.0);\n\n\tshadow *= border; // Clip shadow by border so no more stretching\n\n\tCOLOR.rgb = mix(original.rgb, shadow_color.rgb, shadow); // Set color on shadow area\n\tCOLOR.a = mix(original.a, 1.0, shadow); // Combine alpha\n}\n"
  },
  {
    "path": "src/Shaders/Effects/DropShadow.gdshader.uid",
    "content": "uid://b5eae1cl8cpx0\n"
  },
  {
    "path": "src/Shaders/Effects/GaussianBlur.gdshader",
    "content": "// https://godotshaders.com/shader/gaussian-blur-functions-for-gles2/\n// Licensed under MIT.\nshader_type canvas_item;\n\n// uniform_data blur_type type:: OptionButton [Xor's Gaussian Blur||Monk's Multi-Pass Gaussian Blur||NoDev's Single-Pass Gaussian Blur||NoDev's Multi-Pass Gaussian Blur]\nuniform int blur_type : hint_range(0, 3, 1) = 0;\nuniform int blur_amount = 16;\nuniform float blur_radius = 1.0;\nuniform vec2 blur_direction = vec2(1, 1);\nuniform sampler2D selection : filter_nearest;\n\n// Xor's gaussian blur function\n// Link: https://xorshaders.weebly.com/tutorials/blur-shaders-5-part-2\n// Defaults from: https://www.shadertoy.com/view/Xltfzj\n//\n// BLUR BLURRINESS (Default 8.0)\n// BLUR ITERATIONS (Default 16.0 - More is better but slower)\n// BLUR QUALITY (Default 4.0 - More is better but slower)\n//\n// Desc.: Don't have the best performance but will run on almost\n// anything, although, if developing for mobile, is better to use\n// 'texture_nodevgaussian(...) instead'.\nvec4 texture_xorgaussian(sampler2D tex, vec2 uv, vec2 pixel_size, float blurriness, int iterations, int quality) {\n\tvec2 radius = blurriness / (1.0 / pixel_size).xy;\n\tvec4 blurred_tex = texture(tex, uv);\n\n\tfor(float d = 0.0; d < TAU; d += TAU / float(iterations)) {\n\t\tfor(float i = 1.0 / float(quality); i <= 1.0; i += 1.0 / float(quality)) {\n\t\t\tvec2 directions = uv + vec2(cos(d), sin(d)) * radius * i;\n\t\t\tblurred_tex += texture(tex, directions);\n\t\t}\n\t}\n\tblurred_tex /= float(quality) * float(iterations) + 1.0;\n\n\treturn blurred_tex;\n}\n\n// Experience-Monks' fast gaussian blur function\n// Link: https://github.com/Experience-Monks/glsl-fast-gaussian-blur/\n//\n// BLUR ITERATIONS (Default 16.0 - More is better but slower)\n// BLUR DIRECTION (Direction in which the blur is applied, use vec2(1, 0) for first pass and vec2(0, 1) for second pass)\n//\n// Desc.: ACTUALLY PRETTY SLOW but still pretty good for custom cinematic\n// bloom effects, since this needs render 2 passes\nvec4 texture_monksgaussian_multipass(sampler2D tex, vec2 uv, vec2 pixel_size, int iterations, vec2 direction) {\n\tvec4 blurred_tex = vec4(0.0);\n\tvec2 resolution = 1.0 / pixel_size;\n\n\tfor (int i = 0; i < iterations; i++ ) {\n\t\tfloat size = float(iterations - i);\n\n\t\tvec2 off1 = vec2(1.3846153846) * (direction * size);\n\t\tvec2 off2 = vec2(3.2307692308) * (direction * size);\n\n\t\tblurred_tex += texture(tex, uv) * 0.2270270270;\n\t\tblurred_tex += texture(tex, uv + (off1 / resolution)) * 0.3162162162;\n\t\tblurred_tex += texture(tex, uv - (off1 / resolution)) * 0.3162162162;\n\t\tblurred_tex += texture(tex, uv + (off2 / resolution)) * 0.0702702703;\n\t\tblurred_tex += texture(tex, uv - (off2 / resolution)) * 0.0702702703;\n\t}\n\n\tblurred_tex /= float(iterations) + 1.0;\n\n\treturn blurred_tex;\n}\n\n// u/_NoDev_'s gaussian blur function\n// Discussion Link: https://www.reddit.com/r/godot/comments/klgfo9/help_with_shaders_in_gles2/\n// Code Link: https://postimg.cc/7JDJw80d\n//\n// BLUR BLURRINESS (Default 8.0 - More is better but slower)\n// BLUR RADIUS (Default 1.5)\n// BLUR DIRECTION (Direction in which the blur is applied, use vec2(1, 0) for first pass and vec2(0, 1) for second pass)\n//\n// Desc.: Really fast and GOOD FOR MOST CASES, but might NOT RUN IN THE WEB!\n// use 'texture_xorgaussian' instead if you found any issues.\nvec4 texture_nodevgaussian_singlepass(sampler2D tex, vec2 uv, vec2 pixel_size, float blurriness, float radius) {\n\tfloat n = 0.0015;\n\tvec4 blurred_tex = vec4(0);\n\tfloat weight;\n\n\tfor (float i = -blurriness; i <= blurriness; i++) {\n\t\tfloat d = i / PI;\n\t\tvec2 anchor = vec2(cos(d), sin(d)) * radius * i;\n\t\tvec2 directions = uv + pixel_size * anchor;\n\t\tblurred_tex += texture(tex, directions) * n;\n\t\tif (i <= 0.0) {n += 0.0015; }\n\t\tif (i > 0.0) {n -= 0.0015; }\n\t\tweight += n;\n\t}\n\n\tfloat norm = 1.0 / weight;\n\tblurred_tex *= norm;\n\treturn blurred_tex;\n}\n\nvec4 texture_nodevgaussian_multipass(sampler2D tex, vec2 uv, vec2 pixel_size, float blurriness, vec2 direction) {\n\tfloat n = 0.0015;\n\tvec4 blurred_tex = vec4(0);\n\tfloat weight;\n\n\tfor (float i = -blurriness; i <= blurriness; i++) {\n\t\tvec2 directions = uv + pixel_size * (direction * i);\n\t\tblurred_tex += texture(tex, directions) * n;\n\t\tif (i <= 0.0) {n += 0.0015; }\n\t\tif (i > 0.0) {n -= 0.0015; }\n\t\tweight += n;\n\t}\n\n\tfloat norm = 1.0 / weight;\n\tblurred_tex *= norm;\n\treturn blurred_tex;\n}\n\nvoid fragment() {\n\tvec4 original_color = texture(TEXTURE, UV);\n\tvec4 selection_color = texture(selection, UV);\n\tvec4 col = original_color;\n\tif (blur_type == 0) {\n\t\tvec4 xorgaussian = texture_xorgaussian(TEXTURE, UV, TEXTURE_PIXEL_SIZE, float(blur_amount), 16, 4);\n\t\tcol = xorgaussian;\n\t}\n\telse if (blur_type == 1) {\n\t\tvec4 monksgaussian_multipass = texture_monksgaussian_multipass(TEXTURE, UV, TEXTURE_PIXEL_SIZE, blur_amount, blur_direction);\n\t\tcol = monksgaussian_multipass;\n\t}\n\telse if (blur_type == 2) {\n\t\tvec4 nodevgaussian_singlepass = texture_nodevgaussian_singlepass(TEXTURE, UV, TEXTURE_PIXEL_SIZE, float(blur_amount), blur_radius);\n\t\tcol = nodevgaussian_singlepass;\n\t}\n\telse if (blur_type == 3) {\n\t\tvec4 nodevgaussian_multipass = texture_nodevgaussian_multipass(TEXTURE, UV, TEXTURE_PIXEL_SIZE, float(blur_amount), blur_direction);\n\t\tcol = nodevgaussian_multipass;\n\t}\n\telse {\n\t\tcol = texture(TEXTURE, UV);\n\t}\n\tvec4 output = mix(original_color.rgba, col, selection_color.a);\n\tCOLOR = output;\n}\n"
  },
  {
    "path": "src/Shaders/Effects/GaussianBlur.gdshader.uid",
    "content": "uid://cu0i8wdvus8m6\n"
  },
  {
    "path": "src/Shaders/Effects/Gradient.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nuniform sampler2D selection : filter_nearest;\ngroup_uniforms gradient_textures;\n// The gradient texture itself, with interpolation.\nuniform sampler2D gradient_texture : filter_nearest;\n// A Nx1 image, where N is the amount of the different colors of gradient_texture,\n// without interpolating between them. Used in dithering.\nuniform sampler2D gradient_texture_no_interpolation : filter_nearest;\n// A Nx1 grayscale image, where N is the amount of the different colors of gradient_texture,\n// where each pixel contains the offset, ranging from 0-1 of each color. Used in dithering.\nuniform sampler2D gradient_offset_texture : filter_nearest;\n\ngroup_uniforms gradient_options;\n// uniform_data shape type:: OptionButton [Linear||Radial]\nuniform int shape = 0;\n// uniform_data repeat type:: OptionButton [None||Repeat||Mirrored||Truncate]\nuniform int repeat = 0;\nuniform bool use_dithering = false;\nuniform sampler2D dither_texture : filter_nearest, repeat_enable;\nuniform float position : hint_range(-0.5, 0.5) = 0.0;\nuniform float size : hint_range(0.01, 2.0) = 1.0;\nuniform float angle : hint_range(0.0, 360.0) = 0.0;\nuniform vec2 center = vec2(0.5);\nuniform vec2 radius = vec2(1.0);\n\n\nfloat modify_uv(vec2 uv) {\n\tfloat modified_uv;\n\tif (shape == 0) { // Linear\n\t\tvec2 uv_offsetted = uv - 0.5;\n\t\tfloat angle_cos = cos(radians(angle));\n\t\tfloat angle_sin = sin(radians(angle));\n\t\tmodified_uv = uv_offsetted.x * angle_cos - uv_offsetted.y * angle_sin;\n\t\tmodified_uv /= abs(angle_cos) + abs(angle_sin);\n\t\tmodified_uv /= size;\n\t\tfloat pivot = position / size;\n\t\tmodified_uv -= pivot - 0.5;\n\t}\n\telse { // Radial\n\t\tvec2 uv_offsetted = uv * 2.0 - 1.0;\n\t\tuv_offsetted -= (center * 2.0) - vec2(1.0);\n\t\tuv_offsetted /= radius;\n\t\tmodified_uv = length(uv_offsetted);\n\t}\n\treturn modified_uv;\n}\n\n\nfloat mirror_fract(float uv) {\n\tint sign_uv = (int(sign(uv)) - 1) / 2; // returns -1 for negative sign and 0 for positive\n\tif (int((uv)) % 2 == sign_uv)\n\t\tuv = fract(uv);\n\telse\n\t\tuv = fract(1.0 - uv);\n\n\treturn uv;\n}\n\n// Logic taken from https://godotshaders.com/shader/dither-gradient-shader/\nfloat dither(vec2 uv, float modified_uv, ivec2 image_size) {\n\tfloat uv_lower = floor(modified_uv);\n\tfloat uv_upper = floor(modified_uv) + 1.0;\n\tivec2 pixel_size = textureSize(dither_texture, 0);\n\tfloat threshold = texture(dither_texture, uv * vec2(image_size / pixel_size.x)).r;\n\tfloat ramp_val = modified_uv < threshold ? 0.0 : 1.0;\n\t// sample at the lower bound colour if ramp_val is 0.0, upper bound color if 1.0\n\tfloat col_sample = mix(uv_lower, uv_upper, ramp_val);\n\treturn col_sample;\n}\n\n\nvoid fragment() {\n\tvec4 original_color = texture(TEXTURE, UV);\n\tvec4 selection_color = texture(selection, UV);\n\tvec2 tex_size = 1.0 / TEXTURE_PIXEL_SIZE;\n\tvec2 uv = floor(UV * tex_size) / (tex_size - 1.0);\n\tfloat modified_uv = modify_uv(uv);\n\tif (repeat == 1)\n\t\tmodified_uv = fract(modified_uv);\n\telse if (repeat == 2)\n\t\tmodified_uv = mirror_fract(modified_uv);\n\n\tvec4 output;\n\tif (use_dithering) {\n\t\tint n_of_colors = textureSize(gradient_offset_texture, 0).x;\n\t\tfloat colors_minus = float(n_of_colors - 1);\n\t\tfor (int i = 1; i <= n_of_colors; i++) {\n\t\t\tfloat off = texture(gradient_offset_texture, vec2(float(i) / colors_minus)).r;\n\t\t\tfloat off_prev = texture(gradient_offset_texture, vec2(float(i - 1) / colors_minus)).r;\n\t\t\tvec4 first = texture(gradient_texture_no_interpolation, vec2(float((i - 1)) / colors_minus));\n\t\t\tvec4 second = texture(gradient_texture_no_interpolation, vec2(float(i) / colors_minus));\n\t\t\tif (modified_uv < off_prev) {\n\t\t\t\tif (i == 1) {\n\t\t\t\t\toutput = first;\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (modified_uv >= off) {\n\t\t\t\tif (i == n_of_colors) {\n\t\t\t\t\toutput = second;\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfloat uvt = (modified_uv - off_prev) / (off - off_prev);\n\t\t\tfloat col_sample = dither(UV, uvt, textureSize(TEXTURE, 0));\n\t\t\toutput = mix(first, second, col_sample);\n\t\t}\n\t}\n\telse\n\t\toutput = texture(gradient_texture, vec2(modified_uv));\n\tif (repeat == 3)\n\t\toutput.a = min(step(modified_uv, 1.0) * step(0.0, modified_uv), output.a);\n\toutput = mix(original_color, output, output.a);\n\tCOLOR = mix(original_color, output, selection_color.a);\n}\n"
  },
  {
    "path": "src/Shaders/Effects/Gradient.gdshader.uid",
    "content": "uid://dj3bi0pycege2\n"
  },
  {
    "path": "src/Shaders/Effects/GradientMap.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nuniform sampler2D gradient_map : filter_nearest;  // GradientTexture\nuniform sampler2D selection : filter_nearest;\n\nvoid fragment() {\n\tvec4 original_color = texture(TEXTURE, UV);\n\tvec4 selection_color = texture(selection, UV);\n\tvec4 output = original_color;\n\tfloat value = (0.2126 * original_color.r) + (0.7152 * original_color.g) + (0.0722 * original_color.b);\n\tvec4 gradient_color = texture(gradient_map, vec2(value, 0.0));\n\toutput.rgb = gradient_color.rgb;\n\toutput.a *= gradient_color.a;\n\n\tCOLOR = mix(original_color, output, selection_color.a);\n}\n"
  },
  {
    "path": "src/Shaders/Effects/GradientMap.gdshader.uid",
    "content": "uid://dbse7sufxr24y\n"
  },
  {
    "path": "src/Shaders/Effects/HSV.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nuniform float hue : hint_range(-1, 1);\nuniform float saturation : hint_range(-1, 1);\nuniform float value : hint_range(-1, 1);\nuniform sampler2D selection : filter_nearest;\n\nbool is_equal_approx(float a, float b) {\n\treturn abs(a - b) <= 0.0001;\n}\n\nvec3 rgb2hsb(vec3 c){\n\tvec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n\tvec4 p = mix(vec4(c.bg, K.wz),\n\t\t\t\tvec4(c.gb, K.xy),\n\t\t\t\tstep(c.b, c.g));\n\tvec4 q = mix(vec4(p.xyw, c.r),\n\t\t\t\tvec4(c.r, p.yzx),\n\t\t\t\tstep(p.x, c.r));\n\tfloat d = q.x - min(q.w, q.y);\n\tfloat e = 1.0e-10;\n\treturn vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)),\n\t\t\t\td / (q.x + e),\n\t\t\t\tq.x);\n}\n\nvec3 hsb2rgb(vec3 c){\n\tvec3 rgb = clamp(abs(mod(c.x*6.0+vec3(0.0,4.0,2.0),\n\t\t\t\t\t6.0)-3.0)-1.0,\n\t\t\t\t\t0.0,\n\t\t\t\t\t1.0 );\n\trgb = rgb*rgb*(3.0-2.0*rgb);\n\treturn c.z * mix(vec3(1.0), rgb, c.y);\n}\n\nvoid fragment() {\n\t// Get color from the sprite texture at the current pixel we are rendering\n\tvec4 original_color = texture(TEXTURE, UV);\n\tvec4 selection_color = texture(selection, UV);\n\n\tvec3 col = original_color.rgb;\n\tvec3 hsb = rgb2hsb(col);\n\t// If not greyscale\n\tif(!is_equal_approx(col[0], col[1]) || !is_equal_approx(col[1], col[2])) {\n\t\t// Shift the color by shift_amount, but rolling over the value goes over 1\n\t\thsb.x = mod(hsb.x + hue, 1.0);\n\t}\n\tif(saturation > 0.0) {\n\t\thsb.y =  mix(hsb.y, 1 , saturation);\n\t}\n\telse if (saturation < 0.0) {\n\t\thsb.y =  mix(0, hsb.y , 1.0 - abs(saturation));\n\t}\n\n\tif(value > 0.0) {\n\t\thsb.z =  mix(hsb.z, 1 , value);\n\t}\n\telse if (value < 0.0) {\n\t\thsb.z =  mix(0, hsb.z , 1.0 - abs(value));\n\t}\n\n\tcol = hsb2rgb(hsb);\n\tvec3 output = mix(original_color.rgb, col, selection_color.a);\n\tCOLOR = vec4(output.rgb, original_color.a);\n}\n"
  },
  {
    "path": "src/Shaders/Effects/HSV.gdshader.uid",
    "content": "uid://bph4225jfs3hc\n"
  },
  {
    "path": "src/Shaders/Effects/IndexMap.gdshader",
    "content": "// Authored by Variable (6 May 2022)\nshader_type canvas_item;\nrender_mode unshaded;\n\nuniform sampler2D map_texture : filter_nearest;  // The map texture\nuniform bool include_alpha = false;\n\n// (begin DESCRIPTION)\n// The Red and Green values (0-255) of tool color will be treated as an x and y position\n// respectively instead of color components.\n// When you draw, color will be taken from the x-y position in the \"Map Texture\".\n// (end DESCRIPTION)\nvoid fragment() {\n\tvec4 col = texture(TEXTURE, UV);\n\tvec2 map_size = vec2(textureSize(map_texture, 0));\n\tvec2 lookup_uv = vec2(round(col.x * 255.0)/(map_size.x), round(col.y * 255.0)/(map_size.y));\n\tvec4 index_color = texture(map_texture, lookup_uv);\n\tCOLOR.rgb = index_color.rgb;\n\tif (include_alpha) {\n\t\tCOLOR.a = index_color.a;\n\t}\n}\n"
  },
  {
    "path": "src/Shaders/Effects/IndexMap.gdshader.uid",
    "content": "uid://cpbnqrilk0fa\n"
  },
  {
    "path": "src/Shaders/Effects/Invert.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nuniform bool red = true;\nuniform bool green = true;\nuniform bool blue = true;\nuniform bool alpha = false;\nuniform sampler2D selection : filter_nearest;\n\n\nvoid fragment() {\n\t// Get color from the sprite texture at the current pixel we are rendering\n\tvec4 original_color = texture(TEXTURE, UV);\n\tvec4 selection_color = texture(selection, UV);\n\tvec4 col = original_color;\n    if (red)\n        col.r = 1.0 - col.r;\n    if (green)\n        col.g = 1.0 - col.g;\n    if (blue)\n        col.b = 1.0 - col.b;\n    if (alpha)\n        col.a = 1.0 - col.a;\n\n\tvec4 output = mix(original_color.rgba, col, selection_color.a);\n\tCOLOR = output;\n}\n"
  },
  {
    "path": "src/Shaders/Effects/Invert.gdshader.uid",
    "content": "uid://epbswecq2uoj\n"
  },
  {
    "path": "src/Shaders/Effects/OffsetPixels.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nuniform sampler2D selection : filter_nearest;\nuniform ivec2 offset = ivec2(0); // In pixels\nuniform float scale_amount: hint_range(0.01, 100.0) = 1.0;\nuniform bool wrap_around = false;\n\nvoid fragment() {\n\tvec4 original_color = texture(TEXTURE, UV);\n\tvec4 selection_color = texture(selection, UV);\n\n\tvec2 uv = UV - (vec2(offset) * TEXTURE_PIXEL_SIZE); // Offset the uv by an amount of pixels\n\tvec2 zoomed_uv = ((uv - vec2(0.5)) / scale_amount) + vec2(0.5);\n\tif (wrap_around) {\n\t\tzoomed_uv = fract(zoomed_uv);\n\t}\n\n\tvec4 output = texture(TEXTURE, zoomed_uv);\n\t// Cut original selected content\n\toriginal_color.a = original_color.a * step(selection_color.a, 0.5);\n\toutput.a = min(step(zoomed_uv.x, 1.0) * step(0.0, zoomed_uv.x), output.a); // Remove left and right edges\n\toutput.a = min(step(zoomed_uv.y, 1.0) * step(0.0, zoomed_uv.y), output.a); // Remove up and bottom edges\n\n\tselection_color = texture(selection, uv);\n\tCOLOR = mix(original_color, output, selection_color.a);\n}\n"
  },
  {
    "path": "src/Shaders/Effects/OffsetPixels.gdshader.uid",
    "content": "uid://ugcfg5hro2ec\n"
  },
  {
    "path": "src/Shaders/Effects/OutlineInline.gdshader",
    "content": "// Based on https://godotshaders.com/shader/2d-outline-inline/\nshader_type canvas_item;\nrender_mode unshaded;\n\nuniform vec4 color : source_color = vec4(1.0);\nuniform float width : hint_range(0, 10, 1) = 1.0;\n// uniform_data brush type:: OptionButton [Diamond||Circle||Square]\nuniform int brush : hint_range(0, 2) = 0;\nuniform bool inside = false;\nuniform bool keep_border_only = false;\nuniform sampler2D selection : filter_nearest;\n\nbool is_zero_approx(float num) {\n\treturn num < 0.0001;\n}\n\nbool has_contrary_neighbour(vec2 uv, vec2 texture_pixel_size, sampler2D tex) {\n\tfor (float i = -ceil(width); i <= ceil(width); i++) {\n\t\tfloat offset;\n\n\t\tif (brush == 0) {\n\t\t\toffset = width - abs(i);\n\t\t} else if (brush == 1) {\n\t\t\toffset = floor(sqrt(pow(width + 0.5, 2) - i * i));\n\t\t} else if (brush == 2) {\n\t\t\toffset = width;\n\t\t}\n\n\t\tfor (float j = -ceil(offset); j <= ceil(offset); j++) {\n\t\t\tvec2 xy = uv + texture_pixel_size * vec2(i, j);\n\n\t\t\tif ((xy != clamp(xy, vec2(0.0), vec2(1.0)) || is_zero_approx(texture(tex, xy).a)) == inside) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false;\n}\n\nvoid fragment() {\n\tvec4 original_color = texture(TEXTURE, UV);\n\tvec4 selection_color = texture(selection, UV);\n\tvec4 output = texture(TEXTURE, UV);\n\n\tif ((output.a > 0.0) == inside && has_contrary_neighbour(UV, TEXTURE_PIXEL_SIZE, TEXTURE)) {\n\t\toutput.rgb = inside ? mix(output.rgb, color.rgb, color.a) : color.rgb;\n\t\tif (is_zero_approx(color.a)) {\n\t\t\toutput.a = color.a;\n\t\t}\n\t\telse {\n\t\t\toutput.a += (1.0 - output.a) * color.a;\n\t\t}\n\t}\n\telse if (keep_border_only) {\n\t\toutput.a = 0.0;\n\t}\n\n\tCOLOR = mix(original_color, output, selection_color.a);\n}\n"
  },
  {
    "path": "src/Shaders/Effects/OutlineInline.gdshader.uid",
    "content": "uid://dnc7oours8vc0\n"
  },
  {
    "path": "src/Shaders/Effects/Palettize.gdshader",
    "content": "// Maps the color of the input to the nearest color in the selected palette.\n// Similar to Krita's Palettize filter\nshader_type canvas_item;\nrender_mode unshaded;\n\n#include \"res://src/Shaders/FindPaletteColorIndex.gdshaderinc\"\nuniform sampler2D palette_texture : filter_nearest;\nuniform sampler2D selection : filter_nearest;\n\nvec4 swap_color(vec4 color) {\n\tif (color.a <= 0.01) {\n\t\treturn color;\n\t}\n\n\tint n_of_colors = textureSize(palette_texture, 0).x;\n\tint color_index = find_index(color, n_of_colors, palette_texture);\n\treturn texelFetch(palette_texture, ivec2(color_index, 0), 0);\n}\n\nvoid fragment() {\n\tvec4 original_color = texture(TEXTURE, UV);\n\tvec4 selection_color = texture(selection, UV);\n\tvec4 color = swap_color(original_color);\n\tCOLOR = mix(original_color.rgba, color, selection_color.a);\n}\n"
  },
  {
    "path": "src/Shaders/Effects/Palettize.gdshader.uid",
    "content": "uid://c5t0262v2fi4v\n"
  },
  {
    "path": "src/Shaders/Effects/Pixelize.gdshader",
    "content": "/*\nShader from Godot Shaders - the free shader library.\nhttps://godotshaders.com/shader/pixelate-2/\n\nThis shader is under MIT license\n*/\nshader_type canvas_item;\nrender_mode unshaded;\n\nuniform uvec2 pixel_size = uvec2(4);\nuniform sampler2D selection : filter_nearest;\n\nvoid fragment() {\n\tvec4 original_color = texture(TEXTURE, UV);\n\tvec4 selection_color = texture(selection, UV);\n\tivec2 size = textureSize(TEXTURE, 0);\n\tint xRes = size.x;\n\tint yRes = size.y;\n\tfloat xFactor = float(xRes) / float(pixel_size.x);\n\tfloat yFactor = float(yRes) / float(pixel_size.y);\n\tfloat grid_uv_x = round(UV.x * xFactor) / xFactor;\n\tfloat grid_uv_y = round(UV.y * yFactor) / yFactor;\n\tvec4 pixelated_color = texture(TEXTURE, vec2(grid_uv_x, grid_uv_y));\n\n\tCOLOR = mix(original_color.rgba, pixelated_color, selection_color.a);\n}\n"
  },
  {
    "path": "src/Shaders/Effects/Pixelize.gdshader.uid",
    "content": "uid://4vb4ufphdgi2\n"
  },
  {
    "path": "src/Shaders/Effects/Posterize.gdshader",
    "content": "// https://godotshaders.com/shader/color-reduction-and-dither/\nshader_type canvas_item;\nrender_mode unshaded;\n\nuniform sampler2D selection : filter_nearest;\nuniform float colors : hint_range(1.0, 255.0) = 2.0;\nuniform float dither_intensity : hint_range(0.0, 0.5) = 0.0;\n\nvoid fragment()\n{\n\tvec4 color = texture(TEXTURE, UV);\n\tvec4 selection_color = texture(selection, UV);\n\n\tfloat a = floor(mod(UV.x / TEXTURE_PIXEL_SIZE.x, 2.0));\n\tfloat b = floor(mod(UV.y / TEXTURE_PIXEL_SIZE.y, 2.0));\n\tfloat c = mod(a + b, 2.0);\n\tvec4 col;\n\tcol.r = (round(color.r * colors + dither_intensity) / colors) * c;\n\tcol.g = (round(color.g * colors + dither_intensity) / colors) * c;\n\tcol.b = (round(color.b * colors + dither_intensity) / colors) * c;\n\tc = 1.0 - c;\n\tcol.r += (round(color.r * colors - dither_intensity) / colors) * c;\n\tcol.g += (round(color.g * colors - dither_intensity) / colors) * c;\n\tcol.b += (round(color.b * colors - dither_intensity) / colors) * c;\n\tcol.a = color.a;\n\tvec4 output = mix(color.rgba, col, selection_color.a);\n\tCOLOR = output;\n}\n"
  },
  {
    "path": "src/Shaders/Effects/Posterize.gdshader.uid",
    "content": "uid://bbliuetkqn3dm\n"
  },
  {
    "path": "src/Shaders/Effects/Rotation/CommonRotation.gdshaderinc",
    "content": "uniform sampler2D selection_tex : filter_nearest;\nuniform vec2 pivot;\nuniform mat2 transformation_matrix = mat2(vec2(1.0, 0.0), vec2(0.0, 1.0));\n\nvec2 rotate(vec2 uv, float ratio) {\n\t// Scale and center image\n\tuv.x = (uv.x - pivot.x) * ratio + pivot.x;\n\tuv -= pivot;\n\n\t// Rotate image\n\tuv = transformation_matrix * uv;\n\tuv.x /= ratio;\n\tuv += pivot;\n\n\treturn uv;\n}\n\nvec4 mix_rotated_and_original(vec4 color, vec4 original_color, vec2 uv, vec2 rotated_uv, vec2 tex_pixel_size) {\n\tcolor.a *= texture(selection_tex, rotated_uv).a; // Combine with selection mask\n\t// Make a border to prevent stretching pixels on the edge\n\tvec2 border_uv = rotated_uv;\n\n\t// Center the border\n\tborder_uv -= 0.5;\n\tborder_uv *= 2.0;\n\tborder_uv = abs(border_uv);\n\n\tfloat border = max(border_uv.x, border_uv.y); // This is a rectangular gradient\n\tborder = floor(border - tex_pixel_size.x); // Turn the grad into a rectangle shape\n\tborder = 1.0 - clamp(border, 0.0, 1.0); // Invert the rectangle\n\n\tfloat selection = texture(selection_tex, uv).a;\n\tfloat mask = mix(selection, 1.0, 1.0 - ceil(original_color.a)); // Combine selection mask with area outside original\n\n\tvec4 final_color;\n\t// Combine original and rotated image only when intersecting, otherwise just pure rotated image.\n\tfinal_color.rgb = mix(mix(original_color.rgb, color.rgb, color.a * border), color.rgb, mask);\n\tfinal_color.a = mix(original_color.a, 0.0, selection); // Remove alpha on the selected area\n\tfinal_color.a = mix(final_color.a, 1.0, color.a * border); // Combine alpha of original image and rotated\n\treturn final_color;\n}"
  },
  {
    "path": "src/Shaders/Effects/Rotation/CommonRotation.gdshaderinc.uid",
    "content": "uid://d2qiyec08p716\n"
  },
  {
    "path": "src/Shaders/Effects/Rotation/NearestNeighbour.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\n#include \"res://src/Shaders/Effects/Rotation/CommonRotation.gdshaderinc\"\n\n\nvoid fragment() {\n\tvec4 original = texture(TEXTURE, UV);\n\tvec2 tex_size = 1.0 / TEXTURE_PIXEL_SIZE; // Texture size in real pixel coordinates\n\tvec2 pixelated_uv = floor(UV * tex_size) / (tex_size - 1.0); // Pixelate UV to fit resolution\n\tfloat ratio = tex_size.x / tex_size.y; // Resolution ratio\n\n\tvec2 rotated_uv = rotate(pixelated_uv, ratio);\n\tvec4 rotated_color = texture(TEXTURE, rotated_uv); // Rotated image\n\tCOLOR = mix_rotated_and_original(rotated_color, original, UV, rotated_uv, TEXTURE_PIXEL_SIZE);\n}\n"
  },
  {
    "path": "src/Shaders/Effects/Rotation/NearestNeighbour.gdshader.uid",
    "content": "uid://cojofxy706p5y\n"
  },
  {
    "path": "src/Shaders/Effects/Rotation/OmniScale.gdshader",
    "content": "// No AA version from https://github.com/deakcor/godot-omniscale/blob/5dfee6e89cd955dd01dccfe70c9979f9b55bb1bf/OmniScale.shader\n// Edited slightly by Overloaded to add rotation support for Pixelorama\nshader_type canvas_item;\nrender_mode unshaded;\n\n//#version 130\n\n// OmniScale\n// by Lior Halphon\n// original GLSL code from hunterk by way of RetroArch\n// ported to Godot3 shader language by Nobuyuki\n\n//\n// MIT License\n//\n// Copyright (c) 2015-2016 Lior Halphon\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n//\n\n#include \"res://src/Shaders/Effects/Rotation/CommonRotation.gdshaderinc\"\n\nuniform int ScaleMultiplier : hint_range(0, 100) = 4;\n\n// vertex compatibility #defines\n// #define vTexCoord TEX0.xy\n// #define outsize vec4(OutputSize, 1.0 / OutputSize)\n\n// Pixelorama-specific uniforms\nuniform bool preview = false;\n\n\nbool is_different(vec4 a, vec4 b)\n{\n    return distance(a,b)>0.1;\n}\n\n// This define could've made code a ton more readable if godot shaders supported it, but it doesn't.\n// 55 occurrences of this in code;  use regexp to turn it back once supported?\n// #define P(m, r) ((pattern & (m)) == (r))\n\n\nvec4 scale(sampler2D image, vec2 coord, vec2 pxSize) {\n\n\tvec2 OutputSize = vec2(float(ScaleMultiplier), float(ScaleMultiplier));\n\tvec2 textureDimensions = vec2(1.0,1.0);\n\n    // o = offset, the width of a pixel\n    vec2 o = pxSize;\n    vec2 texCoord = coord;\n\n    // We always calculate the top left quarter.  If we need a different quarter, we flip our coordinates */\n\n    // p = the position within a pixel [0...1]\n    vec2 p = fract(texCoord / pxSize);\n\n    if (p.x > 0.5) {\n        o.x = -o.x;\n        p.x = 1.0 - p.x;\n    }\n    if (p.y > 0.5) {\n        o.y = -o.y;\n        p.y = 1.0 - p.y;\n    }\n\n\n\n    vec4 w0 = texture(image, texCoord + vec2( -o.x, -o.y));\n    vec4 w1 = texture(image, texCoord + vec2(    0, -o.y));\n    vec4 w2 = texture(image, texCoord + vec2(  o.x, -o.y));\n    vec4 w3 = texture(image, texCoord + vec2( -o.x,    0));\n    vec4 w4 = texture(image, texCoord + vec2(    0,    0));\n    vec4 w5 = texture(image, texCoord + vec2(  o.x,    0));\n    vec4 w6 = texture(image, texCoord + vec2( -o.x,  o.y));\n    vec4 w7 = texture(image, texCoord + vec2(    0,  o.y));\n    vec4 w8 = texture(image, texCoord + vec2(  o.x,  o.y));\n\n    int pattern = 0;\n    if (is_different(w0, w4)) pattern |= 1 << 0;\n    if (is_different(w1, w4)) pattern |= 1 << 1;\n    if (is_different(w2, w4)) pattern |= 1 << 2;\n    if (is_different(w3, w4)) pattern |= 1 << 3;\n    if (is_different(w5, w4)) pattern |= 1 << 4;\n    if (is_different(w6, w4)) pattern |= 1 << 5;\n    if (is_different(w7, w4)) pattern |= 1 << 6;\n    if (is_different(w8, w4)) pattern |= 1 << 7;\n\n    if ((((pattern & (191)) == (55)) || ((pattern & (219)) == (19))) && is_different(w1, w5))\n        return mix(w4, w3, 0.5 - p.x>0.5?1.0:0.0);\n    if ((((pattern & (219)) == (73)) || ((pattern & (239)) == (109))) && is_different(w7, w3))\n        return mix(w4, w1, 0.5 - p.y>0.5?1.0:0.0);\n    if ((((pattern & (11)) == (11)) || ((pattern & (254)) == (74)) || ((pattern & (254)) == (26))) && is_different(w3, w1))\n        return w4;\n    if ((((pattern & (111)) == (42)) || ((pattern & (91)) == (10)) || ((pattern & (191)) == (58)) || ((pattern & (223)) == (90)) ||\n         ((pattern & (159)) == (138)) || ((pattern & (207)) == (138)) || ((pattern & (239)) == (78)) || ((pattern & (63)) == (14)) ||\n         ((pattern & (251)) == (90)) || ((pattern & (187)) == (138)) || ((pattern & (127)) == (90)) || ((pattern & (175)) == (138)) ||\n         ((pattern & (235)) == (138))) && is_different(w3, w1))\n        return mix(w4, mix(w4, w0, 0.5 - p.x>0.5?1.0:0.0), 0.5 - p.y>0.5?1.0:0.0);\n    if (((pattern & (11)) == (8)))\n        return mix(mix(w0 * 0.375 + w1 * 0.25 + w4 * 0.375, w4 * 0.5 + w1 * 0.5, p.x * 2.0>0.5?1.0:0.0), w4, p.y * 2.0>0.5?1.0:0.0);\n    if (((pattern & (11)) == (2)))\n        return mix(mix(w0 * 0.375 + w3 * 0.25 + w4 * 0.375, w4 * 0.5 + w3 * 0.5, p.y * 2.0>0.5?1.0:0.0), w4, p.x * 2.0>0.5?1.0:0.0);\n    if (((pattern & (47)) == (47))) {\n        float dist = length(p - vec2(0.5));\n        float pixel_size = length(1.0 / (OutputSize / textureDimensions));\n        if (dist < 0.5 - pixel_size / 2.0) {\n            return w4;\n        }\n        vec4 r;\n        if (is_different(w0, w1) || is_different(w0, w3)) {\n            r = mix(w1, w3, p.y - p.x + 0.5>0.5?1.0:0.0);\n        }\n        else {\n            r = mix(mix(w1 * 0.375 + w0 * 0.25 + w3 * 0.375, w3, p.y * 2.0>0.5?1.0:0.0), w1, p.x * 2.0>0.5?1.0:0.0);\n        }\n\n        if (dist > 0.5 + pixel_size / 2.0) {\n            return r;\n        }\n        return mix(w4, r, (dist - 0.5 + pixel_size / 2.0) / pixel_size>0.5?1.0:0.0);\n    }\n    if (((pattern & (191)) == (55)) || ((pattern & (219)) == (19))) {\n        float dist = p.x - 2.0 * p.y;\n        float pixel_size = length(1.0 / (OutputSize / textureDimensions)) * sqrt(5.0);\n        if (dist > pixel_size / 2.0) {\n            return w1;\n        }\n        vec4 r = mix(w3, w4, p.x + 0.5>0.5?1.0:0.0);\n        if (dist < -pixel_size / 2.0) {\n            return r;\n        }\n        return mix(r, w1, (dist + pixel_size / 2.0) / pixel_size>0.5?1.0:0.0);\n    }\n    if (((pattern & (219)) == (73)) || ((pattern & (239)) == (109))) {\n        float dist = p.y - 2.0 * p.x;\n        float pixel_size = length(1.0 / (OutputSize / textureDimensions)) * sqrt(5.0);\n        if (p.y - 2.0 * p.x > pixel_size / 2.0) {\n            return w3;\n        }\n        vec4 r = mix(w1, w4, p.x + 0.5>0.5?1.0:0.0);\n        if (dist < -pixel_size / 2.0) {\n            return r;\n        }\n        return mix(r, w3, (dist + pixel_size / 2.0) / pixel_size>0.5?1.0:0.0);\n    }\n    if (((pattern & (191)) == (143)) || ((pattern & (126)) == (14))) {\n        float dist = p.x + 2.0 * p.y;\n        float pixel_size = length(1.0 / (OutputSize / textureDimensions)) * sqrt(5.0);\n\n        if (dist > 1.0 + pixel_size / 2.0) {\n            return w4;\n        }\n\n        vec4 r;\n        if (is_different(w0, w1) || is_different(w0, w3)) {\n            r = mix(w1, w3, p.y - p.x + 0.5>0.5?1.0:0.0);\n        }\n        else {\n            r = mix(mix(w1 * 0.375 + w0 * 0.25 + w3 * 0.375, w3, p.y * 2.0>0.5?1.0:0.0), w1, p.x * 2.0>0.5?1.0:0.0);\n        }\n\n        if (dist < 1.0 - pixel_size / 2.0) {\n            return r;\n        }\n\n        return mix(r, w4, (dist + pixel_size / 2.0 - 1.0) / pixel_size>0.5?1.0:0.0);\n\n    }\n\n    if (((pattern & (126)) == (42)) || ((pattern & (239)) == (171))) {\n        float dist = p.y + 2.0 * p.x;\n        float pixel_size = length(1.0 / (OutputSize / textureDimensions)) * sqrt(5.0);\n\n        if (p.y + 2.0 * p.x > 1.0 + pixel_size / 2.0) {\n            return w4;\n        }\n\n        vec4 r;\n\n        if (is_different(w0, w1) || is_different(w0, w3)) {\n            r = mix(w1, w3, p.y - p.x + 0.5>0.5?1.0:0.0);\n        }\n        else {\n            r = mix(mix(w1 * 0.375 + w0 * 0.25 + w3 * 0.375, w3, p.y * 2.0>0.5?1.0:0.0), w1, p.x * 2.0>0.5?1.0:0.0);\n        }\n\n        if (dist < 1.0 - pixel_size / 2.0) {\n            return r;\n        }\n\n        return mix(r, w4, (dist + pixel_size / 2.0 - 1.0) / pixel_size>0.5?1.0:0.0);\n    }\n\n    if (((pattern & (27)) == (3)) || ((pattern & (79)) == (67)) || ((pattern & (139)) == (131)) || ((pattern & (107)) == (67)))\n        return mix(w4, w3, 0.5 - p.x>0.5?1.0:0.0);\n\n    if (((pattern & (75)) == (9)) || ((pattern & (139)) == (137)) || ((pattern & (31)) == (25)) || ((pattern & (59)) == (25)))\n        return mix(w4, w1, 0.5 - p.y>0.5?1.0:0.0);\n\n    if (((pattern & (251)) == (106)) || ((pattern & (111)) == (110)) || ((pattern & (63)) == (62)) || ((pattern & (251)) == (250)) ||\n        ((pattern & (223)) == (222)) || ((pattern & (223)) == (30)))\n        return mix(w4, w0, (1.0 - p.x - p.y) / 2.0>0.5?1.0:0.0);\n\n    if (((pattern & (79)) == (75)) || ((pattern & (159)) == (27)) || ((pattern & (47)) == (11)) ||\n        ((pattern & (190)) == (10)) || ((pattern & (238)) == (10)) || ((pattern & (126)) == (10)) || ((pattern & (235)) == (75)) ||\n        ((pattern & (59)) == (27))) {\n        float dist = p.x + p.y;\n        float pixel_size = length(1.0 / (OutputSize / textureDimensions));\n\n        if (dist > 0.5 + pixel_size / 2.0) {\n            return w4;\n        }\n\n        vec4 r;\n        if (is_different(w0, w1) || is_different(w0, w3)) {\n            r = mix(w1, w3, p.y - p.x + 0.5>0.5?1.0:0.0);\n        }\n        else {\n            r = mix(mix(w1 * 0.375 + w0 * 0.25 + w3 * 0.375, w3, p.y * 2.0>0.5?1.0:0.0), w1, p.x * 2.0>0.5?1.0:0.0);\n        }\n\n        if (dist < 0.5 - pixel_size / 2.0) {\n            return r;\n        }\n\n        return mix(r, w4, (dist + pixel_size / 2.0 - 0.5) / pixel_size>0.5?1.0:0.0);\n    }\n\n    if (((pattern & (11)) == (1)))\n        return mix(mix(w4, w3, 0.5 - p.x>0.5?1.0:0.0), mix(w1, (w1 + w3) / 2.0, 0.5 - p.x>0.5?1.0:0.0), 0.5 - p.y>0.5?1.0:0.0);\n\n    if (((pattern & (11)) == (0)))\n        return mix(mix(w4, w3, 0.5 - p.x>0.5?1.0:0.0), mix(w1, w0, 0.5 - p.x>0.5?1.0:0.0), 0.5 - p.y>0.5?1.0:0.0);\n\n    float dist = p.x + p.y;\n    float pixel_size = length(1.0 / (OutputSize / textureDimensions));\n\n    if (dist > 0.5 + pixel_size / 2.0)\n        return w4;\n\n    /* We need more samples to \"solve\" this diagonal */\n    vec4 x0 = texture(image, texCoord + vec2( -o.x * 2.0, -o.y * 2.0));\n    vec4 x1 = texture(image, texCoord + vec2( -o.x      , -o.y * 2.0));\n    vec4 x2 = texture(image, texCoord + vec2(  0.0      , -o.y * 2.0));\n    vec4 x3 = texture(image, texCoord + vec2(  o.x      , -o.y * 2.0));\n    vec4 x4 = texture(image, texCoord + vec2( -o.x * 2.0, -o.y      ));\n    vec4 x5 = texture(image, texCoord + vec2( -o.x * 2.0,  0.0      ));\n    vec4 x6 = texture(image, texCoord + vec2( -o.x * 2.0,  o.y      ));\n\n    if (is_different(x0, w4)) pattern |= 1 << 8;\n    if (is_different(x1, w4)) pattern |= 1 << 9;\n    if (is_different(x2, w4)) pattern |= 1 << 10;\n    if (is_different(x3, w4)) pattern |= 1 << 11;\n    if (is_different(x4, w4)) pattern |= 1 << 12;\n    if (is_different(x5, w4)) pattern |= 1 << 13;\n    if (is_different(x6, w4)) pattern |= 1 << 14;\n\n    int diagonal_bias = -7;\n    while (pattern != 0) {\n        diagonal_bias += pattern & 1;\n        pattern >>= 1;\n    }\n\n    if (diagonal_bias <=  0) {\n        vec4 r = mix(w1, w3, p.y - p.x + 0.5>0.5?1.0:0.0);\n        if (dist < 0.5 - pixel_size / 2.0) {\n            return r;\n        }\n        return mix(r, w4, (dist + pixel_size / 2.0 - 0.5) / pixel_size>0.5?1.0:0.0);\n    }\n\n    return w4;\n}\n\n\nvoid fragment()\n{\n\tvec4 original = texture(TEXTURE, UV);\n\tvec2 size = 1.0 / TEXTURE_PIXEL_SIZE;\n\tfloat ratio = size.x / size.y; // Resolution ratio\n\tvec2 pixelated_uv = floor(UV * size) / (size - 1.0); // Pixelate UV to fit resolution\n\tvec2 rotated_uv;\n\tif (preview) {\n\t\trotated_uv = rotate(pixelated_uv, ratio);\n\t}\n\telse {\n\t\trotated_uv = rotate(UV, ratio);\n\t}\n\tvec4 c = scale(TEXTURE, rotated_uv, TEXTURE_PIXEL_SIZE);\n\n\t// Pixelorama edit\n\tCOLOR = mix_rotated_and_original(c, original, UV, rotated_uv, TEXTURE_PIXEL_SIZE);\n}"
  },
  {
    "path": "src/Shaders/Effects/Rotation/OmniScale.gdshader.uid",
    "content": "uid://c7fovhdfl7cla\n"
  },
  {
    "path": "src/Shaders/Effects/Rotation/SmearRotxel.gdshader",
    "content": "// Original shader written by Azagaya\nshader_type canvas_item;\nrender_mode unshaded;\n\nuniform sampler2D selection_tex : filter_nearest;\nuniform float initial_angle = 0.0;\nuniform float ending_angle = 0.0;\nuniform float tolerance : hint_range(0.0, 255.0) = 100.0;\nuniform vec2 pivot = vec2(0.0, 0.0);\nuniform vec2 position = vec2(0.0, 0.0);\n\nbool similarColors(vec4 c1, vec4 c2) {\n\treturn (distance(c1 * 255.0, c2 * 255.0) < tolerance);\n}\n\n\nvec4 rotate(sampler2D tex, vec2 uv, vec2 tex_pixel_size) {\n\tvec4 color = vec4(0.0);\n\tvec2 center = pivot / tex_pixel_size;\n\tvec2 size = 1.0 / tex_pixel_size;\n\tvec2 coord = uv / tex_pixel_size + position;\n\tint dx = 3 * (int(coord.x) - int(center.x));\n\tint dy = 3 * (int(coord.y) - int(center.y));\n\tint k = 0;\n\tint ox, oy;\n\tfloat dir;\n\tfloat mag;\n\tfloat init_angle = initial_angle < ending_angle ? initial_angle : ending_angle;\n\tfor (float angle = ending_angle; angle >= init_angle && color.a <= 0.0001; angle -= 0.0174) {\n\t\tfor (int k = 0; k < 9; k++) {\n\t\t\tint i = -1 + int(k % 3);\n\t\t\tint j = -1 + k / 3;\n\t\t\tdir = atan(float(dy + j), float(dx + i));\n\t\t\tmag = sqrt(pow(float(dx + i), 2.0) + pow(float(dy + j), 2.0));\n\t\t\tdir -= angle;\n\t\t\tox = int(round(3.0 * center.x + 1.0 + mag * cos(dir)));\n\t\t\toy = int(round(3.0 * center.y + 1.0 + mag * sin(dir)));\n\n\t\t\tif (int(size.x) % 2 != 0) {\n\t\t\t\tox += 1;\n\t\t\t}\n\t\t\tif (int(size.y) % 2 != 0) {\n\t\t\t\toy += 1;\n\t\t\t}\n\n\t\t\tif (ox >= 0 && ox < 3 * int(size.x) && oy >= 0 && oy < 3 * int(size.y)) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (k == 9){\n\t\t\tcontinue;\n\t\t}\n\n\t\tint row = int(oy % 3);\n\t\tint col = int(ox % 3);\n\t\tint index = col + 3 * row;\n\t\tox = int(round(float(ox - 1) / 3.0));\n\t\toy = int(round(float(oy - 1) / 3.0));\n\n\t\tif (ox == 0 || ox == int(size.x) - 1 || oy == 0 || oy == int(size.y) - 1) {\n\t\t\tcolor = texture(tex, vec2(float(ox), float(oy)) * tex_pixel_size);\n\t\t}\n\t\telse {\n\t\t\tvec4 a = texture(tex, vec2(float(ox - 1), float(oy - 1)) * tex_pixel_size);\n\t\t\tvec4 b = texture(tex, vec2(float(ox), float(oy - 1)) * tex_pixel_size);\n\t\t\tvec4 c = texture(tex, vec2(float(ox + 1), float(oy - 1)) * tex_pixel_size);\n\t\t\tvec4 d = texture(tex, vec2(float(ox - 1), float(oy)) * tex_pixel_size);\n\t\t\tvec4 e = texture(tex, vec2(float(ox), float(oy)) * tex_pixel_size);\n\t\t\tvec4 f = texture(tex, vec2(float(ox + 1), float(oy)) * tex_pixel_size);\n\t\t\tvec4 g = texture(tex, vec2(float(ox - 1), float(oy + 1)) * tex_pixel_size);\n\t\t\tvec4 h = texture(tex, vec2(float(ox), float(oy + 1)) * tex_pixel_size);\n\t\t\tvec4 l = texture(tex, vec2(float(ox + 1), float(oy + 1)) * tex_pixel_size);\n\n\t\t\tif (index == 0) {\n\t\t\t\tcolor = similarColors(d,b) && !similarColors(d,h) && !similarColors(b,f) ? d : e;\n\t\t\t}\n\t\t\telse if (index == 1) {\n\t\t\t\tcolor = (similarColors(d,b) && !similarColors(d,h) && !similarColors(b,f) && !similarColors(e,c))\n\t\t\t\t|| (similarColors(b,f) && !similarColors(d,b) && !similarColors(f,h) && !similarColors(e,a)) ? b : e;\n\t\t\t}\n\t\t\telse if (index == 2) {\n\t\t\t\tcolor = similarColors(b,f) && !similarColors(d,b) && !similarColors(f,h) ? f : e;\n\t\t\t}\n\t\t\telse if (index == 3) {\n\t\t\t\tcolor = (similarColors(d,h) && !similarColors(f,h) && !similarColors(d,b) && !similarColors(e,a))\n\t\t\t\t|| (similarColors(d,b) && !similarColors(d,h) && !similarColors(b,f) && !similarColors(e,g)) ? d : e;\n\t\t\t}\n\t\t\telse if (index == 4) {\n\t\t\t\tcolor = e;\n\t\t\t}\n\t\t\telse if (index == 5) {\n\t\t\t\tcolor = (similarColors(b,f) && !similarColors(d,b) && !similarColors(f,h) && !similarColors(e,l))\n\t\t\t\t|| (similarColors(f,h) && !similarColors(b,f) && !similarColors(d,h) && !similarColors(e,c)) ? f : e;\n\t\t\t}\n\t\t\telse if (index == 6) {\n\t\t\t\tcolor = similarColors(d,h) && !similarColors(f,h) && !similarColors(d,b) ? d : e;\n\t\t\t}\n\t\t\telse if (index == 7) {\n\t\t\t\tcolor = (similarColors(f,h) && !similarColors(f,b)&& !similarColors(d,h) && !similarColors(e,g))\n\t\t\t\t|| (similarColors(d,h) && !similarColors(f,h) && !similarColors(d,b) && !similarColors(e,l)) ? h : e;\n\t\t\t}\n\t\t\telse if (index == 8) {\n\t\t\t\tcolor = similarColors(f,h) && !similarColors(f,b) && !similarColors(d,h)? f : e;\n\t\t\t}\n\t\t}\n\t\tcolor.a *= step(ending_angle, initial_angle) +\n\t\tstep(initial_angle ,ending_angle) * (angle - initial_angle) / (ending_angle - initial_angle + 0.01);\n\t}\n\n\treturn color;\n}\n\n// The exact same as rotate, but had to be re-defined due to https://github.com/godotengine/godot/issues/75935\nvec4 rotate_uniform(sampler2D tex, vec2 uv, vec2 tex_pixel_size) {\n\tvec4 color = vec4(0.0);\n\tvec2 center = pivot / tex_pixel_size;\n\tvec2 size = 1.0 / tex_pixel_size;\n\tvec2 coord = uv / tex_pixel_size + position;\n\tint dx = 3 * (int(coord.x) - int(center.x));\n\tint dy = 3 * (int(coord.y) - int(center.y));\n\tint k = 0;\n\tint ox, oy;\n\tfloat dir;\n\tfloat mag;\n\tfloat init_angle = initial_angle < ending_angle ? initial_angle : ending_angle;\n\tfor (float angle = ending_angle; angle >= init_angle && color.a <= 0.0001; angle -= 0.0174) {\n\t\tfor (int k = 0; k < 9; k++) {\n\t\t\tint i = -1 + int(k % 3);\n\t\t\tint j = -1 + k / 3;\n\t\t\tdir = atan(float(dy + j), float(dx + i));\n\t\t\tmag = sqrt(pow(float(dx + i), 2.0) + pow(float(dy + j), 2.0));\n\t\t\tdir -= angle;\n\t\t\tox = int(round(3.0 * center.x + 1.0 + mag * cos(dir)));\n\t\t\toy = int(round(3.0 * center.y + 1.0 + mag * sin(dir)));\n\n\t\t\tif (int(size.x) % 2 != 0) {\n\t\t\t\tox += 1;\n\t\t\t}\n\t\t\tif (int(size.y) % 2 != 0) {\n\t\t\t\toy += 1;\n\t\t\t}\n\n\t\t\tif (ox >= 0 && ox < 3 * int(size.x) && oy >= 0 && oy < 3 * int(size.y)) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (k == 9){\n\t\t\tcontinue;\n\t\t}\n\n\t\tint row = int(oy % 3);\n\t\tint col = int(ox % 3);\n\t\tint index = col + 3 * row;\n\t\tox = int(round(float(ox - 1) / 3.0));\n\t\toy = int(round(float(oy - 1) / 3.0));\n\n\t\tif (ox == 0 || ox == int(size.x) - 1 || oy == 0 || oy == int(size.y) - 1) {\n\t\t\tcolor = texture(tex, vec2(float(ox), float(oy)) * tex_pixel_size);\n\t\t}\n\t\telse {\n\t\t\tvec4 a = texture(tex, vec2(float(ox - 1), float(oy - 1)) * tex_pixel_size);\n\t\t\tvec4 b = texture(tex, vec2(float(ox), float(oy - 1)) * tex_pixel_size);\n\t\t\tvec4 c = texture(tex, vec2(float(ox + 1), float(oy - 1)) * tex_pixel_size);\n\t\t\tvec4 d = texture(tex, vec2(float(ox - 1), float(oy)) * tex_pixel_size);\n\t\t\tvec4 e = texture(tex, vec2(float(ox), float(oy)) * tex_pixel_size);\n\t\t\tvec4 f = texture(tex, vec2(float(ox + 1), float(oy)) * tex_pixel_size);\n\t\t\tvec4 g = texture(tex, vec2(float(ox - 1), float(oy + 1)) * tex_pixel_size);\n\t\t\tvec4 h = texture(tex, vec2(float(ox), float(oy + 1)) * tex_pixel_size);\n\t\t\tvec4 l = texture(tex, vec2(float(ox + 1), float(oy + 1)) * tex_pixel_size);\n\n\t\t\tif (index == 0) {\n\t\t\t\tcolor = similarColors(d,b) && !similarColors(d,h) && !similarColors(b,f) ? d : e;\n\t\t\t}\n\t\t\telse if (index == 1) {\n\t\t\t\tcolor = (similarColors(d,b) && !similarColors(d,h) && !similarColors(b,f) && !similarColors(e,c))\n\t\t\t\t|| (similarColors(b,f) && !similarColors(d,b) && !similarColors(f,h) && !similarColors(e,a)) ? b : e;\n\t\t\t}\n\t\t\telse if (index == 2) {\n\t\t\t\tcolor = similarColors(b,f) && !similarColors(d,b) && !similarColors(f,h) ? f : e;\n\t\t\t}\n\t\t\telse if (index == 3) {\n\t\t\t\tcolor = (similarColors(d,h) && !similarColors(f,h) && !similarColors(d,b) && !similarColors(e,a))\n\t\t\t\t|| (similarColors(d,b) && !similarColors(d,h) && !similarColors(b,f) && !similarColors(e,g)) ? d : e;\n\t\t\t}\n\t\t\telse if (index == 4) {\n\t\t\t\tcolor = e;\n\t\t\t}\n\t\t\telse if (index == 5) {\n\t\t\t\tcolor = (similarColors(b,f) && !similarColors(d,b) && !similarColors(f,h) && !similarColors(e,l))\n\t\t\t\t|| (similarColors(f,h) && !similarColors(b,f) && !similarColors(d,h) && !similarColors(e,c)) ? f : e;\n\t\t\t}\n\t\t\telse if (index == 6) {\n\t\t\t\tcolor = similarColors(d,h) && !similarColors(f,h) && !similarColors(d,b) ? d : e;\n\t\t\t}\n\t\t\telse if (index == 7) {\n\t\t\t\tcolor = (similarColors(f,h) && !similarColors(f,b)&& !similarColors(d,h) && !similarColors(e,g))\n\t\t\t\t|| (similarColors(d,h) && !similarColors(f,h) && !similarColors(d,b) && !similarColors(e,l)) ? h : e;\n\t\t\t}\n\t\t\telse if (index == 8) {\n\t\t\t\tcolor = similarColors(f,h) && !similarColors(f,b) && !similarColors(d,h)? f : e;\n\t\t\t}\n\t\t}\n\t\tcolor.a *= step(ending_angle, initial_angle) +\n\t\tstep(initial_angle ,ending_angle) * (angle - initial_angle) / (ending_angle - initial_angle + 0.01);\n\t}\n\n\treturn color;\n}\n\nvoid fragment() {\n\tvec4 original = texture(TEXTURE, UV);\n\tvec4 selection = texture(selection_tex, UV);\n\tvec4 rotated_selection = rotate_uniform(selection_tex, UV, TEXTURE_PIXEL_SIZE);\n\tvec4 rotated = rotate(TEXTURE, UV, TEXTURE_PIXEL_SIZE);\n\trotated = mix(vec4(0.0), rotated, rotated_selection.a);\n\trotated.a *= rotated_selection.a; // Combine with selection mask\n\tfloat mask = mix(selection.a, 1.0, 1.0 - ceil(original.a)); // Combine selection mask with area outside original\n\n\t// Combine original and rotated image only when intersecting, otherwise just pure rotated image.\n\tCOLOR.rgb = mix(mix(original.rgb, rotated.rgb, rotated.a), rotated.rgb, mask);\n\tCOLOR.a = mix(original.a, 0.0, selection.a); // Remove alpha on the selected area\n\tCOLOR.a = mix(COLOR.a, 1.0, rotated.a); // Combine alpha of original image and rotated\n}\n"
  },
  {
    "path": "src/Shaders/Effects/Rotation/SmearRotxel.gdshader.uid",
    "content": "uid://cb8252p0l6qrt\n"
  },
  {
    "path": "src/Shaders/Effects/Rotation/cleanEdge.gdshader",
    "content": "/*** MIT LICENSE\nCopyright (c) 2022 torcado\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n***/\n\n\nshader_type canvas_item;\nrender_mode unshaded;\n#include \"res://src/Shaders/Effects/Rotation/CommonRotation.gdshaderinc\"\n//enables 2:1 slopes. otherwise only uses 45 degree slopes\n#define SLOPE\n//cleans up small detail slope transitions (if SLOPE is enabled)\n//if only using for rotation, CLEANUP has negligible effect and should be disabled for speed\n#define CLEANUP\n\n//the color with the highest priority.\n// other colors will be tested based on distance to this\n// color to determine which colors take priority for overlaps.\nuniform vec3 highestColor = vec3(1.,1.,1.);\n\n//how close two colors should be to be considered \"similar\".\n// can group shapes of visually similar colors, but creates\n// some artifacting and should be kept as low as possible.\nuniform float similarThreshold = 0.0;\n\nuniform float lineWidth = 1.0;\n\n// Edited for Pixelorama\nuniform bool preview = false;\n\nbool similar(vec4 col1, vec4 col2){\n\treturn (col1.a == 0. && col2.a == 0.) || distance(col1, col2) <= similarThreshold;\n}\n\n//multiple versions because godot doesn't support function overloading\n//note: inner check should ideally check between all permutations\n//  but this is good enough, and faster\nbool similar3(vec4 col1, vec4 col2, vec4 col3){\n\treturn similar(col1, col2) && similar(col2, col3);\n}\n\nbool similar4(vec4 col1, vec4 col2, vec4 col3, vec4 col4){\n\treturn similar(col1, col2) && similar(col2, col3) && similar(col3, col4);\n}\n\nbool higher(vec4 thisCol, vec4 otherCol){\n\tif(similar(thisCol, otherCol)) return false;\n\tif(thisCol.a == otherCol.a){\n//\t\treturn yuv(thisCol.rgb).x > yuv(otherCol.rgb).x;\n//\t\treturn distance(yuv(thisCol.rgb), yuv(highestColor)) < distance(yuv(otherCol.rgb), yuv(highestColor));\n\t\treturn distance(thisCol.rgb, highestColor) < distance(otherCol.rgb, highestColor);\n\t} else {\n\t\treturn thisCol.a > otherCol.a;\n\t}\n}\n\n//color distance\nfloat cd(vec4 col1, vec4 col2){\n\treturn distance(col1.rgba, col2.rgba);\n}\n\nfloat distToLine(vec2 testPt, vec2 pt1, vec2 pt2, vec2 dir){\n  vec2 lineDir = pt2 - pt1;\n  vec2 perpDir = vec2(lineDir.y, -lineDir.x);\n  vec2 dirToPt1 = pt1 - testPt;\n  return (dot(perpDir, dir) > 0.0 ? 1.0 : -1.0) * (dot(normalize(perpDir), dirToPt1));\n}\n\n//based on down-forward direction\nvec4 sliceDist(vec2 point, vec2 mainDir, vec2 pointDir, vec4 u, vec4 uf, vec4 uff, vec4 b, vec4 c, vec4 f, vec4 ff, vec4 db, vec4 d, vec4 df, vec4 dff, vec4 ddb, vec4 dd, vec4 ddf){\n\t#ifdef SLOPE\n\tfloat minWidth = 0.44;\n\tfloat maxWidth = 1.142;\n\t#else\n\tfloat minWidth = 0.0;\n\tfloat maxWidth = 1.4;\n\t#endif\n\tfloat _lineWidth = max(minWidth, min(maxWidth, lineWidth));\n\tpoint = mainDir * (point - 0.5) + 0.5; //flip point\n\n\t//edge detection\n\tfloat distAgainst = 4.0*cd(f,d) + cd(uf,c) + cd(c,db) + cd(ff,df) + cd(df,dd);\n\tfloat distTowards = 4.0*cd(c,df) + cd(u,f) + cd(f,dff) + cd(b,d) + cd(d,ddf);\n\tbool shouldSlice =\n\t  (distAgainst < distTowards)\n\t  || (distAgainst < distTowards + 0.001) && !higher(c, f); //equivalent edges edge case\n\tif(similar4(f, d, b, u) && similar3(uf, df, db/*, ub*/) && !similar(c, f)){ //checkerboard edge case\n\t\tshouldSlice = false;\n\t}\n\tif(!shouldSlice) return vec4(-1.0);\n\n\t//only applicable for very large lineWidth (>1.3)\n//\tif(similar3(c, f, df)){ //don't make slice for same color\n//\t\treturn vec4(-1.0);\n//\t}\n\tfloat dist = 1.0;\n\tbool flip = false;\n\tvec2 center = vec2(0.5,0.5);\n\n\t#ifdef SLOPE\n\tif(similar3(f, d, db) && !similar3(f, d, b) && !similar(uf, db)){ //lower shallow 2:1 slant\n\t\tif(similar(c, df) && higher(c, f)){ //single pixel wide diagonal, dont flip\n\n\t\t} else {\n\t\t\t//priority edge cases\n\t\t\tif(higher(c, f)){\n\t\t\t\tflip = true;\n\t\t\t}\n\t\t\tif(similar(u, f) && !similar(c, df) && !higher(c, u)){\n\t\t\t\tflip = true;\n\t\t\t}\n\t\t}\n\n\t\tif(flip){\n\t\t\tdist = _lineWidth-distToLine(point, center+vec2(1.5, -1.0)*pointDir, center+vec2(-0.5, 0.0)*pointDir, -pointDir); //midpoints of neighbor two-pixel groupings\n\t\t} else {\n\t\t\tdist = distToLine(point, center+vec2(1.5, 0.0)*pointDir, center+vec2(-0.5, 1.0)*pointDir, pointDir); //midpoints of neighbor two-pixel groupings\n\t\t}\n\n\t\t//cleanup slant transitions\n\t\t#ifdef CLEANUP\n\t\tif(!flip && similar(c, uf) && !(similar3(c, uf, uff) && !similar3(c, uf, ff) && !similar(d, uff))){ //shallow\n\t\t\tfloat dist2 = distToLine(point, center+vec2(2.0, -1.0)*pointDir, center+vec2(-0.0, 1.0)*pointDir, pointDir);\n\t\t\tdist = min(dist, dist2);\n\t\t}\n\t\t#endif\n\n\t\tdist -= (_lineWidth/2.0);\n\t\treturn dist <= 0.0 ? ((cd(c,f) <= cd(c,d)) ? f : d) : vec4(-1.0);\n\t} else if(similar3(uf, f, d) && !similar3(u, f, d) && !similar(uf, db)){ //forward steep 2:1 slant\n\t\tif(similar(c, df) && higher(c, d)){ //single pixel wide diagonal, dont flip\n\n\t\t} else {\n\t\t\t//priority edge cases\n\t\t\tif(higher(c, d)){\n\t\t\t\tflip = true;\n\t\t\t}\n\t\t\tif(similar(b, d) && !similar(c, df) && !higher(c, d)){\n\t\t\t\tflip = true;\n\t\t\t}\n\t\t}\n\n\t\tif(flip){\n\t\t\tdist = _lineWidth-distToLine(point, center+vec2(0.0, -0.5)*pointDir, center+vec2(-1.0, 1.5)*pointDir, -pointDir); //midpoints of neighbor two-pixel groupings\n\t\t} else {\n\t\t\tdist = distToLine(point, center+vec2(1.0, -0.5)*pointDir, center+vec2(0.0, 1.5)*pointDir, pointDir); //midpoints of neighbor two-pixel groupings\n\t\t}\n\n\t\t//cleanup slant transitions\n\t\t#ifdef CLEANUP\n\t\tif(!flip && similar(c, db) && !(similar3(c, db, ddb) && !similar3(c, db, dd) && !similar(f, ddb))){ //steep\n\t\t\tfloat dist2 = distToLine(point, center+vec2(1.0, 0.0)*pointDir, center+vec2(-1.0, 2.0)*pointDir, pointDir);\n\t\t\tdist = min(dist, dist2);\n\t\t}\n\t\t#endif\n\n\t\tdist -= (_lineWidth/2.0);\n\t\treturn dist <= 0.0 ? ((cd(c,f) <= cd(c,d)) ? f : d) : vec4(-1.0);\n\t} else\n\t#endif\n\tif(similar(f, d)) { //45 diagonal\n\t\tif(similar(c, df) && higher(c, f)){ //single pixel diagonal along neighbors, dont flip\n\t\t\tif(!similar(c, dd) && !similar(c, ff)){ //line against triple color stripe edge case\n\t\t\t\tflip = true;\n\t\t\t}\n\t\t} else {\n\t\t\t//priority edge cases\n\t\t\tif(higher(c, f)){\n\t\t\t\tflip = true;\n\t\t\t}\n\t\t\tif(!similar(c, b) && similar4(b, f, d, u)){\n\t\t\t\tflip = true;\n\t\t\t}\n\t\t}\n\t\t//single pixel 2:1 slope, dont flip\n\t\tif((( (similar(f, db) && similar3(u, f, df)) || (similar(uf, d) && similar3(b, d, df)) ) && !similar(c, df))){\n\t\t\tflip = true;\n\t\t}\n\n\t\tif(flip){\n\t\t\tdist = _lineWidth-distToLine(point, center+vec2(1.0, -1.0)*pointDir, center+vec2(-1.0, 1.0)*pointDir, -pointDir); //midpoints of own diagonal pixels\n\t\t} else {\n\t\t\tdist = distToLine(point, center+vec2(1.0, 0.0)*pointDir, center+vec2(0.0, 1.0)*pointDir, pointDir); //midpoints of corner neighbor pixels\n\t\t}\n\n\t\t//cleanup slant transitions\n\t\t#ifdef SLOPE\n\t\t#ifdef CLEANUP\n\t\tif(!flip && similar3(c, uf, uff) && !similar3(c, uf, ff) && !similar(d, uff)){ //shallow\n\t\t\tfloat dist2 = distToLine(point, center+vec2(1.5, 0.0)*pointDir, center+vec2(-0.5, 1.0)*pointDir, pointDir);\n\t\t\tdist = max(dist, dist2);\n\t\t}\n\n\t\tif(!flip && similar3(ddb, db, c) && !similar3(dd, db, c) && !similar(ddb, f)){ //steep\n\t\t\tfloat dist2 = distToLine(point, center+vec2(1.0, -0.5)*pointDir, center+vec2(0.0, 1.5)*pointDir, pointDir);\n\t\t\tdist = max(dist, dist2);\n\t\t}\n\t\t#endif\n\t\t#endif\n\n\t\tdist -= (_lineWidth/2.0);\n\t\treturn dist <= 0.0 ? ((cd(c,f) <= cd(c,d)) ? f : d) : vec4(-1.0);\n\t}\n\t#ifdef SLOPE\n\telse if(similar3(ff, df, d) && !similar3(ff, df, c) && !similar(uff, d)){ //far corner of shallow slant\n\n\t\tif(similar(f, dff) && higher(f, ff)){ //single pixel wide diagonal, dont flip\n\n\t\t} else {\n\t\t\t//priority edge cases\n\t\t\tif(higher(f, ff)){\n\t\t\t\tflip = true;\n\t\t\t}\n\t\t\tif(similar(uf, ff) && !similar(f, dff) && !higher(f, uf)){\n\t\t\t\tflip = true;\n\t\t\t}\n\t\t}\n\t\tif(flip){\n\t\t\tdist = _lineWidth-distToLine(point, center+vec2(1.5+1.0, -1.0)*pointDir, center+vec2(-0.5+1.0, 0.0)*pointDir, -pointDir); //midpoints of neighbor two-pixel groupings\n\t\t} else {\n\t\t\tdist = distToLine(point, center+vec2(1.5+1.0, 0.0)*pointDir, center+vec2(-0.5+1.0, 1.0)*pointDir, pointDir); //midpoints of neighbor two-pixel groupings\n\t\t}\n\n\t\tdist -= (_lineWidth/2.0);\n\t\treturn dist <= 0.0 ? ((cd(f,ff) <= cd(f,df)) ? ff : df) : vec4(-1.0);\n\t} else if(similar3(f, df, dd) && !similar3(c, df, dd) && !similar(f, ddb)){ //far corner of steep slant\n\t\tif(similar(d, ddf) && higher(d, dd)){ //single pixel wide diagonal, dont flip\n\n\t\t} else {\n\t\t\t//priority edge cases\n\t\t\tif(higher(d, dd)){\n\t\t\t\tflip = true;\n\t\t\t}\n\t\t\tif(similar(db, dd) && !similar(d, ddf) && !higher(d, dd)){\n\t\t\t\tflip = true;\n\t\t\t}\n//\t\t\tif(!higher(d, dd)){\n//\t\t\t\treturn vec4(1.0);\n//\t\t\t\tflip = true;\n//\t\t\t}\n\t\t}\n\n\t\tif(flip){\n\t\t\tdist = _lineWidth-distToLine(point, center+vec2(0.0, -0.5+1.0)*pointDir, center+vec2(-1.0, 1.5+1.0)*pointDir, -pointDir); //midpoints of neighbor two-pixel groupings\n\t\t} else {\n\t\t\tdist = distToLine(point, center+vec2(1.0, -0.5+1.0)*pointDir, center+vec2(0.0, 1.5+1.0)*pointDir, pointDir); //midpoints of neighbor two-pixel groupings\n\t\t}\n\t\tdist -= (_lineWidth/2.0);\n\t\treturn dist <= 0.0 ? ((cd(d,df) <= cd(d,dd)) ? df : dd) : vec4(-1.0);\n\t}\n\t#endif\n\treturn vec4(-1.0);\n}\n\nvoid fragment() {\n\tvec2 size = 1.0/TEXTURE_PIXEL_SIZE+0.0001; //fix for some sort of rounding error\n\t// Pixelorama edit\n\tvec4 original = texture(TEXTURE, UV);\n\tfloat ratio = size.x / size.y; // Resolution ratio\n\tvec2 pixelated_uv = floor(UV * size) / (size - 1.0); // Pixelate UV to fit resolutio\n\tvec2 rotated_uv;\n\tif (preview) {\n\t\trotated_uv = rotate(pixelated_uv, ratio);\n\t}\n\telse {\n\t\trotated_uv = rotate(UV, ratio);\n\t}\n\tvec2 px = rotated_uv * size;\n\tvec2 local = fract(px);\n\tpx = ceil(px);\n\n\tvec2 pointDir = round(local)*2.0-1.0;\n\n\t//neighbor pixels\n\t//Up, Down, Forward, and Back\n\t//relative to quadrant of current location within pixel\n\n\tvec4 uub = texture(TEXTURE, (px+vec2(-1.0,-2.0)*pointDir)/size);\n\tvec4 uu  = texture(TEXTURE, (px+vec2( 0.0,-2.0)*pointDir)/size);\n\tvec4 uuf = texture(TEXTURE, (px+vec2( 1.0,-2.0)*pointDir)/size);\n\n\tvec4 ubb = texture(TEXTURE, (px+vec2(-2.0,-2.0)*pointDir)/size);\n\tvec4 ub  = texture(TEXTURE, (px+vec2(-1.0,-1.0)*pointDir)/size);\n\tvec4 u   = texture(TEXTURE, (px+vec2( 0.0,-1.0)*pointDir)/size);\n\tvec4 uf  = texture(TEXTURE, (px+vec2( 1.0,-1.0)*pointDir)/size);\n\tvec4 uff = texture(TEXTURE, (px+vec2( 2.0,-1.0)*pointDir)/size);\n\n\tvec4 bb  = texture(TEXTURE, (px+vec2(-2.0, 0.0)*pointDir)/size);\n\tvec4 b   = texture(TEXTURE, (px+vec2(-1.0, 0.0)*pointDir)/size);\n\tvec4 c   = texture(TEXTURE, (px+vec2( 0.0, 0.0)*pointDir)/size);\n\tvec4 f   = texture(TEXTURE, (px+vec2( 1.0, 0.0)*pointDir)/size);\n\tvec4 ff  = texture(TEXTURE, (px+vec2( 2.0, 0.0)*pointDir)/size);\n\n\tvec4 dbb = texture(TEXTURE, (px+vec2(-2.0, 1.0)*pointDir)/size);\n\tvec4 db  = texture(TEXTURE, (px+vec2(-1.0, 1.0)*pointDir)/size);\n\tvec4 d   = texture(TEXTURE, (px+vec2( 0.0, 1.0)*pointDir)/size);\n\tvec4 df  = texture(TEXTURE, (px+vec2( 1.0, 1.0)*pointDir)/size);\n\tvec4 dff = texture(TEXTURE, (px+vec2( 2.0, 1.0)*pointDir)/size);\n\n\tvec4 ddb = texture(TEXTURE, (px+vec2(-1.0, 2.0)*pointDir)/size);\n\tvec4 dd  = texture(TEXTURE, (px+vec2( 0.0, 2.0)*pointDir)/size);\n\tvec4 ddf = texture(TEXTURE, (px+vec2( 1.0, 2.0)*pointDir)/size);\n\n\tvec4 col = c;\n\n\t//c_orner, b_ack, and u_p slices\n\t// (slices from neighbor pixels will only ever reach these 3 quadrants\n\tvec4 c_col = sliceDist(local, vec2( 1.0, 1.0), pointDir, u, uf, uff, b, c, f, ff, db, d, df, dff, ddb, dd, ddf);\n\tvec4 b_col = sliceDist(local, vec2(-1.0, 1.0), pointDir, u, ub, ubb, f, c, b, bb, df, d, db, dbb, ddf, dd, ddb);\n\tvec4 u_col = sliceDist(local, vec2( 1.0,-1.0), pointDir, d, df, dff, b, c, f, ff, ub, u, uf, uff, uub, uu, uuf);\n\n\tif(c_col.r >= 0.0){\n\t\tcol = c_col;\n\t}\n\tif(b_col.r >= 0.0){\n\t\tcol = b_col;\n\t}\n\tif(u_col.r >= 0.0){\n\t\tcol = u_col;\n\t}\n\n    // Pixelorama edit\n\tCOLOR = mix_rotated_and_original(col, original, UV, rotated_uv, TEXTURE_PIXEL_SIZE);\n}\n"
  },
  {
    "path": "src/Shaders/Effects/Rotation/cleanEdge.gdshader.uid",
    "content": "uid://80ovln3lbbf4\n"
  },
  {
    "path": "src/Shaders/FindPaletteColorIndex.gdshaderinc",
    "content": "int find_index(vec4 color, int n_of_colors, sampler2D palette_texture) {\n\tint color_index = 0;\n\tfloat smaller_distance = distance(color, texture(palette_texture, vec2(0.0)));\n\tfor (int i = 0; i <= n_of_colors; i++) {\n\t\tvec4 palette_color = texelFetch(palette_texture, ivec2(i, 0), 0);\n\t\tfloat dist = distance(color, palette_color);\n\t\tif (dist < smaller_distance) {\n\t\t\tsmaller_distance = dist;\n\t\t\tcolor_index = i;\n\t\t}\n\t}\n\treturn color_index;\n}\n"
  },
  {
    "path": "src/Shaders/FindPaletteColorIndex.gdshaderinc.uid",
    "content": "uid://dvev8qaumdgxv\n"
  },
  {
    "path": "src/Shaders/Greyscale.gdshader",
    "content": "shader_type canvas_item;\n\nuniform sampler2D screen_texture : hint_screen_texture;\n\nvoid fragment() {\n    COLOR = texture(screen_texture, SCREEN_UV);\n\t// formula from \"https://stackoverflow.com/a/596241\"\n    float avg = ((0.2126 * COLOR.r) + (0.7152 * COLOR.g) + (0.0722 * COLOR.b));\n    COLOR.rgb = vec3(avg);\n}"
  },
  {
    "path": "src/Shaders/Greyscale.gdshader.uid",
    "content": "uid://bhgdieau4cr1b\n"
  },
  {
    "path": "src/Shaders/IndexedToRGB.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nconst float EPSILON = 0.0001;\n\nuniform sampler2D palette_texture : filter_nearest;\nuniform sampler2D indices_texture : filter_nearest;\n\nvoid fragment() {\n\tfloat index = texture(indices_texture, UV).r * 255.0;\n\tif (index <= EPSILON) { // If index is zero, make it transparent\n\t\tCOLOR = vec4(0.0);\n\t}\n\telse {\n\t\tfloat n_of_colors = float(textureSize(palette_texture, 0).x);\n\t\tindex -= 1.0;\n\t\tfloat index_normalized = index / n_of_colors;\n\t\tif (index < n_of_colors) {\n\t\t\tCOLOR = texelFetch(palette_texture, ivec2(int(index), 0), 0);\n\t\t}\n\t\telse {\n\t\t\t// If index is bigger than the size of the palette, make it transparent.\n\t\t\t// This happens when switching to a palette, where the previous palette was bigger\n\t\t\t// than the newer one, and the current index is out of bounds of the new one.\n\t\t\tCOLOR = vec4(0.0);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/Shaders/IndexedToRGB.gdshader.uid",
    "content": "uid://b80yw3h6dqwhy\n"
  },
  {
    "path": "src/Shaders/MarchingAntsOutline.gdshader",
    "content": "// Taken and modified from https://godotshaders.com/shader/2d-outline-inline/\n// Also thanks to https://andreashackel.de/tech-art/stripes-shader-1/ for the stripe tutorial\nshader_type canvas_item;\n\n#include \"CanvasCommon.gdshaderinc\"\nuniform vec4 first_color : source_color = vec4(1.0);\nuniform vec4 second_color : source_color = vec4(0.0, 0.0, 0.0, 1.0);\nuniform bool animated = true;\nuniform float frequency = 50.0;\nuniform float stripe_direction : hint_range(0, 1) = 0.5;\n\n\nvoid fragment() {\n\tvec2 ts = TEXTURE_PIXEL_SIZE;\n\n\tif (COLOR.a > 0.0 && has_contrary_neighbour(UV, ts, TEXTURE)) {\n\t\tvec2 ratio = (ts.x > ts.y) ? vec2(ts.y / ts.x, 1) : vec2(1, ts.x / ts.y);\n\t\tvec2 uv = UV * ratio;\n\t\tif(animated)\n\t\t\tuv -= TIME / frequency;\n\t\t// Generate diagonal stripes\n\t\tfloat pos = mix(uv.x, uv.y, stripe_direction) * frequency;\n\t\tfloat value = floor(fract(pos) + 0.5);\n\t\tCOLOR = mix(first_color, second_color, step(1.0, mod(value, 2.0)));\n\t}\n\telse { // Erase the texture's pixels in order to only keep the outline visible\n\t\tCOLOR.a = 0.0;\n\t}\n}\n"
  },
  {
    "path": "src/Shaders/MarchingAntsOutline.gdshader.uid",
    "content": "uid://droyxrcawbpcn\n"
  },
  {
    "path": "src/Shaders/PatternFill.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nuniform sampler2D selection : filter_nearest;\nuniform sampler2D pattern : filter_nearest, repeat_enable;\nuniform vec2 size;\nuniform vec2 pattern_size;\nuniform vec2 pattern_uv_offset;\n\nvoid fragment() {\n\tvec4 original_color = texture(TEXTURE, UV);\n\tvec4 selection_color = texture(selection, UV);\n\tvec4 col = original_color;\n\tcol = textureLod(pattern, UV * (size / pattern_size) + pattern_uv_offset, 0.0);\n\n\tCOLOR = mix(original_color, col, selection_color.a);\n}\n"
  },
  {
    "path": "src/Shaders/PatternFill.gdshader.uid",
    "content": "uid://cepi6sxle6lam\n"
  },
  {
    "path": "src/Shaders/ReferenceImageShader.gdshader",
    "content": "shader_type canvas_item;\n\n// This shader gets applied to every single reference image.\n\n\nuniform bool monochrome = false;\n// Used because modulate does not work when monochrome is true\nuniform vec4 monchrome_color : source_color;\n// Clamp the color by using the greyscale of the image to identify the brightness of each pixel\nuniform float clamping : hint_range(0.0, 1.0, 0.01) = 0.0;\n\nvoid fragment() {\n\t// The original color\n\tvec4 color = texture(TEXTURE, UV);\n\t// Get the greyscale based on the brightest channel\n\tfloat greyscale = max(max(color.r, color.g), color.b);\n\t// Dont Use Alpha Channel past this statement!\n\tif (greyscale < clamping) COLOR.a = 0.0;\n\t// If we want the image to be onochrome we just set that pixels rgb color.\n\tif (monochrome) COLOR.rgb = monchrome_color.rgb;\n}\n"
  },
  {
    "path": "src/Shaders/ReferenceImageShader.gdshader.uid",
    "content": "uid://b4s1w48gimo76\n"
  },
  {
    "path": "src/Shaders/SetIndices.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\n#include \"res://src/Shaders/FindPaletteColorIndex.gdshaderinc\"\nuniform sampler2D rgb_texture : filter_nearest;\nuniform sampler2D palette_texture : filter_nearest;\n\n\nvoid fragment() {\n\tvec4 color = texture(rgb_texture, UV);\n\tif (color.a <= 0.0001) {\n\t\tCOLOR.r = 0.0;\n\t}\n\telse {\n\t\tint color_index = find_index(color, textureSize(palette_texture, 0).x, palette_texture);\n\t\tCOLOR.r = float(color_index + 1) / 255.0;\n\t}\n}\n"
  },
  {
    "path": "src/Shaders/SetIndices.gdshader.uid",
    "content": "uid://nn46aagn0x5f\n"
  },
  {
    "path": "src/Shaders/TransparentChecker.gdshader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nuniform float size = 10.0;\nuniform float alpha = 1.0;\nuniform vec4 color1 : source_color = vec4(0.7, 0.7, 0.7, 1.0);\nuniform vec4 color2 : source_color = vec4(1.0);\nuniform vec2 offset = vec2(0.0);\nuniform vec2 scale = vec2(0.0);\nuniform vec2 rect_size = vec2(0.0);\nuniform bool follow_movement = false;\nuniform bool follow_scale = false;\n\nvoid fragment() {\n\tvec2 ref_pos = FRAGCOORD.xy;\n\tif (follow_scale) {\n\t\tif (!follow_movement)\n\t\t\tref_pos /= scale;\n\t\telse\n\t\t\tref_pos = UV * rect_size;\n\t}\n\telse if (follow_movement)\n\t\tref_pos -= mod(offset, size * 2.0);\n\n\tvec2 pos = mod(ref_pos, size * 2.0);\n\tbool c1 = any(lessThan(pos, vec2(size)));\n\tbool c2 = any(greaterThanEqual(pos, vec2(size)));\n\tfloat c = c1 && c2 ? 1.0: 0.0;\n\tCOLOR = mix(color1, color2, c);\n\tCOLOR.a = alpha;\n}\n"
  },
  {
    "path": "src/Shaders/TransparentChecker.gdshader.uid",
    "content": "uid://c50kmfvf635kb\n"
  },
  {
    "path": "src/Shaders/UITransparency.gdshader",
    "content": "shader_type canvas_item;\n\nuniform float alpha = 0.0;\n\nuniform vec2 screen_resolution = vec2(1280, 720);\nuniform vec2 position = vec2(100.0, 100.0);\nuniform vec2 size = vec2(100.0, 100.0);\n\n\nvoid fragment(){\n\n\tif (\n\tSCREEN_UV.x >= (position.x)/(screen_resolution.x)\n\t&& (SCREEN_UV.y) >= (position.y)/(screen_resolution.y)\n\n\t&& SCREEN_UV.x <= (position.x + size.x)/(screen_resolution.x)\n\t&& (SCREEN_UV.y) <= (position.y + size.y)/(screen_resolution.y)\n\t){\n\t\tCOLOR.a = alpha;\n\t}\n}\n"
  },
  {
    "path": "src/Shaders/UITransparency.gdshader.uid",
    "content": "uid://bwtsxcdoe2ps1\n"
  },
  {
    "path": "src/Tools/3DTools/3DShapeEdit.gd",
    "content": "extends BaseTool\n\nvar _cel: Cel3D\nvar _can_start_timer := true\nvar _hovering: Cel3DObject = null\nvar _dragging := false\nvar _has_been_dragged := false\nvar _prev_mouse_pos := Vector2i.ZERO\nvar _old_cel_image = null\nvar _checker_update_qued := false\nvar _object_names: Dictionary[Cel3DObject.Type, String] = {\n\tCel3DObject.Type.BOX: \"Box\",\n\tCel3DObject.Type.SPHERE: \"Sphere\",\n\tCel3DObject.Type.CAPSULE: \"Capsule\",\n\tCel3DObject.Type.CYLINDER: \"Cylinder\",\n\tCel3DObject.Type.PRISM: \"Prism\",\n\tCel3DObject.Type.TORUS: \"Torus\",\n\tCel3DObject.Type.PLANE: \"Plane\",\n\tCel3DObject.Type.TEXT: \"Text\",\n\tCel3DObject.Type.DIR_LIGHT: \"Directional light\",\n\tCel3DObject.Type.SPOT_LIGHT: \"Spotlight\",\n\tCel3DObject.Type.OMNI_LIGHT: \"Point light\",\n\tCel3DObject.Type.IMPORTED: \"Custom model\",\n}\n\n@onready var object_option_button := $\"%ObjectOptionButton\" as OptionButton\n@onready var new_object_menu_button := $\"%NewObjectMenuButton\" as MenuButton\n@onready var remove_object_button := $\"%RemoveObject\" as Button\n@onready var cel_options := $\"%CelOptions\" as Container\n@onready var object_options := $\"%ObjectOptions\" as Container\n@onready var mesh_options := $\"%MeshOptions\" as FoldableContainer\n@onready var light_options := $\"%LightOptions\" as FoldableContainer\n@onready var undo_redo_timer := $UndoRedoTimer as Timer\n@onready var load_model_dialog := $LoadModelDialog as FileDialog\n\n@onready var cel_properties: Dictionary[NodePath, Control] = {\n\t\"camera:projection\": $\"%ProjectionOptionButton\",\n\t\"camera:rotation_degrees\": $\"%CameraRotation\",\n\t\"camera:fov\": $\"%CameraFOV\",\n\t\"camera:size\": $\"%CameraSize\",\n\t\"viewport:world_3d:environment:ambient_light_color\": $\"%AmbientColorPickerButton\",\n\t\"viewport:world_3d:environment:ambient_light_energy\": $\"%AmbientEnergy\",\n}\n\n@onready var object_properties: Dictionary[NodePath, Control] = {\n\t\"visible\": $\"%VisibleCheckBox\",\n\t\"position\": $\"%ObjectPosition\",\n\t\"rotation_degrees\": $\"%ObjectRotation\",\n\t\"scale\": $\"%ObjectScale\",\n\t\"node3d_type:mesh:size\": $\"%MeshSize\",\n\t\"node3d_type:mesh:sizev2\": $\"%MeshSizeV2\",\n\t\"node3d_type:mesh:left_to_right\": $\"%MeshLeftToRight\",\n\t\"node3d_type:mesh:radius\": $\"%MeshRadius\",\n\t\"node3d_type:mesh:height\": $\"%MeshHeight\",\n\t\"node3d_type:mesh:radial_segments\": $\"%MeshRadialSegments\",\n\t\"node3d_type:mesh:rings\": $\"%MeshRings\",\n\t\"node3d_type:mesh:is_hemisphere\": $\"%MeshIsHemisphere\",\n\t\"node3d_type:mesh:top_radius\": $\"%MeshTopRadius\",\n\t\"node3d_type:mesh:bottom_radius\": $\"%MeshBottomRadius\",\n\t\"node3d_type:mesh:text\": $\"%MeshText\",\n\t\"node3d_type:mesh:font\": $\"%MeshFont\",\n\t\"node3d_type:mesh:pixel_size\": $\"%MeshPixelSize\",\n\t\"node3d_type:mesh:font_size\": $\"%MeshFontSize\",\n\t\"node3d_type:mesh:offset\": $\"%MeshOffsetV2\",\n\t\"node3d_type:mesh:depth\": $\"%MeshDepth\",\n\t\"node3d_type:mesh:curve_step\": $\"%MeshCurveStep\",\n\t\"node3d_type:mesh:horizontal_alignment\": $\"%MeshHorizontalAlignment\",\n\t\"node3d_type:mesh:vertical_alignment\": $\"%MeshVerticalAlignment\",\n\t\"node3d_type:mesh:line_spacing\": $\"%MeshLineSpacing\",\n\t\"node3d_type:light_color\": $\"%LightColor\",\n\t\"node3d_type:light_energy\": $\"%LightEnergy\",\n\t\"node3d_type:light_negative\": $\"%LightNegative\",\n\t\"node3d_type:shadow_enabled\": $\"%ShadowEnabled\",\n\t\"node3d_type:omni_range\": $\"%OmniRange\",\n\t\"node3d_type:spot_range\": $\"%SpotRange\",\n\t\"node3d_type:spot_angle\": $\"%SpotAngle\",\n}\n\n\nfunc sprite_changed_this_frame() -> void:\n\t_checker_update_qued = true\n\t_old_cel_image = _cel.get_image()\n\tGlobal.canvas.sprite_changed_this_frame = true\n\n\nfunc _input(_event: InputEvent) -> void:\n\tif _checker_update_qued:\n\t\tif _old_cel_image != _cel.get_image():\n\t\t\t_checker_update_qued = false\n\t\t\t_cel.update_texture()\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\tload_model_dialog.use_native_dialog = Global.use_native_file_dialogs\n\tGlobal.cel_switched.connect(_cel_switched)\n\t_cel_switched()\n\tvar new_object_popup := new_object_menu_button.get_popup()\n\tfor object in _object_names:\n\t\tnew_object_popup.add_item(_object_names[object], object)\n\tnew_object_popup.id_pressed.connect(_new_object_popup_id_pressed)\n\t# Load font names\n\tfor font_name in Global.get_available_font_names():\n\t\t$\"%MeshFont\".add_item(font_name)\n\t# Connect the signals of the cel property nodes\n\tfor prop in cel_properties:\n\t\tvar node := cel_properties[prop]\n\t\tif node is ValueSliderV3:\n\t\t\tnode.value_changed.connect(_cel_property_vector3_changed.bind(prop))\n\t\telif node is Range:\n\t\t\tnode.value_changed.connect(_cel_property_value_changed.bind(prop))\n\t\telif node is OptionButton:\n\t\t\tnode.item_selected.connect(_cel_property_item_selected.bind(prop))\n\t\telif node is ColorPickerButton:\n\t\t\tnode.color_changed.connect(_cel_property_color_changed.bind(prop))\n\t# Connect the signals of the object property nodes\n\tfor prop in object_properties:\n\t\tvar node: Control = object_properties[prop]\n\t\tif node is ValueSliderV3:\n\t\t\tnode.value_changed.connect(_object_property_vector3_changed.bind(prop))\n\t\telif node is ValueSliderV2:\n\t\t\tvar property_path: String = prop\n\t\t\tif property_path.ends_with(\"v2\"):\n\t\t\t\tproperty_path = property_path.replace(\"v2\", \"\")\n\t\t\tnode.value_changed.connect(_object_property_vector2_changed.bind(property_path))\n\t\telif node is Range:\n\t\t\tnode.value_changed.connect(_object_property_value_changed.bind(prop))\n\t\telif node is OptionButton:\n\t\t\tnode.item_selected.connect(_object_property_item_selected.bind(prop))\n\t\telif node is ColorPickerButton:\n\t\t\tnode.color_changed.connect(_object_property_color_changed.bind(prop))\n\t\telif node is CheckBox:\n\t\t\tnode.toggled.connect(_object_property_toggled.bind(prop))\n\t\telif node is TextEdit:\n\t\t\tnode.text_changed.connect(_object_property_text_changed.bind(node, prop))\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\tvar project := Global.current_project\n\tif not project.get_current_cel() is Cel3D:\n\t\treturn\n\tif not project.layers[project.current_layer].can_layer_be_modified():\n\t\treturn\n\tvar found_cel := false\n\tfor frame_layer in project.selected_cels:\n\t\tif _cel == project.frames[frame_layer[0]].cels[frame_layer[1]]:\n\t\t\tfound_cel = true\n\tif not found_cel:\n\t\treturn\n\tif DisplayServer.is_touchscreen_available():\n\t\tcursor_move(pos)\n\tif is_instance_valid(_cel.selected):\n\t\t# Needs canvas.current_pixel, because draw_start()'s position is floored\n\t\t_cel.selected.applying_gizmos = Global.canvas.gizmos_3d.get_hovering_gizmo(\n\t\t\tGlobal.canvas.current_pixel\n\t\t)\n\tif is_instance_valid(_hovering):\n\t\t_cel.selected = _hovering\n\t\t_dragging = true\n\t\t_prev_mouse_pos = pos\n\telse:  # We're not hovering\n\t\tif is_instance_valid(_cel.selected):\n\t\t\t# If we're not clicking on a gizmo, unselect\n\t\t\tif _cel.selected.applying_gizmos == Cel3DObject.Gizmos.NONE:\n\t\t\t\t_cel.selected = null\n\t\t\telse:\n\t\t\t\t_dragging = true\n\t\t\t\t_prev_mouse_pos = pos\n\n\nfunc draw_move(pos: Vector2i) -> void:\n\tif not Global.current_project.get_current_cel() is Cel3D:\n\t\treturn\n\tvar camera: Camera3D = _cel.camera\n\tif _dragging:\n\t\t_has_been_dragged = true\n\t\tvar proj_mouse_pos := camera.project_position(pos, camera.position.z)\n\t\tvar proj_prev_mouse_pos := camera.project_position(_prev_mouse_pos, camera.position.z)\n\t\t_cel.selected.change_transform(proj_mouse_pos, proj_prev_mouse_pos)\n\t\t_prev_mouse_pos = pos\n\tsprite_changed_this_frame()\n\n\nfunc draw_end(_position: Vector2i) -> void:\n\tif not Global.current_project.get_current_cel() is Cel3D:\n\t\treturn\n\t_dragging = false\n\tif is_instance_valid(_cel.selected) and _has_been_dragged:\n\t\t_cel.selected.applying_gizmos = Cel3DObject.Gizmos.NONE\n\t\t_object_property_changed(_cel.selected)\n\t_has_been_dragged = false\n\tsprite_changed_this_frame()\n\n\nfunc cursor_move(pos: Vector2i) -> void:\n\tsuper.cursor_move(pos)\n\tif not Global.current_project.get_current_cel() is Cel3D:\n\t\treturn\n\t# Hover logic\n\tvar camera: Camera3D = _cel.camera\n\tvar ray_from := camera.project_ray_origin(pos)\n\tvar ray_to := ray_from + camera.project_ray_normal(pos) * 20\n\tvar space_state := camera.get_world_3d().direct_space_state\n\tvar selection := space_state.intersect_ray(PhysicsRayQueryParameters3D.create(ray_from, ray_to))\n\tif selection.is_empty():\n\t\tif is_instance_valid(_hovering):\n\t\t\t_hovering.unhover()\n\t\t\t_hovering = null\n\telse:\n\t\tif is_instance_valid(_hovering):\n\t\t\t_hovering.unhover()\n\t\t_hovering = selection[\"collider\"].get_parent()\n\t\t_hovering.hover()\n\n\nfunc _on_ObjectOptionButton_item_selected(index: int) -> void:\n\tif not _cel is Cel3D:\n\t\treturn\n\tvar id := object_option_button.get_item_id(index) - 1\n\tvar object := _cel.get_object_from_id(id)\n\tif not is_instance_valid(object):\n\t\t_cel.selected = null\n\t\treturn\n\t_cel.selected = object\n\n\nfunc _cel_switched() -> void:\n\tif not Global.current_project.get_current_cel() is Cel3D:\n\t\tget_child(0).visible = false  # Just to ensure that the content of the tool is hidden\n\t\treturn\n\tget_child(0).visible = true\n\t_cel = Global.current_project.get_current_cel()\n\tvar selected := _cel.selected\n\t_cel.selected = null\n\tif not _cel.scene_property_changed.is_connected(_set_cel_node_values):\n\t\t_cel.scene_property_changed.connect(_set_cel_node_values)\n\t\t_cel.objects_changed.connect(_fill_object_option_button)\n\t\t_cel.selected_object.connect(_selected_object)\n\tcel_options.visible = true\n\tobject_options.visible = false\n\t_set_cel_node_values()\n\t_fill_object_option_button()\n\tsprite_changed_this_frame()\n\tif is_instance_valid(selected):\n\t\t_cel.selected = selected\n\n\nfunc _new_object_popup_id_pressed(id: int) -> void:\n\tif id == Cel3DObject.Type.IMPORTED:\n\t\tload_model_dialog.popup_centered_clamped()\n\t\tGlobal.dialog_open(true, true)\n\telse:\n\t\t_add_object(id)\n\n\nfunc _add_object(type: int, file_path := \"\") -> void:\n\tvar dict := {\"type\": type, \"file_path\": file_path}\n\tvar new_objects := _cel.object_properties.duplicate()\n\tnew_objects[_cel.current_object_id] = dict\n\tvar undo_redo := Global.current_project.undo_redo\n\tundo_redo.create_action(\"Add 3D object\")\n\tundo_redo.add_do_property(_cel, \"object_properties\", new_objects)\n\tundo_redo.add_undo_property(_cel, \"object_properties\", _cel.object_properties)\n\tundo_redo.add_do_method(_cel._add_object_node.bind(_cel.current_object_id))\n\tundo_redo.add_undo_method(_cel._remove_object_node.bind(_cel.current_object_id))\n\tundo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tundo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tundo_redo.commit_action()\n\tsprite_changed_this_frame()\n\t_cel.current_object_id += 1\n\n\nfunc _on_RemoveObject_pressed() -> void:\n\tif is_instance_valid(_cel.selected):\n\t\tvar new_objects := _cel.object_properties.duplicate()\n\t\tnew_objects.erase(_cel.selected.id)\n\t\tvar undo_redo: UndoRedo = Global.current_project.undo_redo\n\t\tundo_redo.create_action(\"Remove 3D object\")\n\t\tundo_redo.add_do_property(_cel, \"object_properties\", new_objects)\n\t\tundo_redo.add_undo_property(_cel, \"object_properties\", _cel.object_properties)\n\t\tundo_redo.add_do_method(_cel._remove_object_node.bind(_cel.selected.id))\n\t\tundo_redo.add_undo_method(_cel._add_object_node.bind(_cel.selected.id))\n\t\tundo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\tundo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\t\tundo_redo.commit_action()\n\t\t_cel.selected = null\n\t\tsprite_changed_this_frame()\n\n\nfunc _object_property_changed(object: Cel3DObject) -> void:\n\tvar undo_redo := Global.current_project.undo_redo\n\tvar new_properties := _cel.object_properties.duplicate()\n\tnew_properties[object.id] = object.serialize()\n\tundo_redo.create_action(\"Change object transform\")\n\tundo_redo.add_do_property(_cel, \"object_properties\", new_properties)\n\tundo_redo.add_undo_property(_cel, \"object_properties\", _cel.object_properties)\n\tundo_redo.add_do_method(_cel._update_objects_transform.bind(object.id))\n\tundo_redo.add_undo_method(_cel._update_objects_transform.bind(object.id))\n\tundo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tundo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tundo_redo.commit_action()\n\n\nfunc _selected_object(object: Cel3DObject) -> void:\n\tif is_instance_valid(object):\n\t\tcel_options.visible = false\n\t\tobject_options.visible = true\n\t\tremove_object_button.disabled = false\n\t\tfor prop in object_properties:  # Hide irrelevant nodes\n\t\t\tvar node: Control = object_properties[prop]\n\t\t\tvar property_path: String = prop\n\t\t\tif property_path.ends_with(\"v2\"):\n\t\t\t\tproperty_path = property_path.replace(\"v2\", \"\")\n\t\t\tvar property = object.get_indexed(property_path)\n\t\t\tvar property_exists: bool = property != null\n\t\t\t# Differentiate between the mesh size of a box/prism (Vector3) and a plane (Vector2)\n\t\t\tif node is ValueSliderV3 and typeof(property) != TYPE_VECTOR3:\n\t\t\t\tproperty_exists = false\n\t\t\telif node is ValueSliderV2 and typeof(property) != TYPE_VECTOR2:\n\t\t\t\tproperty_exists = false\n\t\t\tif node.get_index() > 0:\n\t\t\t\t_get_previous_node(node).visible = property_exists\n\t\t\tnode.visible = property_exists\n\t\tmesh_options.visible = object.node3d_type is MeshInstance3D\n\t\tlight_options.visible = object.node3d_type is Light3D\n\t\t_set_object_node_values()\n\t\tif not object.property_changed.is_connected(_set_object_node_values):\n\t\t\tobject.property_changed.connect(_set_object_node_values)\n\t\tobject_option_button.select(object_option_button.get_item_index(object.id + 1))\n\telse:\n\t\tcel_options.visible = true\n\t\tobject_options.visible = false\n\t\tremove_object_button.disabled = true\n\t\tobject_option_button.select(0)\n\n\nfunc _set_cel_node_values() -> void:\n\tif _cel.camera.projection == Camera3D.PROJECTION_PERSPECTIVE:\n\t\t_get_previous_node(cel_properties[^\"camera:fov\"]).visible = true\n\t\t_get_previous_node(cel_properties[^\"camera:size\"]).visible = false\n\t\tcel_properties[^\"camera:fov\"].visible = true\n\t\tcel_properties[^\"camera:size\"].visible = false\n\telse:\n\t\t_get_previous_node(cel_properties[^\"camera:size\"]).visible = true\n\t\t_get_previous_node(cel_properties[^\"camera:fov\"]).visible = false\n\t\tcel_properties[^\"camera:size\"].visible = true\n\t\tcel_properties[^\"camera:fov\"].visible = false\n\t_can_start_timer = false\n\t_set_node_values(_cel, cel_properties)\n\t_can_start_timer = true\n\n\nfunc _set_object_node_values() -> void:\n\tvar object: Cel3DObject = _cel.selected\n\tif not is_instance_valid(object):\n\t\treturn\n\t_can_start_timer = false\n\t_set_node_values(object, object_properties)\n\t_can_start_timer = true\n\n\nfunc _set_node_values(to_edit: Object, properties: Dictionary[NodePath, Control]) -> void:\n\tfor prop in properties:\n\t\tvar property_path: String = prop\n\t\tif property_path.ends_with(\"v2\"):\n\t\t\tproperty_path = property_path.replace(\"v2\", \"\")\n\t\tvar value = to_edit.get_indexed(property_path)\n\t\tif value == null:\n\t\t\tcontinue\n\t\tif \"scale\" in property_path:\n\t\t\tvalue *= 100\n\t\tif value is Font:\n\t\t\tvar font_name: String = value.get_font_name()\n\t\t\tvalue = 0\n\t\t\tfor i in %MeshFont.item_count:\n\t\t\t\tvar item_name: String = %MeshFont.get_item_text(i)\n\t\t\t\tif font_name == item_name:\n\t\t\t\t\tvalue = i\n\t\tvar node := properties[prop]\n\t\tif node is Range or node is ValueSliderV3 or node is ValueSliderV2:\n\t\t\tif typeof(node.value) != typeof(value) and typeof(value) != TYPE_INT:\n\t\t\t\tcontinue\n\t\t\tnode.value = value\n\t\telif node is OptionButton:\n\t\t\tnode.selected = value\n\t\telif node is ColorPickerButton:\n\t\t\tnode.color = value\n\t\telif node is CheckBox:\n\t\t\tnode.button_pressed = value\n\t\telif node is TextEdit:\n\t\t\tif node.text != value:\n\t\t\t\tnode.text = value\n\n\nfunc _get_previous_node(node: Node) -> Node:\n\treturn node.get_parent().get_child(node.get_index() - 1)\n\n\nfunc _set_value_from_node(to_edit: Object, value, prop: String) -> void:\n\tif not is_instance_valid(to_edit):\n\t\treturn\n\tif \"mesh_\" in prop:\n\t\tprop = prop.replace(\"mesh_\", \"\")\n\t\tto_edit = to_edit.node3d_type.mesh\n\tif \"scale\" in prop:\n\t\tvalue /= 100\n\tif \"font\" in prop and not \"font_\" in prop:\n\t\tvalue = Global.find_font_from_name(%MeshFont.get_item_text(value))\n\tto_edit.set_indexed(prop, value)\n\n\nfunc _cel_property_vector3_changed(value: Vector3, prop: String) -> void:\n\t_set_value_from_node(_cel, value, prop)\n\t_value_handle_change()\n\tGlobal.canvas.gizmos_3d.queue_redraw()\n\n\nfunc _cel_property_value_changed(value: float, prop: String) -> void:\n\t_set_value_from_node(_cel, value, prop)\n\t_value_handle_change()\n\tGlobal.canvas.gizmos_3d.queue_redraw()\n\n\nfunc _cel_property_item_selected(value: int, prop: String) -> void:\n\t_set_value_from_node(_cel, value, prop)\n\t_value_handle_change()\n\tGlobal.canvas.gizmos_3d.queue_redraw()\n\n\nfunc _cel_property_color_changed(value: Color, prop: String) -> void:\n\t_set_value_from_node(_cel, value, prop)\n\t_value_handle_change()\n\tGlobal.canvas.gizmos_3d.queue_redraw()\n\n\nfunc _object_property_vector3_changed(value: Vector3, prop: String) -> void:\n\t_set_value_from_node(_cel.selected, value, prop)\n\t_value_handle_change()\n\n\nfunc _object_property_vector2_changed(value: Vector2, prop: String) -> void:\n\t_set_value_from_node(_cel.selected, value, prop)\n\t_value_handle_change()\n\n\nfunc _object_property_value_changed(value: float, prop: String) -> void:\n\t_set_value_from_node(_cel.selected, value, prop)\n\t_value_handle_change()\n\n\nfunc _object_property_item_selected(value: int, prop: String) -> void:\n\t_set_value_from_node(_cel.selected, value, prop)\n\t_value_handle_change()\n\n\nfunc _object_property_color_changed(value: Color, prop: String) -> void:\n\t_set_value_from_node(_cel.selected, value, prop)\n\t_value_handle_change()\n\n\nfunc _object_property_toggled(value: bool, prop: String) -> void:\n\t_set_value_from_node(_cel.selected, value, prop)\n\t_value_handle_change()\n\n\nfunc _object_property_text_changed(text_edit: TextEdit, prop: String) -> void:\n\t_set_value_from_node(_cel.selected, text_edit.text, prop)\n\t_value_handle_change()\n\n\nfunc _value_handle_change() -> void:\n\tif _can_start_timer:\n\t\tundo_redo_timer.start()\n\n\nfunc _fill_object_option_button() -> void:\n\tif not _cel is Cel3D:\n\t\treturn\n\tobject_option_button.clear()\n\tobject_option_button.add_item(\"None\", 0)\n\tvar existing_names := {}\n\tfor id in _cel.object_properties:\n\t\tvar item_name: String = _object_names[_cel.object_properties[id][\"type\"]]\n\t\tif item_name in existing_names:\n\t\t\t# If there is already an object with the same name, under a number next to it\n\t\t\texisting_names[item_name] += 1\n\t\t\titem_name += \" (%s)\" % existing_names[item_name]\n\t\telse:\n\t\t\texisting_names[item_name] = 1\n\t\tobject_option_button.add_item(item_name, id + 1)\n\n\nfunc _on_UndoRedoTimer_timeout() -> void:\n\tif is_instance_valid(_cel.selected):\n\t\t_object_property_changed(_cel.selected)\n\telse:\n\t\tvar undo_redo: UndoRedo = Global.current_project.undo_redo\n\t\tundo_redo.create_action(\"Change 3D layer properties\")\n\t\tundo_redo.add_do_property(_cel, \"scene_properties\", _cel.serialize_scene_properties())\n\t\tundo_redo.add_undo_property(_cel, \"scene_properties\", _cel.scene_properties)\n\t\tundo_redo.add_do_method(_cel._scene_property_changed)\n\t\tundo_redo.add_undo_method(_cel._scene_property_changed)\n\t\tundo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\tundo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\t\tundo_redo.commit_action()\n\n\nfunc _on_LoadModelDialog_files_selected(paths: PackedStringArray) -> void:\n\tfor path in paths:\n\t\t_add_object(Cel3DObject.Type.IMPORTED, path)\n\n\nfunc _on_load_model_dialog_visibility_changed() -> void:\n\tGlobal.dialog_open(false, true)\n"
  },
  {
    "path": "src/Tools/3DTools/3DShapeEdit.gd.uid",
    "content": "uid://d3my38wgqe4hq\n"
  },
  {
    "path": "src/Tools/3DTools/3DShapeEdit.tscn",
    "content": "[gd_scene format=3 uid=\"uid://cg7d36746on67\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://ctfgfelg0sho8\" path=\"res://src/Tools/BaseTool.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://d3my38wgqe4hq\" path=\"res://src/Tools/3DTools/3DShapeEdit.gd\" id=\"2\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bbnqcxa20a5a5\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\" id=\"3\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"4\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"5\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://dpoteid430evf\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV3.tscn\" id=\"7\"]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_8sqgw\"]\naction = &\"delete\"\n\n[sub_resource type=\"Shortcut\" id=\"34\"]\nevents = [SubResource(\"InputEventAction_8sqgw\")]\n\n[node name=\"3DShapeEdit\" unique_id=2145680012 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n\n[node name=\"HandleObjects\" type=\"GridContainer\" parent=\".\" index=\"2\" unique_id=1066985903]\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"HandleObjects\" index=\"0\" unique_id=471683529]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Selected object:\"\n\n[node name=\"ObjectOptionButton\" type=\"OptionButton\" parent=\"HandleObjects\" index=\"1\" unique_id=217489563]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 1\npopup/item_0/text = \"None\"\npopup/item_0/id = 0\n\n[node name=\"NewObjectMenuButton\" type=\"MenuButton\" parent=\"HandleObjects\" index=\"2\" unique_id=300945232]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Add new object\"\nflat = false\n\n[node name=\"RemoveObject\" type=\"Button\" parent=\"HandleObjects\" index=\"3\" unique_id=1344321820]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ndisabled = true\nshortcut = SubResource(\"34\")\ntext = \"Remove object\"\n\n[node name=\"CelOptions\" type=\"VBoxContainer\" parent=\".\" index=\"3\" unique_id=1302306296]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"CameraOptions\" type=\"FoldableContainer\" parent=\"CelOptions\" index=\"0\" unique_id=336861911]\nlayout_mode = 2\ntheme_type_variation = &\"CollapsibleContainer\"\ntitle = \"Camera\"\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"CelOptions/CameraOptions\" index=\"0\" unique_id=1126153504]\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"ProjectionLabel\" type=\"Label\" parent=\"CelOptions/CameraOptions/GridContainer\" index=\"0\" unique_id=853186325]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Projection:\"\n\n[node name=\"ProjectionOptionButton\" type=\"OptionButton\" parent=\"CelOptions/CameraOptions/GridContainer\" index=\"1\" unique_id=1820040174]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 3\npopup/item_0/text = \"Perspective\"\npopup/item_0/id = 0\npopup/item_1/text = \"Orthogonal\"\npopup/item_1/id = 1\npopup/item_2/text = \"Frustum\"\npopup/item_2/id = 2\n\n[node name=\"RotationLabel\" type=\"Label\" parent=\"CelOptions/CameraOptions/GridContainer\" index=\"2\" unique_id=2069813670]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 0\ntext = \"Rotation:\"\n\n[node name=\"CameraRotation\" parent=\"CelOptions/CameraOptions/GridContainer\" index=\"3\" unique_id=258320751 instance=ExtResource(\"7\")]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmin_value = Vector3(-180, -180, -180)\nmax_value = Vector3(180, 180, 180)\nstep = 0.1\nsuffix_x = \"°\"\nsuffix_y = \"°\"\nsuffix_z = \"°\"\n\n[node name=\"CameraFOVLabel\" type=\"Label\" parent=\"CelOptions/CameraOptions/GridContainer\" index=\"4\" unique_id=1184875876]\nlayout_mode = 2\ntext = \"FOV:\"\n\n[node name=\"CameraFOV\" type=\"TextureProgressBar\" parent=\"CelOptions/CameraOptions/GridContainer\" index=\"5\" unique_id=1831511771]\nunique_name_in_owner = true\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nmax_value = 179.0\nvalue = 70.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\nsuffix = \"°\"\n\n[node name=\"CameraSizeLabel\" type=\"Label\" parent=\"CelOptions/CameraOptions/GridContainer\" index=\"6\" unique_id=1281861599]\nvisible = false\nlayout_mode = 2\ntext = \"Size:\"\n\n[node name=\"CameraSize\" type=\"TextureProgressBar\" parent=\"CelOptions/CameraOptions/GridContainer\" index=\"7\" unique_id=975100824]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 0.001\nmax_value = 32.0\nstep = 0.001\nvalue = 1.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\n\n[node name=\"EnvironmentOptions\" type=\"FoldableContainer\" parent=\"CelOptions\" index=\"1\" unique_id=1094643040]\nlayout_mode = 2\ntheme_type_variation = &\"CollapsibleContainer\"\nfolded = true\ntitle = \"Environments\"\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"CelOptions/EnvironmentOptions\" index=\"0\" unique_id=339026710]\nvisible = false\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"AmbientColorLabel\" type=\"Label\" parent=\"CelOptions/EnvironmentOptions/GridContainer\" index=\"0\" unique_id=536074701]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Ambient color:\"\n\n[node name=\"AmbientColorPickerButton\" type=\"ColorPickerButton\" parent=\"CelOptions/EnvironmentOptions/GridContainer\" index=\"1\" unique_id=382186294]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nedit_alpha = false\n\n[node name=\"AmbientEnergyLabel\" type=\"Label\" parent=\"CelOptions/EnvironmentOptions/GridContainer\" index=\"2\" unique_id=548796255]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Ambient color energy:\"\n\n[node name=\"AmbientEnergy\" parent=\"CelOptions/EnvironmentOptions/GridContainer\" index=\"3\" unique_id=786108021 instance=ExtResource(\"4\")]\nunique_name_in_owner = true\nlayout_mode = 2\nmax_value = 16.0\nstep = 0.01\nvalue = 1.0\nallow_greater = true\n\n[node name=\"ObjectOptions\" type=\"VBoxContainer\" parent=\".\" index=\"4\" unique_id=880101581]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"GlobalOptions\" type=\"GridContainer\" parent=\"ObjectOptions\" index=\"0\" unique_id=1728453322]\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"VisibleLabel\" type=\"Label\" parent=\"ObjectOptions/GlobalOptions\" index=\"0\" unique_id=354260059]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Visible:\"\n\n[node name=\"VisibleCheckBox\" type=\"CheckBox\" parent=\"ObjectOptions/GlobalOptions\" index=\"1\" unique_id=956607773]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"TransformOptions\" type=\"FoldableContainer\" parent=\"ObjectOptions\" index=\"1\" unique_id=1019671605]\nlayout_mode = 2\ntheme_type_variation = &\"CollapsibleContainer\"\nfolded = true\ntitle = \"Transform\"\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"ObjectOptions/TransformOptions\" index=\"0\" unique_id=1540974643]\nvisible = false\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"PositionLabel\" type=\"Label\" parent=\"ObjectOptions/TransformOptions/GridContainer\" index=\"0\" unique_id=1059470272]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 1\ntext = \"Position:\"\n\n[node name=\"ObjectPosition\" parent=\"ObjectOptions/TransformOptions/GridContainer\" index=\"1\" unique_id=970274019 instance=ExtResource(\"7\")]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmin_value = Vector3(-20, -20, -20)\nmax_value = Vector3(20, 20, 20)\nstep = 0.01\nallow_greater = true\nallow_lesser = true\nsuffix_x = \"m\"\nsuffix_y = \"m\"\nsuffix_z = \"m\"\n\n[node name=\"RotationLabel\" type=\"Label\" parent=\"ObjectOptions/TransformOptions/GridContainer\" index=\"2\" unique_id=1126137064]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 1\ntext = \"Rotation:\"\n\n[node name=\"ObjectRotation\" parent=\"ObjectOptions/TransformOptions/GridContainer\" index=\"3\" unique_id=1865090974 instance=ExtResource(\"7\")]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmin_value = Vector3(-180, -180, -180)\nmax_value = Vector3(180, 180, 180)\nstep = 0.1\nsuffix_x = \"°\"\nsuffix_y = \"°\"\nsuffix_z = \"°\"\n\n[node name=\"ScaleLabel\" type=\"Label\" parent=\"ObjectOptions/TransformOptions/GridContainer\" index=\"4\" unique_id=1643435068]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 1\ntext = \"Scale:\"\n\n[node name=\"ObjectScale\" parent=\"ObjectOptions/TransformOptions/GridContainer\" index=\"5\" unique_id=1924391232 instance=ExtResource(\"7\")]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nvalue = Vector3(100, 100, 100)\nmax_value = Vector3(500, 500, 500)\nstep = 0.01\nallow_greater = true\nallow_lesser = true\nshow_ratio = true\nsuffix_x = \"%\"\nsuffix_y = \"%\"\nsuffix_z = \"%\"\n\n[node name=\"MeshOptions\" type=\"FoldableContainer\" parent=\"ObjectOptions\" index=\"2\" unique_id=1320702849]\nunique_name_in_owner = true\nlayout_mode = 2\ntheme_type_variation = &\"CollapsibleContainer\"\nfolded = true\ntitle = \"Mesh\"\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"ObjectOptions/MeshOptions\" index=\"0\" unique_id=693549055]\nvisible = false\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"MeshSizeLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"0\" unique_id=1387150538]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Size:\"\nclip_text = true\n\n[node name=\"MeshSize\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"1\" unique_id=112023562 instance=ExtResource(\"7\")]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmax_value = Vector3(10, 10, 10)\nstep = 0.01\nallow_greater = true\nshow_ratio = true\n\n[node name=\"MeshSizeLabel2\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"2\" unique_id=606267323]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Size:\"\nclip_text = true\n\n[node name=\"MeshSizeV2\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"3\" unique_id=1689263742 instance=ExtResource(\"3\")]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmax_value = Vector2(10, 10)\nallow_greater = true\nshow_ratio = true\nsnap_step = 0.01\n\n[node name=\"MeshLeftToRightLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"4\" unique_id=1190174772]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Left to right:\"\nclip_text = true\n\n[node name=\"MeshLeftToRight\" type=\"TextureProgressBar\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"5\" unique_id=443018665]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = -2.0\nmax_value = 2.0\nstep = 0.1\nvalue = 0.5\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\n\n[node name=\"MeshRadiusLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"6\" unique_id=1696851766]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Radius:\"\nclip_text = true\n\n[node name=\"MeshRadius\" type=\"TextureProgressBar\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"7\" unique_id=704593557]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 0.001\nmax_value = 10.0\nstep = 0.01\nvalue = 1.001\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\n\n[node name=\"MeshHeightLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"8\" unique_id=62513076]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Height:\"\nclip_text = true\n\n[node name=\"MeshHeight\" type=\"TextureProgressBar\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"9\" unique_id=19281918]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 0.001\nmax_value = 10.0\nstep = 0.01\nvalue = 2.001\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\n\n[node name=\"MeshRadialSegmentsLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"10\" unique_id=826909241]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Radial segments:\"\nclip_text = true\n\n[node name=\"MeshRadialSegments\" type=\"TextureProgressBar\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"11\" unique_id=1632146037]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 4.0\nmax_value = 640.0\nvalue = 64.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\n\n[node name=\"MeshRingsLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"12\" unique_id=852324034]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Rings:\"\nclip_text = true\n\n[node name=\"MeshRings\" type=\"TextureProgressBar\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"13\" unique_id=1146482395]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nmax_value = 320.0\nvalue = 32.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\n\n[node name=\"MeshIsHemisphereLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"14\" unique_id=1107529868]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Is hemisphere:\"\nclip_text = true\n\n[node name=\"MeshIsHemisphere\" type=\"CheckBox\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"15\" unique_id=1464990505]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"MeshTopRadiusLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"16\" unique_id=502447802]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Top radius:\"\nclip_text = true\n\n[node name=\"MeshTopRadius\" type=\"TextureProgressBar\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"17\" unique_id=792208491]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 10.0\nstep = 0.01\nvalue = 1.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\n\n[node name=\"MeshBottomRadiusLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"18\" unique_id=251510391]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Bottom radius:\"\nclip_text = true\n\n[node name=\"MeshBottomRadius\" type=\"TextureProgressBar\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"19\" unique_id=1730964690]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 10.0\nstep = 0.01\nvalue = 1.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\n\n[node name=\"MeshTextLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"20\" unique_id=824577669]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Text:\"\nclip_text = true\n\n[node name=\"MeshText\" type=\"TextEdit\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"21\" unique_id=545214850]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(150, 50)\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"MeshFontLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"22\" unique_id=816324059]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Font:\"\nclip_text = true\n\n[node name=\"MeshFont\" type=\"OptionButton\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"23\" unique_id=502458364]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\n\n[node name=\"MeshPixelSizeLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"24\" unique_id=1309120134]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Pixel size:\"\nclip_text = true\n\n[node name=\"MeshPixelSize\" type=\"TextureProgressBar\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"25\" unique_id=1940868591]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 0.001\nmax_value = 10.0\nstep = 0.001\nvalue = 0.009999999999999998\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\nsnap_step = 0.01\n\n[node name=\"MeshFontSizeLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"26\" unique_id=1322894483]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Font size:\"\nclip_text = true\n\n[node name=\"MeshFontSize\" type=\"TextureProgressBar\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"27\" unique_id=1834817798]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nmax_value = 128.0\nvalue = 1.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\nsnap_step = 2.0\n\n[node name=\"MeshDepthLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"28\" unique_id=2041122736]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Depth:\"\nclip_text = true\n\n[node name=\"MeshDepth\" type=\"TextureProgressBar\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"29\" unique_id=275752566]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nstep = 0.001\nvalue = 0.05\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\nsnap_step = 2.0\n\n[node name=\"MeshOffsetLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"30\" unique_id=698301515]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Offset:\"\nclip_text = true\n\n[node name=\"MeshOffsetV2\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"31\" unique_id=1140012552 instance=ExtResource(\"3\")]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmax_value = Vector2(10, 10)\nallow_greater = true\nallow_lesser = true\nshow_ratio = true\nsnap_step = 0.01\n\n[node name=\"MeshCurveStepLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"32\" unique_id=323150605]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Curve step:\"\nclip_text = true\n\n[node name=\"MeshCurveStep\" type=\"TextureProgressBar\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"33\" unique_id=419694810]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 0.1\nmax_value = 10.0\nstep = 0.1\nvalue = 0.5\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\n\n[node name=\"MeshHorizontalAlignmentLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"34\" unique_id=1457101320]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Horizontal alignment:\"\nclip_text = true\n\n[node name=\"MeshHorizontalAlignment\" type=\"OptionButton\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"35\" unique_id=348406104]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 4\npopup/item_0/text = \"Left\"\npopup/item_0/id = 0\npopup/item_1/text = \"Center\"\npopup/item_1/id = 1\npopup/item_2/text = \"Right\"\npopup/item_2/id = 2\npopup/item_3/text = \"Fill\"\npopup/item_3/id = 3\n\n[node name=\"MeshVerticalAlignmentLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"36\" unique_id=515682422]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Vertical alignment:\"\nclip_text = true\n\n[node name=\"MeshVerticalAlignment\" type=\"OptionButton\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"37\" unique_id=1112603599]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 3\npopup/item_0/text = \"Top\"\npopup/item_0/id = 0\npopup/item_1/text = \"Center\"\npopup/item_1/id = 1\npopup/item_2/text = \"Bottom\"\npopup/item_2/id = 2\n\n[node name=\"MeshLineSpacingLabel\" type=\"Label\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"38\" unique_id=375682330]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Line spacing:\"\nclip_text = true\n\n[node name=\"MeshLineSpacing\" type=\"TextureProgressBar\" parent=\"ObjectOptions/MeshOptions/GridContainer\" index=\"39\" unique_id=1621242240]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = -10.0\nmax_value = 10.0\nstep = 0.001\nallow_greater = true\nallow_lesser = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\n\n[node name=\"LightOptions\" type=\"FoldableContainer\" parent=\"ObjectOptions\" index=\"3\" unique_id=1006001452]\nunique_name_in_owner = true\nlayout_mode = 2\ntheme_type_variation = &\"CollapsibleContainer\"\nfolded = true\ntitle = \"Light\"\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"ObjectOptions/LightOptions\" index=\"0\" unique_id=1278001876]\nvisible = false\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"LightColorLabel\" type=\"Label\" parent=\"ObjectOptions/LightOptions/GridContainer\" index=\"0\" unique_id=219534442]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Color:\"\n\n[node name=\"LightColor\" type=\"ColorPickerButton\" parent=\"ObjectOptions/LightOptions/GridContainer\" index=\"1\" unique_id=1422343874]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\ncolor = Color(1, 1, 1, 1)\nedit_alpha = false\n\n[node name=\"LightEnergyLabel\" type=\"Label\" parent=\"ObjectOptions/LightOptions/GridContainer\" index=\"2\" unique_id=1794680360]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Energy:\"\n\n[node name=\"LightEnergy\" parent=\"ObjectOptions/LightOptions/GridContainer\" index=\"3\" unique_id=279226699 instance=ExtResource(\"4\")]\nunique_name_in_owner = true\nlayout_mode = 2\nmax_value = 16.0\nstep = 0.01\nvalue = 1.0\nallow_greater = true\n\n[node name=\"LightNegativeLabel\" type=\"Label\" parent=\"ObjectOptions/LightOptions/GridContainer\" index=\"4\" unique_id=3680005]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Negative:\"\n\n[node name=\"LightNegative\" type=\"CheckBox\" parent=\"ObjectOptions/LightOptions/GridContainer\" index=\"5\" unique_id=2119082630]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"ShadowEnabledLabel\" type=\"Label\" parent=\"ObjectOptions/LightOptions/GridContainer\" index=\"6\" unique_id=867775493]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Shadow:\"\n\n[node name=\"ShadowEnabled\" type=\"CheckBox\" parent=\"ObjectOptions/LightOptions/GridContainer\" index=\"7\" unique_id=1972639974]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"OmniRangeLabel\" type=\"Label\" parent=\"ObjectOptions/LightOptions/GridContainer\" index=\"8\" unique_id=1948818859]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Range:\"\n\n[node name=\"OmniRange\" type=\"TextureProgressBar\" parent=\"ObjectOptions/LightOptions/GridContainer\" index=\"9\" unique_id=507923644]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 4096.0\nstep = 0.01\nvalue = 5.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\n\n[node name=\"SpotRangeLabel\" type=\"Label\" parent=\"ObjectOptions/LightOptions/GridContainer\" index=\"10\" unique_id=840284471]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Range:\"\n\n[node name=\"SpotRange\" type=\"TextureProgressBar\" parent=\"ObjectOptions/LightOptions/GridContainer\" index=\"11\" unique_id=1524630043]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 4096.0\nstep = 0.01\nvalue = 5.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\n\n[node name=\"SpotAngleLabel\" type=\"Label\" parent=\"ObjectOptions/LightOptions/GridContainer\" index=\"12\" unique_id=1902109345]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Angle:\"\n\n[node name=\"SpotAngle\" type=\"TextureProgressBar\" parent=\"ObjectOptions/LightOptions/GridContainer\" index=\"13\" unique_id=1023810561]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 180.0\nstep = 0.01\nvalue = 45.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\n\n[node name=\"UndoRedoTimer\" type=\"Timer\" parent=\".\" index=\"5\" unique_id=55379558]\nwait_time = 0.2\none_shot = true\n\n[node name=\"LoadModelDialog\" type=\"FileDialog\" parent=\".\" index=\"6\" unique_id=59467752 groups=[\"FileDialogs\"]]\nmode = 1\ntitle = \"Open File(s)\"\nsize = Vector2i(558, 300)\nok_button_text = \"Open\"\nfile_mode = 1\naccess = 2\nfilters = PackedStringArray(\"*.obj\")\nshow_hidden_files = true\n\n[connection signal=\"item_selected\" from=\"HandleObjects/ObjectOptionButton\" to=\".\" method=\"_on_ObjectOptionButton_item_selected\"]\n[connection signal=\"pressed\" from=\"HandleObjects/RemoveObject\" to=\".\" method=\"_on_RemoveObject_pressed\"]\n[connection signal=\"timeout\" from=\"UndoRedoTimer\" to=\".\" method=\"_on_UndoRedoTimer_timeout\"]\n[connection signal=\"files_selected\" from=\"LoadModelDialog\" to=\".\" method=\"_on_LoadModelDialog_files_selected\"]\n[connection signal=\"visibility_changed\" from=\"LoadModelDialog\" to=\".\" method=\"_on_load_model_dialog_visibility_changed\"]\n"
  },
  {
    "path": "src/Tools/BaseDraw.gd",
    "content": "class_name BaseDrawTool\nextends BaseTool\n\nconst IMAGE_BRUSHES := [Brushes.FILE, Brushes.RANDOM_FILE, Brushes.CUSTOM]\n\nvar _brush := Brushes.get_default_brush()\nvar _brush_size := 1\nvar _brush_size_dynamics := 1\nvar _brush_density := 100\nvar _brush_flip_x := false\nvar _brush_flip_y := false\nvar _brush_transposed := false\nvar _cache_limit := 3\nvar _brush_interpolate := 0\nvar _brush_image := Image.new()\nvar _orignal_brush_image := Image.new()  ## Contains the original _brush_image, without resizing\nvar _brush_texture := ImageTexture.new()\nvar _strength := 1.0\nvar _is_eraser := false\n@warning_ignore(\"unused_private_class_variable\")\nvar _picking_color := false\n\nvar _undo_data := {}\nvar _drawer := Drawer.new()\nvar _mask := PackedFloat32Array()\nvar _mirror_brushes := {}\n\nvar _draw_line := false\nvar _line_start := Vector2i.ZERO\nvar _line_end := Vector2i.ZERO\n\nvar _indicator := BitMap.new()\nvar _polylines := []\nvar _line_polylines := []\n\n# Memorize some stuff when doing brush strokes\nvar _stroke_project: Project\nvar _stroke_images: Array[ImageExtended] = []\nvar _is_mask_size_zero := true\nvar _circle_tool_shortcut: Array[Vector2i]\nvar _mm_action: Keychain.MouseMovementInputAction\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\tif tool_slot.button == MOUSE_BUTTON_RIGHT:\n\t\t$Brush/BrushSize.allow_global_input_events = not Global.share_options_between_tools\n\t\tGlobal.share_options_between_tools_changed.connect(\n\t\t\tfunc(enabled): $Brush/BrushSize.allow_global_input_events = not enabled\n\t\t)\n\t\t_update_mm_action(\"mm_change_brush_size\")\n\t\tKeychain.action_changed.connect(_update_mm_action)\n\t\tKeychain.profile_switched.connect(func(_prof): _update_mm_action(\"mm_change_brush_size\"))\n\telse:\n\t\t_mm_action = Keychain.actions[&\"mm_change_brush_size\"] as Keychain.MouseMovementInputAction\n\tGlobal.cel_switched.connect(update_brush)\n\tGlobal.dynamics_changed.connect(_reset_dynamics)\n\tTools.color_changed.connect(_on_Color_changed)\n\tGlobal.brushes_popup.brush_removed.connect(_on_Brush_removed)\n\n\nfunc _input(event: InputEvent) -> void:\n\tfor action in [&\"undo\", &\"redo\"]:\n\t\tif Input.is_action_pressed(action):\n\t\t\treturn\n\t# If options are being shared, no need to change the brush size on the right tool slots,\n\t# otherwise it will be changed twice on both left and right tools.\n\tif tool_slot.button == MOUSE_BUTTON_RIGHT and Global.share_options_between_tools:\n\t\treturn\n\tvar brush_size_value := _mm_action.get_action_distance_int(event, true)\n\t$Brush/BrushSize.value += brush_size_value\n\n\nfunc _on_BrushType_pressed() -> void:\n\tif not Global.brushes_popup.brush_selected.is_connected(_on_Brush_selected):\n\t\tGlobal.brushes_popup.brush_selected.connect(_on_Brush_selected, CONNECT_ONE_SHOT)\n\t# Now we set position and columns\n\tvar tool_option_container = get_node(\"../../\")\n\tvar brush_button = $Brush/Type\n\tvar pop_position = brush_button.global_position + Vector2(0, brush_button.size.y)\n\tvar size_x = tool_option_container.size.x\n\tvar size_y = tool_option_container.size.y - $Brush.position.y - $Brush.size.y\n\tvar columns := int(size_x / 36) - 1  # 36 is the size of BrushButton.tscn\n\tvar categories = Global.brushes_popup.get_node(\"Background/Brushes/Categories\")\n\tfor child in categories.get_children():\n\t\tif child is GridContainer:\n\t\t\tchild.columns = columns\n\tGlobal.brushes_popup.popup_on_parent(Rect2(pop_position, Vector2(size_x, size_y)))\n\tTools.flip_rotated.emit(_brush_flip_x, _brush_flip_y, _brush_transposed)\n\n\nfunc _on_Brush_selected(brush: Brushes.Brush) -> void:\n\t_brush = brush\n\t_brush_flip_x = false\n\t_brush_flip_y = false\n\t_brush_transposed = false\n\tupdate_brush()\n\tsave_config()\n\n\nfunc _on_BrushSize_value_changed(value: float) -> void:\n\t_brush_size = int(value)\n\t_brush_size_dynamics = _brush_size\n\t_cache_limit = (_brush_size * _brush_size) * 3  # This equation seems the best match\n\tupdate_config()\n\tsave_config()\n\n\nfunc _reset_dynamics() -> void:\n\t_brush_size_dynamics = _brush_size\n\t_cache_limit = (_brush_size * _brush_size) * 3  # This equation seems the best match\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_density_value_slider_value_changed(value: int) -> void:\n\t_brush_density = value\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_InterpolateFactor_value_changed(value: float) -> void:\n\t_brush_interpolate = int(value)\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_Color_changed(_color_info: Dictionary, _button: int) -> void:\n\tupdate_brush()\n\n\nfunc _on_Brush_removed(brush: Brushes.Brush) -> void:\n\tif brush == _brush:\n\t\t_brush = Brushes.get_default_brush()\n\t\tupdate_brush()\n\t\tsave_config()\n\n\nfunc get_config() -> Dictionary:\n\treturn {\n\t\t\"brush_type\": _brush.type,\n\t\t\"brush_index\": _brush.index,\n\t\t\"brush_size\": _brush_size,\n\t\t\"brush_density\": _brush_density,\n\t\t\"brush_interpolate\": _brush_interpolate,\n\t}\n\n\nfunc set_config(config: Dictionary) -> void:\n\tvar type: int = config.get(\"brush_type\", _brush.type)\n\tvar index: int = config.get(\"brush_index\", _brush.index)\n\t_brush = Global.brushes_popup.get_brush(type, index)\n\t_brush_size = config.get(\"brush_size\", _brush_size)\n\t_brush_size_dynamics = _brush_size\n\t_brush_density = config.get(\"brush_density\", _brush_density)\n\t_brush_interpolate = config.get(\"brush_interpolate\", _brush_interpolate)\n\n\nfunc update_config() -> void:\n\t$Brush/BrushSize.value = _brush_size\n\t$DensityValueSlider.value = _brush_density\n\t$ColorInterpolation.value = _brush_interpolate\n\tupdate_brush()\n\n\nfunc update_brush() -> void:\n\t$Brush/BrushSize.suffix = \"px\"  # Assume we are using default brushes\n\tif Tools.is_placing_tiles():\n\t\tvar tilemap_cel := Global.current_project.get_current_cel() as CelTileMap\n\t\tvar tileset := tilemap_cel.tileset\n\t\tvar tile_index := clampi(TileSetPanel.selected_tile_index, 0, tileset.tiles.size() - 1)\n\t\tvar tile_image := tileset.tiles[tile_index].image\n\t\ttile_image = tilemap_cel.transform_tile(\n\t\t\ttile_image,\n\t\t\tTileSetPanel.is_flipped_h,\n\t\t\tTileSetPanel.is_flipped_v,\n\t\t\tTileSetPanel.is_transposed\n\t\t)\n\t\t_brush_image.copy_from(tile_image)\n\t\t_brush_texture = ImageTexture.create_from_image(_brush_image)\n\telse:\n\t\tmatch _brush.type:\n\t\t\tBrushes.PIXEL:\n\t\t\t\t_brush_texture = ImageTexture.create_from_image(\n\t\t\t\t\tload(\"res://assets/graphics/pixel_image.png\")\n\t\t\t\t)\n\t\t\t\t_stroke_dimensions = Vector2.ONE * _brush_size\n\t\t\tBrushes.CIRCLE:\n\t\t\t\t_brush_texture = ImageTexture.create_from_image(\n\t\t\t\t\tload(\"res://assets/graphics/circle_9x9.png\")\n\t\t\t\t)\n\t\t\t\t_stroke_dimensions = Vector2.ONE * _brush_size\n\t\t\tBrushes.FILLED_CIRCLE:\n\t\t\t\t_brush_texture = ImageTexture.create_from_image(\n\t\t\t\t\tload(\"res://assets/graphics/circle_filled_9x9.png\")\n\t\t\t\t)\n\t\t\t\t_stroke_dimensions = Vector2.ONE * _brush_size\n\t\t\tBrushes.FILE, Brushes.RANDOM_FILE, Brushes.CUSTOM:\n\t\t\t\t$Brush/BrushSize.suffix = \"00 %\"  # Use a different size convention on images\n\t\t\t\tif _brush.random.size() <= 1:\n\t\t\t\t\t_orignal_brush_image = _brush.image\n\t\t\t\telse:\n\t\t\t\t\tvar random := randi() % _brush.random.size()\n\t\t\t\t\t_orignal_brush_image = _brush.random[random]\n\t\t\t\t_brush_image = _create_blended_brush_image(_orignal_brush_image)\n\t\t\t\tupdate_brush_image_flip_and_rotate()\n\t\t\t\t_brush_texture = ImageTexture.create_from_image(_brush_image)\n\t\t\t\tupdate_mirror_brush()\n\t\t\t\t_stroke_dimensions = _brush_image.get_size()\n\t_circle_tool_shortcut = []\n\t_indicator = _create_brush_indicator()\n\t_polylines = _create_polylines(_indicator)\n\t$Brush/Type/Texture.texture = _brush_texture\n\t$DensityValueSlider.visible = _brush.type not in IMAGE_BRUSHES\n\t$ColorInterpolation.visible = _brush.type in IMAGE_BRUSHES\n\t$TransformButtonsContainer.visible = _brush.type in IMAGE_BRUSHES\n\tGlobal.canvas.indicators.queue_redraw()\n\n\nfunc update_random_image() -> void:\n\tif _brush.type != Brushes.RANDOM_FILE:\n\t\treturn\n\tvar random := randi() % _brush.random.size()\n\t_brush_image = _create_blended_brush_image(_brush.random[random])\n\t_orignal_brush_image = _brush_image\n\tupdate_brush_image_flip_and_rotate()\n\t_brush_texture = ImageTexture.create_from_image(_brush_image)\n\t_indicator = _create_brush_indicator()\n\tupdate_mirror_brush()\n\n\nfunc update_mirror_brush() -> void:\n\t_mirror_brushes.x = _brush_image.duplicate()\n\t_mirror_brushes.x.flip_x()\n\t_mirror_brushes.y = _brush_image.duplicate()\n\t_mirror_brushes.y.flip_y()\n\t_mirror_brushes.xy = _mirror_brushes.x.duplicate()\n\t_mirror_brushes.xy.flip_y()\n\n\nfunc update_brush_image_flip_and_rotate() -> void:\n\tif _brush_transposed == true:\n\t\t_brush_image.rotate_90(COUNTERCLOCKWISE)\n\tif _brush_flip_x == true:\n\t\t_brush_image.flip_x()\n\tif _brush_flip_y == true:\n\t\t_brush_image.flip_y()\n\n\nfunc update_mask(can_skip := true) -> void:\n\tif can_skip and Tools.dynamics_alpha == Tools.Dynamics.NONE:\n\t\tif _mask:\n\t\t\t_mask = PackedFloat32Array()\n\t\treturn\n\t_is_mask_size_zero = false\n\t# Faster than zeroing PackedFloat32Array directly.\n\t# See: https://github.com/Orama-Interactive/Pixelorama/pull/439\n\tvar nulled_array := []\n\tnulled_array.resize(Global.current_project.size.x * Global.current_project.size.y)\n\t_mask = PackedFloat32Array(nulled_array)\n\n\nfunc update_line_polylines(start: Vector2i, end: Vector2i) -> void:\n\tvar indicator := _create_line_indicator(_indicator, start, end)\n\t_line_polylines = _create_polylines(indicator)\n\n\nfunc prepare_undo() -> void:\n\t_undo_data = _get_undo_data()\n\n\nfunc commit_undo(action := \"Draw\") -> void:\n\tvar project := Global.current_project\n\tGlobal.canvas.update_selected_cels_textures(project)\n\tvar tile_editing_mode := TileSetPanel.tile_editing_mode\n\tif TileSetPanel.placing_tiles:\n\t\ttile_editing_mode = TileSetPanel.TileEditingMode.STACK\n\tproject.update_tilemaps(_undo_data, tile_editing_mode)\n\tvar redo_data := _get_undo_data()\n\tvar frame := -1\n\tvar layer := -1\n\tif Global.animation_timeline.animation_timer.is_stopped() and project.selected_cels.size() == 1:\n\t\tframe = project.current_frame\n\t\tlayer = project.current_layer\n\n\tproject.undo_redo.create_action(action)\n\tmanage_undo_redo_palettes()\n\tproject.deserialize_cel_undo_data(redo_data, _undo_data)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false, frame, layer))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true, frame, layer))\n\tproject.undo_redo.commit_action()\n\n\t_undo_data.clear()\n\n\n## Manages conversion of global palettes into local if a drawable tool is used\nfunc manage_undo_redo_palettes() -> void:\n\tif _is_eraser:\n\t\treturn\n\tvar palette_in_focus := Palettes.current_palette\n\tif not is_instance_valid(palette_in_focus):\n\t\treturn\n\tvar palette_has_color := Palettes.current_palette.has_theme_color(tool_slot.color)\n\tif not palette_in_focus.is_project_palette:\n\t\t# Make a project copy of the palette if it has (or about to have) the color\n\t\t# and is still global\n\t\tif palette_has_color or Palettes.auto_add_colors:\n\t\t\tpalette_in_focus = palette_in_focus.duplicate()\n\t\t\tpalette_in_focus.is_project_palette = true\n\t\t\tPalettes.undo_redo_add_palette(palette_in_focus)\n\tif Palettes.auto_add_colors and not palette_has_color:\n\t\t# Get an estimate of where the color will end up (used for undo)\n\t\tvar index := 0\n\t\tvar color_max: int = palette_in_focus.colors_max\n\t\t# If palette is full automatically increase the palette height\n\t\tif palette_in_focus.is_full():\n\t\t\tcolor_max = palette_in_focus.width * (palette_in_focus.height + 1)\n\t\tfor i in range(0, color_max):\n\t\t\tif not palette_in_focus.colors.has(i):\n\t\t\t\tindex = i\n\t\t\t\tbreak\n\t\tvar undo_redo := Global.current_project.undo_redo\n\t\tundo_redo.add_do_method(palette_in_focus.add_color.bind(tool_slot.color, 0))\n\t\tundo_redo.add_undo_method(palette_in_focus.remove_color.bind(index))\n\t\tif not Global.palette_panel:  # Failsafe\n\t\t\tprinterr(\"Missing global reference to PalettePanel\")\n\t\t\treturn\n\t\tundo_redo.add_do_method(Global.palette_panel.redraw_current_palette)\n\t\tundo_redo.add_undo_method(Global.palette_panel.redraw_current_palette)\n\t\tundo_redo.add_do_method(Global.palette_panel.toggle_add_delete_buttons)\n\t\tundo_redo.add_undo_method(Global.palette_panel.toggle_add_delete_buttons)\n\n\nfunc draw_tool(pos: Vector2i) -> void:\n\tvar project := Global.current_project\n\tif project.has_selection:\n\t\tproject.selection_map.lock_selection_rect(project, true)\n\tif Global.mirror_view:\n\t\t# Even brushes are not perfectly centered and are offsetted by 1 px, so we add it.\n\t\tif int(_stroke_dimensions.x) % 2 == 0:\n\t\t\tpos.x += 1\n\t_prepare_tool()\n\tvar coords_to_draw := _draw_tool(pos)\n\tfor coord in coords_to_draw:\n\t\t_set_pixel_no_cache(coord)\n\tif project.has_selection:\n\t\tproject.selection_map.lock_selection_rect(project, false)\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tsuper.draw_end(pos)\n\t_stroke_project = null\n\t_stroke_images = []\n\t_circle_tool_shortcut = []\n\t_brush_size_dynamics = _brush_size\n\tmatch _brush.type:\n\t\tBrushes.FILE, Brushes.RANDOM_FILE, Brushes.CUSTOM:\n\t\t\t_brush_image = _create_blended_brush_image(_orignal_brush_image)\n\t\t\tupdate_brush_image_flip_and_rotate()\n\t\t\t_brush_texture = ImageTexture.create_from_image(_brush_image)\n\t\t\tupdate_mirror_brush()\n\t\t\t_stroke_dimensions = _brush_image.get_size()\n\t_indicator = _create_brush_indicator()\n\t_polylines = _create_polylines(_indicator)\n\n\nfunc cancel_tool() -> void:\n\tsuper()\n\tfor data in _undo_data:\n\t\tif data is not Image:\n\t\t\tcontinue\n\t\tvar image_data = _undo_data[data][\"data\"]\n\t\tdata.set_data(\n\t\t\tdata.get_width(), data.get_height(), data.has_mipmaps(), data.get_format(), image_data\n\t\t)\n\tGlobal.canvas.sprite_changed_this_frame = true\n\n\nfunc draw_tile(pos: Vector2i) -> void:\n\tvar tile_index := 0 if _is_eraser else TileSetPanel.selected_tile_index\n\tvar mirrored_positions := Tools.get_mirrored_positions(pos, Global.current_project)\n\tvar tile_positions: Array[Vector2i] = []\n\ttile_positions.resize(mirrored_positions.size() + 1)\n\ttile_positions[0] = get_cell_position(pos)\n\tfor i in mirrored_positions.size():\n\t\tvar mirrored_position := mirrored_positions[i]\n\t\ttile_positions[i + 1] = get_cell_position(mirrored_position)\n\tfor cel in _get_selected_draw_cels():\n\t\tif cel is not CelTileMap:\n\t\t\treturn\n\t\tfor tile_position in tile_positions:\n\t\t\tvar cell := (cel as CelTileMap).get_cell_at(tile_position)\n\t\t\t(cel as CelTileMap).set_index(cell, tile_index)\n\n\nfunc _prepare_tool() -> void:\n\tif !Global.current_project.layers[Global.current_project.current_layer].can_layer_get_drawn():\n\t\treturn\n\t_brush_size_dynamics = _brush_size\n\tvar strength := Tools.get_alpha_dynamic(_strength)\n\tvar max_inctrment := maxi(1, _brush_size + Tools.brush_size_max_increment)\n\tif Tools.dynamics_size == Tools.Dynamics.PRESSURE:\n\t\t_brush_size_dynamics = roundi(lerpf(_brush_size, max_inctrment, Tools.pen_pressure))\n\telif Tools.dynamics_size == Tools.Dynamics.VELOCITY:\n\t\t_brush_size_dynamics = roundi(lerpf(_brush_size, max_inctrment, Tools.mouse_velocity))\n\t_drawer.pixel_perfect = Tools.pixel_perfect if _brush_size == 1 else false\n\t_drawer.color_op.strength = strength\n\t_indicator = _create_brush_indicator()\n\t_polylines = _create_polylines(_indicator)\n\t# Memorize current project\n\t_stroke_project = Global.current_project\n\t# Memorize the frame/layer we are drawing on rather than fetching it on every pixel\n\t_stroke_images = _get_selected_draw_images()\n\t# This may prevent a few tests when setting pixels\n\t_is_mask_size_zero = _mask.size() == 0\n\tmatch _brush.type:\n\t\tBrushes.FILE, Brushes.RANDOM_FILE, Brushes.CUSTOM:\n\t\t\t# save _brush_image for safe keeping\n\t\t\t_brush_image = _create_blended_brush_image(_orignal_brush_image)\n\t\t\tupdate_brush_image_flip_and_rotate()\n\t\t\t_brush_texture = ImageTexture.create_from_image(_brush_image)\n\t\t\tupdate_mirror_brush()\n\t\t\t_stroke_dimensions = _brush_image.get_size()\n\n\n## Make sure to always have invoked _prepare_tool() before this. This computes the coordinates to be\n## drawn if it can (except for the generic brush, when it's actually drawing them)\nfunc _draw_tool(pos: Vector2) -> PackedVector2Array:\n\tif !Global.current_project.layers[Global.current_project.current_layer].can_layer_get_drawn():\n\t\treturn PackedVector2Array()  # empty fallback\n\tif Tools.is_placing_tiles():\n\t\treturn _compute_draw_tool_pixel(pos)\n\tmatch _brush.type:\n\t\tBrushes.PIXEL:\n\t\t\treturn _compute_draw_tool_pixel(pos)\n\t\tBrushes.CIRCLE:\n\t\t\treturn _compute_draw_tool_circle(pos, false)\n\t\tBrushes.FILLED_CIRCLE:\n\t\t\treturn _compute_draw_tool_circle(pos, true)\n\t\t_:\n\t\t\tdraw_tool_brush(pos)\n\treturn PackedVector2Array()  # empty fallback\n\n\nfunc draw_fill_gap(start: Vector2i, end: Vector2i) -> void:\n\tvar project := Global.current_project\n\tif project.has_selection:\n\t\tproject.selection_map.lock_selection_rect(project, true)\n\tif Global.mirror_view:\n\t\t# Even brushes are not perfectly centred and are offsetted by 1 px so we add it\n\t\tif int(_stroke_dimensions.x) % 2 == 0:\n\t\t\tstart.x += 1\n\t\t\tend.x += 1\n\t_prepare_tool()\n\t# This needs to be a dictionary to ensure duplicate coordinates are not being added\n\tvar coords_to_draw := {}\n\tvar pixel_coords := Geometry2D.bresenham_line(start, end)\n\tpixel_coords.pop_front()\n\tfor current_pixel_coord in pixel_coords:\n\t\tif _spacing_mode:\n\t\t\tcurrent_pixel_coord = get_spacing_position(current_pixel_coord)\n\t\tfor coord in _draw_tool(current_pixel_coord):\n\t\t\tcoords_to_draw[coord] = 0\n\tfor c in coords_to_draw.keys():\n\t\t_set_pixel_no_cache(c)\n\tif project.has_selection:\n\t\tproject.selection_map.lock_selection_rect(project, false)\n\n\n## Calls [method Geometry2D.bresenham_line] and takes [param thickness] into account.\n## Used by tools such as the line and the curve tool.\nfunc bresenham_line_thickness(from: Vector2i, to: Vector2i, thickness: int) -> Array[Vector2i]:\n\tvar array: Array[Vector2i] = []\n\tfor pixel in Geometry2D.bresenham_line(from, to):\n\t\tvar start := pixel - Vector2i.ONE * (thickness >> 1)\n\t\tvar end := start + Vector2i.ONE * thickness\n\t\tfor yy in range(start.y, end.y):\n\t\t\tfor xx in range(start.x, end.x):\n\t\t\t\tarray.append(Vector2i(xx, yy))\n\treturn array\n\n\n## Compute the array of coordinates that should be drawn.\nfunc _compute_draw_tool_pixel(pos: Vector2) -> PackedVector2Array:\n\tvar brush_size := _brush_size_dynamics\n\tif Tools.is_placing_tiles():\n\t\tbrush_size = 1\n\tvar result := PackedVector2Array()\n\tvar start := pos - Vector2.ONE * (brush_size >> 1)\n\tvar end := start + Vector2.ONE * brush_size\n\tfor y in range(start.y, end.y):\n\t\tfor x in range(start.x, end.x):\n\t\t\tresult.append(Vector2(x, y))\n\treturn result\n\n\n## Compute the array of coordinates that should be drawn\nfunc _compute_draw_tool_circle(pos: Vector2i, fill := false) -> Array[Vector2i]:\n\tvar brush_size := Vector2i(_brush_size_dynamics, _brush_size_dynamics)\n\tvar offset_pos := pos - (brush_size / 2)\n\tif _circle_tool_shortcut:\n\t\treturn _draw_tool_circle_from_map(pos)\n\n\tvar result: Array[Vector2i] = []\n\tif fill:\n\t\tresult = DrawingAlgos.get_ellipse_points_filled(offset_pos, brush_size)\n\telse:\n\t\tresult = DrawingAlgos.get_ellipse_points(offset_pos, brush_size)\n\treturn result\n\n\nfunc _draw_tool_circle_from_map(pos: Vector2i) -> Array[Vector2i]:\n\tvar result: Array[Vector2i] = []\n\tfor displacement in _circle_tool_shortcut:\n\t\tresult.append(pos + displacement)\n\treturn result\n\n\nfunc draw_tool_brush(brush_position: Vector2i) -> void:\n\tvar project := Global.current_project\n\t# image brushes work differently, (we have to consider all 8 surrounding points)\n\tvar central_point := project.tiles.get_canon_position(brush_position)\n\tvar positions := project.tiles.get_point_in_tiles(central_point)\n\tif Global.current_project.has_selection and project.tiles.mode == Tiles.MODE.NONE:\n\t\tpositions = Global.current_project.selection_map.get_point_in_tile_mode(central_point)\n\n\tvar brush_size := _brush_image.get_size()\n\tfor i in positions.size():\n\t\tvar pos := positions[i]\n\t\tvar dst := pos - (brush_size / 2)\n\t\tvar dst_rect := Rect2i(dst, brush_size)\n\t\tvar draw_rectangle := _get_draw_rect()\n\t\tdst_rect = dst_rect.intersection(draw_rectangle)\n\t\tif dst_rect.size == Vector2i.ZERO:\n\t\t\tcontinue\n\t\tvar src_rect := Rect2i(dst_rect.position - dst, dst_rect.size)\n\t\tvar brush_image: Image = remove_unselected_parts_of_brush(_brush_image, dst)\n\t\tdst = dst_rect.position\n\t\t_draw_brush_image(brush_image, src_rect, dst)\n\n\t\t# Handle Mirroring\n\t\tvar mirror_x := (project.x_symmetry_point + 1) - dst.x - src_rect.size.x\n\t\tvar mirror_y := (project.y_symmetry_point + 1) - dst.y - src_rect.size.y\n\n\t\tif Tools.horizontal_mirror:\n\t\t\tvar x_dst := Vector2i(mirror_x, dst.y)\n\t\t\tvar mirror_brush_x := remove_unselected_parts_of_brush(_mirror_brushes.x, x_dst)\n\t\t\t_draw_brush_image(mirror_brush_x, _flip_rect(src_rect, brush_size, true, false), x_dst)\n\t\t\tif Tools.vertical_mirror:\n\t\t\t\tvar xy_dst := Vector2i(mirror_x, mirror_y)\n\t\t\t\tvar mirror_brush_xy := remove_unselected_parts_of_brush(_mirror_brushes.xy, xy_dst)\n\t\t\t\t_draw_brush_image(\n\t\t\t\t\tmirror_brush_xy, _flip_rect(src_rect, brush_size, true, true), xy_dst\n\t\t\t\t)\n\t\tif Tools.vertical_mirror:\n\t\t\tvar y_dst := Vector2i(dst.x, mirror_y)\n\t\t\tvar mirror_brush_y := remove_unselected_parts_of_brush(_mirror_brushes.y, y_dst)\n\t\t\t_draw_brush_image(mirror_brush_y, _flip_rect(src_rect, brush_size, false, true), y_dst)\n\n\nfunc remove_unselected_parts_of_brush(brush: Image, dst: Vector2i) -> Image:\n\tvar project := Global.current_project\n\tif !project.has_selection:\n\t\treturn brush\n\tvar brush_size := brush.get_size()\n\tvar new_brush := Image.new()\n\tnew_brush.copy_from(brush)\n\n\tfor x in brush_size.x:\n\t\tfor y in brush_size.y:\n\t\t\tvar pos := Vector2i(x, y) + dst\n\t\t\tif !project.can_pixel_get_drawn(pos):\n\t\t\t\tnew_brush.set_pixel(x, y, Color(0))\n\treturn new_brush\n\n\nfunc draw_indicator(left: bool) -> void:\n\tvar color := Global.left_tool_color if left else Global.right_tool_color\n\tvar snapped_position := snap_position(_cursor)\n\tif Tools.is_placing_tiles():\n\t\tvar tilemap_cel := Global.current_project.get_current_cel() as CelTileMap\n\t\tvar grid_size := tilemap_cel.get_tile_size()\n\t\tvar grid_center := Vector2()\n\t\tif tilemap_cel.get_tile_shape() != TileSet.TILE_SHAPE_SQUARE:\n\t\t\tvar cell_position := tilemap_cel.get_cell_position(snapped_position)\n\t\t\tgrid_center = tilemap_cel.get_pixel_coords(cell_position) + (grid_size / 2)\n\t\telse:\n\t\t\tvar offset := tilemap_cel.offset % grid_size\n\t\t\tvar offset_pos := snapped_position - Vector2(grid_size / 2) - Vector2(offset)\n\t\t\tgrid_center = offset_pos.snapped(grid_size) + Vector2(grid_size / 2) + Vector2(offset)\n\t\tsnapped_position = grid_center.floor()\n\tdraw_indicator_at(snapped_position, Vector2i.ZERO, color)\n\tif (\n\t\tGlobal.current_project.has_selection\n\t\tand Global.current_project.tiles.mode == Tiles.MODE.NONE\n\t):\n\t\tvar pos := _line_start if _draw_line else _cursor\n\t\tvar nearest_pos := Global.current_project.selection_map.get_nearest_position(pos)\n\t\tif nearest_pos != Vector2i.ZERO:\n\t\t\tvar offset := nearest_pos\n\t\t\tdraw_indicator_at(snapped_position, offset, Color.GREEN)\n\t\t\treturn\n\n\tif Global.current_project.tiles.mode and Global.current_project.tiles.has_point(_cursor):\n\t\tvar pos := _line_start if _draw_line else _cursor\n\t\tvar nearest_tile := Global.current_project.tiles.get_nearest_tile(pos)\n\t\tif nearest_tile.position != Vector2i.ZERO:\n\t\t\tvar offset := nearest_tile.position\n\t\t\tdraw_indicator_at(snapped_position, offset, Color.GREEN)\n\n\nfunc draw_indicator_at(pos: Vector2i, offset: Vector2i, color: Color) -> void:\n\tvar canvas: Node2D = Global.canvas.indicators\n\tif _brush.type in IMAGE_BRUSHES and not _draw_line or Tools.is_placing_tiles():\n\t\tpos -= _brush_image.get_size() / 2\n\t\tpos -= offset\n\t\tcanvas.draw_texture(_brush_texture, pos)\n\telse:\n\t\tif _draw_line:\n\t\t\tpos.x = _line_end.x if _line_end.x < _line_start.x else _line_start.x\n\t\t\tpos.y = _line_end.y if _line_end.y < _line_start.y else _line_start.y\n\t\tpos -= _indicator.get_size() / 2\n\t\tpos -= offset\n\t\tcanvas.draw_set_transform(pos, canvas.rotation, canvas.scale)\n\t\tvar polylines := _line_polylines if _draw_line else _polylines\n\t\tfor line in polylines:\n\t\t\tvar pool := PackedVector2Array(line)\n\t\t\tcanvas.draw_polyline(pool, color)\n\t\tcanvas.draw_set_transform(canvas.position, canvas.rotation, canvas.scale)\n\n\nfunc _set_pixel(pos: Vector2i, ignore_mirroring := false) -> void:\n\tif pos in _draw_cache and _for_frame == _stroke_project.current_frame:\n\t\treturn\n\tif _draw_cache.size() > _cache_limit or _for_frame != _stroke_project.current_frame:\n\t\t_draw_cache = []\n\t\t_for_frame = _stroke_project.current_frame\n\t_draw_cache.append(pos)  # Store the position of pixel\n\t# Invoke uncached version to actually draw the pixel\n\t_set_pixel_no_cache(pos, ignore_mirroring)\n\n\nfunc _set_pixel_no_cache(pos: Vector2i, ignore_mirroring := false) -> void:\n\tif randi() % 100 >= _brush_density:\n\t\treturn\n\tpos = _stroke_project.tiles.get_canon_position(pos)\n\tif Global.current_project.has_selection:\n\t\tpos = Global.current_project.selection_map.get_canon_position(pos)\n\tif Tools.is_placing_tiles():\n\t\tdraw_tile(pos)\n\t\treturn\n\tif !_stroke_project.can_pixel_get_drawn(pos):\n\t\treturn\n\n\tvar images := _stroke_images\n\tif _is_mask_size_zero:\n\t\tfor image in images:\n\t\t\t_drawer.set_pixel(image, pos, tool_slot.color, ignore_mirroring)\n\telse:\n\t\tvar i := pos.x + pos.y * _stroke_project.size.x\n\t\tif _mask.size() >= i + 1:\n\t\t\tvar alpha_dynamic: float = Tools.get_alpha_dynamic()\n\t\t\tvar alpha: float = images[0].get_pixelv(pos).a\n\t\t\tif _mask[i] < alpha_dynamic:\n\t\t\t\t# Overwrite colors to avoid additive blending between strokes of\n\t\t\t\t# brushes that are larger than 1px\n\t\t\t\t# This is not a proper solution and it does not work if the pixels\n\t\t\t\t# in the background are not transparent\n\t\t\t\tvar overwrite = _drawer.color_op.get(\"overwrite\")\n\t\t\t\tif overwrite != null and _mask[i] > alpha:\n\t\t\t\t\t_drawer.color_op.overwrite = true\n\t\t\t\t_mask[i] = alpha_dynamic\n\t\t\t\tfor image in images:\n\t\t\t\t\t_drawer.set_pixel(image, pos, tool_slot.color, ignore_mirroring)\n\t\t\t\tif overwrite != null:\n\t\t\t\t\t_drawer.color_op.overwrite = overwrite\n\t\telse:\n\t\t\tfor image in images:\n\t\t\t\t_drawer.set_pixel(image, pos, tool_slot.color, ignore_mirroring)\n\n\nfunc _draw_brush_image(_image: Image, _src_rect: Rect2i, _dst: Vector2i) -> void:\n\tpass\n\n\nfunc _create_blended_brush_image(image: Image) -> Image:\n\tvar brush_size := image.get_size() * _brush_size_dynamics\n\tvar brush := Image.new()\n\tbrush.copy_from(image)\n\tbrush = _blend_image(brush, tool_slot.color, _brush_interpolate / 100.0)\n\tbrush.resize(brush_size.x, brush_size.y, Image.INTERPOLATE_NEAREST)\n\treturn brush\n\n\nfunc _blend_image(image: Image, color: Color, factor: float) -> Image:\n\tvar image_size := image.get_size()\n\tfor y in image_size.y:\n\t\tfor x in image_size.x:\n\t\t\tvar color_old := image.get_pixel(x, y)\n\t\t\tif color_old.a > 0:\n\t\t\t\tvar color_new := color_old.lerp(color, factor)\n\t\t\t\tcolor_new.a = color_old.a\n\t\t\t\timage.set_pixel(x, y, color_new)\n\treturn image\n\n\nfunc _create_brush_indicator() -> BitMap:\n\tmatch _brush.type:\n\t\tBrushes.PIXEL:\n\t\t\treturn _create_pixel_indicator(_brush_size_dynamics)\n\t\tBrushes.CIRCLE:\n\t\t\treturn _create_circle_indicator(_brush_size_dynamics, false)\n\t\tBrushes.FILLED_CIRCLE:\n\t\t\treturn _create_circle_indicator(_brush_size_dynamics, true)\n\t\t_:\n\t\t\treturn _create_image_indicator(_brush_image)\n\n\nfunc _create_image_indicator(image: Image) -> BitMap:\n\tvar bitmap := BitMap.new()\n\tbitmap.create_from_image_alpha(image, 0.0)\n\treturn bitmap\n\n\nfunc _create_pixel_indicator(brush_size: int) -> BitMap:\n\tvar bitmap := BitMap.new()\n\tbitmap.create(Vector2i.ONE * brush_size)\n\tbitmap.set_bit_rect(Rect2i(Vector2i.ZERO, Vector2i.ONE * brush_size), true)\n\treturn bitmap\n\n\nfunc _create_circle_indicator(brush_size: int, fill := false) -> BitMap:\n\tif Tools.dynamics_size != Tools.Dynamics.NONE:\n\t\t_circle_tool_shortcut = []\n\tvar brush_size_v2 := Vector2i(brush_size, brush_size)\n\tvar diameter_v2 := brush_size_v2 * 2 + Vector2i.ONE\n\tvar circle_tool_map := _fill_bitmap_with_points(\n\t\t_compute_draw_tool_circle(brush_size_v2, fill), diameter_v2\n\t)\n\tif _circle_tool_shortcut.is_empty():\n\t\t# Go through that BitMap and build an Array of the \"displacement\"\n\t\t# from the center of the bits that are true.\n\t\tvar diameter := _brush_size_dynamics * 2 + 1\n\t\tfor n in range(0, diameter):\n\t\t\tfor m in range(0, diameter):\n\t\t\t\tif circle_tool_map.get_bitv(Vector2i(m, n)):\n\t\t\t\t\t_circle_tool_shortcut.append(\n\t\t\t\t\t\tVector2i(m - _brush_size_dynamics, n - _brush_size_dynamics)\n\t\t\t\t\t)\n\treturn circle_tool_map\n\n\nfunc _create_line_indicator(indicator: BitMap, start: Vector2i, end: Vector2i) -> BitMap:\n\tvar bitmap := BitMap.new()\n\tvar brush_size := (end - start).abs() + indicator.get_size()\n\tbitmap.create(brush_size)\n\n\tvar offset := indicator.get_size() / 2\n\tvar diff := end - start\n\tstart.x = -diff.x if diff.x < 0 else 0\n\tend.x = 0 if diff.x < 0 else diff.x\n\tstart.y = -diff.y if diff.y < 0 else 0\n\tend.y = 0 if diff.y < 0 else diff.y\n\tstart += offset\n\tend += offset\n\n\tfor pixel in Geometry2D.bresenham_line(start, end):\n\t\t_blit_indicator(bitmap, indicator, pixel)\n\treturn bitmap\n\n\nfunc _blit_indicator(dst: BitMap, indicator: BitMap, pos: Vector2i) -> void:\n\tvar rect := Rect2i(Vector2i.ZERO, dst.get_size())\n\tvar brush_size := indicator.get_size()\n\tpos -= brush_size / 2\n\tfor y in brush_size.y:\n\t\tfor x in brush_size.x:\n\t\t\tvar brush_pos := Vector2i(x, y)\n\t\t\tvar bit := indicator.get_bitv(brush_pos)\n\t\t\tbrush_pos += pos\n\t\t\tif bit and rect.has_point(brush_pos):\n\t\t\t\tdst.set_bitv(brush_pos, bit)\n\n\nfunc _line_angle_constraint(start: Vector2, end: Vector2) -> Dictionary:\n\tvar result := {}\n\tvar angle := rad_to_deg(start.angle_to_point(end))\n\tvar distance := start.distance_to(end)\n\tif Input.is_action_pressed(\"draw_snap_angle\"):\n\t\tif Tools.pixel_perfect:\n\t\t\tangle = snappedf(angle, 22.5)\n\t\t\tif step_decimals(angle) != 0:\n\t\t\t\tvar diff := end - start\n\t\t\t\tvar v := Vector2(2, 1) if absf(diff.x) > absf(diff.y) else Vector2(1, 2)\n\t\t\t\tvar p := diff.project(diff.sign() * v).abs().round()\n\t\t\t\tvar f := p.y if absf(diff.x) > absf(diff.y) else p.x\n\t\t\t\tend = start + diff.sign() * v * f - diff.sign()\n\t\t\t\tangle = rad_to_deg(atan2(signi(diff.y) * v.y, signi(diff.x) * v.x))\n\t\t\telse:\n\t\t\t\tend = start + Vector2.RIGHT.rotated(deg_to_rad(angle)) * distance\n\t\telse:\n\t\t\tangle = snappedf(angle, 15)\n\t\t\tend = start + Vector2.RIGHT.rotated(deg_to_rad(angle)) * distance\n\tangle *= -1\n\tangle += 360 if angle < 0 else 0\n\tresult.text = str(snappedf(angle, 0.01)) + \"°\"\n\tresult.position = Vector2i(end.round())\n\treturn result\n\n\nfunc _get_undo_data() -> Dictionary:\n\tvar data := {}\n\tvar project := Global.current_project\n\tvar cels: Array[BaseCel] = []\n\tif Global.animation_timeline.animation_timer.is_stopped():\n\t\tfor cel_index in project.selected_cels:\n\t\t\tcels.append(project.frames[cel_index[0]].cels[cel_index[1]])\n\telse:\n\t\tfor frame in project.frames:\n\t\t\tvar cel: BaseCel = frame.cels[project.current_layer]\n\t\t\tif not cel is PixelCel:\n\t\t\t\tcontinue\n\t\t\tcels.append(cel)\n\tproject.serialize_cel_undo_data(cels, data)\n\treturn data\n\n\nfunc _on_flip_horizontal_button_pressed() -> void:\n\t_brush_flip_x = not _brush_flip_x\n\tupdate_brush()\n\tsave_config()\n\n\nfunc _on_flip_vertical_button_pressed() -> void:\n\t_brush_flip_y = not _brush_flip_y\n\tupdate_brush()\n\tsave_config()\n\n\nfunc _on_rotate_pressed(clockwise: bool) -> void:\n\tfor i in TileSetPanel.ROTATION_MATRIX.size():\n\t\tvar final_i := i\n\t\tif (\n\t\t\t_brush_flip_x == TileSetPanel.ROTATION_MATRIX[i * 3]\n\t\t\t&& _brush_flip_y == TileSetPanel.ROTATION_MATRIX[i * 3 + 1]\n\t\t\t&& _brush_transposed == TileSetPanel.ROTATION_MATRIX[i * 3 + 2]\n\t\t):\n\t\t\tif clockwise:\n\t\t\t\t@warning_ignore(\"integer_division\")\n\t\t\t\tfinal_i = i / 4 * 4 + posmod(i - 1, 4)\n\t\t\telse:\n\t\t\t\t@warning_ignore(\"integer_division\")\n\t\t\t\tfinal_i = i / 4 * 4 + (i + 1) % 4\n\t\t\t_brush_flip_x = TileSetPanel.ROTATION_MATRIX[final_i * 3]\n\t\t\t_brush_flip_y = TileSetPanel.ROTATION_MATRIX[final_i * 3 + 1]\n\t\t\t_brush_transposed = TileSetPanel.ROTATION_MATRIX[final_i * 3 + 2]\n\t\t\tbreak\n\tupdate_brush()\n\tsave_config()\n\n\nfunc _update_mm_action(action_name: String) -> void:\n\tif action_name != \"mm_change_brush_size\":\n\t\treturn\n\t_mm_action = Keychain.actions[&\"mm_change_brush_size\"] as Keychain.MouseMovementInputAction\n\tvar new_mm_action := Keychain.MouseMovementInputAction.new()\n\tnew_mm_action.action_name = &\"mm_change_brush_size\"\n\tnew_mm_action.mouse_dir = _mm_action.mouse_dir\n\tnew_mm_action.sensitivity = _mm_action.sensitivity\n\t_mm_action = new_mm_action\n"
  },
  {
    "path": "src/Tools/BaseDraw.gd.uid",
    "content": "uid://emctikok1t2\n"
  },
  {
    "path": "src/Tools/BaseDraw.tscn",
    "content": "[gd_scene format=3 uid=\"uid://ubyatap3sylf\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://ctfgfelg0sho8\" path=\"res://src/Tools/BaseTool.tscn\" id=\"2\"]\n[ext_resource type=\"Script\" uid=\"uid://emctikok1t2\" path=\"res://src/Tools/BaseDraw.gd\" id=\"3\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bv7ldl8obhawm\" path=\"res://assets/graphics/misc/icon_reload.png\" id=\"4_c1cak\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bpsfilx47bw3r\" path=\"res://assets/graphics/misc/mirror_x.svg\" id=\"5_4qg2a\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"5_kdxku\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bk6iaxiyl74ih\" path=\"res://assets/graphics/misc/mirror_y.svg\" id=\"6_p5353\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"1\"]\nbg_color = Color(1, 1, 1, 1)\nborder_color = Color(1, 1, 1, 1)\ncorner_radius_top_left = 5\ncorner_radius_top_right = 5\ncorner_radius_bottom_right = 5\ncorner_radius_bottom_left = 5\nanti_aliasing = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"2\"]\nbg_color = Color(1, 1, 1, 1)\nborder_color = Color(1, 1, 1, 1)\ncorner_radius_top_left = 5\ncorner_radius_top_right = 5\ncorner_radius_bottom_right = 5\ncorner_radius_bottom_left = 5\nanti_aliasing = false\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_yr0lx\"]\naction = &\"tile_rotate_left\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_vtp7k\"]\nevents = [SubResource(\"InputEventAction_yr0lx\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_g6d5p\"]\naction = &\"tile_rotate_right\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_lc5ui\"]\nevents = [SubResource(\"InputEventAction_g6d5p\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_yh67l\"]\naction = &\"tile_flip_horizontal\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_mr3k5\"]\nevents = [SubResource(\"InputEventAction_yh67l\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_18g3a\"]\naction = &\"tile_flip_vertical\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_bx5hb\"]\nevents = [SubResource(\"InputEventAction_18g3a\")]\n\n[node name=\"ToolOptions\" unique_id=1048755954 instance=ExtResource(\"2\")]\nscript = ExtResource(\"3\")\n\n[node name=\"Brush\" type=\"HBoxContainer\" parent=\".\" index=\"2\" unique_id=634582773]\nlayout_mode = 2\nalignment = 1\n\n[node name=\"Type\" type=\"Button\" parent=\"Brush\" index=\"0\" unique_id=1704216512]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Select a brush\"\nmouse_default_cursor_shape = 2\ntheme_override_styles/normal = SubResource(\"1\")\ntheme_override_styles/pressed = SubResource(\"1\")\ntheme_override_styles/hover = SubResource(\"1\")\ntheme_override_styles/disabled = SubResource(\"2\")\ntheme_override_styles/focus = SubResource(\"2\")\n\n[node name=\"Texture\" type=\"TextureRect\" parent=\"Brush/Type\" index=\"0\" unique_id=1497597906]\nlayout_mode = 0\noffset_right = 32.0\noffset_bottom = 32.0\nexpand_mode = 1\nstretch_mode = 5\n\n[node name=\"BrushSize\" parent=\"Brush\" index=\"1\" unique_id=1200951505 instance=ExtResource(\"1\")]\nlayout_mode = 2\nmin_value = 1.0\nmax_value = 25.0\nvalue = 1.0\nallow_greater = true\nprefix = \"Size:\"\nsuffix = \"px\"\nallow_global_input_events = true\nglobal_increment_action = \"brush_size_increment\"\nglobal_decrement_action = \"brush_size_decrement\"\n\n[node name=\"TransformButtonsContainer\" type=\"HFlowContainer\" parent=\".\" index=\"3\" unique_id=811103715]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"RotateLeftButton\" type=\"Button\" parent=\"TransformButtonsContainer\" index=\"0\" unique_id=1906109048 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Rotate tile left (counterclockwise)\"\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_vtp7k\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TransformButtonsContainer/RotateLeftButton\" index=\"0\" unique_id=951838921]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"4_c1cak\")\nstretch_mode = 3\n\n[node name=\"RotateRightButton\" type=\"Button\" parent=\"TransformButtonsContainer\" index=\"1\" unique_id=843772651 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Rotate tile right (clockwise)\"\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_lc5ui\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TransformButtonsContainer/RotateRightButton\" index=\"0\" unique_id=1524044749]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"4_c1cak\")\nstretch_mode = 3\nflip_h = true\n\n[node name=\"FlipHorizontalButton\" type=\"Button\" parent=\"TransformButtonsContainer\" index=\"2\" unique_id=1045934498 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Flip tile horizontally\"\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_mr3k5\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TransformButtonsContainer/FlipHorizontalButton\" index=\"0\" unique_id=324033996]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"5_4qg2a\")\nstretch_mode = 3\n\n[node name=\"FlipVerticalButton\" type=\"Button\" parent=\"TransformButtonsContainer\" index=\"3\" unique_id=572356882 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Flip tile vertically\"\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_bx5hb\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TransformButtonsContainer/FlipVerticalButton\" index=\"0\" unique_id=1413896938]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"6_p5353\")\nstretch_mode = 3\n\n[node name=\"DensityValueSlider\" type=\"TextureProgressBar\" parent=\".\" index=\"4\" unique_id=1434866758]\nvisible = false\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nvalue = 100.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5_kdxku\")\nprefix = \"Density:\"\nsuffix = \"%\"\n\n[node name=\"ColorInterpolation\" parent=\".\" index=\"5\" unique_id=1234982812 instance=ExtResource(\"1\")]\nvisible = false\nlayout_mode = 2\ntooltip_text = \"0: Color from the brush itself, 100: the currently selected color\"\nprefix = \"Brush color from:\"\n\n[connection signal=\"pressed\" from=\"Brush/Type\" to=\".\" method=\"_on_BrushType_pressed\"]\n[connection signal=\"value_changed\" from=\"Brush/BrushSize\" to=\".\" method=\"_on_BrushSize_value_changed\"]\n[connection signal=\"pressed\" from=\"TransformButtonsContainer/RotateLeftButton\" to=\".\" method=\"_on_rotate_pressed\" binds= [false]]\n[connection signal=\"pressed\" from=\"TransformButtonsContainer/RotateRightButton\" to=\".\" method=\"_on_rotate_pressed\" binds= [true]]\n[connection signal=\"pressed\" from=\"TransformButtonsContainer/FlipHorizontalButton\" to=\".\" method=\"_on_flip_horizontal_button_pressed\"]\n[connection signal=\"pressed\" from=\"TransformButtonsContainer/FlipVerticalButton\" to=\".\" method=\"_on_flip_vertical_button_pressed\"]\n[connection signal=\"value_changed\" from=\"DensityValueSlider\" to=\".\" method=\"_on_density_value_slider_value_changed\"]\n[connection signal=\"value_changed\" from=\"ColorInterpolation\" to=\".\" method=\"_on_InterpolateFactor_value_changed\"]\n"
  },
  {
    "path": "src/Tools/BaseSelectionTool.gd",
    "content": "class_name BaseSelectionTool\nextends BaseTool\n\nenum Mode { DEFAULT, ADD, SUBTRACT, INTERSECT }\n\nvar undo_data: Dictionary\nvar _move := false\nvar _start_pos := Vector2i.ZERO\nvar _offset := Vector2i.ZERO\n## For tools such as the Polygon selection tool where you have to\n## click multiple times to create a selection\nvar _ongoing_selection := false\n\nvar _mode_selected := 0\nvar _add := false  ## Shift + Mouse Click\nvar _subtract := false  ## Ctrl + Mouse Click\nvar _intersect := false  ## Shift + Ctrl + Mouse Click\n\n## Used to check if the state of content transformation has been changed\n## while draw_move() is being called. For example, pressing Enter while still moving content\nvar _transformation_status_changed := false\nvar _skip_slider_logic := false\n\n@onready var selection_node := Global.canvas.selection\n@onready var transformation_handles := selection_node.transformation_handles\n@onready var algorithm_option_button := $Algorithm as OptionButton\n@onready var position_sliders := $Position as ValueSliderV2\n@onready var size_sliders := $Size as ValueSliderV2\n@onready var rotation_slider := $Rotation as ValueSlider\n@onready var shear_slider := $Shear as ValueSlider\n\n\nfunc _ready() -> void:\n\tsuper()\n\talgorithm_option_button.add_item(\"Nearest neighbor\")\n\talgorithm_option_button.add_item(\"cleanEdge\", DrawingAlgos.RotationAlgorithm.CLEANEDGE)\n\talgorithm_option_button.add_item(\"OmniScale\", DrawingAlgos.RotationAlgorithm.OMNISCALE)\n\talgorithm_option_button.select(0)\n\tset_confirm_buttons_visibility()\n\tset_spinbox_values()\n\trefresh_options()\n\tselection_node.transformation_confirmed.connect(func(): _transformation_status_changed = true)\n\tselection_node.transformation_canceled.connect(func(): _transformation_status_changed = true)\n\ttransformation_handles.preview_transform_changed.connect(set_confirm_buttons_visibility)\n\n\nfunc set_confirm_buttons_visibility() -> void:\n\tawait get_tree().process_frame\n\tset_spinbox_values()\n\tget_tree().set_group(\n\t\t&\"ShowOnActiveTransformation\", \"visible\", transformation_handles.is_transforming_content()\n\t)\n\n\n## Ensure all items are added when we are selecting an option.\nfunc refresh_options() -> void:\n\t$Modes.clear()\n\t$Modes.add_item(\"Replace selection\")\n\t$Modes.add_item(\"Add to selection\")\n\t$Modes.add_item(\"Subtract from selection\")\n\t$Modes.add_item(\"Intersection of selections\")\n\t$Modes.select(_mode_selected)\n\n\nfunc get_config() -> Dictionary:\n\tvar config := super.get_config()\n\tconfig[\"mode_selected\"] = _mode_selected\n\treturn config\n\n\nfunc set_config(config: Dictionary) -> void:\n\t_mode_selected = config.get(\"mode_selected\", 0)\n\n\nfunc update_config() -> void:\n\trefresh_options()\n\n\nfunc set_spinbox_values() -> void:\n\t_skip_slider_logic = true\n\tvar project := Global.current_project\n\tvar select_rect := project.selection_map.get_selection_rect(project)\n\tvar has_selection := select_rect.has_area()\n\tif not has_selection:\n\t\tsize_sliders.press_ratio_button(false)\n\tposition_sliders.editable = has_selection\n\tsize_sliders.editable = has_selection\n\tif transformation_handles.is_transforming_content():\n\t\tselect_rect = selection_node.preview_selection_map.get_selection_rect(project)\n\t\trotation_slider.value = rad_to_deg(transformation_handles.preview_transform.get_rotation())\n\t\tshear_slider.value = rad_to_deg(transformation_handles.preview_transform.get_skew())\n\tposition_sliders.value = select_rect.position\n\tsize_sliders.value = select_rect.size\n\t_skip_slider_logic = false\n\n\nfunc draw_start(mouse_pos: Vector2i) -> void:\n\tvar pos: Vector2i = snap_position(mouse_pos)\n\tsuper(pos)\n\t_transformation_status_changed = false\n\tif transformation_handles.arrow_key_move:\n\t\treturn\n\tvar project := Global.current_project\n\t_intersect = Input.is_action_pressed(\"selection_intersect\", true)\n\t_add = Input.is_action_pressed(\"selection_add\", true)\n\t_subtract = Input.is_action_pressed(\"selection_subtract\", true)\n\t_start_pos = pos\n\t_offset = pos\n\n\tvar quick_copy := Input.is_action_pressed(\"transform_copy_selection_content\", true)\n\t# we check if the un-snapped point was hovering a selection\n\tif (\n\t\tselection_node.preview_selection_map.is_pixel_selected(mouse_pos)\n\t\tand (!_add and !_subtract and !_intersect or quick_copy)\n\t\tand !_ongoing_selection\n\t):\n\t\tif not project.layers[project.current_layer].can_layer_get_drawn():\n\t\t\treturn\n\t\t# Move current selection\n\t\t_move = true\n\t\tif quick_copy:  # Move selection without cutting it from the original position (quick copy)\n\t\t\tif transformation_handles.is_transforming_content():\n\t\t\t\tselection_node.transform_content_confirm()\n\t\t\ttransformation_handles.begin_transform(null, project, true)\n\t\t\tvar select_rect := project.selection_map.get_selection_rect(project)\n\t\t\tfor cel in _get_selected_draw_unlocked_cels():\n\t\t\t\tvar image := cel.get_image()\n\t\t\t\timage.blit_rect_mask(\n\t\t\t\t\tcel.transformed_content,\n\t\t\t\t\tcel.transformed_content,\n\t\t\t\t\tRect2i(Vector2i.ZERO, project.selection_map.get_size()),\n\t\t\t\t\tselect_rect.position\n\t\t\t\t)\n\t\t\tGlobal.canvas.queue_redraw()\n\n\t\telse:\n\t\t\ttransformation_handles.begin_transform()\n\n\telse:  # No moving\n\t\tselection_node.transform_content_confirm()\n\tundo_data = selection_node.get_undo_data(false)\n\n\nfunc draw_move(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tsuper(pos)\n\tif transformation_handles.arrow_key_move:\n\t\treturn\n\tif _transformation_status_changed:\n\t\treturn\n\tif not _move:\n\t\treturn\n\tvar project := Global.current_project\n\tvar select_rect := project.selection_map.get_selection_rect(project)\n\tif Tools.is_placing_tiles():\n\t\tvar cel := project.get_current_cel() as CelTileMap\n\t\tvar grid_size := cel.get_tile_size()\n\t\tvar offset := cel.offset % grid_size\n\t\t_offset = Tools.snap_to_rectangular_grid_boundary(_offset, grid_size, offset)\n\t\tpos = Tools.snap_to_rectangular_grid_boundary(pos, grid_size, offset)\n\tif Input.is_action_pressed(\"transform_snap_axis\"):  # Snap to axis\n\t\tvar angle := Vector2(pos).angle_to_point(_start_pos)\n\t\tif absf(angle) <= PI / 4 or absf(angle) >= 3 * PI / 4:\n\t\t\tpos.y = _start_pos.y\n\t\telse:\n\t\t\tpos.x = _start_pos.x\n\tif Input.is_action_pressed(\"transform_snap_grid\"):\n\t\t_offset = _offset.snapped(Global.grids[0].grid_size)\n\t\tvar prev_pos: Vector2i = select_rect.position\n\t\tselection_node.marching_ants_outline.offset += Vector2(select_rect.position - prev_pos)\n\t\tpos = pos.snapped(Global.grids[0].grid_size)\n\t\tvar grid_offset := Global.grids[0].grid_offset\n\t\tgrid_offset = Vector2i(\n\t\t\tfmod(grid_offset.x, Global.grids[0].grid_size.x),\n\t\t\tfmod(grid_offset.y, Global.grids[0].grid_size.y)\n\t\t)\n\t\tpos += grid_offset\n\n\ttransformation_handles.move_transform(pos - _offset)\n\t_offset = pos\n\t_set_cursor_text(select_rect)\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tsuper(pos)\n\tif transformation_handles.arrow_key_move:\n\t\treturn\n\tif not _move:\n\t\tapply_selection(pos)\n\n\t_move = false\n\tcursor_text = \"\"\n\n\nfunc apply_selection(_position: Vector2i) -> void:\n\t# if a shortcut is activated then that will be obeyed instead\n\tmatch _mode_selected:\n\t\tMode.ADD:\n\t\t\tif !_subtract && !_intersect:\n\t\t\t\t_add = true\n\t\tMode.SUBTRACT:\n\t\t\tif !_add && !_intersect:\n\t\t\t\t_subtract = true\n\t\tMode.INTERSECT:\n\t\t\tif !_add && !_subtract:\n\t\t\t\t_intersect = true\n\n\nfunc select_tilemap_cell(\n\tcel: CelTileMap, cell_position: Vector2i, selection: SelectionMap, select: bool\n) -> void:\n\tvar rect := Rect2i(cell_position + cel.offset, cel.get_tile_size())\n\tselection.select_rect(rect, select)\n\n\nfunc _get_selected_draw_unlocked_cels() -> Array[BaseCel]:\n\tvar cels: Array[BaseCel]\n\tvar project := Global.current_project\n\tfor cel_index in project.selected_cels:\n\t\tvar cel: BaseCel = project.frames[cel_index[0]].cels[cel_index[1]]\n\t\tif not cel is PixelCel:\n\t\t\tcontinue\n\t\tif not project.layers[cel_index[1]].can_layer_get_drawn():\n\t\t\tcontinue\n\t\tcels.append(cel)\n\treturn cels\n\n\nfunc _on_confirm_button_pressed() -> void:\n\tselection_node.transform_content_confirm()\n\n\nfunc _on_cancel_button_pressed() -> void:\n\tselection_node.transform_content_cancel()\n\n\nfunc _on_modes_item_selected(index: int) -> void:\n\t_mode_selected = index\n\tsave_config()\n\n\nfunc _on_algorithm_item_selected(index: int) -> void:\n\tvar id := algorithm_option_button.get_item_id(index)\n\ttransformation_handles.transformation_algorithm = id\n\n\nfunc _set_cursor_text(rect: Rect2i) -> void:\n\tcursor_text = \"%s, %s\" % [rect.position.x, rect.position.y]\n\tcursor_text += \" -> %s, %s\" % [rect.end.x - 1, rect.end.y - 1]\n\tcursor_text += \" (%s, %s)\" % [rect.size.x, rect.size.y]\n\n\nfunc _on_position_value_changed(value: Vector2) -> void:\n\tif _skip_slider_logic:\n\t\treturn\n\tif !Global.current_project.has_selection:\n\t\treturn\n\tif not transformation_handles.is_transforming_content():\n\t\ttransformation_handles.begin_transform()\n\ttransformation_handles.move_transform(value - transformation_handles.preview_transform.origin)\n\n\nfunc _on_size_value_changed(value: Vector2i) -> void:\n\tif _skip_slider_logic:\n\t\treturn\n\tif !Global.current_project.has_selection:\n\t\treturn\n\tif not transformation_handles.is_transforming_content():\n\t\ttransformation_handles.begin_transform()\n\tvar image_size := selection_node.preview_selection_map.get_used_rect().size\n\tvar delta := value - image_size\n\ttransformation_handles.resize_transform(delta)\n\n\nfunc _on_rotation_value_changed(value: float) -> void:\n\tif _skip_slider_logic:\n\t\treturn\n\tif !Global.current_project.has_selection:\n\t\treturn\n\tif not transformation_handles.is_transforming_content():\n\t\ttransformation_handles.begin_transform()\n\tvar angle := deg_to_rad(value)\n\ttransformation_handles.rotate_transform(angle)\n\n\nfunc _on_shear_value_changed(value: float) -> void:\n\tif _skip_slider_logic:\n\t\treturn\n\tif !Global.current_project.has_selection:\n\t\treturn\n\tif not transformation_handles.is_transforming_content():\n\t\ttransformation_handles.begin_transform()\n\tvar angle := deg_to_rad(value)\n\ttransformation_handles.shear_transform(angle)\n"
  },
  {
    "path": "src/Tools/BaseSelectionTool.gd.uid",
    "content": "uid://coj8ex4hmag1m\n"
  },
  {
    "path": "src/Tools/BaseSelectionTool.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bd62qfjn380wf\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://ctfgfelg0sho8\" path=\"res://src/Tools/BaseTool.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://coj8ex4hmag1m\" path=\"res://src/Tools/BaseSelectionTool.gd\" id=\"2\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://d267xalp3p7ru\" path=\"res://assets/graphics/misc/check_plain.png\" id=\"3_mtv71\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bbnqcxa20a5a5\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\" id=\"4\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bnc78807k1xjv\" path=\"res://assets/graphics/misc/close.png\" id=\"4_ad04n\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"6_2bdjf\"]\n\n[node name=\"ToolOptions\" unique_id=1688504516 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n\n[node name=\"ConfirmButtons\" type=\"HBoxContainer\" parent=\".\" index=\"2\" unique_id=1545057007 groups=[\"ShowOnActiveTransformation\"]]\nlayout_mode = 2\n\n[node name=\"ConfirmButton\" type=\"Button\" parent=\"ConfirmButtons\" index=\"0\" unique_id=805588168]\ncustom_minimum_size = Vector2(0, 26)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ConfirmButtons/ConfirmButton\" index=\"0\" unique_id=612616159 groups=[\"UIButtons\"]]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"3_mtv71\")\nstretch_mode = 3\n\n[node name=\"CancelButton\" type=\"Button\" parent=\"ConfirmButtons\" index=\"1\" unique_id=1890483355]\ncustom_minimum_size = Vector2(0, 26)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ConfirmButtons/CancelButton\" index=\"0\" unique_id=1095591270 groups=[\"UIButtons\"]]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"4_ad04n\")\nstretch_mode = 3\n\n[node name=\"ModeLabel\" type=\"Label\" parent=\".\" index=\"3\" unique_id=598109485]\nlayout_mode = 2\ntext = \"Mode:\"\n\n[node name=\"Modes\" type=\"OptionButton\" parent=\".\" index=\"4\" unique_id=1993262786]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\n\n[node name=\"Algorithm\" type=\"OptionButton\" parent=\".\" index=\"5\" unique_id=915163476]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\n\n[node name=\"PositionLabel\" type=\"Label\" parent=\".\" index=\"6\" unique_id=1872947077]\nlayout_mode = 2\ntext = \"Position:\"\n\n[node name=\"Position\" parent=\".\" index=\"7\" unique_id=278681099 instance=ExtResource(\"4\")]\nlayout_mode = 2\nallow_greater = true\nallow_lesser = true\n\n[node name=\"SizeLabel\" type=\"Label\" parent=\".\" index=\"8\" unique_id=1456635026]\nlayout_mode = 2\ntext = \"Size:\"\n\n[node name=\"Size\" parent=\".\" index=\"9\" unique_id=223058514 instance=ExtResource(\"4\")]\nlayout_mode = 2\nvalue = Vector2(1, 1)\nmin_value = Vector2(1, 1)\nallow_greater = true\nshow_ratio = true\nprefix_x = \"Width:\"\nprefix_y = \"Height:\"\n\n[node name=\"RotationLabel\" type=\"Label\" parent=\".\" index=\"10\" unique_id=209242353 groups=[\"ShowOnActiveTransformation\"]]\nlayout_mode = 2\ntext = \"Rotation:\"\n\n[node name=\"Rotation\" type=\"TextureProgressBar\" parent=\".\" index=\"11\" unique_id=260307741 groups=[\"ShowOnActiveTransformation\"]]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = -180.0\nmax_value = 180.0\nstep = 0.01\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"6_2bdjf\")\nsuffix = \"°\"\nmetadata/_custom_type_script = \"uid://tfdhqto6j5j0\"\n\n[node name=\"Shear\" type=\"TextureProgressBar\" parent=\".\" index=\"12\" unique_id=1423914130 groups=[\"ShowOnActiveTransformation\"]]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = -80.0\nmax_value = 80.0\nstep = 0.01\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"6_2bdjf\")\nsuffix = \"°\"\nmetadata/_custom_type_script = \"uid://tfdhqto6j5j0\"\n\n[connection signal=\"pressed\" from=\"ConfirmButtons/ConfirmButton\" to=\".\" method=\"_on_confirm_button_pressed\"]\n[connection signal=\"pressed\" from=\"ConfirmButtons/CancelButton\" to=\".\" method=\"_on_cancel_button_pressed\"]\n[connection signal=\"item_selected\" from=\"Modes\" to=\".\" method=\"_on_modes_item_selected\"]\n[connection signal=\"item_selected\" from=\"Algorithm\" to=\".\" method=\"_on_algorithm_item_selected\"]\n[connection signal=\"value_changed\" from=\"Position\" to=\".\" method=\"_on_position_value_changed\"]\n[connection signal=\"value_changed\" from=\"Size\" to=\".\" method=\"_on_size_value_changed\"]\n[connection signal=\"value_changed\" from=\"Rotation\" to=\".\" method=\"_on_rotation_value_changed\"]\n[connection signal=\"value_changed\" from=\"Shear\" to=\".\" method=\"_on_shear_value_changed\"]\n"
  },
  {
    "path": "src/Tools/BaseShapeDrawer.gd",
    "content": "extends BaseDrawTool\n\nvar _start := Vector2i.ZERO\nvar _offset := Vector2i.ZERO\nvar _dest := Vector2i.ZERO\nvar _fill_inside := false\nvar _drawing := false\nvar _displace_origin := false\nvar _thickness := 1\n\n\nfunc _init() -> void:\n\t_drawer.color_op = Drawer.ColorOp.new()\n\tupdate_indicator()\n\n\nfunc _ready() -> void:\n\tsuper()\n\tif tool_slot.button == MOUSE_BUTTON_RIGHT:\n\t\t$ThicknessSlider.allow_global_input_events = not Global.share_options_between_tools\n\t\tGlobal.share_options_between_tools_changed.connect(\n\t\t\tfunc(enabled): $ThicknessSlider.allow_global_input_events = not enabled\n\t\t)\n\n\nfunc update_brush() -> void:\n\tpass\n\n\nfunc _on_Thickness_value_changed(value: int) -> void:\n\t_thickness = value\n\n\tupdate_indicator()\n\tupdate_config()\n\tsave_config()\n\n\nfunc update_indicator() -> void:\n\tvar indicator := BitMap.new()\n\tvar rect := _get_result_rect(_start, _dest)\n\tvar points := _get_points(rect.size)\n\tvar t_offset := _thickness - 1\n\tvar t_offsetv := Vector2i(t_offset, t_offset)\n\tindicator.create(rect.size + t_offsetv)\n\tfor point in points:\n\t\tindicator.set_bitv(point, 1)\n\n\t_indicator = indicator\n\t_polylines = _create_polylines(_indicator)\n\n\nfunc _on_FillCheckbox_toggled(button_pressed: bool) -> void:\n\t_fill_inside = button_pressed\n\tupdate_config()\n\tsave_config()\n\n\nfunc get_config() -> Dictionary:\n\tvar config := super.get_config()\n\tconfig[\"fill_inside\"] = _fill_inside\n\tconfig[\"thickness\"] = _thickness\n\treturn config\n\n\nfunc set_config(config: Dictionary) -> void:\n\tsuper.set_config(config)\n\t_fill_inside = config.get(\"fill_inside\", _fill_inside)\n\t_thickness = config.get(\"thickness\", _thickness)\n\n\nfunc update_config() -> void:\n\tsuper.update_config()\n\t$FillCheckbox.button_pressed = _fill_inside\n\t$ThicknessSlider.value = _thickness\n\n\n## This tool has no brush, so just return the indicator as it is.\nfunc _create_brush_indicator() -> BitMap:\n\treturn _indicator\n\n\nfunc _get_shape_points(_size: Vector2i) -> Array[Vector2i]:\n\treturn []\n\n\nfunc _get_shape_points_filled(_size: Vector2i) -> Array[Vector2i]:\n\treturn []\n\n\nfunc _input(event: InputEvent) -> void:\n\tif _drawing:\n\t\tif event.is_action_pressed(\"shape_displace\"):\n\t\t\t_displace_origin = true\n\t\telif event.is_action_released(\"shape_displace\"):\n\t\t\t_displace_origin = false\n\telse:\n\t\t# If options are being shared, no need to change the brush size on the right tool slots,\n\t\t# otherwise it will be changed twice on both left and right tools.\n\t\tif tool_slot.button == MOUSE_BUTTON_RIGHT and Global.share_options_between_tools:\n\t\t\treturn\n\t\tvar brush_size_value := _mm_action.get_action_distance_int(event)\n\t\t$ThicknessSlider.value += brush_size_value\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tsuper.draw_start(pos)\n\tif Input.is_action_pressed(&\"draw_color_picker\", true):\n\t\t_picking_color = true\n\t\t_pick_color(pos)\n\t\treturn\n\t_picking_color = false\n\n\tGlobal.canvas.selection.transform_content_confirm()\n\tupdate_mask()\n\n\tif Global.mirror_view:\n\t\t# mirroring position is ONLY required by \"Preview\"\n\t\tpos.x = Global.current_project.size.x - pos.x - 1\n\t_start = pos\n\t_offset = pos\n\t_dest = pos\n\t_drawing = true\n\n\nfunc draw_move(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tsuper.draw_move(pos)\n\tif _picking_color:  # Still return even if we released draw_color_picker (Alt)\n\t\tif Input.is_action_pressed(&\"draw_color_picker\", true):\n\t\t\t_pick_color(pos)\n\t\treturn\n\n\tif _drawing:\n\t\tif Global.mirror_view:\n\t\t\t# mirroring position is ONLY required by \"Preview\"\n\t\t\tpos.x = Global.current_project.size.x - pos.x - 1\n\t\tif _displace_origin:\n\t\t\t_start += pos - _offset\n\t\t_dest = pos\n\t\t_offset = pos\n\t\t_set_cursor_text(_get_result_rect(_start, pos))\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tif _picking_color:\n\t\tsuper.draw_end(pos)\n\t\treturn\n\n\tif _drawing:\n\t\tif Global.mirror_view:\n\t\t\t# now we revert back the coordinates from their mirror form so that shape can be drawn\n\t\t\t_start.x = (Global.current_project.size.x - 1) - _start.x\n\t\t\t_offset.x = (Global.current_project.size.x - 1) - _offset.x\n\t\t\t_dest.x = (Global.current_project.size.x - 1) - _dest.x\n\t\t\tif _thickness % 2 == 0:\n\t\t\t\t_start.x += 1\n\t\t\t\t_offset.x += 1\n\t\t\t\t_dest.x += 1\n\t\t\t\tpos.x += 1\n\t\t_draw_shape(_start, pos)\n\t\t_reset_tool()\n\tsuper.draw_end(pos)\n\n\nfunc cancel_tool() -> void:\n\tsuper()\n\t_reset_tool()\n\n\nfunc _reset_tool() -> void:\n\t_start = Vector2i.ZERO\n\t_dest = Vector2i.ZERO\n\t_drawing = false\n\tGlobal.canvas.previews_sprite.texture = null\n\t_displace_origin = false\n\tcursor_text = \"\"\n\n\nfunc draw_preview() -> void:\n\tvar canvas := Global.canvas.previews_sprite\n\tif _drawing:\n\t\tvar rect := _get_result_rect(_start, _dest)\n\t\tvar points := _get_points(rect.size)\n\t\tvar image := Image.create(\n\t\t\tGlobal.current_project.size.x, Global.current_project.size.y, false, Image.FORMAT_LA8\n\t\t)\n\t\tvar thickness_vector := (\n\t\t\trect.position - Vector2i((Vector2(0.5, 0.5) * (_thickness - 1)).ceil())\n\t\t)\n\t\tfor i in points.size():\n\t\t\tpoints[i] += thickness_vector\n\t\t\tif Rect2i(Vector2i.ZERO, image.get_size()).has_point(points[i]):\n\t\t\t\timage.set_pixelv(points[i], Color.WHITE)\n\t\t# Handle mirroring\n\t\tfor point in mirror_array(points):\n\t\t\tif Rect2i(Vector2i.ZERO, image.get_size()).has_point(point):\n\t\t\t\timage.set_pixelv(point, Color.WHITE)\n\t\tvar texture := ImageTexture.create_from_image(image)\n\t\tcanvas.texture = texture\n\n\nfunc _draw_shape(origin: Vector2i, dest: Vector2i) -> void:\n\tvar rect := _get_result_rect(origin, dest)\n\tvar points := _get_points(rect.size)\n\tprepare_undo()\n\tvar images := _get_selected_draw_images()\n\tvar thickness_vector := rect.position - Vector2i((Vector2(0.5, 0.5) * (_thickness - 1)).ceil())\n\tfor point in points:\n\t\t# Reset drawer every time because pixel perfect sometimes breaks the tool\n\t\t_drawer.reset()\n\t\t# Draw each point offsetted based on the shape's thickness\n\t\tvar draw_pos := point + thickness_vector\n\t\tif Tools.is_placing_tiles():\n\t\t\tdraw_tile(draw_pos)\n\t\telse:\n\t\t\tif Global.current_project.can_pixel_get_drawn(draw_pos):\n\t\t\t\tfor image in images:\n\t\t\t\t\t_drawer.set_pixel(image, draw_pos, tool_slot.color)\n\n\tcommit_undo(\"Draw Shape\")\n\n\n## Given an origin point and destination point, returns a rect representing\n## where the shape will be drawn and what is its size\nfunc _get_result_rect(origin: Vector2i, dest: Vector2i) -> Rect2i:\n\tvar rect := Rect2i()\n\n\t# Center the rect on the mouse\n\tif Input.is_action_pressed(\"shape_center\"):\n\t\tvar new_size := dest - origin\n\t\t# Make rect 1:1 while centering it on the mouse\n\t\tif Input.is_action_pressed(\"shape_perfect\"):\n\t\t\tvar square_size := maxi(absi(new_size.x), absi(new_size.y))\n\t\t\tnew_size = Vector2i(square_size, square_size)\n\n\t\torigin -= new_size\n\t\tdest = origin + 2 * new_size\n\n\t# Make rect 1:1 while not trying to center it\n\tif Input.is_action_pressed(\"shape_perfect\"):\n\t\tvar square_size := mini(absi(origin.x - dest.x), absi(origin.y - dest.y))\n\t\trect.position.x = origin.x if origin.x < dest.x else origin.x - square_size\n\t\trect.position.y = origin.y if origin.y < dest.y else origin.y - square_size\n\t\trect.size = Vector2i(square_size, square_size)\n\t# Get the rect without any modifications\n\telse:\n\t\trect.position = Vector2i(mini(origin.x, dest.x), mini(origin.y, dest.y))\n\t\trect.size = (origin - dest).abs()\n\n\trect.size += Vector2i.ONE\n\n\treturn rect\n\n\nfunc _get_points(shape_size: Vector2i) -> Array[Vector2i]:\n\treturn _get_shape_points_filled(shape_size) if _fill_inside else _get_shape_points(shape_size)\n\n\nfunc _set_cursor_text(rect: Rect2i) -> void:\n\tcursor_text = \"%s, %s\" % [rect.position.x, rect.position.y]\n\tcursor_text += \" -> %s, %s\" % [rect.end.x - 1, rect.end.y - 1]\n\tcursor_text += \" (%s, %s)\" % [rect.size.x, rect.size.y]\n"
  },
  {
    "path": "src/Tools/BaseShapeDrawer.gd.uid",
    "content": "uid://bjy2qqur055ui\n"
  },
  {
    "path": "src/Tools/BaseShapeDrawer.tscn",
    "content": "[gd_scene format=3 uid=\"uid://n40lhf8hm7o1\"]\n\n[ext_resource type=\"Script\" uid=\"uid://bjy2qqur055ui\" path=\"res://src/Tools/BaseShapeDrawer.gd\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://ubyatap3sylf\" path=\"res://src/Tools/BaseDraw.tscn\" id=\"2\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"3\"]\n\n[node name=\"ToolOptions\" unique_id=2040261854 instance=ExtResource(\"2\")]\nscript = ExtResource(\"1\")\n\n[node name=\"ThicknessSlider\" parent=\".\" index=\"2\" unique_id=276780472 instance=ExtResource(\"3\")]\nlayout_mode = 2\nmin_value = 1.0\nvalue = 1.0\nprefix = \"Size:\"\nsuffix = \"px\"\nallow_global_input_events = true\nglobal_increment_action = \"brush_size_increment\"\nglobal_decrement_action = \"brush_size_decrement\"\n\n[node name=\"FillCheckbox\" type=\"CheckBox\" parent=\".\" index=\"3\" unique_id=358164940]\nlayout_mode = 2\ntooltip_text = \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmouse_default_cursor_shape = 2\ntext = \"Fill Shape\"\n\n[node name=\"Brush\" parent=\".\" index=\"4\" unique_id=634582773]\nvisible = false\n\n[connection signal=\"value_changed\" from=\"ThicknessSlider\" to=\".\" method=\"_on_Thickness_value_changed\"]\n[connection signal=\"toggled\" from=\"FillCheckbox\" to=\".\" method=\"_on_FillCheckbox_toggled\"]\n"
  },
  {
    "path": "src/Tools/BaseTool.gd",
    "content": "class_name BaseTool\nextends VBoxContainer\n\nvar is_moving := false\nvar is_syncing := false\nvar kname: String\nvar tool_slot: Tools.Slot = null\nvar cursor_text := \"\"\nvar _cursor := Vector2i(Vector2.INF)\nvar _stabilizer_center := Vector2.ZERO\n\nvar _draw_cache: Array[Vector2i] = []  ## For storing already drawn pixels\n@warning_ignore(\"unused_private_class_variable\")\nvar _for_frame := 0  ## Cache for which frame\n\n# Only use _spacing_mode and _spacing variables (the others are set automatically)\n# The _spacing_mode and _spacing values are to be CHANGED only in the tool scripts (e.g Pencil.gd)\nvar _spacing_mode := false  ## Enables spacing (continuous gaps between two strokes)\nvar _spacing := Vector2i.ZERO  ## Spacing between two strokes\nvar _stroke_dimensions := Vector2i.ONE  ## 2D vector containing _brush_size from Draw.gd\nvar _spacing_offset := Vector2i.ZERO  ## The initial error between position and position.snapped()\n@onready var color_rect := $ColorRect as ColorRect\n\n\nfunc _ready() -> void:\n\tkname = name.replace(\" \", \"_\").to_lower()\n\tif tool_slot.name == \"Left tool\":\n\t\tcolor_rect.color = Global.left_tool_color\n\telse:\n\t\tcolor_rect.color = Global.right_tool_color\n\t$Label.text = Tools.tools[name].display_name\n\tload_config()\n\n\nfunc save_config() -> void:\n\tvar config := get_config()\n\tGlobal.config_cache.set_value(tool_slot.kname, kname, config)\n\tif not is_syncing:  # If the tool isn't busy syncing with another tool.\n\t\tTools.config_changed.emit(tool_slot.button, config)\n\n\nfunc load_config() -> void:\n\tvar value = Global.config_cache.get_value(tool_slot.kname, kname, {})\n\tset_config(value)\n\tupdate_config()\n\n\nfunc get_config() -> Dictionary:\n\treturn {}\n\n\nfunc set_config(_config: Dictionary) -> void:\n\tpass\n\n\nfunc update_config() -> void:\n\tpass\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\t_stabilizer_center = pos\n\t_draw_cache = []\n\tis_moving = true\n\tGlobal.current_project.can_undo = false\n\t_spacing_offset = _get_spacing_offset(pos)\n\n\nfunc draw_move(pos: Vector2i) -> void:\n\t# This can happen if the user switches between tools with a shortcut\n\t# while using another tool\n\tif !is_moving:\n\t\tdraw_start(pos)\n\n\nfunc draw_end(_pos: Vector2i) -> void:\n\tis_moving = false\n\t_draw_cache = []\n\tvar project := Global.current_project\n\tproject.can_undo = true\n\n\nfunc cancel_tool() -> void:\n\tis_moving = false\n\t_draw_cache = []\n\tGlobal.current_project.can_undo = true\n\n\nfunc get_cell_position(pos: Vector2i) -> Vector2i:\n\tvar tile_pos := Vector2i.ZERO\n\tif Global.current_project.get_current_cel() is not CelTileMap:\n\t\treturn tile_pos\n\tvar cel := Global.current_project.get_current_cel() as CelTileMap\n\ttile_pos = cel.get_cell_position(pos)\n\treturn tile_pos\n\n\nfunc cursor_move(pos: Vector2i) -> void:\n\t_cursor = pos\n\tif _spacing_mode and is_moving:\n\t\t_cursor = get_spacing_position(pos)\n\n\nfunc get_spacing_position(pos: Vector2i) -> Vector2i:\n\t# spacing_factor is the distance the mouse needs to get snapped by in order\n\t# to keep a space \"_spacing\" between two strokes of dimensions \"_stroke_dimensions\"\n\tvar spacing_factor := _stroke_dimensions + _spacing\n\tvar snap_pos := Vector2(pos.snapped(spacing_factor) + _spacing_offset)\n\n\t# keeping snap_pos as is would have been fine but this adds extra accuracy as to\n\t# which snap point (from the list below) is closest to mouse and occupy THAT point\n\tvar t_l := snap_pos + Vector2(-spacing_factor.x, -spacing_factor.y)\n\tvar t_c := snap_pos + Vector2(0, -spacing_factor.y)  # t_c is for \"top centre\" and so on...\n\tvar t_r := snap_pos + Vector2(spacing_factor.x, -spacing_factor.y)\n\tvar m_l := snap_pos + Vector2(-spacing_factor.x, 0)\n\tvar m_c := snap_pos\n\tvar m_r := snap_pos + Vector2(spacing_factor.x, 0)\n\tvar b_l := snap_pos + Vector2(-spacing_factor.x, spacing_factor.y)\n\tvar b_c := snap_pos + Vector2(0, spacing_factor.y)\n\tvar b_r := snap_pos + Vector2(spacing_factor.x, spacing_factor.y)\n\tvar vec_arr: PackedVector2Array = [t_l, t_c, t_r, m_l, m_c, m_r, b_l, b_c, b_r]\n\tfor vec in vec_arr:\n\t\tif vec.distance_to(pos) < snap_pos.distance_to(pos):\n\t\t\tsnap_pos = vec\n\n\treturn Vector2i(snap_pos)\n\n\nfunc _get_spacing_offset(pos: Vector2i) -> Vector2i:\n\tvar spacing_factor := _stroke_dimensions + _spacing  # spacing_factor is explained above\n\t# since we just started drawing, the \"position\" is our intended location so the error\n\t# (_spacing_offset) is measured by subtracting both quantities\n\treturn pos - pos.snapped(spacing_factor)\n\n\nfunc draw_indicator(left: bool) -> void:\n\tvar rect := Rect2(_cursor, Vector2.ONE)\n\tvar color := Global.left_tool_color if left else Global.right_tool_color\n\tGlobal.canvas.indicators.draw_rect(rect, color, false)\n\n\nfunc draw_preview() -> void:\n\tpass\n\n\nfunc snap_position(pos: Vector2) -> Vector2:\n\tvar snapping_distance := Global.snapping_distance / Global.camera.zoom.x\n\tif Global.snap_to_rectangular_grid_boundary:\n\t\tpos = Tools.snap_to_rectangular_grid_boundary(\n\t\t\tpos, Global.grids[0].grid_size, Global.grids[0].grid_offset, snapping_distance\n\t\t)\n\n\tif Global.snap_to_rectangular_grid_center:\n\t\tpos = Tools.snap_to_rectangular_grid_center(\n\t\t\tpos, Global.grids[0].grid_size, Global.grids[0].grid_offset, snapping_distance\n\t\t)\n\n\tvar snap_to := Vector2.INF\n\tif Global.snap_to_guides:\n\t\tfor guide in Global.current_project.guides:\n\t\t\tif guide is SymmetryGuide:\n\t\t\t\tcontinue\n\t\t\tvar s1: Vector2 = guide.points[0]\n\t\t\tvar s2: Vector2 = guide.points[1]\n\t\t\tvar snap := Tools.snap_to_guide(snap_to, pos, snapping_distance, s1, s2)\n\t\t\tif snap == Vector2.INF:\n\t\t\t\tcontinue\n\t\t\tsnap_to = snap\n\n\tif Global.snap_to_perspective_guides:\n\t\tfor point in Global.current_project.vanishing_points:\n\t\t\tif not (point.has(\"pos_x\") and point.has(\"pos_y\")):  # Sanity check\n\t\t\t\tcontinue\n\t\t\tfor i in point.lines.size():\n\t\t\t\tif point.lines[i].has(\"angle\") and point.lines[i].has(\"length\"):  # Sanity check\n\t\t\t\t\tvar angle := deg_to_rad(point.lines[i].angle)\n\t\t\t\t\tvar length: float = point.lines[i].length\n\t\t\t\t\tvar start := Vector2(point.pos_x, point.pos_y)\n\t\t\t\t\tvar s1 := start\n\t\t\t\t\tvar s2 := s1 + Vector2(length * cos(angle), length * sin(angle))\n\t\t\t\t\tvar snap := Tools.snap_to_guide(snap_to, pos, snapping_distance, s1, s2)\n\t\t\t\t\tif snap == Vector2.INF:\n\t\t\t\t\t\tcontinue\n\t\t\t\t\tsnap_to = snap\n\tif snap_to != Vector2.INF:\n\t\tpos = snap_to.floor()\n\n\treturn pos\n\n\n## Returns an array that mirrors each point of the [param array].\n## An optional [param callable] can be passed, which gets called for each type of symmetry.\nfunc mirror_array(array: Array[Vector2i], callable := func(_array): pass) -> Array[Vector2i]:\n\tvar new_array: Array[Vector2i] = []\n\tvar project := Global.current_project\n\tif Tools.horizontal_mirror and Tools.vertical_mirror:\n\t\tvar hv_array: Array[Vector2i] = []\n\t\tfor point in array:\n\t\t\tvar mirror_x := Tools.calculate_mirror_horizontal(point, project)\n\t\t\thv_array.append(Tools.calculate_mirror_vertical(mirror_x, project))\n\t\tif callable.is_valid():\n\t\t\tcallable.call(hv_array)\n\t\tnew_array += hv_array\n\tif Tools.horizontal_mirror:\n\t\tvar h_array: Array[Vector2i] = []\n\t\tfor point in array:\n\t\t\th_array.append(Tools.calculate_mirror_horizontal(point, project))\n\t\tif callable.is_valid():\n\t\t\tcallable.call(h_array)\n\t\tnew_array += h_array\n\tif Tools.vertical_mirror:\n\t\tvar v_array: Array[Vector2i] = []\n\t\tfor point in array:\n\t\t\tv_array.append(Tools.calculate_mirror_vertical(point, project))\n\t\tif callable.is_valid():\n\t\t\tcallable.call(v_array)\n\t\tnew_array += v_array\n\n\treturn new_array\n\n\nfunc _get_stabilized_position(normal_pos: Vector2) -> Vector2:\n\tif not Tools.stabilizer_enabled:\n\t\treturn normal_pos\n\tvar difference := normal_pos - _stabilizer_center\n\tvar distance := difference.length() / Tools.stabilizer_value\n\tvar angle := difference.angle()\n\tvar pos := _stabilizer_center + Vector2(distance, distance) * Vector2.from_angle(angle)\n\t_stabilizer_center = pos\n\treturn pos\n\n\nfunc _get_draw_rect() -> Rect2i:\n\tif Global.current_project.has_selection:\n\t\treturn Global.current_project.selection_map.get_used_rect()\n\telse:\n\t\treturn Rect2i(Vector2i.ZERO, Global.current_project.size)\n\n\nfunc _get_draw_image() -> ImageExtended:\n\treturn Global.current_project.get_current_cel().get_image()\n\n\nfunc _get_selected_draw_cels() -> Array[BaseCel]:\n\tvar cels: Array[BaseCel]\n\tvar project := Global.current_project\n\tfor cel_index in project.selected_cels:\n\t\tvar cel: BaseCel = project.frames[cel_index[0]].cels[cel_index[1]]\n\t\tif not cel is PixelCel:\n\t\t\tcontinue\n\t\tcels.append(cel)\n\treturn cels\n\n\nfunc _get_selected_draw_images() -> Array[ImageExtended]:\n\tvar images: Array[ImageExtended] = []\n\tvar project := Global.current_project\n\tfor cel_index in project.selected_cels:\n\t\tvar cel: BaseCel = project.frames[cel_index[0]].cels[cel_index[1]]\n\t\tif not cel is PixelCel:\n\t\t\tcontinue\n\t\tif project.layers[cel_index[1]].can_layer_get_drawn():\n\t\t\timages.append(cel.get_image())\n\treturn images\n\n\nfunc _pick_color(pos: Vector2i) -> void:\n\tvar project := Global.current_project\n\tpos = project.tiles.get_canon_position(pos)\n\n\tif pos.x < 0 or pos.y < 0:\n\t\treturn\n\tif Tools.is_placing_tiles():\n\t\tvar cel := Global.current_project.get_current_cel() as CelTileMap\n\t\tTools.selected_tile_index_changed.emit(cel.get_cell_index_at_coords(pos))\n\t\treturn\n\tvar image := Image.new()\n\timage.copy_from(_get_draw_image())\n\tif pos.x > image.get_width() - 1 or pos.y > image.get_height() - 1:\n\t\treturn\n\n\tvar color := Color(0, 0, 0, 0)\n\tvar palette_index = -1\n\tvar curr_frame: Frame = project.frames[project.current_frame]\n\tfor layer in project.layers.size():\n\t\tvar idx := (project.layers.size() - 1) - layer\n\t\tif project.layers[idx].is_visible_in_hierarchy():\n\t\t\tvar cel := curr_frame.cels[idx]\n\t\t\timage = cel.get_image()\n\t\t\tcolor = image.get_pixelv(pos)\n\t\t\t# If image is indexed then get index as well\n\t\t\tif cel is PixelCel:\n\t\t\t\tif cel.image.is_indexed:\n\t\t\t\t\tpalette_index = cel.image.indices_image.get_pixel(pos.x, pos.y).r8 - 1\n\t\t\tif not is_zero_approx(color.a) or palette_index > -1:\n\t\t\t\tbreak\n\tTools.assign_color(color, tool_slot.button, false, palette_index)\n\n\nfunc _flip_rect(rect: Rect2, rect_size: Vector2, horiz: bool, vert: bool) -> Rect2:\n\tvar result := rect\n\tif horiz:\n\t\tresult.position.x = rect_size.x - rect.end.x\n\t\tresult.end.x = rect_size.x - rect.position.x\n\tif vert:\n\t\tresult.position.y = rect_size.y - rect.end.y\n\t\tresult.end.y = rect_size.y - rect.position.y\n\treturn result.abs()\n\n\nfunc _create_polylines(bitmap: BitMap) -> Array:\n\tvar lines := []\n\tvar bitmap_size := bitmap.get_size()\n\tfor y in bitmap_size.y:\n\t\tfor x in bitmap_size.x:\n\t\t\tvar p := Vector2i(x, y)\n\t\t\tif not bitmap.get_bitv(p):\n\t\t\t\tcontinue\n\t\t\tif x <= 0 or not bitmap.get_bitv(p - Vector2i(1, 0)):\n\t\t\t\t_add_polylines_segment(lines, p, p + Vector2i(0, 1))\n\t\t\tif y <= 0 or not bitmap.get_bitv(p - Vector2i(0, 1)):\n\t\t\t\t_add_polylines_segment(lines, p, p + Vector2i(1, 0))\n\t\t\tif x + 1 >= bitmap_size.x or not bitmap.get_bitv(p + Vector2i(1, 0)):\n\t\t\t\t_add_polylines_segment(lines, p + Vector2i(1, 0), p + Vector2i(1, 1))\n\t\t\tif y + 1 >= bitmap_size.y or not bitmap.get_bitv(p + Vector2i(0, 1)):\n\t\t\t\t_add_polylines_segment(lines, p + Vector2i(0, 1), p + Vector2i(1, 1))\n\treturn lines\n\n\nfunc _fill_bitmap_with_points(points: Array[Vector2i], bitmap_size: Vector2i) -> BitMap:\n\tvar bitmap := BitMap.new()\n\tbitmap.create(bitmap_size)\n\n\tfor point in points:\n\t\tif point.x < 0 or point.y < 0 or point.x >= bitmap_size.x or point.y >= bitmap_size.y:\n\t\t\tcontinue\n\t\tbitmap.set_bitv(point, 1)\n\n\treturn bitmap\n\n\nfunc _add_polylines_segment(lines: Array, start: Vector2i, end: Vector2i) -> void:\n\tfor line in lines:\n\t\tif line[0] == start:\n\t\t\tline.insert(0, end)\n\t\t\treturn\n\t\tif line[0] == end:\n\t\t\tline.insert(0, start)\n\t\t\treturn\n\t\tif line[line.size() - 1] == start:\n\t\t\tline.append(end)\n\t\t\treturn\n\t\tif line[line.size() - 1] == end:\n\t\t\tline.append(start)\n\t\t\treturn\n\tlines.append([start, end])\n\n\nfunc _exit_tree() -> void:\n\tif is_moving:\n\t\tdraw_end(Global.canvas.current_pixel.floor())\n\tGlobal.canvas.previews_sprite.texture = null\n\tGlobal.canvas.indicators.queue_redraw()\n"
  },
  {
    "path": "src/Tools/BaseTool.gd.uid",
    "content": "uid://cvovhck0o66tc\n"
  },
  {
    "path": "src/Tools/BaseTool.tscn",
    "content": "[gd_scene format=3 uid=\"uid://ctfgfelg0sho8\"]\n\n[ext_resource type=\"Script\" uid=\"uid://cvovhck0o66tc\" path=\"res://src/Tools/BaseTool.gd\" id=\"1\"]\n\n[node name=\"ToolOptions\" type=\"VBoxContainer\" unique_id=1941710537]\noffset_left = 7.0\noffset_top = 7.0\noffset_right = 123.0\noffset_bottom = 65.0\nsize_flags_horizontal = 3\nscript = ExtResource(\"1\")\n\n[node name=\"ColorRect\" type=\"ColorRect\" parent=\".\" unique_id=1240193805]\ncustom_minimum_size = Vector2(0, 4)\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\".\" unique_id=236766783]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Tool Name\"\nhorizontal_alignment = 1\n"
  },
  {
    "path": "src/Tools/DesignTools/Bucket.gd",
    "content": "extends BaseTool\n\nenum FillArea { AREA, COLORS, SELECTION }\nenum FillWith { COLOR, PATTERN }\n\nconst COLOR_REPLACE_SHADER := preload(\"res://src/Shaders/ColorReplace.gdshader\")\nconst PATTERN_FILL_SHADER := preload(\"res://src/Shaders/PatternFill.gdshader\")\n\nvar _undo_data := {}\nvar _picking_color := false\nvar _prev_mode := 0\nvar _pattern: Patterns.Pattern\nvar _tolerance := 0.003\nvar _fill_area: int = FillArea.AREA\nvar _fill_with: int = FillWith.COLOR\nvar _fill_merged_area := false  ## Fill regions from the merging of all layers\nvar _offset_x := 0\nvar _offset_y := 0\nvar _area_start_idx: int = 0\nvar _area_end_idx: int = 0\n## Working array used as buffer for segments while flooding\nvar _allegro_flood_segments: Array[Segment]\n## Results array per image while flooding\nvar _allegro_image_segments: Array[Segment]\n## Used for _fill_merged_area = true\nvar _sample_masks: Dictionary[Frame, Image] = {}\n\n\nclass Segment:\n\tvar flooding := false\n\tvar todo_above := false\n\tvar todo_below := false\n\tvar left_position := -5\n\tvar right_position := -5\n\tvar y := 0\n\tvar next := 0\n\n\tfunc _init(_y: int, _next) -> void:\n\t\ty = _y\n\t\tnext = _next\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\tupdate_pattern()\n\n\nfunc _input(event: InputEvent) -> void:\n\tif event.is_action_pressed(\"change_tool_mode\"):\n\t\t_prev_mode = _fill_area\n\tif event.is_action(\"change_tool_mode\"):\n\t\tif _fill_area == FillArea.SELECTION:\n\t\t\t_fill_area = FillArea.AREA\n\t\telse:\n\t\t\t_fill_area = _prev_mode ^ 1\n\t\t_select_fill_area_optionbutton()\n\tif event.is_action_released(\"change_tool_mode\"):\n\t\t_fill_area = _prev_mode\n\t\t_select_fill_area_optionbutton()\n\n\nfunc _on_FillAreaOptions_item_selected(index: int) -> void:\n\t_fill_area = index\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_merge_area_options_toggled(toggled_on: bool) -> void:\n\t_fill_merged_area = toggled_on\n\tupdate_config()\n\tsave_config()\n\n\nfunc _select_fill_area_optionbutton() -> void:\n\t$FillAreaOptions.selected = _fill_area\n\t$MergeAreaOptions.visible = _fill_area == FillArea.AREA\n\t$ToleranceSlider.visible = (_fill_area != FillArea.SELECTION)\n\n\nfunc _on_FillWithOptions_item_selected(index: int) -> void:\n\t_fill_with = index\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_tolerance_slider_value_changed(value: float) -> void:\n\t_tolerance = value / 255.0\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_PatternType_pressed() -> void:\n\tvar popup: Popup = Global.patterns_popup\n\tif !popup.pattern_selected.is_connected(_on_Pattern_selected):\n\t\tpopup.pattern_selected.connect(_on_Pattern_selected.bind(), CONNECT_ONE_SHOT)\n\tpopup.popup_on_parent(Rect2i($FillPattern/Type.global_position, Vector2i(226, 72)))\n\n\nfunc _on_Pattern_selected(pattern: Patterns.Pattern) -> void:\n\t_pattern = pattern\n\tupdate_pattern()\n\tsave_config()\n\n\nfunc _on_PatternOffsetX_value_changed(value: float) -> void:\n\t_offset_x = int(value)\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_PatternOffsetY_value_changed(value: float) -> void:\n\t_offset_y = int(value)\n\tupdate_config()\n\tsave_config()\n\n\nfunc get_config() -> Dictionary:\n\tif !_pattern:\n\t\treturn {\n\t\t\t\"fill_area\": _fill_area,\n\t\t\t\"fill_merged_area\": _fill_merged_area,\n\t\t\t\"fill_with\": _fill_with,\n\t\t\t\"tolerance\": _tolerance\n\t\t}\n\treturn {\n\t\t\"pattern_index\": _pattern.index,\n\t\t\"fill_area\": _fill_area,\n\t\t\"fill_merged_area\": _fill_merged_area,\n\t\t\"fill_with\": _fill_with,\n\t\t\"tolerance\": _tolerance,\n\t\t\"offset_x\": _offset_x,\n\t\t\"offset_y\": _offset_y,\n\t}\n\n\nfunc set_config(config: Dictionary) -> void:\n\tif _pattern:\n\t\tvar index = config.get(\"pattern_index\", _pattern.index)\n\t\t_pattern = Global.patterns_popup.get_pattern(index)\n\t_fill_area = config.get(\"fill_area\", _fill_area)\n\t_fill_merged_area = config.get(\"fill_merged_area\", _fill_merged_area)\n\t_fill_with = config.get(\"fill_with\", _fill_with)\n\t_tolerance = config.get(\"tolerance\", _tolerance)\n\t_offset_x = config.get(\"offset_x\", _offset_x)\n\t_offset_y = config.get(\"offset_y\", _offset_y)\n\tupdate_pattern()\n\n\nfunc update_config() -> void:\n\t_select_fill_area_optionbutton()\n\t$FillWithOptions.selected = _fill_with\n\t$ToleranceSlider.value = _tolerance * 255.0\n\t$FillPattern.visible = _fill_with == FillWith.PATTERN\n\t$FillPattern/OffsetX.value = _offset_x\n\t$FillPattern/OffsetY.value = _offset_y\n\t$MergeAreaOptions.button_pressed = _fill_merged_area\n\n\nfunc update_pattern() -> void:\n\tif _pattern == null:\n\t\tif Global.patterns_popup.default_pattern == null:\n\t\t\treturn\n\t\telse:\n\t\t\t_pattern = Global.patterns_popup.default_pattern\n\tvar tex: ImageTexture\n\tif !_pattern.image.is_empty():\n\t\ttex = ImageTexture.create_from_image(_pattern.image)\n\t$FillPattern/Type/Texture2D.texture = tex\n\tvar pattern_size := _pattern.image.get_size()\n\t$FillPattern/OffsetX.max_value = pattern_size.x - 1\n\t$FillPattern/OffsetY.max_value = pattern_size.y - 1\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\tsuper.draw_start(pos)\n\tif Input.is_action_pressed(&\"draw_color_picker\", true):\n\t\t_picking_color = true\n\t\t_pick_color(pos)\n\t\treturn\n\t_picking_color = false\n\tGlobal.canvas.selection.transform_content_confirm()\n\t_undo_data = _get_undo_data()\n\tif !Global.current_project.layers[Global.current_project.current_layer].can_layer_get_drawn():\n\t\treturn\n\tif not Global.current_project.can_pixel_get_drawn(pos):\n\t\treturn\n\tif _fill_merged_area and _fill_area == FillArea.AREA:\n\t\tvar project := Global.current_project\n\t\tfor frame_layer: Array in project.selected_cels:\n\t\t\tif project.frames[frame_layer[0]].cels[frame_layer[1]] is PixelCel:\n\t\t\t\tvar frame := project.frames[frame_layer[0]]\n\t\t\t\tif not _sample_masks.has(frame):\n\t\t\t\t\tvar mask := Image.create(\n\t\t\t\t\t\tproject.size.x, project.size.y, false, Image.FORMAT_RGBA8\n\t\t\t\t\t)\n\t\t\t\t\tmask.fill(Color(0, 0, 0, 0))\n\t\t\t\t\tDrawingAlgos.blend_layers(mask, frame)\n\t\t\t\t\t_sample_masks[frame] = mask\n\tfill(pos)\n\n\nfunc draw_move(pos: Vector2i) -> void:\n\tsuper.draw_move(pos)\n\tif _picking_color:  # Still return even if we released Alt\n\t\tif Input.is_action_pressed(&\"draw_color_picker\", true):\n\t\t\t_pick_color(pos)\n\t\treturn\n\tif !Global.current_project.layers[Global.current_project.current_layer].can_layer_get_drawn():\n\t\treturn\n\tif not Global.current_project.can_pixel_get_drawn(pos):\n\t\treturn\n\tfill(pos)\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tsuper.draw_end(pos)\n\tif _picking_color:\n\t\treturn\n\t_sample_masks.clear()\n\tcommit_undo()\n\n\nfunc cancel_tool() -> void:\n\tsuper()\n\tfor data in _undo_data:\n\t\tif data is not Image:\n\t\t\tcontinue\n\t\tvar image_data = _undo_data[data][\"data\"]\n\t\tdata.set_data(\n\t\t\tdata.get_width(), data.get_height(), data.has_mipmaps(), data.get_format(), image_data\n\t\t)\n\tGlobal.canvas.sprite_changed_this_frame = true\n\n\nfunc draw_tile(cell_coords: Vector2i, index: int, tilemap_cel: CelTileMap) -> void:\n\ttilemap_cel.set_index(tilemap_cel.get_cell_at(cell_coords), index)\n\n\nfunc fill(pos: Vector2i) -> void:\n\tmatch _fill_area:\n\t\tFillArea.AREA:\n\t\t\tfill_in_area(pos)\n\t\tFillArea.COLORS:\n\t\t\tfill_in_color(pos)\n\t\tFillArea.SELECTION:\n\t\t\tfill_in_selection()\n\tGlobal.canvas.sprite_changed_this_frame = true\n\n\nfunc fill_in_color(pos: Vector2i) -> void:\n\tvar project := Global.current_project\n\tif Tools.is_placing_tiles():\n\t\tfor cel in _get_selected_draw_cels():\n\t\t\tif cel is not CelTileMap:\n\t\t\t\tcontinue\n\t\t\tvar tilemap_cel := cel as CelTileMap\n\t\t\tvar tile_index := tilemap_cel.get_cell_index_at_coords(pos)\n\t\t\tfor cell_coords: Vector2i in tilemap_cel.cells:\n\t\t\t\tvar cell := tilemap_cel.get_cell_at(cell_coords)\n\t\t\t\tif cell.index == tile_index:\n\t\t\t\t\ttilemap_cel.set_index(cell, TileSetPanel.selected_tile_index)\n\t\treturn\n\tvar color := project.get_current_cel().get_image().get_pixelv(pos)\n\tvar images := _get_selected_draw_images()\n\tfor image in images:\n\t\tif Tools.check_alpha_lock(image, pos):\n\t\t\tcontinue\n\t\tvar pattern_image: Image\n\t\tif _fill_with == FillWith.COLOR or _pattern == null:\n\t\t\tif tool_slot.color.is_equal_approx(color):\n\t\t\t\tcontinue\n\t\telse:\n\t\t\t# End early if we are filling with an empty pattern\n\t\t\tpattern_image = _pattern.image\n\t\t\tvar pattern_size := pattern_image.get_size()\n\t\t\tif pattern_size.x == 0 or pattern_size.y == 0:\n\t\t\t\treturn\n\n\t\tvar selection: Image\n\t\tvar selection_tex: ImageTexture\n\t\tif project.has_selection:\n\t\t\tselection = project.selection_map.return_cropped_copy(project, project.size)\n\t\telse:\n\t\t\tselection = project.new_empty_image()\n\t\t\tselection.fill(Color(1, 1, 1, 1))\n\n\t\tselection_tex = ImageTexture.create_from_image(selection)\n\n\t\tvar pattern_tex: ImageTexture\n\t\tif _pattern and pattern_image:\n\t\t\tpattern_tex = ImageTexture.create_from_image(pattern_image)\n\n\t\tvar params := {\n\t\t\t\"size\": project.size,\n\t\t\t\"old_color\": color,\n\t\t\t\"new_color\": tool_slot.color,\n\t\t\t\"tolerance\": _tolerance,\n\t\t\t\"selection\": selection_tex,\n\t\t\t\"pattern\": pattern_tex,\n\t\t\t\"has_pattern\": true if _fill_with == FillWith.PATTERN else false\n\t\t}\n\t\tif is_instance_valid(pattern_tex):\n\t\t\tvar pattern_size := Vector2i(pattern_tex.get_size())\n\t\t\tparams[\"pattern_size\"] = pattern_size\n\t\t\t# pixel offset converted to pattern uv offset\n\t\t\tparams[\"pattern_uv_offset\"] = (\n\t\t\t\tVector2i.ONE / pattern_size * Vector2i(_offset_x, _offset_y)\n\t\t\t)\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(image, COLOR_REPLACE_SHADER, params, project.size)\n\n\nfunc fill_in_area(pos: Vector2i) -> void:\n\tvar project := Global.current_project\n\t_flood_fill(pos)\n\t# Handle mirroring\n\tfor mirror_pos in Tools.get_mirrored_positions(pos, project):\n\t\tif project.can_pixel_get_drawn(mirror_pos):\n\t\t\t_flood_fill(mirror_pos)\n\n\nfunc fill_in_selection() -> void:\n\tvar project := Global.current_project\n\tvar images := _get_selected_draw_images()\n\tif _fill_with == FillWith.COLOR or _pattern == null:\n\t\tif project.has_selection:\n\t\t\tvar filler := project.new_empty_image()\n\t\t\tfiller.fill(tool_slot.color)\n\t\t\tvar selection_map_copy := project.selection_map.return_cropped_copy(\n\t\t\t\tproject, project.size\n\t\t\t)\n\t\t\tvar rect := selection_map_copy.get_used_rect()\n\t\t\tfor image in images:\n\t\t\t\timage.blit_rect_mask(filler, selection_map_copy, rect, rect.position)\n\t\t\t\timage.convert_rgb_to_indexed()\n\t\telse:\n\t\t\tfor image in images:\n\t\t\t\timage.fill(tool_slot.color)\n\t\t\t\timage.convert_rgb_to_indexed()\n\telse:\n\t\t# End early if we are filling with an empty pattern\n\t\tvar pattern_image: Image = _pattern.image\n\t\tvar pattern_size := pattern_image.get_size()\n\t\tif pattern_size.x == 0 or pattern_size.y == 0:\n\t\t\treturn\n\n\t\tvar selection: Image\n\t\tvar selection_tex: ImageTexture\n\t\tif project.has_selection:\n\t\t\tselection = project.selection_map.return_cropped_copy(project, project.size)\n\t\telse:\n\t\t\tselection = project.new_empty_image()\n\t\t\tselection.fill(Color(1, 1, 1, 1))\n\n\t\tselection_tex = ImageTexture.create_from_image(selection)\n\n\t\tvar pattern_tex: ImageTexture\n\t\tif _pattern and pattern_image:\n\t\t\tpattern_tex = ImageTexture.create_from_image(pattern_image)\n\n\t\tvar params := {\n\t\t\t\"selection\": selection_tex,\n\t\t\t\"size\": project.size,\n\t\t\t\"pattern\": pattern_tex,\n\t\t}\n\t\tif is_instance_valid(pattern_tex):\n\t\t\tparams[\"pattern_size\"] = pattern_size\n\t\t\t# pixel offset converted to pattern uv offset\n\t\t\tparams[\"pattern_uv_offset\"] = (\n\t\t\t\tVector2i.ONE / pattern_size * Vector2i(_offset_x, _offset_y)\n\t\t\t)\n\t\tfor image in images:\n\t\t\tvar gen := ShaderImageEffect.new()\n\t\t\tgen.generate_image(image, PATTERN_FILL_SHADER, params, project.size)\n\n\nfunc _flood_fill(pos: Vector2i) -> void:\n\t# implements the floodfill routine by Shawn Hargreaves\n\t# from https://www1.udel.edu/CIS/software/dist/allegro-4.2.1/src/flood.c\n\tvar project := Global.current_project\n\tif project.has_selection:\n\t\tproject.selection_map.lock_selection_rect(project, true)\n\tif Tools.is_placing_tiles():\n\t\tfor cel in _get_selected_draw_cels():\n\t\t\tif cel is not CelTileMap:\n\t\t\t\tcontinue\n\t\t\tvar tilemap_cel := cel as CelTileMap\n\t\t\tvar cell_pos := tilemap_cel.get_cell_position(pos)\n\t\t\ttilemap_cel.bucket_fill(\n\t\t\t\tcell_pos, TileSetPanel.selected_tile_index, draw_tile.bind(tilemap_cel)\n\t\t\t)\n\t\tif project.has_selection:\n\t\t\tproject.selection_map.lock_selection_rect(project, false)\n\t\treturn\n\n\tvar cels = _get_selected_draw_cels()\n\tfor cel: PixelCel in cels:\n\t\tvar image: ImageExtended = cel.image\n\t\tif Tools.check_alpha_lock(image, pos):\n\t\t\tcontinue\n\t\tvar color: Color = image.get_pixelv(pos)\n\t\tif _fill_merged_area:\n\t\t\tcolor = _sample_masks.get(cel.get_frame(project), cel.image).get_pixelv(pos)\n\t\tif _fill_with == FillWith.COLOR or _pattern == null:\n\t\t\t# end early if we are filling with the same color\n\t\t\tif tool_slot.color.is_equal_approx(color):\n\t\t\t\tcontinue\n\t\t\t# Fill all area if it's completely empty and _fill_merged_area = false\n\t\t\tif image.get_used_rect().size == Vector2i.ZERO and not _fill_merged_area:\n\t\t\t\tif project.has_selection:\n\t\t\t\t\tvar filler := project.new_empty_image()\n\t\t\t\t\tfiller.fill(tool_slot.color)\n\t\t\t\t\tvar selection_map_copy := project.selection_map.return_cropped_copy(\n\t\t\t\t\t\tproject, project.size\n\t\t\t\t\t)\n\t\t\t\t\tvar rect := selection_map_copy.get_used_rect()\n\t\t\t\t\timage.blit_rect_mask(filler, selection_map_copy, rect, rect.position)\n\t\t\t\t\timage.convert_rgb_to_indexed()\n\t\t\t\t\tcontinue\n\t\t\t\telse:\n\t\t\t\t\timage.fill(tool_slot.color)\n\t\t\t\t\timage.convert_rgb_to_indexed()\n\t\t\t\t\tcontinue\n\t\telse:\n\t\t\t# end early if we are filling with an empty pattern\n\t\t\tvar pattern_size := _pattern.image.get_size()\n\t\t\tif pattern_size.x == 0 or pattern_size.y == 0:\n\t\t\t\tif project.has_selection:\n\t\t\t\t\tproject.selection_map.lock_selection_rect(project, false)\n\t\t\t\treturn\n\t\t# init flood data structures\n\t\t_allegro_flood_segments = []\n\t\t_allegro_image_segments = []\n\t\t_compute_segments_for_image(\n\t\t\tpos,\n\t\t\tproject,\n\t\t\timage if !_fill_merged_area else _sample_masks.get(cel.get_frame(project), cel.image),\n\t\t\tcolor\n\t\t)\n\t\t# now actually color the image: since we have already checked a few things for the points\n\t\t# we'll process here, we're going to skip a bunch of safety checks to speed things up.\n\t\t_color_segments(image)\n\tif project.has_selection:\n\t\tproject.selection_map.lock_selection_rect(project, false)\n\n\nfunc _compute_segments_for_image(\n\tpos: Vector2i, project: Project, image: Image, src_color: Color\n) -> void:\n\t# initially allocate at least 1 segment per line of image\n\tvar y_range = [0, image.get_height()]\n\t_area_end_idx = project.size.y - 1\n\t_area_start_idx = 0\n\tif project.has_selection:\n\t\tvar selection_rect := project.selection_map.get_selection_rect(project)\n\t\t_area_start_idx = selection_rect.position.y\n\t\t_area_end_idx = selection_rect.end.y - 1\n\t\ty_range = [selection_rect.position.y, selection_rect.end.y]\n\tfor j in range(y_range[0], y_range[1]):\n\t\t_add_new_segment(j)\n\t# start flood algorithm\n\t_flood_line_around_point(pos, project, image, src_color)\n\t# test all segments while also discovering more\n\tvar done := false\n\twhile not done:\n\t\tdone = true\n\t\tvar max_index := _allegro_flood_segments.size()\n\t\tfor c in max_index:\n\t\t\tvar p := _allegro_flood_segments[c]\n\t\t\tif p.todo_below:  # check below the segment?\n\t\t\t\tp.todo_below = false\n\t\t\t\tif _check_flooded_segment(\n\t\t\t\t\tp.y + 1, p.left_position, p.right_position, project, image, src_color\n\t\t\t\t):\n\t\t\t\t\tdone = false\n\t\t\tif p.todo_above:  # check above the segment?\n\t\t\t\tp.todo_above = false\n\t\t\t\tif _check_flooded_segment(\n\t\t\t\t\tp.y - 1, p.left_position, p.right_position, project, image, src_color\n\t\t\t\t):\n\t\t\t\t\tdone = false\n\n\n## Add a new segment to the array\nfunc _add_new_segment(y := 0) -> void:\n\t_allegro_flood_segments.append(Segment.new(y, _area_start_idx))\n\n\n## Fill an horizontal segment around the specified position, and adds it to the\n## list of segments filled. Returns the first x coordinate after the part of the\n## line that has been filled.\n## Τhis method is called by [method _flood_fill] after the required data structures\n## have been initialized.\nfunc _flood_line_around_point(\n\tpos: Vector2i, project: Project, image: Image, src_color: Color\n) -> int:\n\tif not DrawingAlgos.similar_colors(image.get_pixelv(pos), src_color, _tolerance):\n\t\treturn pos.x + 1\n\tvar west := pos\n\tvar east := pos\n\tif project.has_selection:\n\t\twhile (\n\t\t\tproject.can_pixel_get_drawn(west)\n\t\t\t&& DrawingAlgos.similar_colors(image.get_pixelv(west), src_color, _tolerance)\n\t\t):\n\t\t\twest += Vector2i.LEFT\n\t\twhile (\n\t\t\tproject.can_pixel_get_drawn(east)\n\t\t\t&& DrawingAlgos.similar_colors(image.get_pixelv(east), src_color, _tolerance)\n\t\t):\n\t\t\teast += Vector2i.RIGHT\n\telse:\n\t\twhile (\n\t\t\twest.x >= 0\n\t\t\t&& DrawingAlgos.similar_colors(image.get_pixelv(west), src_color, _tolerance)\n\t\t):\n\t\t\twest += Vector2i.LEFT\n\t\twhile (\n\t\t\teast.x < project.size.x\n\t\t\t&& DrawingAlgos.similar_colors(image.get_pixelv(east), src_color, _tolerance)\n\t\t):\n\t\t\teast += Vector2i.RIGHT\n\t# Make a note of the stuff we processed\n\tvar c := pos.y - _area_start_idx\n\tvar segment := _allegro_flood_segments[c]\n\t# we may have already processed some segments on this y coordinate\n\tif segment.flooding:\n\t\twhile segment.next > _area_start_idx:\n\t\t\tc = segment.next - _area_start_idx  # index of next segment in this line of image\n\t\t\tsegment = _allegro_flood_segments[c]\n\t\t# found last current segment on this line\n\t\tc = _allegro_flood_segments.size()\n\t\tsegment.next = c + _area_start_idx\n\t\t_add_new_segment(pos.y)\n\t\tsegment = _allegro_flood_segments[c]\n\t# set the values for the current segment\n\tsegment.flooding = true\n\tsegment.left_position = west.x + 1\n\tsegment.right_position = east.x - 1\n\tsegment.y = pos.y\n\tsegment.next = _area_start_idx\n\t# Should we process segments above or below this one?\n\t# when there is a selected area, the pixels above and below the one we started creating this\n\t# segment from may be outside it. It's easier to assume we should be checking for segments\n\t# above and below this one than to specifically check every single pixel in it, because that\n\t# test will be performed later anyway.\n\t# On the other hand, this test we described is the same `project.can_pixel_get_drawn` does if\n\t# there is no selection, so we don't need branching here.\n\tsegment.todo_above = pos.y > _area_start_idx\n\tsegment.todo_below = pos.y < _area_end_idx\n\t# this is an actual segment we should be coloring, so we add it to the results for the\n\t# current image\n\tif segment.right_position >= segment.left_position:\n\t\t_allegro_image_segments.append(segment)\n\t# we know the point just east of the segment is not part of a segment that should be\n\t# processed, else it would be part of this segment\n\treturn east.x + 1\n\n\nfunc _check_flooded_segment(\n\ty: int, left: int, right: int, project: Project, image: Image, src_color: Color\n) -> bool:\n\tvar ret := false\n\tvar c: int = 0\n\twhile left <= right:\n\t\tc = y - _area_start_idx\n\t\twhile true:\n\t\t\tvar segment := _allegro_flood_segments[c]\n\t\t\tif left >= segment.left_position and left <= segment.right_position:\n\t\t\t\tleft = segment.right_position + 2\n\t\t\t\tbreak\n\t\t\tc = segment.next - _area_start_idx\n\t\t\tif c == 0:  # couldn't find a valid segment, so we draw a new one\n\t\t\t\tleft = _flood_line_around_point(Vector2i(left, y), project, image, src_color)\n\t\t\t\tret = true\n\t\t\t\tbreak\n\treturn ret\n\n\nfunc _color_segments(image: ImageExtended) -> void:\n\tif _fill_with == FillWith.COLOR or _pattern == null:\n\t\t# This is needed to ensure that the color used to fill is not wrong, due to float\n\t\t# rounding issues.\n\t\tvar color_str: String = tool_slot.color.to_html()\n\t\tvar color := Color(color_str)\n\t\t# short circuit for flat colors\n\t\tfor c in _allegro_image_segments.size():\n\t\t\tvar p := _allegro_image_segments[c]\n\t\t\t# We don't have to check again whether the point being processed is within the bounds\n\t\t\tvar rect = Rect2(\n\t\t\t\tVector2i(p.left_position, p.y), Vector2i(p.right_position - p.left_position + 1, 1)\n\t\t\t)\n\t\t\timage.fill_rect(rect, color)\n\t\timage.convert_rgb_to_indexed()\n\telse:\n\t\t# shortcircuit tests for patternfills\n\t\tvar pattern_size := _pattern.image.get_size()\n\t\t# we know the pattern had a valid size when we began flooding, so we can skip testing that\n\t\t# again for every point in the pattern.\n\t\tfor c in _allegro_image_segments.size():\n\t\t\tvar p := _allegro_image_segments[c]\n\t\t\tfor px in range(p.left_position, p.right_position + 1):\n\t\t\t\t_set_pixel_pattern(image, px, p.y, pattern_size)\n\n\nfunc _set_pixel_pattern(image: ImageExtended, x: int, y: int, pattern_size: Vector2i) -> void:\n\tvar px := (x + _offset_x) % pattern_size.x\n\tvar py := (y + _offset_y) % pattern_size.y\n\tvar pc := _pattern.image.get_pixel(px, py)\n\timage.set_pixel_custom(x, y, pc)\n\n\nfunc commit_undo() -> void:\n\tvar project := Global.current_project\n\tvar tile_editing_mode := TileSetPanel.tile_editing_mode\n\tif TileSetPanel.placing_tiles:\n\t\ttile_editing_mode = TileSetPanel.TileEditingMode.STACK\n\tproject.update_tilemaps(_undo_data, tile_editing_mode)\n\tvar redo_data := _get_undo_data()\n\tvar frame := -1\n\tvar layer := -1\n\tif Global.animation_timeline.animation_timer.is_stopped() and project.selected_cels.size() == 1:\n\t\tframe = project.current_frame\n\t\tlayer = project.current_layer\n\n\tproject.undo_redo.create_action(\"Draw\")\n\tproject.deserialize_cel_undo_data(redo_data, _undo_data)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false, frame, layer))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true, frame, layer))\n\tproject.undo_redo.commit_action()\n\t_undo_data.clear()\n\n\nfunc _get_undo_data() -> Dictionary:\n\tvar data := {}\n\tif Global.animation_timeline.animation_timer.is_stopped():\n\t\tGlobal.current_project.serialize_cel_undo_data(_get_selected_draw_cels(), data)\n\telse:\n\t\tvar cels: Array[BaseCel]\n\t\tfor frame in Global.current_project.frames:\n\t\t\tvar cel := frame.cels[Global.current_project.current_layer]\n\t\t\tif not cel is PixelCel:\n\t\t\t\tcontinue\n\t\t\tcels.append(cel)\n\t\tGlobal.current_project.serialize_cel_undo_data(cels, data)\n\treturn data\n"
  },
  {
    "path": "src/Tools/DesignTools/Bucket.gd.uid",
    "content": "uid://dvxi2qxovndmf\n"
  },
  {
    "path": "src/Tools/DesignTools/Bucket.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bbvvkrrjyxugo\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://ctfgfelg0sho8\" path=\"res://src/Tools/BaseTool.tscn\" id=\"2\"]\n[ext_resource type=\"Script\" uid=\"uid://dvxi2qxovndmf\" path=\"res://src/Tools/DesignTools/Bucket.gd\" id=\"3\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"4_1pngp\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"1\"]\nbg_color = Color(1, 1, 1, 1)\nborder_color = Color(1, 1, 1, 1)\ncorner_radius_top_left = 5\ncorner_radius_top_right = 5\ncorner_radius_bottom_right = 5\ncorner_radius_bottom_left = 5\nanti_aliasing = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"2\"]\nbg_color = Color(1, 1, 1, 1)\nborder_color = Color(1, 1, 1, 1)\ncorner_radius_top_left = 5\ncorner_radius_top_right = 5\ncorner_radius_bottom_right = 5\ncorner_radius_bottom_left = 5\nanti_aliasing = false\n\n[node name=\"ToolOptions\" unique_id=964459986 instance=ExtResource(\"2\")]\noffset_right = 138.0\noffset_bottom = 105.0\nscript = ExtResource(\"3\")\n\n[node name=\"FillArea\" type=\"Label\" parent=\".\" index=\"2\" unique_id=1502194525]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"Fill area:\"\n\n[node name=\"FillAreaOptions\" type=\"OptionButton\" parent=\".\" index=\"3\" unique_id=321873914]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 3\npopup/item_0/text = \"Similar area\"\npopup/item_0/id = 0\npopup/item_1/text = \"Similar colors\"\npopup/item_1/id = 1\npopup/item_2/text = \"Whole selection\"\npopup/item_2/id = 2\n\n[node name=\"MergeAreaOptions\" type=\"CheckBox\" parent=\".\" index=\"4\" unique_id=218009629]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Fill regions from the merging of all layers\"\nautowrap_mode = 3\n\n[node name=\"ToleranceSlider\" type=\"TextureProgressBar\" parent=\".\" index=\"5\" unique_id=1967537478]\ncustom_minimum_size = Vector2(32, 24)\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 255.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"4_1pngp\")\nprefix = \"Tolerance:\"\n\n[node name=\"FillWith\" type=\"Label\" parent=\".\" index=\"6\" unique_id=1434654370]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Fill with:\"\n\n[node name=\"FillWithOptions\" type=\"OptionButton\" parent=\".\" index=\"7\" unique_id=1494059608]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 2\npopup/item_0/text = \"Selected color\"\npopup/item_0/id = 0\npopup/item_1/text = \"Pattern\"\npopup/item_1/id = 1\n\n[node name=\"FillPattern\" type=\"VBoxContainer\" parent=\".\" index=\"8\" unique_id=1597102964]\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"Type\" type=\"Button\" parent=\"FillPattern\" index=\"0\" unique_id=1941961889]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Select a brush\"\nmouse_default_cursor_shape = 2\ntheme_override_styles/normal = SubResource(\"1\")\ntheme_override_styles/pressed = SubResource(\"1\")\ntheme_override_styles/hover = SubResource(\"1\")\ntheme_override_styles/disabled = SubResource(\"2\")\ntheme_override_styles/focus = SubResource(\"2\")\n\n[node name=\"Texture2D\" type=\"TextureRect\" parent=\"FillPattern/Type\" index=\"0\" unique_id=1285940461]\nlayout_mode = 0\noffset_right = 32.0\noffset_bottom = 32.0\nexpand_mode = 1\nstretch_mode = 5\n\n[node name=\"OffsetX\" parent=\"FillPattern\" index=\"1\" unique_id=381068828 instance=ExtResource(\"1\")]\nlayout_mode = 2\nprefix = \"Offset X:\"\n\n[node name=\"OffsetY\" parent=\"FillPattern\" index=\"2\" unique_id=2113544548 instance=ExtResource(\"1\")]\nlayout_mode = 2\nprefix = \"Offset Y:\"\n\n[connection signal=\"item_selected\" from=\"FillAreaOptions\" to=\".\" method=\"_on_FillAreaOptions_item_selected\"]\n[connection signal=\"toggled\" from=\"MergeAreaOptions\" to=\".\" method=\"_on_merge_area_options_toggled\"]\n[connection signal=\"value_changed\" from=\"ToleranceSlider\" to=\".\" method=\"_on_tolerance_slider_value_changed\"]\n[connection signal=\"item_selected\" from=\"FillWithOptions\" to=\".\" method=\"_on_FillWithOptions_item_selected\"]\n[connection signal=\"pressed\" from=\"FillPattern/Type\" to=\".\" method=\"_on_PatternType_pressed\"]\n[connection signal=\"value_changed\" from=\"FillPattern/OffsetX\" to=\".\" method=\"_on_PatternOffsetX_value_changed\"]\n[connection signal=\"value_changed\" from=\"FillPattern/OffsetY\" to=\".\" method=\"_on_PatternOffsetY_value_changed\"]\n"
  },
  {
    "path": "src/Tools/DesignTools/CurveTool.gd",
    "content": "extends BaseDrawTool\n\nenum SingleState { START, END, MIDDLE_A, MIDDLE_B, READY }\nenum Bezier { CHAINED, SINGLE }\n\nvar _curve := Curve2D.new()  ## The [Curve2D] responsible for the shape of the curve being drawn.\nvar _drawing := false  ## Set to true when a curve is being drawn.\nvar _fill_inside := false  ## When true, the inside area of the curve gets filled.\nvar _fill_inside_rect := Rect2i()  ## The bounding box that surrounds the area that gets filled.\nvar _editing_bezier := false  ## Needed to determine when to show the control points preview line.\nvar _editing_out_control_point := false  ## True when controlling the out control point only.\nvar _thickness := 1  ## The thickness of the curve.\nvar _last_mouse_position := Vector2.INF  ## The last position of the mouse\n## chained means Krita-like behavior, single means Aseprite-like.\nvar _bezier_mode: int = Bezier.CHAINED\nvar _current_state: int = SingleState.START  ## Current state of the bezier curve (in SINGLE mode)\n\n@onready var bezier_option_button: OptionButton = $BezierOptions/BezierMode\n\n\nfunc _init() -> void:\n\t# To prevent tool from remaining active when switching projects\n\tGlobal.project_about_to_switch.connect(_clear)\n\t_drawer.color_op = Drawer.ColorOp.new()\n\tupdate_indicator()\n\n\nfunc _ready() -> void:\n\tsuper()\n\tif tool_slot.button == MOUSE_BUTTON_RIGHT:\n\t\t$ThicknessSlider.allow_global_input_events = not Global.share_options_between_tools\n\t\tGlobal.share_options_between_tools_changed.connect(\n\t\t\tfunc(enabled): $ThicknessSlider.allow_global_input_events = not enabled\n\t\t)\n\n\nfunc update_brush() -> void:\n\tpass\n\n\nfunc _on_thickness_value_changed(value: int) -> void:\n\t_thickness = value\n\tupdate_indicator()\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_bezier_mode_item_selected(index: int) -> void:\n\t_bezier_mode = index\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_fill_checkbox_toggled(toggled_on: bool) -> void:\n\t_fill_inside = toggled_on\n\tupdate_config()\n\tsave_config()\n\n\nfunc update_indicator() -> void:\n\tvar bitmap := BitMap.new()\n\tbitmap.create(Vector2i.ONE * _thickness)\n\tbitmap.set_bit_rect(Rect2i(Vector2i.ZERO, Vector2i.ONE * _thickness), true)\n\t_indicator = bitmap\n\t_polylines = _create_polylines(_indicator)\n\n\nfunc get_config() -> Dictionary:\n\tvar config := super.get_config()\n\tconfig[\"fill_inside\"] = _fill_inside\n\tconfig[\"thickness\"] = _thickness\n\tconfig[\"bezier_mode\"] = _bezier_mode\n\treturn config\n\n\nfunc set_config(config: Dictionary) -> void:\n\tsuper.set_config(config)\n\t_fill_inside = config.get(\"fill_inside\", _fill_inside)\n\t_thickness = config.get(\"thickness\", _thickness)\n\t_bezier_mode = config.get(\"bezier_mode\", _bezier_mode)\n\n\nfunc update_config() -> void:\n\tsuper.update_config()\n\t$FillCheckbox.button_pressed = _fill_inside\n\t$ThicknessSlider.value = _thickness\n\tbezier_option_button.select(_bezier_mode)\n\n\n## This tool has no brush, so just return the indicator as it is.\nfunc _create_brush_indicator() -> BitMap:\n\treturn _indicator\n\n\nfunc _input(event: InputEvent) -> void:\n\tif _drawing:\n\t\tif event is InputEventMouseMotion:\n\t\t\t_last_mouse_position = Global.canvas.current_pixel.floor()\n\t\t\tif Global.mirror_view:\n\t\t\t\t_last_mouse_position.x = Global.current_project.size.x - 1 - _last_mouse_position.x\n\t\t\tif _bezier_mode == Bezier.SINGLE and _current_state >= SingleState.MIDDLE_A:\n\t\t\t\t# if bezier's curvature is being changed in SINGLE mode\n\t\t\t\tif _current_state == SingleState.MIDDLE_A:\n\t\t\t\t\t_curve.set_point_out(\n\t\t\t\t\t\t0, Vector2(_last_mouse_position) - _curve.get_point_position(0)\n\t\t\t\t\t)\n\t\t\t\t_curve.set_point_in(\n\t\t\t\t\t1,\n\t\t\t\t\t(\n\t\t\t\t\t\tVector2(_last_mouse_position)\n\t\t\t\t\t\t- _curve.get_point_position(_curve.point_count - 1)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\telif event is InputEventMouseButton:\n\t\t\tif event.double_click and event.button_index == tool_slot.button:\n\t\t\t\t$DoubleClickTimer.start()\n\t\t\t\t_draw_shape()\n\t\telse:\n\t\t\tif _bezier_mode == Bezier.CHAINED:\n\t\t\t\tif event.is_action_pressed(\"shape_perfect\"):\n\t\t\t\t\t_editing_out_control_point = true\n\t\t\t\telif event.is_action_released(\"shape_perfect\"):\n\t\t\t\t\t_editing_out_control_point = false\n\t\t\tif event.is_action_pressed(\"change_tool_mode\"):  # Control removes the last added point\n\t\t\t\tif _curve.point_count > 1:\n\t\t\t\t\tmatch _current_state:\n\t\t\t\t\t\tSingleState.START:  # Point removed in CHAINED mode\n\t\t\t\t\t\t\t_curve.remove_point(_curve.point_count - 1)\n\t\t\t\t\t\tSingleState.MIDDLE_A:  # End point is to be removed in SINGLE mode\n\t\t\t\t\t\t\t_curve.remove_point(_curve.point_count - 1)\n\t\t\t\t\t\t\t_curve.set_point_out(0, Vector2.ZERO)\n\t\t\t\t\t\t\t_editing_bezier = false\n\t\t\t\t\t\t\t_current_state -= 1\n\t\t\t\t\t\tSingleState.MIDDLE_B:  # Bezier curvature is to be reset in SINGLE mode\n\t\t\t\t\t\t\t_curve.set_point_out(\n\t\t\t\t\t\t\t\t0, _last_mouse_position - _curve.get_point_position(0)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t_current_state -= 1\n\telse:\n\t\t# If options are being shared, no need to change the brush size on the right tool slots,\n\t\t# otherwise it will be changed twice on both left and right tools.\n\t\tif tool_slot.button == MOUSE_BUTTON_RIGHT and Global.share_options_between_tools:\n\t\t\treturn\n\t\tvar brush_size_value := _mm_action.get_action_distance_int(event)\n\t\t$ThicknessSlider.value += brush_size_value\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\tif !$DoubleClickTimer.is_stopped():\n\t\treturn\n\tpos = snap_position(pos)\n\tsuper.draw_start(pos)\n\tif Input.is_action_pressed(\"shape_displace\"):\n\t\t_picking_color = true\n\t\t_pick_color(pos)\n\t\treturn\n\t_picking_color = false  # fixes _picking_color being true indefinitely after we pick color\n\tGlobal.canvas.selection.transform_content_confirm()\n\tupdate_mask()\n\tif !_drawing:\n\t\tbezier_option_button.disabled = true\n\t\t_drawing = true\n\t\t_current_state = SingleState.START\n\t# NOTE: _current_state of CHAINED mode is always SingleState.START so it will always pass this.\n\tif _current_state == SingleState.START or _current_state == SingleState.END:\n\t\t_curve.add_point(pos)\n\tif _bezier_mode == Bezier.SINGLE:\n\t\t_current_state += 1\n\t_fill_inside_rect = Rect2i(pos, Vector2i.ZERO)\n\n\nfunc draw_move(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tsuper.draw_move(pos)\n\tif _picking_color:  # Still return even if we released Alt\n\t\tif Input.is_action_pressed(\"shape_displace\"):\n\t\t\t_pick_color(pos)\n\t\treturn\n\tif _drawing and _bezier_mode == Bezier.CHAINED:\n\t\t_editing_bezier = true\n\t\tvar current_position := _curve.get_point_position(_curve.point_count - 1) - Vector2(pos)\n\t\tif not _editing_out_control_point:\n\t\t\t_curve.set_point_in(_curve.point_count - 1, current_position)\n\t\t_curve.set_point_out(_curve.point_count - 1, -current_position)\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\t# we still need bezier preview when curve is in SINGLE mode.\n\tif _current_state == SingleState.MIDDLE_A or _current_state == SingleState.MIDDLE_B:\n\t\t_editing_bezier = true\n\telse:\n\t\t_editing_bezier = false\n\tif (\n\t\t(_is_hovering_first_position(pos) and _curve.point_count > 1)\n\t\tor _current_state == SingleState.READY\n\t):\n\t\t_draw_shape()\n\tsuper.draw_end(pos)\n\n\nfunc cancel_tool() -> void:\n\tsuper()\n\t_clear()\n\n\nfunc draw_preview() -> void:\n\tvar previews := Global.canvas.previews_sprite\n\tif not _drawing:\n\t\treturn\n\tvar points := _bezier()\n\tvar image := Image.create(\n\t\tGlobal.current_project.size.x, Global.current_project.size.y, false, Image.FORMAT_LA8\n\t)\n\tfor i in points.size():\n\t\tif Global.mirror_view:  # This fixes previewing in mirror mode\n\t\t\tpoints[i].x = image.get_width() - points[i].x - 1\n\t\tif Rect2i(Vector2i.ZERO, image.get_size()).has_point(points[i]):\n\t\t\timage.set_pixelv(points[i], Color.WHITE)\n\n\t# Handle mirroring\n\tfor point in mirror_array(points):\n\t\tif Rect2i(Vector2i.ZERO, image.get_size()).has_point(point):\n\t\t\timage.set_pixelv(point, Color.WHITE)\n\tvar texture := ImageTexture.create_from_image(image)\n\tpreviews.texture = texture\n\n\tvar canvas := Global.canvas.previews\n\tvar circle_radius := Vector2.ONE * (5.0 / Global.camera.zoom.x)\n\tif _is_hovering_first_position(_last_mouse_position) and _curve.point_count > 1:\n\t\tvar circle_center := _curve.get_point_position(0)\n\t\tif Global.mirror_view:  # This fixes previewing in mirror mode\n\t\t\tcircle_center.x = Global.current_project.size.x - circle_center.x - 1\n\t\tcircle_center += Vector2.ONE * 0.5\n\t\tdraw_empty_circle(canvas, circle_center, circle_radius * 2.0, Color.BLACK)\n\tif _editing_bezier:\n\t\t# Array of points whose bezier previews are required.\n\t\tvar preview_points: Array[int] = [_curve.point_count - 1]\n\t\tif _current_state == SingleState.MIDDLE_A:\n\t\t\t# We need this when we are modifying curve of \"first\" point in SINGLE mode.\n\t\t\t# because while in MIDDLE_A state we modify the in/out of both points simultaneously.\n\t\t\tpreview_points.append(0)\n\t\tfor point in preview_points:\n\t\t\tvar current_position := _curve.get_point_position(point)\n\t\t\tvar start := current_position\n\t\t\tif point > 0:\n\t\t\t\tstart = current_position + _curve.get_point_in(point)\n\t\t\tvar end := current_position + _curve.get_point_out(point)\n\t\t\tif Global.mirror_view:  # This fixes previewing in mirror mode\n\t\t\t\tcurrent_position.x = Global.current_project.size.x - current_position.x - 1\n\t\t\t\tstart.x = Global.current_project.size.x - start.x - 1\n\t\t\t\tend.x = Global.current_project.size.x - end.x - 1\n\n\t\t\tcanvas.draw_line(start, current_position, Color.BLACK)\n\t\t\tcanvas.draw_line(current_position, end, Color.BLACK)\n\t\t\tdraw_empty_circle(canvas, start, circle_radius, Color.BLACK)\n\t\t\tdraw_empty_circle(canvas, end, circle_radius, Color.BLACK)\n\n\nfunc _draw_shape() -> void:\n\tbezier_option_button.disabled = false\n\tvar points := _bezier()\n\tprepare_undo()\n\tvar images := _get_selected_draw_images()\n\tfor point in points:\n\t\t# Reset drawer every time because pixel perfect sometimes breaks the tool\n\t\t_drawer.reset()\n\t\t_fill_inside_rect = _fill_inside_rect.expand(point)\n\t\t# Draw each point offsetted based on the shape's thickness\n\t\t_draw_pixel(point, images)\n\tif _fill_inside:\n\t\tvar v := Vector2i()\n\t\tfor x in _fill_inside_rect.size.x:\n\t\t\tv.x = x + _fill_inside_rect.position.x\n\t\t\tfor y in _fill_inside_rect.size.y:\n\t\t\t\tv.y = y + _fill_inside_rect.position.y\n\t\t\t\tif Geometry2D.is_point_in_polygon(v, points):\n\t\t\t\t\t_draw_pixel(v, images)\n\t_clear()\n\tcommit_undo(\"Draw Shape\")\n\n\nfunc _draw_pixel(point: Vector2i, images: Array[ImageExtended]) -> void:\n\tif Tools.is_placing_tiles():\n\t\tdraw_tile(point)\n\telse:\n\t\tif Global.current_project.can_pixel_get_drawn(point):\n\t\t\tfor image in images:\n\t\t\t\t_drawer.set_pixel(image, point, tool_slot.color)\n\n\nfunc _clear() -> void:\n\t_curve.clear_points()\n\t_fill_inside_rect = Rect2i()\n\t_drawing = false\n\tGlobal.canvas.previews_sprite.texture = null\n\t_editing_out_control_point = false\n\tGlobal.canvas.previews.queue_redraw()\n\n\n## Get the [member _curve]'s baked points, and draw lines between them\n## using [method Geometry2D.bresenham_line].\nfunc _bezier() -> Array[Vector2i]:\n\tvar last_pixel := Global.canvas.current_pixel.floor()\n\tif Global.mirror_view:\n\t\t# Mirror the last point of the curve\n\t\tlast_pixel.x = (Global.current_project.size.x - 1) - last_pixel.x\n\tif _current_state <= SingleState.END:  # this is general for both modes\n\t\t_curve.add_point(last_pixel)\n\tvar points := _curve.get_baked_points()\n\tif _current_state <= SingleState.END:  # this is general for both modes\n\t\t_curve.remove_point(_curve.point_count - 1)\n\tvar final_points: Array[Vector2i] = []\n\tfor i in points.size() - 1:\n\t\tvar point1 := points[i]\n\t\tvar point2 := points[i + 1]\n\t\tfinal_points.append_array(bresenham_line_thickness(point1, point2, _thickness))\n\treturn final_points\n\n\nfunc _fill_bitmap_with_points(points: Array[Vector2i], bitmap_size: Vector2i) -> BitMap:\n\tvar bitmap := BitMap.new()\n\tbitmap.create(bitmap_size)\n\n\tfor point in points:\n\t\tif point.x < 0 or point.y < 0 or point.x >= bitmap_size.x or point.y >= bitmap_size.y:\n\t\t\tcontinue\n\t\tbitmap.set_bitv(point, 1)\n\n\treturn bitmap\n\n\nfunc _is_hovering_first_position(pos: Vector2) -> bool:\n\treturn _curve.point_count > 0 and _curve.get_point_position(0) == pos\n\n\n# Thanks to\n# https://www.reddit.com/r/godot/comments/3ktq39/drawing_empty_circles_and_curves/cv0f4eo/\nfunc draw_empty_circle(\n\tcanvas: CanvasItem, circle_center: Vector2, circle_radius: Vector2, color: Color\n) -> void:\n\tvar draw_counter := 1\n\tvar line_origin := Vector2()\n\tvar line_end := Vector2()\n\tline_origin = circle_radius + circle_center\n\n\twhile draw_counter <= 360:\n\t\tline_end = circle_radius.rotated(deg_to_rad(draw_counter)) + circle_center\n\t\tcanvas.draw_line(line_origin, line_end, color)\n\t\tdraw_counter += 1\n\t\tline_origin = line_end\n\n\tline_end = circle_radius.rotated(TAU) + circle_center\n\tcanvas.draw_line(line_origin, line_end, color)\n"
  },
  {
    "path": "src/Tools/DesignTools/CurveTool.gd.uid",
    "content": "uid://u1adalnj5cfh\n"
  },
  {
    "path": "src/Tools/DesignTools/CurveTool.tscn",
    "content": "[gd_scene format=3 uid=\"uid://ckfvd8gf3oy4r\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://ubyatap3sylf\" path=\"res://src/Tools/BaseDraw.tscn\" id=\"1_rvuea\"]\n[ext_resource type=\"Script\" uid=\"uid://u1adalnj5cfh\" path=\"res://src/Tools/DesignTools/CurveTool.gd\" id=\"2_tjnp6\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"3_g0nav\"]\n\n[node name=\"ToolOptions\" unique_id=17636591 instance=ExtResource(\"1_rvuea\")]\nscript = ExtResource(\"2_tjnp6\")\n\n[node name=\"ThicknessSlider\" parent=\".\" index=\"2\" unique_id=721842996 instance=ExtResource(\"3_g0nav\")]\nlayout_mode = 2\nmin_value = 1.0\nvalue = 1.0\nprefix = \"Size:\"\nsuffix = \"px\"\nallow_global_input_events = true\nglobal_increment_action = \"brush_size_increment\"\nglobal_decrement_action = \"brush_size_decrement\"\n\n[node name=\"BezierOptions\" type=\"HBoxContainer\" parent=\".\" index=\"3\" unique_id=1966803803]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"BezierOptions\" index=\"0\" unique_id=1474254133]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Mode:\"\n\n[node name=\"BezierMode\" type=\"OptionButton\" parent=\"BezierOptions\" index=\"1\" unique_id=133195326]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Chained: Makes a chain of multiple bezier curves, similar to Krita's curve tool.\nSingle: Makes a single bezier curve, similar to Aseprite's curve tool.\"\nmouse_default_cursor_shape = 2\nalignment = 1\nselected = 0\nitem_count = 2\npopup/item_0/text = \"Chained\"\npopup/item_0/id = 0\npopup/item_1/text = \"Single\"\npopup/item_1/id = 1\n\n[node name=\"FillCheckbox\" type=\"CheckBox\" parent=\".\" index=\"4\" unique_id=374483038]\nlayout_mode = 2\ntooltip_text = \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmouse_default_cursor_shape = 2\ntext = \"Fill Shape\"\n\n[node name=\"Brush\" parent=\".\" index=\"5\" unique_id=634582773]\nvisible = false\n\n[node name=\"DoubleClickTimer\" type=\"Timer\" parent=\".\" index=\"8\" unique_id=33007697]\nwait_time = 0.2\none_shot = true\n\n[connection signal=\"value_changed\" from=\"ThicknessSlider\" to=\".\" method=\"_on_thickness_value_changed\"]\n[connection signal=\"item_selected\" from=\"BezierOptions/BezierMode\" to=\".\" method=\"_on_bezier_mode_item_selected\"]\n[connection signal=\"toggled\" from=\"FillCheckbox\" to=\".\" method=\"_on_fill_checkbox_toggled\"]\n"
  },
  {
    "path": "src/Tools/DesignTools/EllipseTool.gd",
    "content": "extends \"res://src/Tools/BaseShapeDrawer.gd\"\n\n\nfunc _get_shape_points_filled(shape_size: Vector2i) -> Array[Vector2i]:\n\treturn DrawingAlgos.get_ellipse_points_filled(Vector2i.ZERO, shape_size, _thickness)\n\n\nfunc _get_shape_points(shape_size: Vector2i) -> Array[Vector2i]:\n\t# Return ellipse with thickness 1\n\tif _thickness == 1:\n\t\treturn DrawingAlgos.get_ellipse_points(Vector2i.ZERO, shape_size)\n\n\tvar size_offset := Vector2i.ONE * (_thickness - 1)\n\tvar new_size := shape_size + size_offset\n\tvar inner_ellipse_size := new_size - 2 * size_offset\n\n\t# The inner ellipse is to small to create a gap in the middle of the ellipse,\n\t# just return a filled ellipse\n\tif inner_ellipse_size.x <= 2 and inner_ellipse_size.y <= 2:\n\t\treturn _get_shape_points_filled(shape_size)\n\n\t# Adapted scanline algorithm to fill between 2 ellipses, to create a thicker ellipse\n\tvar res_array: Array[Vector2i] = []\n\tvar border_ellipses := (\n\t\tDrawingAlgos.get_ellipse_points(Vector2i.ZERO, new_size)\n\t\t+ DrawingAlgos.get_ellipse_points(size_offset, inner_ellipse_size)\n\t)  # Outer and inner ellipses\n\tvar bitmap := _fill_bitmap_with_points(border_ellipses, new_size)\n\tvar smallest_side := mini(new_size.x, new_size.y)\n\tvar largest_side := maxi(new_size.x, new_size.y)\n\tvar scan_dir := Vector2i(0, 1) if smallest_side == new_size.x else Vector2i(1, 0)\n\tvar iscan_dir := Vector2i(1, 0) if smallest_side == new_size.x else Vector2i(0, 1)\n\tvar ie_relevant_offset_side := size_offset.x if smallest_side == new_size.x else size_offset.y\n\tvar h_ls_c := ceili(largest_side / 2.0)\n\n\tfor s in range(ceili(smallest_side / 2.0)):\n\t\tif s <= ie_relevant_offset_side:\n\t\t\tvar can_draw := false\n\t\t\tfor l in range(h_ls_c):\n\t\t\t\tvar pos := scan_dir * l + iscan_dir * s\n\t\t\t\tif bitmap.get_bitv(pos):\n\t\t\t\t\tcan_draw = true\n\t\t\t\tif can_draw:\n\t\t\t\t\tvar mirror_smallest_side := iscan_dir * (smallest_side - 1 - 2 * s)\n\t\t\t\t\tvar mirror_largest_side := scan_dir * (largest_side - 1 - 2 * l)\n\t\t\t\t\tres_array.append(pos)\n\t\t\t\t\tres_array.append(pos + mirror_largest_side)\n\t\t\t\t\tres_array.append(pos + mirror_smallest_side)\n\t\t\t\t\tres_array.append(pos + mirror_smallest_side + mirror_largest_side)\n\t\telse:\n\t\t\t# Find outer ellipse\n\t\t\tvar l_o := 0\n\t\t\tfor l in range(h_ls_c):\n\t\t\t\tvar pos := scan_dir * l + iscan_dir * s\n\t\t\t\tif bitmap.get_bitv(pos):\n\t\t\t\t\tl_o = l\n\t\t\t\t\tbreak\n\t\t\t# Find inner ellipse\n\t\t\tvar li := 0\n\t\t\tfor l in range(h_ls_c, 0, -1):\n\t\t\t\tvar pos := scan_dir * l + iscan_dir * s\n\t\t\t\tif bitmap.get_bitv(pos):\n\t\t\t\t\tli = l\n\t\t\t\t\tbreak\n\t\t\t# Fill between both\n\t\t\tfor l in range(l_o, li + 1):\n\t\t\t\tvar pos := scan_dir * l + iscan_dir * s\n\t\t\t\tvar mirror_smallest_side := iscan_dir * (smallest_side - 1 - 2 * s)\n\t\t\t\tvar mirror_largest_side := scan_dir * (largest_side - 1 - 2 * l)\n\t\t\t\tres_array.append(pos)\n\t\t\t\tres_array.append(pos + mirror_largest_side)\n\t\t\t\tres_array.append(pos + mirror_smallest_side)\n\t\t\t\tres_array.append(pos + mirror_smallest_side + mirror_largest_side)\n\n\treturn res_array\n"
  },
  {
    "path": "src/Tools/DesignTools/EllipseTool.gd.uid",
    "content": "uid://crdhxs1mlm2oi\n"
  },
  {
    "path": "src/Tools/DesignTools/EllipseTool.tscn",
    "content": "[gd_scene format=3 uid=\"uid://4hp76lf38bc7\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://n40lhf8hm7o1\" path=\"res://src/Tools/BaseShapeDrawer.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://crdhxs1mlm2oi\" path=\"res://src/Tools/DesignTools/EllipseTool.gd\" id=\"2\"]\n\n[node name=\"ToolOptions\" unique_id=4083025 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n"
  },
  {
    "path": "src/Tools/DesignTools/Eraser.gd",
    "content": "extends BaseDrawTool\n\nvar _last_position := Vector2.INF\nvar _clear_image: Image\nvar _changed := false\n\n\nclass EraseOp:\n\textends Drawer.ColorOp\n\tvar changed := false\n\n\tfunc process(_src: Color, dst: Color) -> Color:\n\t\tchanged = true\n\t\tdst.a -= strength\n\t\tif dst.a <= 0:\n\t\t\tdst = Color(0, 0, 0, 0)\n\t\treturn dst\n\n\nfunc _init() -> void:\n\t_drawer.color_op = EraseOp.new()\n\t_is_eraser = true\n\t_clear_image = Image.create(1, 1, false, Image.FORMAT_RGBA8)\n\t_clear_image.fill(Color(0, 0, 0, 0))\n\n\nfunc get_config() -> Dictionary:\n\tvar config := super.get_config()\n\tconfig[\"strength\"] = _strength\n\treturn config\n\n\nfunc set_config(config: Dictionary) -> void:\n\tsuper.set_config(config)\n\t_strength = config.get(\"strength\", _strength)\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tsuper.draw_start(pos)\n\tif Input.is_action_pressed(&\"draw_color_picker\", true):\n\t\t_picking_color = true\n\t\t_pick_color(pos)\n\t\treturn\n\t_picking_color = false\n\tGlobal.canvas.selection.transform_content_confirm()\n\tprepare_undo()\n\tupdate_mask(_strength == 1)\n\t_changed = false\n\t_drawer.color_op.changed = false\n\t_drawer.reset()\n\n\t_draw_line = Input.is_action_pressed(\"draw_create_line\")\n\tif _draw_line:\n\t\tif Global.mirror_view:\n\t\t\t# mirroring position is ONLY required by \"Preview\"\n\t\t\tpos.x = (Global.current_project.size.x - 1) - pos.x\n\t\t_line_start = pos\n\t\t_line_end = pos\n\t\tupdate_line_polylines(_line_start, _line_end)\n\telse:\n\t\tdraw_tool(pos)\n\t\t_last_position = pos\n\t\tGlobal.canvas.sprite_changed_this_frame = true\n\tcursor_text = \"\"\n\n\nfunc draw_move(pos_i: Vector2i) -> void:\n\tvar pos := _get_stabilized_position(pos_i)\n\tpos = snap_position(pos)\n\tsuper.draw_move(pos)\n\tif _picking_color:  # Still return even if we released Alt\n\t\tif Input.is_action_pressed(&\"draw_color_picker\", true):\n\t\t\t_pick_color(pos)\n\t\treturn\n\n\tif _draw_line:\n\t\tif Global.mirror_view:\n\t\t\t# mirroring position is ONLY required by \"Preview\"\n\t\t\tpos.x = (Global.current_project.size.x - 1) - pos.x\n\t\tvar d := _line_angle_constraint(_line_start, pos)\n\t\t_line_end = d.position\n\t\tcursor_text = d.text\n\t\tupdate_line_polylines(_line_start, _line_end)\n\telse:\n\t\tdraw_fill_gap(_last_position, pos)\n\t\t_last_position = pos\n\t\tcursor_text = \"\"\n\t\tGlobal.canvas.sprite_changed_this_frame = true\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tif _picking_color:\n\t\tsuper.draw_end(pos)\n\t\treturn\n\n\tif _draw_line:\n\t\tif Global.mirror_view:\n\t\t\t# now we revert back the coordinates from their mirror form so that line can be drawn\n\t\t\t_line_start.x = (Global.current_project.size.x - 1) - _line_start.x\n\t\t\t_line_end.x = (Global.current_project.size.x - 1) - _line_end.x\n\t\tdraw_tool(_line_start)\n\t\tdraw_fill_gap(_line_start, _line_end)\n\t\t_draw_line = false\n\n\tsuper.draw_end(pos)\n\tcommit_undo()\n\tSteamManager.set_achievement(\"ACH_ERASE_PIXEL\")\n\tcursor_text = \"\"\n\tupdate_random_image()\n\n\nfunc _draw_brush_image(image: Image, src_rect: Rect2i, dst: Vector2i) -> void:\n\t_changed = true\n\tif _strength == 1:\n\t\tvar brush_size := image.get_size()\n\t\tif _clear_image.get_size() != brush_size:\n\t\t\t_clear_image.resize(brush_size.x, brush_size.y, Image.INTERPOLATE_NEAREST)\n\n\t\tvar images := _get_selected_draw_images()\n\t\tfor draw_image in images:\n\t\t\tdraw_image.blit_rect_mask(_clear_image, image, src_rect, dst)\n\t\t\tdraw_image.convert_rgb_to_indexed()\n\telse:\n\t\tfor xx in image.get_size().x:\n\t\t\tfor yy in image.get_size().y:\n\t\t\t\tif image.get_pixel(xx, yy).a > 0:\n\t\t\t\t\tvar pos := Vector2i(xx, yy) + dst - src_rect.position\n\t\t\t\t\t_set_pixel(pos, true)\n\n\nfunc _on_Opacity_value_changed(value: float) -> void:\n\t_strength = value / 255\n\tupdate_config()\n\tsave_config()\n\n\nfunc update_config() -> void:\n\tsuper.update_config()\n\t$OpacitySlider.value = _strength * 255\n\n\nfunc update_brush() -> void:\n\tsuper.update_brush()\n\t$ColorInterpolation.visible = false\n"
  },
  {
    "path": "src/Tools/DesignTools/Eraser.gd.uid",
    "content": "uid://c6yh8ratq60si\n"
  },
  {
    "path": "src/Tools/DesignTools/Eraser.tscn",
    "content": "[gd_scene format=3 uid=\"uid://btmbrqqig7wys\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://ubyatap3sylf\" path=\"res://src/Tools/BaseDraw.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://c6yh8ratq60si\" path=\"res://src/Tools/DesignTools/Eraser.gd\" id=\"2\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"3\"]\n\n[node name=\"ToolOptions\" unique_id=1095270635 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n\n[node name=\"OpacitySlider\" parent=\".\" index=\"5\" unique_id=1822012064 instance=ExtResource(\"3\")]\nlayout_mode = 2\nmax_value = 255.0\nvalue = 255.0\nprefix = \"Opacity:\"\n\n[connection signal=\"value_changed\" from=\"OpacitySlider\" to=\".\" method=\"_on_Opacity_value_changed\"]\n"
  },
  {
    "path": "src/Tools/DesignTools/IsometricBoxTool.gd",
    "content": "extends BaseDrawTool\n\nenum BoxState { SIDE_A, SIDE_GAP, SIDE_B, H, READY }\nenum EdgeBlend { TOOL_COLOR, ADJUSTED_AVERAGE, BLEND_INTERFACE, NONE }\n\nvar text_server := TextServerManager.get_primary_interface()\nvar _fill_inside := false  ## When true, the inside area of the curve gets filled.\nvar _thickness := 1  ## The thickness of the Edge.\nvar _drawing := false  ## Set to true when shape is being drawn.\nvar _blend_edge_mode := EdgeBlend.TOOL_COLOR  ## The blend method used by edges\nvar _color_from_other_tool := false\nvar _fill_inside_rect := Rect2i()  ## The bounding box that surrounds the area that gets filled.\nvar _current_state: int = BoxState.SIDE_A  ## Current state of the bezier curve (in SINGLE mode)\nvar _last_pixel: Vector2i\nvar _control_pts: Array[Vector2i]\nvar _origin: Vector2i\nvar _left_shade_value := 0.5\nvar _right_shade_value := 0.5\n\n\nfunc _init() -> void:\n\t# To prevent tool from remaining active when switching projects\n\tGlobal.project_about_to_switch.connect(_clear)\n\t_drawer.color_op = Drawer.ColorOp.new()\n\tupdate_indicator()\n\n\nfunc _ready() -> void:\n\tsuper()\n\tif tool_slot.button == MOUSE_BUTTON_RIGHT:\n\t\t$ThicknessSlider.allow_global_input_events = not Global.share_options_between_tools\n\t\tGlobal.share_options_between_tools_changed.connect(\n\t\t\tfunc(enabled): $ThicknessSlider.allow_global_input_events = not enabled\n\t\t)\n\n\nfunc update_brush() -> void:\n\tpass\n\n\nfunc _on_thickness_value_changed(value: int) -> void:\n\t_thickness = value\n\tupdate_indicator()\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_fill_checkbox_toggled(toggled_on: bool) -> void:\n\tif _fill_inside != toggled_on:\n\t\t_fill_inside = toggled_on\n\t\tupdate_config()\n\t\tsave_config()\n\n\nfunc _on_edge_behavior_item_selected(index: int) -> void:\n\t@warning_ignore(\"int_as_enum_without_cast\")\n\t_blend_edge_mode = index\n\t%ColorFromTool.visible = _blend_edge_mode == EdgeBlend.TOOL_COLOR\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_color_from_tool_toggled(toggled_on: bool) -> void:\n\tif _color_from_other_tool != toggled_on:\n\t\t_color_from_other_tool = toggled_on\n\t\tupdate_config()\n\t\tsave_config()\n\n\nfunc _on_left_shade_option_item_selected(_index: int) -> void:\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_right_shade_option_item_selected(_index: int) -> void:\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_left_shade_slider_value_changed(value: float) -> void:\n\tif _left_shade_value != value:\n\t\t_left_shade_value = value\n\t\tupdate_config()\n\t\tsave_config()\n\n\nfunc _on_right_shade_slider_value_changed(value: float) -> void:\n\tif _right_shade_value != value:\n\t\t_right_shade_value = value\n\t\tupdate_config()\n\t\tsave_config()\n\n\nfunc update_indicator() -> void:\n\tvar bitmap := BitMap.new()\n\tbitmap.create(Vector2i.ONE * _thickness)\n\tbitmap.set_bit_rect(Rect2i(Vector2i.ZERO, Vector2i.ONE * _thickness), true)\n\t_indicator = bitmap\n\t_polylines = _create_polylines(_indicator)\n\n\nfunc get_config() -> Dictionary:\n\tvar config := super.get_config()\n\tconfig[\"thickness\"] = _thickness\n\tconfig[\"fill_inside\"] = _fill_inside\n\tconfig[\"blend_edge_mode\"] = _blend_edge_mode\n\tconfig[\"color_from_other_tool\"] = _color_from_other_tool\n\tconfig[\"left_shade_value\"] = _left_shade_value\n\tconfig[\"right_shade_value\"] = _right_shade_value\n\tconfig[\"left_shade_option\"] = %LeftShadeOption.selected\n\tconfig[\"right_shade_option\"] = %RightShadeOption.selected\n\treturn config\n\n\nfunc set_config(config: Dictionary) -> void:\n\tsuper.set_config(config)\n\t_thickness = config.get(\"thickness\", _thickness)\n\t_fill_inside = config.get(\"fill_inside\", _fill_inside)\n\t_blend_edge_mode = config.get(\"blend_edge_mode\", _blend_edge_mode)\n\t_color_from_other_tool = config.get(\"color_from_other_tool\", _color_from_other_tool)\n\t_left_shade_value = config.get(\"left_shade_value\", _left_shade_value)\n\t_right_shade_value = config.get(\"right_shade_value\", _right_shade_value)\n\n\t%LeftShadeOption.select(config.get(\"left_shade_option\", 1))\n\t%RightShadeOption.select(config.get(\"right_shade_option\", 0))\n\t%ColorFromTool.visible = _blend_edge_mode == EdgeBlend.TOOL_COLOR\n\t%ColorFromTool.button_pressed = _color_from_other_tool\n\n\nfunc update_config() -> void:\n\tsuper.update_config()\n\t$ThicknessSlider.value = _thickness\n\t$FillCheckbox.button_pressed = _fill_inside\n\t$FillOptions.visible = _fill_inside\n\t%EdgeBehavior.selected = _blend_edge_mode\n\t%ColorFromTool.button_pressed = _color_from_other_tool\n\t%LeftShadeSlider.value = _left_shade_value\n\t%RightShadeSlider.value = _right_shade_value\n\n\n## This tool has no brush, so just return the indicator as it is.\nfunc _create_brush_indicator() -> BitMap:\n\treturn _indicator\n\n\nfunc _input(event: InputEvent) -> void:\n\tif _drawing:\n\t\tif event.is_action_pressed(\"change_tool_mode\"):\n\t\t\tif _control_pts.size() > 0:\n\t\t\t\t_current_state -= 1\n\t\t\t\t_control_pts.resize(_control_pts.size() - 1)\n\t\t\telse:\n\t\t\t\t_drawing = false\n\t\t\t\t_clear()\n\telse:\n\t\t# If options are being shared, no need to change the brush size on the right tool slots,\n\t\t# otherwise it will be changed twice on both left and right tools.\n\t\tif tool_slot.button == MOUSE_BUTTON_RIGHT and Global.share_options_between_tools:\n\t\t\treturn\n\t\tvar brush_size_value := _mm_action.get_action_distance_int(event)\n\t\t$ThicknessSlider.value += brush_size_value\n\n\nfunc cursor_move(pos: Vector2i) -> void:\n\tsuper.cursor_move(pos)\n\tif Global.mirror_view:\n\t\tpos.x = Global.current_project.size.x - pos.x - 1\n\tif _drawing:\n\t\tif Input.is_action_pressed(\"shape_displace\"):\n\t\t\t_origin += pos - _last_pixel\n\t\t\tfor i in _control_pts.size():\n\t\t\t\t_control_pts[i] = _control_pts[i] + pos - _last_pixel\n\t\t# This is used for preview\n\t\tpos = box_constraint(_last_pixel, pos, _current_state)\n\t_last_pixel = angle_constraint(Vector2(pos))\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tsuper.draw_start(pos)\n\tif Input.is_action_pressed(\"shape_displace\"):\n\t\t_picking_color = true\n\t\t_pick_color(pos)\n\t\treturn\n\tcursor_move(pos)\n\tpos = angle_constraint(Vector2(pos))\n\t_picking_color = false  # fixes _picking_color being true indefinitely after we pick color\n\tGlobal.canvas.selection.transform_content_confirm()\n\tupdate_mask()\n\tif !_drawing:\n\t\t_drawing = true\n\t\t_origin = pos\n\telse:\n\t\tpos = box_constraint(_last_pixel, pos, _current_state)\n\t\tif _current_state < BoxState.READY:\n\t\t\t_control_pts.append(pos)\n\t\t_current_state += 1\n\t_fill_inside_rect = Rect2i(pos, Vector2i.ZERO)\n\n\nfunc draw_move(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tsuper.draw_move(pos)\n\tif _picking_color:  # Still return even if we released Alt\n\t\tif Input.is_action_pressed(\"shape_displace\"):\n\t\t\t_pick_color(pos)\n\t\treturn\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\t# we still need bezier preview when curve is in SINGLE mode.\n\tif _current_state == BoxState.READY:\n\t\t_draw_shape()\n\tsuper.draw_end(pos)\n\tGlobal.canvas.measurements.queue_redraw()\n\n\nfunc cancel_tool() -> void:\n\tsuper()\n\t_clear()\n\n\nfunc draw_preview() -> void:\n\tvar previews := Global.canvas.previews_sprite\n\tif not _drawing:\n\t\treturn\n\tvar image := Image.create(\n\t\tGlobal.current_project.size.x, Global.current_project.size.y, false, Image.FORMAT_LA8\n\t)\n\n\tvar box_points = _control_pts.duplicate()\n\tbox_points.push_front(_origin)\n\tvar canvas := Global.canvas.previews\n\n\tcanvas.draw_set_transform(Vector2(0.5, 0.5))\n\tfor i: int in box_points.size():\n\t\tvar point: Vector2 = box_points[i]\n\t\tcanvas.draw_set_transform(point + Vector2(0.5, 0.5))\n\t\t# Draw points on screen\n\t\tcanvas.draw_circle(Vector2.ZERO, 0.2, Color.WHITE, false)\n\t\tcanvas.draw_circle(Vector2.ZERO, 0.4, Color.WHITE, false)\n\t\tcanvas.draw_line(Vector2.UP * 0.5, Vector2.DOWN * 0.5, Color.WHITE)\n\t\tcanvas.draw_line(Vector2.RIGHT * 0.5, Vector2.LEFT * 0.5, Color.WHITE)\n\tif box_points.size() in [2, 4]:\n\t\tvar current_pixel := Global.canvas.current_pixel.floor()\n\t\tcurrent_pixel = box_constraint(_last_pixel, current_pixel, _current_state)\n\t\tvar length := int(current_pixel.distance_to(box_points[-1]))\n\t\tvar prefix := \"Corner\" if box_points.size() == 2 else \"Height\"\n\t\tvar str_val := str(\n\t\t\tprefix, \": \", length + 1 if box_points.size() == 2 else length, \" \", \"px\"\n\t\t)\n\t\tstr_val = text_server.format_number(str_val)\n\t\t# We are using the measurementsnode for measurement based previews.\n\t\tGlobal.canvas.measurements.draw.connect(\n\t\t\t_preview_updater.bind(current_pixel, box_points[-1], str_val)\n\t\t)\n\t\tGlobal.canvas.measurements.queue_redraw()\n\n\tfor points: Array[Vector2i] in _iso_box_outline(box_points).values():\n\t\tfor i in points.size():\n\t\t\tif Global.mirror_view:  # This fixes previewing in mirror mode\n\t\t\t\tpoints[i].x = image.get_width() - points[i].x - 1\n\t\t\tif Rect2i(Vector2i.ZERO, image.get_size()).has_point(points[i]):\n\t\t\t\timage.set_pixelv(points[i], Color.WHITE)\n\t\t# Handle mirroring\n\t\tfor point in mirror_array(points):\n\t\t\tif Rect2i(Vector2i.ZERO, image.get_size()).has_point(point):\n\t\t\t\timage.set_pixelv(point, Color.WHITE)\n\n\tvar texture := ImageTexture.create_from_image(image)\n\tpreviews.texture = texture\n\n\nfunc _preview_updater(point_a: Vector2, point_b: Vector2, str_value: String) -> void:\n\tvar measurements = Global.canvas.measurements\n\tvar font = measurements.font\n\tvar line_color = Color.WHITE\n\tvar offset = (point_a - point_b).rotated(PI / 2).normalized()\n\tmeasurements.draw_set_transform(Vector2(0.5, 0.5) + offset)\n\tmeasurements.draw_line(point_a + offset, point_b + offset, line_color)\n\tmeasurements.draw_line(point_a, point_a + offset, line_color)\n\tmeasurements.draw_line(point_b, point_b + offset, line_color)\n\tvar pos = point_a + (point_b - point_a) / 2\n\tmeasurements.draw_set_transform(\n\t\tpos + offset * 5, Global.camera.rotation, Vector2.ONE / Global.camera.zoom\n\t)\n\tmeasurements.draw_string(font, Vector2i.ZERO, str_value)\n\tGlobal.canvas.measurements.draw.disconnect(_preview_updater)\n\n\nfunc _draw_shape() -> void:\n\t_drawing = false\n\tprepare_undo()\n\tvar images := _get_selected_draw_images()\n\tif _fill_inside and !Tools.is_placing_tiles():\n\t\t# converting control points to local basis vectors\n\t\tvar a = _control_pts[0] - _origin\n\t\tvar gap = _control_pts[1] - _control_pts[0]\n\t\tvar b = _control_pts[2] - _control_pts[1]\n\t\tvar h = _control_pts[3] - _control_pts[2]\n\t\th.y = abs(h.y)\n\t\tvar color = tool_slot.color\n\t\tif color.a == 0:\n\t\t\t_clear()\n\t\tvar left_color = (\n\t\t\tcolor.lightened(_left_shade_value)\n\t\t\tif %LeftShadeOption.selected == 0\n\t\t\telse color.darkened(_left_shade_value)\n\t\t)\n\t\tvar right_color = (\n\t\t\tcolor.lightened(_right_shade_value)\n\t\t\tif %RightShadeOption.selected == 0\n\t\t\telse color.darkened(_right_shade_value)\n\t\t)\n\t\tvar box_img = generate_isometric_box(\n\t\t\ta, gap, b, h.y, color, left_color, right_color, _blend_edge_mode\n\t\t)\n\t\tif !box_img:  # Invalid shape\n\t\t\t_clear()\n\t\t# Fill mode works differently, (we have to consider all 8 surrounding points)\n\t\tvar project := Global.current_project\n\t\tvar central_point := project.tiles.get_canon_position(_origin)\n\t\tvar positions := project.tiles.get_point_in_tiles(central_point)\n\t\tvar offset = min(0, a.y, (a + gap).y, b.y, (b + gap).y, (a + b + gap).y) - 1\n\t\tvar draw_rectangle := _get_draw_rect()\n\t\tif Global.current_project.has_selection and project.tiles.mode == Tiles.MODE.NONE:\n\t\t\tpositions = Global.current_project.selection_map.get_point_in_tile_mode(central_point)\n\t\tvar box_size = box_img.get_size()\n\t\tfor i in positions.size():\n\t\t\tvar pos := positions[i]\n\t\t\tvar dst := (\n\t\t\t\tVector2i(0, -h.y + offset)\n\t\t\t\t+ pos\n\t\t\t\t- Vector2i(floori(_thickness / 2.0), floori(_thickness / 2.0))\n\t\t\t)\n\t\t\tvar dst_rect := Rect2i(dst, box_size)\n\t\t\tdst_rect = dst_rect.intersection(draw_rectangle)\n\t\t\tif dst_rect.size == Vector2i.ZERO:\n\t\t\t\tcontinue\n\t\t\tvar src_rect := Rect2i(dst_rect.position - dst, dst_rect.size)\n\t\t\tvar brush_image: Image = remove_unselected_parts_of_brush(box_img, dst)\n\t\t\tdst = dst_rect.position\n\t\t\t_draw_brush_image(brush_image, src_rect, dst)\n\n\t\t\t# Handle Mirroring\n\t\t\tvar mirror_x := (project.x_symmetry_point + 1) - dst.x - src_rect.size.x\n\t\t\tvar mirror_y := (project.y_symmetry_point + 1) - dst.y - src_rect.size.y\n\n\t\t\tif Tools.horizontal_mirror or Tools.vertical_mirror:\n\t\t\t\tvar brush_copy_x = brush_image.duplicate()\n\t\t\t\tbrush_copy_x.flip_x()\n\t\t\t\tvar brush_copy_y = brush_image.duplicate()\n\t\t\t\tbrush_copy_y.flip_y()\n\t\t\t\tif Tools.horizontal_mirror:\n\t\t\t\t\tvar x_dst := Vector2i(mirror_x, dst.y)\n\t\t\t\t\tvar mirr_b_x = remove_unselected_parts_of_brush(brush_copy_x, x_dst)\n\t\t\t\t\t_draw_brush_image(mirr_b_x, _flip_rect(src_rect, box_size, true, false), x_dst)\n\t\t\t\t\tif Tools.vertical_mirror:\n\t\t\t\t\t\tbrush_copy_x.flip_y()\n\t\t\t\t\t\tvar xy_dst := Vector2i(mirror_x, mirror_y)\n\t\t\t\t\t\tvar mirr_b_xy := remove_unselected_parts_of_brush(brush_copy_x, xy_dst)\n\t\t\t\t\t\t_draw_brush_image(\n\t\t\t\t\t\t\tmirr_b_xy, _flip_rect(src_rect, box_size, true, true), xy_dst\n\t\t\t\t\t\t)\n\t\t\t\tif Tools.vertical_mirror:\n\t\t\t\t\tvar y_dst := Vector2i(dst.x, mirror_y)\n\t\t\t\t\tvar mirr_b_y := remove_unselected_parts_of_brush(brush_copy_y, y_dst)\n\t\t\t\t\t_draw_brush_image(mirr_b_y, _flip_rect(src_rect, box_size, false, true), y_dst)\n\telse:\n\t\tvar box_points = _control_pts.duplicate()\n\t\tbox_points.push_front(_origin)\n\t\tfor points: Array[Vector2i] in _iso_box_outline(box_points).values():\n\t\t\tfor point in points:\n\t\t\t\t# Reset drawer every time because pixel perfect sometimes breaks the tool\n\t\t\t\t_drawer.reset()\n\t\t\t\t_fill_inside_rect = _fill_inside_rect.expand(point)\n\t\t\t\t# Draw each point offsetted based on the shape's thickness\n\t\t\t\t_draw_pixel(point, images)\n\t_clear()\n\tcommit_undo(\"Draw Shape\")\n\n\nfunc _draw_pixel(point: Vector2i, images: Array[ImageExtended]) -> void:\n\tif Tools.is_placing_tiles():\n\t\tdraw_tile(point)\n\telse:\n\t\tif Global.current_project.can_pixel_get_drawn(point):\n\t\t\tfor image in images:\n\t\t\t\t_drawer.set_pixel(image, point, tool_slot.color)\n\n\nfunc _clear() -> void:\n\t_control_pts.clear()\n\t_fill_inside_rect = Rect2i()\n\t_current_state = BoxState.SIDE_A\n\tGlobal.canvas.previews_sprite.texture = null\n\tGlobal.canvas.previews.queue_redraw()\n\tGlobal.canvas.measurements.queue_redraw()\n\n\n## Get the [member _curve]'s baked points, and draw lines between them\n## using [method Geometry2D.bresenham_line]. [param box_points] contains the minimum number of\n## points required to construct a box.\n## namely origin, first edge end, gap end, second edge end, height end\nfunc _iso_box_outline(box_points: Array[Vector2i]) -> Dictionary:\n\tvar origin: Vector2i = box_points.pop_front()\n\tif _current_state < BoxState.READY:\n\t\tbox_points.append(_last_pixel)\n\tvar edge_up: Array[Vector2i]\n\tvar edge_down_left: Array[Vector2i]\n\tvar edge_down_right: Array[Vector2i]\n\tvar edge_left: Array[Vector2i]\n\tvar edge_right: Array[Vector2i]\n\tvar edge_0_1: Array[Vector2i]\n\tvar edge_0_2: Array[Vector2i]\n\tvar edge_1_2: Array[Vector2i]\n\tif box_points.size() >= 1:  # Line\n\t\t# (origin --> point A)\n\t\tedge_0_1.append_array(bresenham_line_thickness(origin, box_points[0], _thickness))\n\t\tif box_points.size() >= 2:  # Isometric box\n\t\t\t# (point A --> point A + gap)\n\t\t\tvar gap = box_points[1] - box_points[0]\n\t\t\tvar point_b = box_points[1]  # Assume it's the same as gap point for now\n\t\t\tvar gap_points = bresenham_line_thickness(\n\t\t\t\tbox_points[0], box_points[0] + gap, _thickness\n\t\t\t)\n\t\t\tif box_points.size() < 4:  # Optimization\n\t\t\t\tedge_1_2.append_array(gap_points)\n\t\t\tif box_points.size() >= 3:\n\t\t\t\t# (point A + gap --> point B)\n\t\t\t\tpoint_b = box_points[2]\n\t\t\t\tedge_0_2.append_array(\n\t\t\t\t\tbresenham_line_thickness(box_points[0] + gap, point_b, _thickness)\n\t\t\t\t)\n\t\t\t# draw the other sides of isometric polygon (we also add a 1px vertical offset)\n\t\t\tvar upper_a = point_b - box_points[1] + origin + Vector2i.UP  # origin + point A basis\n\t\t\t# (point B --> upper_a + gap)\n\t\t\tedge_up.append_array(\n\t\t\t\tbresenham_line_thickness(point_b + Vector2i.UP, upper_a + gap, _thickness)\n\t\t\t)\n\t\t\t# (upper_a + gap --> upper_a)\n\t\t\tedge_up.append_array(bresenham_line_thickness(upper_a + gap, upper_a, _thickness))\n\t\t\t# (upper_a --> origin)\n\t\t\tedge_up.append_array(\n\t\t\t\tbresenham_line_thickness(upper_a, origin + Vector2i.UP, _thickness)\n\t\t\t)\n\t\t\tif box_points.size() == 4:\n\t\t\t\t# move the polygon up a height\n\t\t\t\tvar height = Vector2i(0, -abs(box_points[3].y - box_points[2].y))\n\t\t\t\tfor i in edge_up.size():\n\t\t\t\t\tif i < edge_0_1.size():\n\t\t\t\t\t\tedge_0_1[i] += height\n\t\t\t\t\tif i < edge_0_2.size():\n\t\t\t\t\t\tedge_0_2[i] += height\n\t\t\t\t\tedge_up[i] += height\n\t\t\t\t## Add new foundation lines\n\t\t\t\tedge_down_left.append_array(\n\t\t\t\t\tbresenham_line_thickness(origin, box_points[0], _thickness)\n\t\t\t\t)\n\t\t\t\tedge_down_right.append_array(\n\t\t\t\t\tbresenham_line_thickness(box_points[0] + gap, point_b, _thickness)\n\t\t\t\t)\n\t\t\t\t# Draw left/right vertical boundaries\n\t\t\t\tedge_left.append_array(\n\t\t\t\t\tbresenham_line_thickness(origin, origin + height, _thickness)\n\t\t\t\t)\n\t\t\t\tedge_right.append_array(\n\t\t\t\t\tbresenham_line_thickness(point_b, point_b + height, _thickness)\n\t\t\t\t)\n\t\t\t\tedge_1_2.clear()\n\t\t\t\tfor point in gap_points:\n\t\t\t\t\t# NOTE: Height vector is negative so that it points upwards\n\t\t\t\t\tvar end = point + height\n\t\t\t\t\tend.y = min(point.y, end.y)\n\t\t\t\t\tedge_1_2.append_array(Geometry2D.bresenham_line(point, end))\n\tif _current_state < BoxState.READY:\n\t\tbox_points.resize(box_points.size() - 1)\n\treturn {\n\t\t\"edge_up\": edge_up,\n\t\t\"edge_down_left\": edge_down_left,\n\t\t\"edge_down_right\": edge_down_right,\n\t\t\"edge_left\": edge_left,\n\t\t\"edge_right\": edge_right,\n\t\t\"edge_0_1\": edge_0_1,\n\t\t\"edge_0_2\": edge_0_2,\n\t\t\"edge_1_2\": edge_1_2,\n\t}\n\n\nfunc generate_isometric_box(\n\ta: Vector2i,\n\tgap: Vector2i,\n\tb: Vector2i,\n\tbox_height: int,\n\tc_t: Color,\n\tc_l: Color,\n\tc_r: Color,\n\tblend_mode := EdgeBlend.TOOL_COLOR\n) -> Image:\n\t# a is ↘, b is ↗  (both of them are basis vectors)\n\tvar h := Vector2i(0, box_height)\n\tvar width: int = (a + gap + b).x + _thickness\n\tvar height: int = (\n\t\tmax(0, a.y, (a + gap).y, b.y, (b + gap).y, (a + b + gap).y)\n\t\t- min(0, a.y, (a + gap).y, b.y, (b + gap).y, (a + b + gap).y)\n\t\t+ abs(box_height + _thickness + 1)\n\t)\n\t# starting point of upper plate\n\tvar u_st = Vector2i(\n\t\tfloori(_thickness / 2.0),\n\t\t(\n\t\t\tabs(min(0, a.y, b.y, (b + gap).y, (a + gap).y, (a + gap + b).y))\n\t\t\t+ 1\n\t\t\t+ floori(_thickness / 2.0)\n\t\t)\n\t)\n\t# starting point of lower plate\n\tvar b_st = u_st + h\n\t# a convenient lambdha function\n\tvar basis_to_polygon := func(basis_steps: Array) -> Array[Vector2i]:\n\t\tvar poly: Array[Vector2i] = [basis_steps.pop_front()]\n\t\tfor i in basis_steps.size():\n\t\t\tpoly.append(poly[i] + basis_steps[i])\n\t\treturn poly\n\t# info for constructing the box\n\tvar top_poly: PackedVector2Array = basis_to_polygon.call(\n\t\t[u_st, a, gap, b, Vector2i.UP, -a, -gap, -b]\n\t)\n\tvar b_l_poly: PackedVector2Array = basis_to_polygon.call([b_st, a, -h, -a])\n\tvar b_r_poly: PackedVector2Array = basis_to_polygon.call([b_st + a + gap, b, -h, -b])\n\tvar b_poly: Array[Vector2i] = basis_to_polygon.call([b_st, a, gap, b, -h])\n\tvar edge_points = _iso_box_outline(b_poly)\n\tvar edge_up: Array[Vector2i] = edge_points.get(\"edge_up\", [])\n\tvar edge_down_left: Array[Vector2i] = edge_points.get(\"edge_down_left\", [])\n\tvar edge_down_right: Array[Vector2i] = edge_points.get(\"edge_down_right\", [])\n\tvar edge_left: Array[Vector2i] = edge_points.get(\"edge_left\", [])\n\tvar edge_right: Array[Vector2i] = edge_points.get(\"edge_right\", [])\n\tvar edge_0_1: Array[Vector2i] = edge_points.get(\"edge_0_1\", [])\n\tvar edge_0_2: Array[Vector2i] = edge_points.get(\"edge_0_2\", [])\n\tvar edge_1_2: Array[Vector2i] = edge_points.get(\"edge_1_2\", [])\n\n\tif width <= 0 or height <= 0:\n\t\treturn\n\tvar image = Image.create(width, height, false, Image.FORMAT_RGBA8)\n\tfor x: int in width:\n\t\tvar top_started: bool = false\n\t\tvar middle_edge_offset := INF  # Allows top polygon to be drawn before starting middle edge.\n\t\tfor y: int in height:\n\t\t\tvar point = Vector2i(x, y)\n\t\t\t## Edge coloring\n\t\t\tvar edge_color: Color\n\t\t\tvar should_color := false\n\t\t\tif point in edge_0_1:\n\t\t\t\tedge_color = get_blend_color(c_t, c_l, blend_mode)\n\t\t\t\ttop_started = false\n\t\t\t\tshould_color = true\n\t\t\telif point in edge_0_2:\n\t\t\t\tedge_color = get_blend_color(c_t, c_r, blend_mode)\n\t\t\t\ttop_started = false\n\t\t\t\tshould_color = true\n\t\t\telif point in edge_1_2:\n\t\t\t\tif middle_edge_offset == INF:\n\t\t\t\t\tmiddle_edge_offset = y + _thickness\n\t\t\t\tif top_started:  # Fills any points missed by top ponygon\n\t\t\t\t\tif point.y < middle_edge_offset and blend_mode == EdgeBlend.NONE:\n\t\t\t\t\t\timage.set_pixelv(point, c_t)\n\t\t\t\t\t\tcontinue\n\t\t\t\tvar least_x = edge_1_2[0].x\n\t\t\t\tvar max_x = edge_1_2[edge_1_2.size() - 1].x\n\t\t\t\tif point.x <= least_x + floori((max_x - least_x) / 2.0):\n\t\t\t\t\tedge_color = get_blend_color(c_l, c_r, blend_mode)\n\t\t\t\telse:\n\t\t\t\t\tedge_color = get_blend_color(c_r, c_l, blend_mode)\n\t\t\t\ttop_started = false\n\t\t\t\tshould_color = true\n\t\t\telif point in edge_up:\n\t\t\t\tedge_color = get_blend_color(c_t, c_t, blend_mode)\n\t\t\t\tshould_color = true\n\t\t\telif point in edge_left or point in edge_down_left:\n\t\t\t\tedge_color = get_blend_color(c_l, c_l, blend_mode)\n\t\t\t\tshould_color = true\n\t\t\telif point in edge_right or point in edge_down_right:\n\t\t\t\tedge_color = get_blend_color(c_r, c_r, blend_mode)\n\t\t\t\tshould_color = true\n\t\t\t## Shape filling\n\t\t\telif Geometry2D.is_point_in_polygon(point, top_poly):\n\t\t\t\ttop_started = true\n\t\t\t\timage.set_pixelv(point, c_t)\n\t\t\telif Geometry2D.is_point_in_polygon(point, b_l_poly):\n\t\t\t\timage.set_pixelv(point, c_l)\n\t\t\telif Geometry2D.is_point_in_polygon(point, b_r_poly):\n\t\t\t\timage.set_pixelv(point, c_r)\n\t\t\tif should_color:\n\t\t\t\tif blend_mode == EdgeBlend.ADJUSTED_AVERAGE:\n\t\t\t\t\tedge_color = (c_t + c_l + c_r) / 3\n\t\t\t\t\t# If the color gets equal to the top tool color, then this only happens when\n\t\t\t\t\t# all sides have same color and we'd end up getting a single colored blob so\n\t\t\t\t\t# we cheat a bit and change the color a little.\n\t\t\t\t\tif edge_color.is_equal_approx(c_t):\n\t\t\t\t\t\tedge_color = edge_color.darkened(0.5)\n\t\t\t\t\t\tif edge_color.is_equal_approx(c_t):\n\t\t\t\t\t\t\tedge_color = edge_color.lightened(0.5)\n\t\t\t\tedge_color = edge_color if box_height > 0 else c_t\n\t\t\t\timage.set_pixelv(point, edge_color)\n\treturn image\n\n\nfunc get_blend_color(face_color: Color, interface_color: Color, blend_mode):\n\tvar tool_color = tool_slot.color\n\tmatch blend_mode:\n\t\tEdgeBlend.TOOL_COLOR:\n\t\t\tif _color_from_other_tool:\n\t\t\t\tvar button = MOUSE_BUTTON_LEFT\n\t\t\t\tif tool_slot.button == MOUSE_BUTTON_LEFT:\n\t\t\t\t\tbutton = MOUSE_BUTTON_RIGHT\n\t\t\t\treturn Tools.get_assigned_color(button)\n\t\t\treturn tool_color\n\t\tEdgeBlend.BLEND_INTERFACE:\n\t\t\treturn (face_color + interface_color) / 2\n\t\t_:\n\t\t\treturn face_color\n\n\nfunc angle_constraint(point: Vector2) -> Vector2i:\n\tif Input.is_action_pressed(\"shape_perfect\") and _current_state < BoxState.H:\n\t\tvar prev_point: Vector2 = _origin\n\t\tif _control_pts.size() > 0:\n\t\t\tprev_point = _control_pts[-1]\n\t\tvar angle := rad_to_deg(prev_point.angle_to_point(point))\n\t\tvar distance := prev_point.distance_to(point)\n\t\tangle = snappedf(angle, 22.5)\n\t\tif step_decimals(angle) != 0:\n\t\t\tvar diff := point - prev_point\n\t\t\tvar v := Vector2(2, 1) if absf(diff.x) > absf(diff.y) else Vector2(1, 2)\n\t\t\tvar p := diff.project(diff.sign() * v).abs().round()\n\t\t\tvar f := p.y if absf(diff.x) > absf(diff.y) else p.x\n\t\t\treturn Vector2i((prev_point + diff.sign() * v * f - diff.sign()).round())\n\t\telse:\n\t\t\treturn Vector2i(\n\t\t\t\t(prev_point + Vector2.RIGHT.rotated(deg_to_rad(angle)) * distance).round()\n\t\t\t)\n\treturn Vector2i(point)\n\n\nfunc box_constraint(old_point: Vector2i, point: Vector2i, state: int) -> Vector2i:\n\tif state == BoxState.SIDE_A:\n\t\tpoint.x = max(_origin.x, point.x)\n\t\tif state != _current_state:\n\t\t\tif Vector2(_last_pixel - _origin).angle() >= Vector2(point - _origin).angle():\n\t\t\t\tpoint = old_point\n\telif state == BoxState.SIDE_GAP:\n\t\t# restriction on Gap joining two sides:\n\t\t# It should always be the same height as SIDE_A with x-value greater or equal than SIDE_A)\n\t\tpoint.x = max(_control_pts[0].x, point.x)\n\t\tif Vector2(point - _origin).angle() > Vector2(_control_pts[0] - _origin).angle():\n\t\t\tpoint = old_point\n\telif state == BoxState.SIDE_B:\n\t\t# restriction on B:\n\t\t# It should always have x-value greater or equal than SIDE_GAP\n\t\t# And is placed such that it's angle with respect to origin is always greater than\n\t\t# angle of SIDE_A point with respect to origin\n\t\tpoint.x = max(_control_pts[1].x, point.x)\n\t\tif (\n\t\t\tVector2(point - _control_pts[0]).angle()\n\t\t\t> Vector2(_control_pts[1] - _control_pts[0]).angle()\n\t\t):\n\t\t\tpoint = old_point\n\telif state == BoxState.H:\n\t\t# restriction on H:\n\t\t# It's x-value is always constant. and y-value is always in upward direction\n\t\tpoint.x = _control_pts[2].x\n\t\tpoint.y = _control_pts[2].y - abs(floori(point.distance_to(_control_pts[2])))\n\treturn point\n\n\nfunc _draw_brush_image(brush_image: Image, src_rect: Rect2i, dst: Vector2i) -> void:\n\tvar images := _get_selected_draw_images()\n\tfor draw_image in images:\n\t\tif Tools.alpha_locked:\n\t\t\tvar mask := draw_image.get_region(Rect2i(dst, brush_image.get_size()))\n\t\t\tdraw_image.blend_rect_mask(brush_image, mask, src_rect, dst)\n\t\telse:\n\t\t\tdraw_image.blend_rect(brush_image, src_rect, dst)\n\t\tdraw_image.convert_rgb_to_indexed()\n"
  },
  {
    "path": "src/Tools/DesignTools/IsometricBoxTool.gd.uid",
    "content": "uid://8bbs5tywj2ya\n"
  },
  {
    "path": "src/Tools/DesignTools/IsometricBoxTool.tscn",
    "content": "[gd_scene format=3 uid=\"uid://cop8ckecfyxli\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://ubyatap3sylf\" path=\"res://src/Tools/BaseDraw.tscn\" id=\"1_a3u7o\"]\n[ext_resource type=\"Script\" uid=\"uid://8bbs5tywj2ya\" path=\"res://src/Tools/DesignTools/IsometricBoxTool.gd\" id=\"2_g8u0x\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"3_xw18e\"]\n\n[node name=\"ToolOptions\" unique_id=2118272060 instance=ExtResource(\"1_a3u7o\")]\nscript = ExtResource(\"2_g8u0x\")\n\n[node name=\"ThicknessSlider\" parent=\".\" index=\"2\" unique_id=993746238 instance=ExtResource(\"3_xw18e\")]\nlayout_mode = 2\nmin_value = 1.0\nvalue = 1.0\nprefix = \"Size:\"\nsuffix = \"px\"\nallow_global_input_events = true\nglobal_increment_action = \"brush_size_increment\"\nglobal_decrement_action = \"brush_size_decrement\"\n\n[node name=\"FillCheckbox\" type=\"CheckBox\" parent=\".\" index=\"3\" unique_id=153226882]\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Fills the drawn shape with color, instead of drawing a hollow shape\"\nmouse_default_cursor_shape = 2\ntext = \"Fill Shape\"\n\n[node name=\"FillOptions\" type=\"VBoxContainer\" parent=\".\" index=\"4\" unique_id=1537216363]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"FillOptions\" index=\"0\" unique_id=2120986562]\nlayout_mode = 2\ntext = \"Edge Color\"\n\n[node name=\"EdgeBehavior\" type=\"OptionButton\" parent=\"FillOptions\" index=\"1\" unique_id=2147109645]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nselected = 0\nfit_to_longest_item = false\nitem_count = 4\npopup/item_0/text = \"Tool color\"\npopup/item_0/id = 0\npopup/item_1/text = \"Adjusted average\"\npopup/item_1/id = 1\npopup/item_2/text = \"Blend at interface\"\npopup/item_2/id = 2\npopup/item_3/text = \"None\"\npopup/item_3/id = 3\n\n[node name=\"ColorFromTool\" type=\"CheckBox\" parent=\"FillOptions\" index=\"2\" unique_id=906515588]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 0\nmouse_default_cursor_shape = 2\ntext = \"From other tool\"\n\n[node name=\"LeftFaceLabel\" type=\"Label\" parent=\"FillOptions\" index=\"3\" unique_id=2088338163]\nlayout_mode = 2\ntext = \"Left Face\"\n\n[node name=\"LeftShadeOption\" type=\"OptionButton\" parent=\"FillOptions\" index=\"4\" unique_id=835812370]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nselected = 1\nitem_count = 2\npopup/item_0/text = \"Lighten\"\npopup/item_0/id = 0\npopup/item_1/text = \"Darken\"\npopup/item_1/id = 1\n\n[node name=\"LeftShadeSlider\" parent=\"FillOptions\" index=\"5\" unique_id=839435554 instance=ExtResource(\"3_xw18e\")]\nunique_name_in_owner = true\nlayout_mode = 2\nmax_value = 1.0\nstep = 0.01\nvalue = 0.5\nprefix = \"Amount:\"\n\n[node name=\"RightFaceLabel\" type=\"Label\" parent=\"FillOptions\" index=\"6\" unique_id=1386747304]\nlayout_mode = 2\ntext = \"Right Face\"\n\n[node name=\"RightShadeOption\" type=\"OptionButton\" parent=\"FillOptions\" index=\"7\" unique_id=708803817]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 2\npopup/item_0/text = \"Lighten\"\npopup/item_0/id = 0\npopup/item_1/text = \"Darken\"\npopup/item_1/id = 1\n\n[node name=\"RightShadeSlider\" parent=\"FillOptions\" index=\"8\" unique_id=593589170 instance=ExtResource(\"3_xw18e\")]\nunique_name_in_owner = true\nlayout_mode = 2\nmax_value = 1.0\nstep = 0.01\nvalue = 0.5\nprefix = \"Amount:\"\n\n[node name=\"Brush\" parent=\".\" index=\"5\" unique_id=634582773]\nvisible = false\n\n[node name=\"DoubleClickTimer\" type=\"Timer\" parent=\".\" index=\"8\" unique_id=184725883]\nwait_time = 0.2\none_shot = true\n\n[connection signal=\"value_changed\" from=\"ThicknessSlider\" to=\".\" method=\"_on_thickness_value_changed\"]\n[connection signal=\"toggled\" from=\"FillCheckbox\" to=\".\" method=\"_on_fill_checkbox_toggled\"]\n[connection signal=\"item_selected\" from=\"FillOptions/EdgeBehavior\" to=\".\" method=\"_on_edge_behavior_item_selected\"]\n[connection signal=\"toggled\" from=\"FillOptions/ColorFromTool\" to=\".\" method=\"_on_color_from_tool_toggled\"]\n[connection signal=\"item_selected\" from=\"FillOptions/LeftShadeOption\" to=\".\" method=\"_on_left_shade_option_item_selected\"]\n[connection signal=\"value_changed\" from=\"FillOptions/LeftShadeSlider\" to=\".\" method=\"_on_left_shade_slider_value_changed\"]\n[connection signal=\"item_selected\" from=\"FillOptions/RightShadeOption\" to=\".\" method=\"_on_right_shade_option_item_selected\"]\n[connection signal=\"value_changed\" from=\"FillOptions/RightShadeSlider\" to=\".\" method=\"_on_right_shade_slider_value_changed\"]\n"
  },
  {
    "path": "src/Tools/DesignTools/LineTool.gd",
    "content": "extends BaseDrawTool\n\nvar _original_pos := Vector2i.ZERO\nvar _start := Vector2i.ZERO\nvar _offset := Vector2i.ZERO\nvar _dest := Vector2i.ZERO\nvar _drawing := false\nvar _displace_origin := false\nvar _thickness := 1\n\n\nfunc _init() -> void:\n\t_drawer.color_op = Drawer.ColorOp.new()\n\tupdate_indicator()\n\n\nfunc _ready() -> void:\n\tsuper()\n\tif tool_slot.button == MOUSE_BUTTON_RIGHT:\n\t\t$ThicknessSlider.allow_global_input_events = not Global.share_options_between_tools\n\t\tGlobal.share_options_between_tools_changed.connect(\n\t\t\tfunc(enabled): $ThicknessSlider.allow_global_input_events = not enabled\n\t\t)\n\n\nfunc update_brush() -> void:\n\tpass\n\n\nfunc _on_Thickness_value_changed(value: int) -> void:\n\t_thickness = value\n\n\tupdate_indicator()\n\tupdate_config()\n\tsave_config()\n\n\nfunc update_indicator() -> void:\n\tvar bitmap := BitMap.new()\n\tbitmap.create(Vector2i.ONE * _thickness)\n\tbitmap.set_bit_rect(Rect2i(Vector2i.ZERO, Vector2i.ONE * _thickness), true)\n\t_indicator = bitmap\n\t_polylines = _create_polylines(_indicator)\n\n\nfunc get_config() -> Dictionary:\n\tvar config := super.get_config()\n\tconfig[\"thickness\"] = _thickness\n\treturn config\n\n\nfunc set_config(config: Dictionary) -> void:\n\tsuper.set_config(config)\n\t_thickness = config.get(\"thickness\", _thickness)\n\n\nfunc update_config() -> void:\n\tsuper.update_config()\n\t$ThicknessSlider.value = _thickness\n\n\n## This tool has no brush, so just return the indicator as it is.\nfunc _create_brush_indicator() -> BitMap:\n\treturn _indicator\n\n\nfunc _get_shape_points(_size: Vector2i) -> Array[Vector2i]:\n\treturn []\n\n\nfunc _get_shape_points_filled(_size: Vector2i) -> Array[Vector2i]:\n\treturn []\n\n\nfunc _input(event: InputEvent) -> void:\n\tif _drawing:\n\t\tif event.is_action_pressed(\"shape_displace\"):\n\t\t\t_displace_origin = true\n\t\telif event.is_action_released(\"shape_displace\"):\n\t\t\t_displace_origin = false\n\telse:\n\t\t# If options are being shared, no need to change the brush size on the right tool slots,\n\t\t# otherwise it will be changed twice on both left and right tools.\n\t\tif tool_slot.button == MOUSE_BUTTON_RIGHT and Global.share_options_between_tools:\n\t\t\treturn\n\t\tvar brush_size_value := _mm_action.get_action_distance_int(event)\n\t\t$ThicknessSlider.value += brush_size_value\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tsuper.draw_start(pos)\n\tif Input.is_action_pressed(\"shape_displace\"):\n\t\t_picking_color = true\n\t\t_pick_color(pos)\n\t\treturn\n\t_picking_color = false\n\n\tGlobal.canvas.selection.transform_content_confirm()\n\tupdate_mask()\n\n\tif Global.mirror_view:\n\t\t# mirroring position is ONLY required by \"Preview\"\n\t\tpos.x = Global.current_project.size.x - pos.x - 1\n\t_original_pos = pos\n\t_start = pos\n\t_offset = pos\n\t_dest = pos\n\t_drawing = true\n\n\nfunc draw_move(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tsuper.draw_move(pos)\n\tif _picking_color:  # Still return even if we released Alt\n\t\tif Input.is_action_pressed(\"shape_displace\"):\n\t\t\t_pick_color(pos)\n\t\treturn\n\n\tif _drawing:\n\t\tif Global.mirror_view:\n\t\t\t# mirroring position is ONLY required by \"Preview\"\n\t\t\tpos.x = Global.current_project.size.x - pos.x - 1\n\t\tif _displace_origin:\n\t\t\t_original_pos += pos - _offset\n\t\tvar d := _line_angle_constraint(_original_pos, pos)\n\t\t_dest = d.position\n\n\t\tif Input.is_action_pressed(\"shape_center\"):\n\t\t\t_start = _original_pos - (_dest - _original_pos)\n\t\telse:\n\t\t\t_start = _original_pos\n\t\tcursor_text = d.text\n\t\t_offset = pos\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tif _picking_color:\n\t\tsuper.draw_end(pos)\n\t\treturn\n\n\tif _drawing:\n\t\tif Global.mirror_view:\n\t\t\t# now we revert back the coordinates from their mirror form so that line can be drawn\n\t\t\t_original_pos.x = (Global.current_project.size.x - 1) - _original_pos.x\n\t\t\t_start.x = (Global.current_project.size.x - 1) - _start.x\n\t\t\t_offset.x = (Global.current_project.size.x - 1) - _offset.x\n\t\t\t_dest.x = (Global.current_project.size.x - 1) - _dest.x\n\t\t\tif _thickness % 2 == 0:\n\t\t\t\t_original_pos.x += 1\n\t\t\t\t_start.x += 1\n\t\t\t\t_offset.x += 1\n\t\t\t\t_dest.x += 1\n\t\t_draw_shape()\n\t\t_reset_tool()\n\tsuper.draw_end(pos)\n\n\nfunc cancel_tool() -> void:\n\tsuper()\n\t_reset_tool()\n\n\nfunc _reset_tool() -> void:\n\t_original_pos = Vector2.ZERO\n\t_start = Vector2.ZERO\n\t_dest = Vector2.ZERO\n\t_drawing = false\n\tGlobal.canvas.previews_sprite.texture = null\n\t_displace_origin = false\n\tcursor_text = \"\"\n\n\nfunc draw_preview() -> void:\n\tvar canvas := Global.canvas.previews_sprite\n\tif _drawing:\n\t\tvar points := bresenham_line_thickness(_start, _dest, _thickness)\n\t\tvar image := Image.create(\n\t\t\tGlobal.current_project.size.x, Global.current_project.size.y, false, Image.FORMAT_LA8\n\t\t)\n\t\tfor point in points:\n\t\t\tif Rect2i(Vector2i.ZERO, image.get_size()).has_point(point):\n\t\t\t\timage.set_pixelv(point, Color.WHITE)\n\t\t# Handle mirroring\n\t\tfor point in mirror_array(points):\n\t\t\tif Rect2i(Vector2i.ZERO, image.get_size()).has_point(point):\n\t\t\t\timage.set_pixelv(point, Color.WHITE)\n\t\tvar texture := ImageTexture.create_from_image(image)\n\t\tcanvas.texture = texture\n\n\nfunc _draw_shape() -> void:\n\tvar points := bresenham_line_thickness(_start, _dest, _thickness)\n\tprepare_undo()\n\tvar images := _get_selected_draw_images()\n\tfor point in points:\n\t\t# Reset drawer every time because pixel perfect sometimes breaks the tool\n\t\t_drawer.reset()\n\t\tif Tools.is_placing_tiles():\n\t\t\tdraw_tile(point)\n\t\telse:\n\t\t\t# Draw each point offsetted based on the shape's thickness\n\t\t\tif Global.current_project.can_pixel_get_drawn(point):\n\t\t\t\tfor image in images:\n\t\t\t\t\t_drawer.set_pixel(image, point, tool_slot.color)\n\n\tcommit_undo(\"Draw Shape\")\n\n\nfunc _line_angle_constraint(start: Vector2, end: Vector2) -> Dictionary:\n\tvar result := {}\n\tvar angle := rad_to_deg(start.angle_to_point(end))\n\tvar distance := start.distance_to(end)\n\tif Input.is_action_pressed(\"shape_perfect\"):\n\t\tangle = snappedf(angle, 22.5)\n\t\tif step_decimals(angle) != 0:\n\t\t\tvar diff := end - start\n\t\t\tvar v := Vector2(2, 1) if absf(diff.x) > absf(diff.y) else Vector2(1, 2)\n\t\t\tvar p := diff.project(diff.sign() * v).abs().round()\n\t\t\tvar f := p.y if absf(diff.x) > absf(diff.y) else p.x\n\t\t\tend = start + diff.sign() * v * f - diff.sign()\n\t\t\tangle = rad_to_deg(atan2(signi(diff.y) * v.y, signi(diff.x) * v.x))\n\t\telse:\n\t\t\tend = start + Vector2.RIGHT.rotated(deg_to_rad(angle)) * distance\n\tangle *= -1\n\tangle += 360 if angle < 0 else 0\n\tresult.text = str(snappedf(angle, 0.01)) + \"°\"\n\tresult.position = end.round()\n\treturn result\n"
  },
  {
    "path": "src/Tools/DesignTools/LineTool.gd.uid",
    "content": "uid://ttyljg8gu4jq\n"
  },
  {
    "path": "src/Tools/DesignTools/LineTool.tscn",
    "content": "[gd_scene format=3 uid=\"uid://ceahf2toaq47l\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://ubyatap3sylf\" path=\"res://src/Tools/BaseDraw.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://ttyljg8gu4jq\" path=\"res://src/Tools/DesignTools/LineTool.gd\" id=\"2\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"3\"]\n\n[node name=\"ToolOptions\" unique_id=240233222 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n\n[node name=\"ThicknessSlider\" parent=\".\" index=\"2\" unique_id=1105184622 instance=ExtResource(\"3\")]\nlayout_mode = 2\nmin_value = 1.0\nvalue = 1.0\nprefix = \"Size:\"\nsuffix = \"px\"\nallow_global_input_events = true\nglobal_increment_action = \"brush_size_increment\"\nglobal_decrement_action = \"brush_size_decrement\"\n\n[node name=\"Brush\" parent=\".\" index=\"3\" unique_id=634582773]\nvisible = false\n\n[connection signal=\"value_changed\" from=\"ThicknessSlider\" to=\".\" method=\"_on_Thickness_value_changed\"]\n"
  },
  {
    "path": "src/Tools/DesignTools/Pencil.gd",
    "content": "extends BaseDrawTool\n\nvar _prev_mode := false\nvar _last_position := Vector2i(Vector2.INF)\nvar _changed := false\nvar _overwrite := false\nvar _fill_inside := false\nvar _fill_inside_rect := Rect2i()  ## The bounding box that surrounds the area that gets filled.\nvar _draw_points := PackedVector2Array()\nvar _old_spacing_mode := false  ## Needed to reset spacing mode in case we change it\n\n\nclass PencilOp:\n\textends Drawer.ColorOp\n\tvar changed := false\n\tvar overwrite := false\n\n\tfunc process(src: Color, dst: Color) -> Color:\n\t\tchanged = true\n\t\tsrc.a *= strength\n\t\tif overwrite:\n\t\t\treturn src\n\t\treturn dst.blend(src)\n\n\nfunc _init() -> void:\n\t_drawer.color_op = PencilOp.new()\n\n\nfunc _on_Overwrite_toggled(button_pressed: bool) -> void:\n\t_overwrite = button_pressed\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_FillInside_toggled(button_pressed: bool) -> void:\n\t_fill_inside = button_pressed\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_SpacingMode_toggled(button_pressed: bool) -> void:\n\t# This acts as an interface to access the intrinsic spacing_mode feature\n\t# BaseTool holds the spacing system, but for a tool to access them it's recommended to do it in\n\t# their own script\n\t_spacing_mode = button_pressed\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_Spacing_value_changed(value: Vector2) -> void:\n\t_spacing = value\n\tsave_config()\n\n\nfunc _input(event: InputEvent) -> void:\n\tsuper(event)\n\tvar overwrite_button: CheckBox = $Overwrite\n\n\tif event.is_action_pressed(\"change_tool_mode\"):\n\t\t_prev_mode = overwrite_button.button_pressed\n\tif event.is_action(\"change_tool_mode\"):\n\t\toverwrite_button.set_pressed_no_signal(!_prev_mode)\n\t\t_overwrite = overwrite_button.button_pressed\n\tif event.is_action_released(\"change_tool_mode\"):\n\t\toverwrite_button.set_pressed_no_signal(_prev_mode)\n\t\t_overwrite = overwrite_button.button_pressed\n\n\nfunc get_config() -> Dictionary:\n\tvar config := super.get_config()\n\tconfig[\"overwrite\"] = _overwrite\n\tconfig[\"fill_inside\"] = _fill_inside\n\tconfig[\"spacing_mode\"] = _spacing_mode\n\tconfig[\"spacing\"] = _spacing\n\treturn config\n\n\nfunc set_config(config: Dictionary) -> void:\n\tsuper.set_config(config)\n\t_overwrite = config.get(\"overwrite\", _overwrite)\n\t_fill_inside = config.get(\"fill_inside\", _fill_inside)\n\t_spacing_mode = config.get(\"spacing_mode\", _spacing_mode)\n\t_spacing = config.get(\"spacing\", _spacing)\n\n\nfunc update_config() -> void:\n\tsuper.update_config()\n\t$Overwrite.button_pressed = _overwrite\n\t$FillInside.button_pressed = _fill_inside\n\t$SpacingMode.button_pressed = _spacing_mode\n\t$Spacing.visible = _spacing_mode\n\t$Spacing.value = _spacing\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\t_old_spacing_mode = _spacing_mode\n\tpos = snap_position(pos)\n\tsuper.draw_start(pos)\n\tif Input.is_action_pressed(&\"draw_color_picker\", true):\n\t\t_picking_color = true\n\t\t_pick_color(pos)\n\t\treturn\n\t_picking_color = false\n\n\tGlobal.canvas.selection.transform_content_confirm()\n\tprepare_undo()\n\tvar can_skip_mask := true\n\tif tool_slot.color.a < 1 and !_overwrite:\n\t\tcan_skip_mask = false\n\tupdate_mask(can_skip_mask)\n\t_changed = false\n\t_drawer.color_op.changed = false\n\t_drawer.color_op.overwrite = _overwrite\n\t_draw_points = []\n\n\t_drawer.reset()\n\n\t_draw_line = Input.is_action_pressed(\"draw_create_line\")\n\tif _draw_line:\n\t\t_spacing_mode = false  # spacing mode is disabled during line mode\n\t\tif Global.mirror_view:\n\t\t\t# mirroring position is ONLY required by \"Preview\"\n\t\t\tpos.x = (Global.current_project.size.x - 1) - pos.x\n\t\t_line_start = pos\n\t\t_line_end = pos\n\t\tupdate_line_polylines(_line_start, _line_end)\n\telse:\n\t\tif _fill_inside:\n\t\t\t_draw_points.append(pos)\n\t\t\t_fill_inside_rect = Rect2i(pos, Vector2i.ZERO)\n\t\tdraw_tool(pos)\n\t\t_last_position = pos\n\t\tGlobal.canvas.sprite_changed_this_frame = true\n\tcursor_text = \"\"\n\n\nfunc draw_move(pos_i: Vector2i) -> void:\n\tvar pos := _get_stabilized_position(pos_i)\n\tpos = snap_position(pos)\n\tsuper.draw_move(pos)\n\tif _picking_color:  # Still return even if we released Alt\n\t\tif Input.is_action_pressed(&\"draw_color_picker\", true):\n\t\t\t_pick_color(pos)\n\t\treturn\n\n\tif _draw_line:\n\t\t_spacing_mode = false  # spacing mode is disabled during line mode\n\t\tif Global.mirror_view:\n\t\t\t# mirroring position is ONLY required by \"Preview\"\n\t\t\tpos.x = (Global.current_project.size.x - 1) - pos.x\n\t\tvar d := _line_angle_constraint(_line_start, pos)\n\t\t_line_end = d.position\n\t\tcursor_text = d.text\n\t\tupdate_line_polylines(_line_start, _line_end)\n\telse:\n\t\tdraw_fill_gap(_last_position, pos)\n\t\t_last_position = pos\n\t\tcursor_text = \"\"\n\t\tGlobal.canvas.sprite_changed_this_frame = true\n\t\tif _fill_inside:\n\t\t\t_draw_points.append(pos)\n\t\t\t_fill_inside_rect = _fill_inside_rect.expand(pos)\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tif _picking_color:\n\t\tsuper.draw_end(pos)\n\t\treturn\n\n\tif _draw_line:\n\t\t_spacing_mode = false  # spacing mode is disabled during line mode\n\t\tif Global.mirror_view:\n\t\t\t# now we revert back the coordinates from their mirror form so that line can be drawn\n\t\t\t_line_start.x = (Global.current_project.size.x - 1) - _line_start.x\n\t\t\t_line_end.x = (Global.current_project.size.x - 1) - _line_end.x\n\t\tdraw_tool(_line_start)\n\t\tdraw_fill_gap(_line_start, _line_end)\n\t\t_draw_line = false\n\telse:\n\t\tif _fill_inside:\n\t\t\t_draw_points.append(pos)\n\t\t\tif _draw_points.size() > 3:\n\t\t\t\tvar v := Vector2i()\n\t\t\t\tfor x in _fill_inside_rect.size.x:\n\t\t\t\t\tv.x = x + _fill_inside_rect.position.x\n\t\t\t\t\tfor y in _fill_inside_rect.size.y:\n\t\t\t\t\t\tv.y = y + _fill_inside_rect.position.y\n\t\t\t\t\t\tif Geometry2D.is_point_in_polygon(v, _draw_points):\n\t\t\t\t\t\t\tif _spacing_mode:\n\t\t\t\t\t\t\t\t# use of get_spacing_position() in Pencil.gd is a rare case\n\t\t\t\t\t\t\t\t# (you would ONLY need _spacing_mode and _spacing in most cases)\n\t\t\t\t\t\t\t\tv = get_spacing_position(v)\n\t\t\t\t\t\t\tdraw_tool(v)\n\n\t_fill_inside_rect = Rect2i()\n\tsuper.draw_end(pos)\n\tcommit_undo()\n\tcursor_text = \"\"\n\tupdate_random_image()\n\t_spacing_mode = _old_spacing_mode\n\n\nfunc _draw_brush_image(brush_image: Image, src_rect: Rect2i, dst: Vector2i) -> void:\n\t_changed = true\n\tvar images := _get_selected_draw_images()\n\tif _overwrite:\n\t\tfor draw_image in images:\n\t\t\tif Tools.alpha_locked:\n\t\t\t\tvar mask := draw_image.get_region(Rect2i(dst, brush_image.get_size()))\n\t\t\t\tdraw_image.blit_rect_mask(brush_image, mask, src_rect, dst)\n\t\t\telse:\n\t\t\t\tdraw_image.blit_rect(brush_image, src_rect, dst)\n\t\t\tdraw_image.convert_rgb_to_indexed()\n\telse:\n\t\tfor draw_image in images:\n\t\t\tif Tools.alpha_locked:\n\t\t\t\tvar mask := draw_image.get_region(Rect2i(dst, brush_image.get_size()))\n\t\t\t\tdraw_image.blend_rect_mask(brush_image, mask, src_rect, dst)\n\t\t\telse:\n\t\t\t\tdraw_image.blend_rect(brush_image, src_rect, dst)\n\t\t\tdraw_image.convert_rgb_to_indexed()\n"
  },
  {
    "path": "src/Tools/DesignTools/Pencil.gd.uid",
    "content": "uid://bks78g787tsu8\n"
  },
  {
    "path": "src/Tools/DesignTools/Pencil.tscn",
    "content": "[gd_scene format=3 uid=\"uid://cul5mpy17ebfl\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://ubyatap3sylf\" path=\"res://src/Tools/BaseDraw.tscn\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bbnqcxa20a5a5\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\" id=\"2\"]\n[ext_resource type=\"Script\" uid=\"uid://bks78g787tsu8\" path=\"res://src/Tools/DesignTools/Pencil.gd\" id=\"3\"]\n\n[node name=\"ToolOptions\" unique_id=450758674 instance=ExtResource(\"1\")]\nscript = ExtResource(\"3\")\n\n[node name=\"Overwrite\" type=\"CheckBox\" parent=\".\" index=\"5\" unique_id=1395956544]\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Overwrites color instead of blending it. This option is only relevant with colors that are not fully opaque\"\nmouse_default_cursor_shape = 2\ntext = \"Overwrite color\"\n\n[node name=\"FillInside\" type=\"CheckBox\" parent=\".\" index=\"6\" unique_id=43994212]\nlayout_mode = 2\nsize_flags_horizontal = 0\nmouse_default_cursor_shape = 2\ntext = \"Fill inside\"\n\n[node name=\"SpacingMode\" type=\"CheckBox\" parent=\".\" index=\"7\" unique_id=955332983]\nlayout_mode = 2\nsize_flags_horizontal = 0\nmouse_default_cursor_shape = 2\ntext = \"Spacing\"\n\n[node name=\"Spacing\" parent=\".\" index=\"8\" unique_id=1685223422 instance=ExtResource(\"2\")]\nvisible = false\nlayout_mode = 2\nallow_greater = true\nshow_ratio = true\nprefix_x = \"Gap X:\"\nprefix_y = \"Gap Y:\"\nsuffix_x = \"px\"\nsuffix_y = \"px\"\n\n[connection signal=\"toggled\" from=\"Overwrite\" to=\".\" method=\"_on_Overwrite_toggled\"]\n[connection signal=\"toggled\" from=\"FillInside\" to=\".\" method=\"_on_FillInside_toggled\"]\n[connection signal=\"toggled\" from=\"SpacingMode\" to=\".\" method=\"_on_SpacingMode_toggled\"]\n[connection signal=\"value_changed\" from=\"Spacing\" to=\".\" method=\"_on_Spacing_value_changed\"]\n"
  },
  {
    "path": "src/Tools/DesignTools/RectangleTool.gd",
    "content": "extends \"res://src/Tools/BaseShapeDrawer.gd\"\n\n\nfunc _get_shape_points_filled(shape_size: Vector2i) -> Array[Vector2i]:\n\tvar array: Array[Vector2i] = []\n\tvar t_of := _thickness - 1\n\n\tfor y in range(shape_size.y + t_of):\n\t\tfor x in range(shape_size.x + t_of):\n\t\t\tarray.append(Vector2i(x, y))\n\n\treturn array\n\n\nfunc _get_shape_points(shape_size: Vector2i) -> Array[Vector2i]:\n\tif _thickness == 1:\n\t\treturn _get_rectangle_points(Vector2(0, 0), shape_size)\n\n\tvar array: Array[Vector2i] = []\n\tvar t_of := _thickness - 1\n\tfor i in range(_thickness):\n\t\tvar point_size := shape_size + Vector2i(2, 2) * (t_of - i) - Vector2i.ONE * t_of\n\t\tarray += _get_rectangle_points(Vector2(i, i), point_size)\n\n\treturn array\n\n\nfunc _get_rectangle_points(pos: Vector2i, shape_size: Vector2i) -> Array[Vector2i]:\n\tvar array: Array[Vector2i] = []\n\n\tvar y1 := shape_size.y + pos.y - 1\n\tfor x in range(pos.x, shape_size.x + pos.x):\n\t\tvar t := Vector2i(x, pos.y)\n\t\tvar b := Vector2i(x, y1)\n\t\tarray.append(t)\n\t\tarray.append(b)\n\n\tvar x1 := shape_size.x + pos.x - 1\n\tfor y in range(pos.y + 1, shape_size.y + pos.y):\n\t\tvar l := Vector2i(pos.x, y)\n\t\tvar r := Vector2i(x1, y)\n\t\tarray.append(l)\n\t\tarray.append(r)\n\n\treturn array\n"
  },
  {
    "path": "src/Tools/DesignTools/RectangleTool.gd.uid",
    "content": "uid://bjb3e5dxu0b8c\n"
  },
  {
    "path": "src/Tools/DesignTools/RectangleTool.tscn",
    "content": "[gd_scene format=3 uid=\"uid://dhlab4q2dwu0a\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://n40lhf8hm7o1\" path=\"res://src/Tools/BaseShapeDrawer.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://bjb3e5dxu0b8c\" path=\"res://src/Tools/DesignTools/RectangleTool.gd\" id=\"2\"]\n\n[node name=\"ToolOptions\" unique_id=1543714690 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n"
  },
  {
    "path": "src/Tools/DesignTools/Shading.gd",
    "content": "extends BaseDrawTool\n\nenum ShadingMode { SIMPLE, HUE_SHIFTING, COLOR_REPLACE }\nenum LightenDarken { LIGHTEN, DARKEN }\n\nvar _prev_mode := 0\nvar _last_position := Vector2.INF\nvar _changed := false\nvar _shading_mode: int = ShadingMode.SIMPLE\nvar _mode: int = LightenDarken.LIGHTEN\nvar _amount := 10\nvar _hue_amount := 10\nvar _sat_amount := 10\nvar _value_amount := 10\nvar _colors_right := 10\nvar _old_palette: Palette\n\n\nclass LightenDarkenOp:\n\textends Drawer.ColorOp\n\tvar changed := false\n\tvar shading_mode := ShadingMode.SIMPLE\n\tvar lighten_or_darken := LightenDarken.LIGHTEN\n\tvar hue_amount := 10.0\n\tvar sat_amount := 10.0\n\tvar value_amount := 10.0\n\n\tvar hue_lighten_limit := 60.0 / 360.0  # A yellow color\n\tvar hue_darken_limit := 240.0 / 360.0  # A blue color\n\n\tvar sat_lighten_limit := 10.0 / 100.0\n\tvar value_darken_limit := 10.0 / 100.0\n\tvar color_array := PackedStringArray()\n\n\tfunc process(_src: Color, dst: Color) -> Color:\n\t\tchanged = true\n\t\tif dst.a == 0 and shading_mode != ShadingMode.COLOR_REPLACE:\n\t\t\treturn dst\n\t\tif shading_mode == ShadingMode.SIMPLE:\n\t\t\tif lighten_or_darken == LightenDarken.LIGHTEN:\n\t\t\t\tdst = dst.lightened(strength)\n\t\t\telse:\n\t\t\t\tdst = dst.darkened(strength)\n\t\telif shading_mode == ShadingMode.HUE_SHIFTING:\n\t\t\tvar hue_shift := hue_amount / 360.0\n\t\t\tvar sat_shift := sat_amount / 100.0\n\t\t\tvar value_shift := value_amount / 100.0\n\n\t\t\t# If the colors are roughly between yellow-green-blue,\n\t\t\t# reverse hue direction\n\t\t\tif hue_range(dst.h):\n\t\t\t\thue_shift = -hue_shift\n\n\t\t\tif lighten_or_darken == LightenDarken.LIGHTEN:\n\t\t\t\thue_shift = hue_limit_lighten(dst.h, hue_shift)\n\t\t\t\tdst.h = fposmod(dst.h + hue_shift, 1)\n\t\t\t\tif dst.s > sat_lighten_limit:\n\t\t\t\t\tdst.s = maxf(dst.s - minf(sat_shift, dst.s), sat_lighten_limit)\n\t\t\t\tdst.v += value_shift\n\n\t\t\telse:\n\t\t\t\thue_shift = hue_limit_darken(dst.h, hue_shift)\n\t\t\t\tdst.h = fposmod(dst.h - hue_shift, 1)\n\t\t\t\tdst.s += sat_shift\n\t\t\t\tif dst.v > value_darken_limit:\n\t\t\t\t\tdst.v = maxf(dst.v - minf(value_shift, dst.v), value_darken_limit)\n\t\telse:\n\t\t\tif not color_array.is_empty():\n\t\t\t\tvar index = color_array.find(dst.to_html())\n\t\t\t\tif index != -1:\n\t\t\t\t\tif lighten_or_darken == LightenDarken.LIGHTEN:\n\t\t\t\t\t\t## Moving to Right\n\t\t\t\t\t\tif index < color_array.size() - 1:\n\t\t\t\t\t\t\tdst = Color(color_array[index + 1])\n\t\t\t\t\telse:\n\t\t\t\t\t\t## Moving to Left\n\t\t\t\t\t\tif index > 0:\n\t\t\t\t\t\t\tdst = Color(color_array[index - 1])\n\n\t\treturn dst\n\n\t# Returns true if the colors are roughly between yellow, green and blue\n\t# False when the colors are roughly between red-orange-yellow, or blue-purple-red\n\tfunc hue_range(hue: float) -> bool:\n\t\treturn hue > hue_lighten_limit and hue < hue_darken_limit\n\n\tfunc hue_limit_lighten(hue: float, hue_shift: float) -> float:\n\t\t# Colors between red-orange-yellow and blue-purple-red\n\t\tif hue_shift > 0:\n\t\t\t# Just colors between red-orange-yellow\n\t\t\tif hue < hue_darken_limit:\n\t\t\t\tif hue + hue_shift >= hue_lighten_limit:\n\t\t\t\t\thue_shift = hue_lighten_limit - hue\n\t\t\t# Just blue-purple-red\n\t\t\telse:\n\t\t\t\tif hue + hue_shift >= hue_lighten_limit + 1:  # +1 looping around the color wheel\n\t\t\t\t\thue_shift = hue_lighten_limit - hue\n\n\t\t# Colors between yellow-green-blue\n\t\telif hue_shift < 0 and hue + hue_shift <= hue_lighten_limit:\n\t\t\thue_shift = hue_lighten_limit - hue\n\t\treturn hue_shift\n\n\tfunc hue_limit_darken(hue: float, hue_shift: float) -> float:\n\t\t# Colors between red-orange-yellow and blue-purple-red\n\t\tif hue_shift > 0:\n\t\t\t# Just colors between red-orange-yellow\n\t\t\tif hue < hue_darken_limit:\n\t\t\t\tif hue - hue_shift <= hue_darken_limit - 1:  # -1 looping backwards around the color wheel\n\t\t\t\t\thue_shift = hue - hue_darken_limit\n\t\t\t# Just blue-purple-red\n\t\t\telse:\n\t\t\t\tif hue - hue_shift <= hue_darken_limit:\n\t\t\t\t\thue_shift = hue - hue_darken_limit\n\n\t\t# Colors between yellow-green-blue\n\t\telif hue_shift < 0 and hue - hue_shift >= hue_darken_limit:\n\t\t\thue_shift = hue - hue_darken_limit\n\t\treturn hue_shift\n\n\nfunc _init() -> void:\n\t_drawer.color_op = LightenDarkenOp.new()\n\tTools.color_changed.connect(_refresh_colors_array)\n\tPalettes.palette_selected.connect(palette_changed)\n\n\nfunc _input(event: InputEvent) -> void:\n\tsuper(event)\n\tvar options: OptionButton = $LightenDarken\n\n\tif event.is_action_pressed(\"change_tool_mode\"):\n\t\t_prev_mode = options.selected\n\tif event.is_action(\"change_tool_mode\"):\n\t\toptions.selected = _prev_mode ^ 1\n\t\t_mode = options.selected\n\t\t_drawer.color_op.lighten_or_darken = _mode\n\tif event.is_action_released(\"change_tool_mode\"):\n\t\toptions.selected = _prev_mode\n\t\t_mode = options.selected\n\t\t_drawer.color_op.lighten_or_darken = _mode\n\n\nfunc _on_ShadingMode_item_selected(id: int) -> void:\n\t_shading_mode = id\n\t_drawer.color_op.shading_mode = id\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_LightenDarken_item_selected(id: int) -> void:\n\t_mode = id\n\t_drawer.color_op.lighten_or_darken = id\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_LightenDarken_value_changed(value: float) -> void:\n\t_amount = int(value)\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_LightenDarken_hue_value_changed(value: float) -> void:\n\t_hue_amount = int(value)\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_LightenDarken_sat_value_changed(value: float) -> void:\n\t_sat_amount = int(value)\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_LightenDarken_value_value_changed(value: float) -> void:\n\t_value_amount = int(value)\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_LightenDarken_colors_right_changed(value: float) -> void:\n\t_colors_right = int(value)\n\tupdate_config()\n\tsave_config()\n\n\nfunc get_config() -> Dictionary:\n\tvar config := super.get_config()\n\tconfig[\"shading_mode\"] = _shading_mode\n\tconfig[\"mode\"] = _mode\n\tconfig[\"amount\"] = _amount\n\tconfig[\"hue_amount\"] = _hue_amount\n\tconfig[\"sat_amount\"] = _sat_amount\n\tconfig[\"value_amount\"] = _value_amount\n\tconfig[\"colors_right\"] = _colors_right\n\treturn config\n\n\nfunc set_config(config: Dictionary) -> void:\n\tsuper.set_config(config)\n\t_shading_mode = config.get(\"shading_mode\", _shading_mode)\n\t_drawer.color_op.shading_mode = _shading_mode\n\t_mode = config.get(\"mode\", _mode)\n\t_drawer.color_op.lighten_or_darken = _mode\n\t_amount = config.get(\"amount\", _amount)\n\t_hue_amount = config.get(\"hue_amount\", _hue_amount)\n\t_sat_amount = config.get(\"sat_amount\", _sat_amount)\n\t_value_amount = config.get(\"value_amount\", _value_amount)\n\t_colors_right = config.get(\"colors_right\", _colors_right)\n\n\nfunc update_config() -> void:\n\tsuper.update_config()\n\t$ShadingMode.selected = _shading_mode\n\t$LightenDarken.selected = _mode\n\t$AmountSlider.value = _amount\n\t$HueShiftingOptions/HueSlider.value = _hue_amount\n\t$HueShiftingOptions/SatSlider.value = _sat_amount\n\t$HueShiftingOptions/ValueSlider.value = _value_amount\n\t$ColorReplaceOptions/Settings/ColorsRight.value = _colors_right\n\t$AmountSlider.visible = _shading_mode == ShadingMode.SIMPLE\n\t$HueShiftingOptions.visible = _shading_mode == ShadingMode.HUE_SHIFTING\n\t$ColorReplaceOptions.visible = _shading_mode == ShadingMode.COLOR_REPLACE\n\t_refresh_colors_array()\n\tupdate_strength()\n\n\nfunc update_strength() -> void:\n\t_strength = _amount / 100.0\n\n\t_drawer.color_op.hue_amount = _hue_amount\n\t_drawer.color_op.sat_amount = _sat_amount\n\t_drawer.color_op.value_amount = _value_amount\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tsuper.draw_start(pos)\n\tif Input.is_action_pressed(&\"draw_color_picker\", true):\n\t\t_picking_color = true\n\t\t_pick_color(pos)\n\t\treturn\n\t_picking_color = false\n\n\tGlobal.canvas.selection.transform_content_confirm()\n\tupdate_mask(false)\n\t_changed = false\n\t_drawer.color_op.changed = false\n\n\tprepare_undo()\n\t_drawer.reset()\n\n\t_draw_line = Input.is_action_pressed(\"draw_create_line\")\n\tif _draw_line:\n\t\tif Global.mirror_view:\n\t\t\t# mirroring position is ONLY required by \"Preview\"\n\t\t\tpos.x = (Global.current_project.size.x - 1) - pos.x\n\t\t_line_start = pos\n\t\t_line_end = pos\n\t\tupdate_line_polylines(_line_start, _line_end)\n\telse:\n\t\tdraw_tool(pos)\n\t\t_last_position = pos\n\t\tGlobal.canvas.sprite_changed_this_frame = true\n\tcursor_text = \"\"\n\n\nfunc draw_move(pos_i: Vector2i) -> void:\n\tvar pos := _get_stabilized_position(pos_i)\n\tpos = snap_position(pos)\n\tsuper.draw_move(pos)\n\tif _picking_color:  # Still return even if we released Alt\n\t\tif Input.is_action_pressed(&\"draw_color_picker\", true):\n\t\t\t_pick_color(pos)\n\t\treturn\n\n\tif _draw_line:\n\t\tif Global.mirror_view:\n\t\t\t# mirroring position is ONLY required by \"Preview\"\n\t\t\tpos.x = (Global.current_project.size.x - 1) - pos.x\n\t\tvar d := _line_angle_constraint(_line_start, pos)\n\t\t_line_end = d.position\n\t\tcursor_text = d.text\n\t\tupdate_line_polylines(_line_start, _line_end)\n\telse:\n\t\tdraw_fill_gap(_last_position, pos)\n\t\t_last_position = pos\n\t\tcursor_text = \"\"\n\t\tGlobal.canvas.sprite_changed_this_frame = true\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tif _picking_color:\n\t\tsuper.draw_end(pos)\n\t\treturn\n\n\tif _draw_line:\n\t\tif Global.mirror_view:\n\t\t\t# now we revert back the coordinates from their mirror form so that line can be drawn\n\t\t\t_line_start.x = (Global.current_project.size.x - 1) - _line_start.x\n\t\t\t_line_end.x = (Global.current_project.size.x - 1) - _line_end.x\n\t\tdraw_tool(_line_start)\n\t\tdraw_fill_gap(_line_start, _line_end)\n\t\t_draw_line = false\n\n\tsuper.draw_end(pos)\n\tcommit_undo()\n\tcursor_text = \"\"\n\tupdate_random_image()\n\n\nfunc _draw_brush_image(image: Image, src_rect: Rect2i, dst: Vector2i) -> void:\n\t_changed = true\n\tfor xx in image.get_size().x:\n\t\tfor yy in image.get_size().y:\n\t\t\tif image.get_pixel(xx, yy).a > 0:\n\t\t\t\tvar pos := Vector2i(xx, yy) + dst - src_rect.position\n\t\t\t\t_set_pixel(pos, true)\n\n\nfunc update_brush() -> void:\n\tsuper.update_brush()\n\t$ColorInterpolation.visible = false\n\n\n## this function is also used by a signal, this is why there is _color_info = {} in here.\nfunc _refresh_colors_array(_color_info = {}, mouse_button := tool_slot.button) -> void:\n\tif mouse_button != tool_slot.button:\n\t\treturn\n\tif _shading_mode == ShadingMode.COLOR_REPLACE:\n\t\tawait get_tree().process_frame\n\t\tvar index = Palettes.current_palette_get_selected_color_index(mouse_button)\n\t\tif index > -1:\n\t\t\t$ColorReplaceOptions/Settings.visible = true\n\t\t\t$ColorReplaceOptions/Label.visible = false\n\t\t\tvar color_array := PackedStringArray()\n\t\t\tfor i in _colors_right + 1:\n\t\t\t\tvar next_color = Palettes.current_palette.get_color(index + i)\n\t\t\t\tif next_color != null:\n\t\t\t\t\tcolor_array.append(next_color.to_html())\n\t\t\t_drawer.color_op.color_array = color_array\n\t\t\tconstruct_preview()\n\t\telse:\n\t\t\t$ColorReplaceOptions/Settings.visible = false\n\t\t\t$ColorReplaceOptions/Label.visible = true\n\t\t\t_drawer.color_op.color_array.clear()\n\n\nfunc construct_preview() -> void:\n\tvar colors_container: HFlowContainer = $ColorReplaceOptions/Settings/Colors\n\tfor i in colors_container.get_child_count():\n\t\tif i >= _drawer.color_op.color_array.size():\n\t\t\tcolors_container.get_child(i).queue_free()\n\tfor i in _drawer.color_op.color_array.size():\n\t\tvar color = _drawer.color_op.color_array[i]\n\t\tif i < colors_container.get_child_count():\n\t\t\tcolors_container.get_child(i).color = color\n\t\telse:\n\t\t\tvar color_rect_node := ColorRect.new()\n\t\t\tcolor_rect_node.color = color\n\t\t\tcolor_rect_node.custom_minimum_size = Vector2(20, 20)\n\t\t\tvar checker = preload(\"res://src/UI/Nodes/TransparentChecker.tscn\").instantiate()\n\t\t\tchecker.show_behind_parent = true\n\t\t\tchecker.set_anchors_preset(Control.PRESET_FULL_RECT)\n\t\t\tcolor_rect_node.add_child(checker)\n\t\t\tcolors_container.add_child(color_rect_node)\n\n\nfunc palette_changed(_palette_name):\n\tif _old_palette:\n\t\t_old_palette.data_changed.disconnect(_refresh_colors_array)\n\tPalettes.current_palette.data_changed.connect(_refresh_colors_array)\n\t_old_palette = Palettes.current_palette\n\t_refresh_colors_array()\n"
  },
  {
    "path": "src/Tools/DesignTools/Shading.gd.uid",
    "content": "uid://d7pia2wkhf7w\n"
  },
  {
    "path": "src/Tools/DesignTools/Shading.tscn",
    "content": "[gd_scene format=3 uid=\"uid://rbyd7i6snxjc\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://ubyatap3sylf\" path=\"res://src/Tools/BaseDraw.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://d7pia2wkhf7w\" path=\"res://src/Tools/DesignTools/Shading.gd\" id=\"2\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"3\"]\n\n[node name=\"ToolOptions\" unique_id=1979013812 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n\n[node name=\"LightenDarken\" type=\"OptionButton\" parent=\".\" index=\"5\" unique_id=2052667975]\ncustom_minimum_size = Vector2(92, 0)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 2\npopup/item_0/text = \"Lighten\"\npopup/item_0/id = 0\npopup/item_1/text = \"Darken\"\npopup/item_1/id = 1\n\n[node name=\"ShadingMode\" type=\"OptionButton\" parent=\".\" index=\"6\" unique_id=671221848]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 3\npopup/item_0/text = \"Simple Shading\"\npopup/item_0/id = 0\npopup/item_1/text = \"Hue Shifting\"\npopup/item_1/id = 1\npopup/item_2/text = \"Color Replace\"\npopup/item_2/id = 2\n\n[node name=\"AmountSlider\" parent=\".\" index=\"7\" unique_id=202412531 instance=ExtResource(\"3\")]\nlayout_mode = 2\ntooltip_text = \"Lighten/Darken amount\"\nmin_value = -100.0\nvalue = 10.0\nprefix = \"Amount:\"\n\n[node name=\"HueShiftingOptions\" type=\"VBoxContainer\" parent=\".\" index=\"8\" unique_id=1095245118]\nvisible = false\nlayout_mode = 2\n\n[node name=\"HueSlider\" parent=\"HueShiftingOptions\" index=\"0\" unique_id=2104903709 instance=ExtResource(\"3\")]\nlayout_mode = 2\nmin_value = -180.0\nmax_value = 180.0\nvalue = 10.0\nprefix = \"Hue:\"\n\n[node name=\"SatSlider\" parent=\"HueShiftingOptions\" index=\"1\" unique_id=637129795 instance=ExtResource(\"3\")]\nlayout_mode = 2\nmin_value = -100.0\nvalue = 10.0\nprefix = \"Saturation:\"\n\n[node name=\"ValueSlider\" parent=\"HueShiftingOptions\" index=\"2\" unique_id=1878734116 instance=ExtResource(\"3\")]\nlayout_mode = 2\nmin_value = -100.0\nvalue = 10.0\nprefix = \"Value:\"\n\n[node name=\"ColorReplaceOptions\" type=\"VBoxContainer\" parent=\".\" index=\"9\" unique_id=861994369]\nvisible = false\nlayout_mode = 2\n\n[node name=\"Settings\" type=\"VBoxContainer\" parent=\"ColorReplaceOptions\" index=\"0\" unique_id=1234622146]\nvisible = false\nlayout_mode = 2\n\n[node name=\"ColorsRight\" parent=\"ColorReplaceOptions/Settings\" index=\"0\" unique_id=1209338373 instance=ExtResource(\"3\")]\nlayout_mode = 2\nmax_value = 10.0\nallow_greater = true\nprefix = \"Colors right:\"\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"ColorReplaceOptions/Settings\" index=\"1\" unique_id=1662666731]\nlayout_mode = 2\n\n[node name=\"DarkenLabel\" type=\"Label\" parent=\"ColorReplaceOptions/Settings/HBoxContainer\" index=\"0\" unique_id=569241789]\nlayout_mode = 2\ntext = \"Darken\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"ColorReplaceOptions/Settings/HBoxContainer\" index=\"1\" unique_id=828708743]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"LightenLabel\" type=\"Label\" parent=\"ColorReplaceOptions/Settings/HBoxContainer\" index=\"2\" unique_id=1011161665]\nlayout_mode = 2\ntext = \"Lighten\"\nhorizontal_alignment = 2\n\n[node name=\"Colors\" type=\"HFlowContainer\" parent=\"ColorReplaceOptions/Settings\" index=\"2\" unique_id=79261573]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"ColorReplaceOptions\" index=\"1\" unique_id=752011739]\ncustom_minimum_size = Vector2(0, 75)\nlayout_mode = 2\ntext = \"Please select a color from the palette.\"\nhorizontal_alignment = 1\nautowrap_mode = 3\n\n[connection signal=\"item_selected\" from=\"LightenDarken\" to=\".\" method=\"_on_LightenDarken_item_selected\"]\n[connection signal=\"item_selected\" from=\"ShadingMode\" to=\".\" method=\"_on_ShadingMode_item_selected\"]\n[connection signal=\"value_changed\" from=\"AmountSlider\" to=\".\" method=\"_on_LightenDarken_value_changed\"]\n[connection signal=\"value_changed\" from=\"HueShiftingOptions/HueSlider\" to=\".\" method=\"_on_LightenDarken_hue_value_changed\"]\n[connection signal=\"value_changed\" from=\"HueShiftingOptions/SatSlider\" to=\".\" method=\"_on_LightenDarken_sat_value_changed\"]\n[connection signal=\"value_changed\" from=\"HueShiftingOptions/ValueSlider\" to=\".\" method=\"_on_LightenDarken_value_value_changed\"]\n[connection signal=\"value_changed\" from=\"ColorReplaceOptions/Settings/ColorsRight\" to=\".\" method=\"_on_LightenDarken_colors_right_changed\"]\n"
  },
  {
    "path": "src/Tools/SelectionTools/ColorSelect.gd",
    "content": "extends BaseSelectionTool\n\nvar shader := preload(\"res://src/Shaders/ColorSelect.gdshader\")\nvar _tolerance := 0.003\n\n\nfunc get_config() -> Dictionary:\n\tvar config := super.get_config()\n\tconfig[\"tolerance\"] = _tolerance\n\treturn config\n\n\nfunc set_config(config: Dictionary) -> void:\n\t_tolerance = config.get(\"tolerance\", _tolerance)\n\n\nfunc update_config() -> void:\n\t$ToleranceSlider.value = _tolerance * 255.0\n\n\nfunc _on_tolerance_slider_value_changed(value: float) -> void:\n\t_tolerance = value / 255.0\n\tupdate_config()\n\tsave_config()\n\n\nfunc apply_selection(pos: Vector2i) -> void:\n\tsuper.apply_selection(pos)\n\tvar project := Global.current_project\n\tif pos.x < 0 or pos.y < 0:\n\t\treturn\n\tif pos.x > project.size.x - 1 or pos.y > project.size.y - 1:\n\t\treturn\n\n\tvar operation := 0\n\tif _subtract:\n\t\toperation = 1\n\telif _intersect:\n\t\toperation = 2\n\n\tif Tools.is_placing_tiles():\n\t\tvar prev_selection_map := SelectionMap.new()  # Used for intersect\n\t\tprev_selection_map.copy_from(project.selection_map)\n\t\tif !_add and !_subtract and !_intersect:\n\t\t\tGlobal.canvas.selection.clear_selection()\n\t\tif _intersect:\n\t\t\tproject.selection_map.clear()\n\t\tfor cel in _get_selected_draw_cels():\n\t\t\tif cel is not CelTileMap:\n\t\t\t\tcontinue\n\t\t\tvar tilemap_cel := cel as CelTileMap\n\t\t\tvar tile_index := tilemap_cel.get_cell_index_at_coords(pos)\n\t\t\tfor cell_coords: Vector2i in tilemap_cel.cells:\n\t\t\t\tvar cell := tilemap_cel.get_cell_at(cell_coords)\n\t\t\t\tvar p := cell_coords * tilemap_cel.get_tile_size()\n\t\t\t\tif cell.index == tile_index:\n\t\t\t\t\tif _intersect:\n\t\t\t\t\t\tselect_tilemap_cell(\n\t\t\t\t\t\t\tcel, p, project.selection_map, prev_selection_map.is_pixel_selected(p)\n\t\t\t\t\t\t)\n\t\t\t\t\telse:\n\t\t\t\t\t\tselect_tilemap_cell(cel, p, project.selection_map, !_subtract)\n\telse:\n\t\tvar cel_image := Image.new()\n\t\tcel_image.copy_from(_get_draw_image())\n\t\tvar color := cel_image.get_pixelv(pos)\n\t\tvar params := {\"color\": color, \"tolerance\": _tolerance, \"operation\": operation}\n\t\tif _add or _subtract or _intersect:\n\t\t\tvar selection_tex := ImageTexture.create_from_image(project.selection_map)\n\t\t\tparams[\"selection\"] = selection_tex\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(cel_image, shader, params, project.size)\n\t\tcel_image.convert(Image.FORMAT_LA8)\n\n\t\tproject.selection_map.copy_from(cel_image)\n\tGlobal.canvas.selection.commit_undo(\"Select\", undo_data)\n"
  },
  {
    "path": "src/Tools/SelectionTools/ColorSelect.gd.uid",
    "content": "uid://bngph1iacnggo\n"
  },
  {
    "path": "src/Tools/SelectionTools/ColorSelect.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bqr6hr0p3ew6a\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bd62qfjn380wf\" path=\"res://src/Tools/BaseSelectionTool.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://bngph1iacnggo\" path=\"res://src/Tools/SelectionTools/ColorSelect.gd\" id=\"2\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"3_44rxy\"]\n\n[node name=\"ToolOptions\" unique_id=858653021 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n\n[node name=\"ToleranceSlider\" type=\"TextureProgressBar\" parent=\".\" index=\"8\" unique_id=1055810785]\ncustom_minimum_size = Vector2(32, 24)\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 255.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"3_44rxy\")\nprefix = \"Tolerance:\"\n\n[connection signal=\"value_changed\" from=\"ToleranceSlider\" to=\".\" method=\"_on_tolerance_slider_value_changed\"]\n"
  },
  {
    "path": "src/Tools/SelectionTools/EllipseSelect.gd",
    "content": "extends BaseSelectionTool\n\nvar _rect := Rect2i(0, 0, 0, 0)\n\nvar _square := false  ## Mouse Click + Shift\nvar _expand_from_center := false  ## Mouse Click + Ctrl\nvar _displace_origin = false  ## Mouse Click + Alt\n\n\nfunc _input(event: InputEvent) -> void:\n\tif !_move and _rect.has_area():\n\t\tif event.is_action_pressed(\"shape_perfect\"):\n\t\t\t_square = true\n\t\telif event.is_action_released(\"shape_perfect\"):\n\t\t\t_square = false\n\t\tif event.is_action_pressed(\"shape_center\"):\n\t\t\t_expand_from_center = true\n\t\telif event.is_action_released(\"shape_center\"):\n\t\t\t_expand_from_center = false\n\t\tif event.is_action_pressed(\"shape_displace\"):\n\t\t\t_displace_origin = true\n\t\telif event.is_action_released(\"shape_displace\"):\n\t\t\t_displace_origin = false\n\n\nfunc draw_move(pos: Vector2i) -> void:\n\tif transformation_handles.arrow_key_move:\n\t\treturn\n\tpos = snap_position(pos)\n\tsuper.draw_move(pos)\n\tif !_move:\n\t\tif _displace_origin:\n\t\t\t_start_pos += pos - _offset\n\t\t_rect = _get_result_rect(_start_pos, pos)\n\t\t_set_cursor_text(_rect)\n\t\t_offset = pos\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tif transformation_handles.arrow_key_move:\n\t\treturn\n\tpos = snap_position(pos)\n\tsuper.draw_end(pos)\n\t_reset_tool()\n\n\nfunc cancel_tool() -> void:\n\tsuper()\n\t_reset_tool()\n\n\nfunc _reset_tool() -> void:\n\t_rect = Rect2i(0, 0, 0, 0)\n\t_square = false\n\t_expand_from_center = false\n\t_displace_origin = false\n\tGlobal.canvas.previews_sprite.texture = null\n\n\nfunc draw_preview() -> void:\n\tvar canvas := Global.canvas.previews_sprite\n\tif !_move && _rect.has_area():\n\t\tvar temp_rect := _rect\n\n\t\tvar points := DrawingAlgos.get_ellipse_points(Vector2.ZERO, temp_rect.size)\n\t\tvar image := Image.create(\n\t\t\tGlobal.current_project.size.x, Global.current_project.size.y, false, Image.FORMAT_LA8\n\t\t)\n\t\tfor i in points.size():\n\t\t\tpoints[i] += temp_rect.position\n\t\t\tif Global.mirror_view:  # This fixes previewing in mirror mode\n\t\t\t\tpoints[i].x = image.get_width() - points[i].x - 1\n\t\t\tif Rect2i(Vector2i.ZERO, image.get_size()).has_point(points[i]):\n\t\t\t\timage.set_pixelv(points[i], Color.WHITE)\n\t\t# Handle mirroring\n\t\tfor point in mirror_array(points):\n\t\t\tif Rect2i(Vector2i.ZERO, image.get_size()).has_point(point):\n\t\t\t\timage.set_pixelv(point, Color.WHITE)\n\t\tvar texture := ImageTexture.create_from_image(image)\n\t\tcanvas.texture = texture\n\n\nfunc apply_selection(_position: Vector2i) -> void:\n\tsuper.apply_selection(_position)\n\tvar project := Global.current_project\n\tif !_add and !_subtract and !_intersect:\n\t\tGlobal.canvas.selection.clear_selection()\n\t\tif _rect.size == Vector2i.ZERO and Global.current_project.has_selection:\n\t\t\tGlobal.canvas.selection.commit_undo(\"Select\", undo_data)\n\tif _rect.size == Vector2i.ZERO:\n\t\treturn\n\tif Tools.is_placing_tiles():\n\t\tvar operation := 0\n\t\tif _subtract:\n\t\t\toperation = 1\n\t\telif _intersect:\n\t\t\toperation = 2\n\t\tGlobal.canvas.selection.select_rect(_rect, operation)\n\t\t# Handle mirroring\n\t\tvar mirror_positions := Tools.get_mirrored_positions(_rect.position, project, 1)\n\t\tvar mirror_ends := Tools.get_mirrored_positions(_rect.end, project, 1)\n\t\tfor i in mirror_positions.size():\n\t\t\tvar mirror_rect := Rect2i()\n\t\t\tmirror_rect.position = mirror_positions[i]\n\t\t\tmirror_rect.end = mirror_ends[i]\n\t\t\tGlobal.canvas.selection.select_rect(mirror_rect.abs(), operation)\n\n\t\tGlobal.canvas.selection.commit_undo(\"Select\", undo_data)\n\telse:\n\t\tset_ellipse(project.selection_map, _rect.position)\n\t\t# Handle mirroring\n\t\tvar mirror_positions := Tools.get_mirrored_positions(_rect.position, project, 1)\n\t\tvar mirror_ends := Tools.get_mirrored_positions(_rect.end, project, 1)\n\t\tfor i in mirror_positions.size():\n\t\t\tvar mirror_rect := Rect2i()\n\t\t\tmirror_rect.position = mirror_positions[i]\n\t\t\tmirror_rect.end = mirror_ends[i]\n\t\t\tset_ellipse(project.selection_map, mirror_rect.abs().position)\n\n\t\tGlobal.canvas.selection.commit_undo(\"Select\", undo_data)\n\n\nfunc set_ellipse(selection_map: SelectionMap, pos: Vector2i) -> void:\n\tvar bitmap_size := selection_map.get_size()\n\tvar previous_selection_map := SelectionMap.new()  # Used for intersect\n\tprevious_selection_map.copy_from(selection_map)\n\tif _intersect:\n\t\tselection_map.clear()\n\tvar points := DrawingAlgos.get_ellipse_points_filled(Vector2.ZERO, _rect.size)\n\tfor p in points:\n\t\tvar fill_p := pos + Vector2i(p)\n\t\tif fill_p.x < 0 or fill_p.y < 0 or fill_p.x >= bitmap_size.x or fill_p.y >= bitmap_size.y:\n\t\t\tcontinue\n\t\tif _intersect:\n\t\t\tif previous_selection_map.is_pixel_selected(fill_p):\n\t\t\t\tselection_map.select_pixel(fill_p, true)\n\t\telse:\n\t\t\tselection_map.select_pixel(fill_p, !_subtract)\n\n\n# Given an origin point and destination point, returns a rect representing\n# where the shape will be drawn and what is its size\nfunc _get_result_rect(origin: Vector2i, dest: Vector2i) -> Rect2i:\n\tif Tools.is_placing_tiles():\n\t\tvar cel := Global.current_project.get_current_cel() as CelTileMap\n\t\tvar grid_size := cel.get_tile_size()\n\t\tvar offset := cel.offset % grid_size\n\t\torigin = Tools.snap_to_rectangular_grid_boundary(origin, grid_size, offset)\n\t\tdest = Tools.snap_to_rectangular_grid_boundary(dest, grid_size, offset)\n\tvar rect := Rect2i()\n\t# Center the rect on the mouse\n\tif _expand_from_center:\n\t\tvar new_size := dest - origin\n\t\t# Make rect 1:1 while centering it on the mouse\n\t\tif _square:\n\t\t\tvar square_size := maxi(absi(new_size.x), absi(new_size.y))\n\t\t\tnew_size = Vector2i(square_size, square_size)\n\n\t\torigin -= new_size\n\t\tdest = origin + 2 * new_size\n\n\t# Make rect 1:1 while not trying to center it\n\tif _square:\n\t\tvar square_size := mini(absi(origin.x - dest.x), absi(origin.y - dest.y))\n\t\trect.position.x = origin.x if origin.x < dest.x else origin.x - square_size\n\t\trect.position.y = origin.y if origin.y < dest.y else origin.y - square_size\n\t\trect.size = Vector2i(square_size, square_size)\n\t# Get the rect without any modifications\n\telse:\n\t\trect.position = Vector2i(mini(origin.x, dest.x), mini(origin.y, dest.y))\n\t\trect.size = (origin - dest).abs()\n\n\tif not Tools.is_placing_tiles():\n\t\trect.size += Vector2i.ONE\n\n\treturn rect\n"
  },
  {
    "path": "src/Tools/SelectionTools/EllipseSelect.gd.uid",
    "content": "uid://xakitx3to6b1\n"
  },
  {
    "path": "src/Tools/SelectionTools/EllipseSelect.tscn",
    "content": "[gd_scene format=3 uid=\"uid://cf2gm1oypbm6m\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bd62qfjn380wf\" path=\"res://src/Tools/BaseSelectionTool.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://xakitx3to6b1\" path=\"res://src/Tools/SelectionTools/EllipseSelect.gd\" id=\"2\"]\n\n[node name=\"ToolOptions\" unique_id=1641809361 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n"
  },
  {
    "path": "src/Tools/SelectionTools/Lasso.gd",
    "content": "extends BaseSelectionTool\n\nvar _last_position := Vector2.INF\nvar _draw_points: Array[Vector2i] = []\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tsuper.draw_start(pos)\n\tif !_move:\n\t\t_draw_points.append(pos)\n\t\t_last_position = pos\n\n\nfunc draw_move(pos_i: Vector2i) -> void:\n\tif transformation_handles.arrow_key_move:\n\t\treturn\n\tvar pos := _get_stabilized_position(pos_i)\n\tpos = snap_position(pos)\n\tsuper.draw_move(pos)\n\tif !_move:\n\t\t_draw_points.append_array(Geometry2D.bresenham_line(_last_position, pos))\n\t\t_last_position = pos\n\t\t_draw_points.append(Vector2i(pos))\n\t\t_offset = pos\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tif transformation_handles.arrow_key_move:\n\t\treturn\n\tpos = snap_position(pos)\n\tsuper.draw_end(pos)\n\n\nfunc cancel_tool() -> void:\n\tsuper()\n\t_reset_tool()\n\n\nfunc _reset_tool() -> void:\n\t_draw_points.clear()\n\t_last_position = Vector2.INF\n\tGlobal.canvas.previews_sprite.texture = null\n\n\nfunc draw_preview() -> void:\n\tvar canvas := Global.canvas.previews_sprite\n\tif _last_position != Vector2.INF and !_move:\n\t\tvar image := Image.create(\n\t\t\tGlobal.current_project.size.x, Global.current_project.size.y, false, Image.FORMAT_LA8\n\t\t)\n\t\tfor point in _draw_points:\n\t\t\tvar draw_point := point\n\t\t\tif Global.mirror_view:  # This fixes previewing in mirror mode\n\t\t\t\tdraw_point.x = image.get_width() - draw_point.x - 1\n\t\t\tif Rect2i(Vector2i.ZERO, image.get_size()).has_point(draw_point):\n\t\t\t\timage.set_pixelv(draw_point, Color.WHITE)\n\n\t\t# Handle mirroring\n\t\tfor point in mirror_array(_draw_points):\n\t\t\tvar draw_point := point\n\t\t\tif Global.mirror_view:  # This fixes previewing in mirror mode\n\t\t\t\tdraw_point.x = image.get_width() - draw_point.x - 1\n\t\t\tif Rect2i(Vector2i.ZERO, image.get_size()).has_point(draw_point):\n\t\t\t\timage.set_pixelv(draw_point, Color.WHITE)\n\t\tvar texture := ImageTexture.create_from_image(image)\n\t\tcanvas.texture = texture\n\n\nfunc apply_selection(_position) -> void:\n\tsuper.apply_selection(_position)\n\tvar project := Global.current_project\n\tvar cleared := false\n\tvar previous_selection_map := SelectionMap.new()  # Used for intersect\n\tprevious_selection_map.copy_from(project.selection_map)\n\tif !_add and !_subtract and !_intersect:\n\t\tcleared = true\n\t\tGlobal.canvas.selection.clear_selection()\n\tif _draw_points.size() > 3:\n\t\tif _intersect:\n\t\t\tproject.selection_map.clear()\n\t\tlasso_selection(_draw_points, project, previous_selection_map)\n\t\t# Handle mirroring\n\t\tvar callable := lasso_selection.bind(project, previous_selection_map)\n\t\tmirror_array(_draw_points, callable)\n\telse:\n\t\tif !cleared:\n\t\t\tGlobal.canvas.selection.clear_selection()\n\n\tGlobal.canvas.selection.commit_undo(\"Select\", undo_data)\n\t_reset_tool()\n\n\nfunc lasso_selection(\n\tpoints: Array[Vector2i], project: Project, previous_selection_map: SelectionMap\n) -> void:\n\tvar selection_map := project.selection_map\n\tvar selection_size := selection_map.get_size()\n\tvar bounding_rect := Rect2i(points[0], Vector2i.ZERO)\n\tfor point in points:\n\t\tbounding_rect = bounding_rect.expand(point)\n\t\tif point.x < 0 or point.y < 0 or point.x >= selection_size.x or point.y >= selection_size.y:\n\t\t\tcontinue\n\t\tif _intersect:\n\t\t\tif previous_selection_map.is_pixel_selected(point):\n\t\t\t\tselect_pixel(point, project, true)\n\t\telse:\n\t\t\tselect_pixel(point, project, !_subtract)\n\n\tvar v := Vector2i()\n\tfor x in bounding_rect.size.x:\n\t\tv.x = x + bounding_rect.position.x\n\t\tfor y in bounding_rect.size.y:\n\t\t\tv.y = y + bounding_rect.position.y\n\t\t\tif Geometry2D.is_point_in_polygon(v, points):\n\t\t\t\tif _intersect:\n\t\t\t\t\tif previous_selection_map.is_pixel_selected(v):\n\t\t\t\t\t\tselect_pixel(v, project, true)\n\t\t\t\telse:\n\t\t\t\t\tselect_pixel(v, project, !_subtract)\n\n\nfunc select_pixel(point: Vector2i, project: Project, select: bool) -> void:\n\tif Tools.is_placing_tiles():\n\t\tvar tilemap := project.get_current_cel() as CelTileMap\n\t\tvar cell_position := tilemap.get_cell_position(point) * tilemap.get_tile_size()\n\t\tselect_tilemap_cell(tilemap, cell_position, project.selection_map, select)\n\tvar selection_size := project.selection_map.get_size()\n\tif point.x >= 0 and point.y >= 0 and point.x < selection_size.x and point.y < selection_size.y:\n\t\tproject.selection_map.select_pixel(point, select)\n"
  },
  {
    "path": "src/Tools/SelectionTools/Lasso.gd.uid",
    "content": "uid://dserfd4bdyemm\n"
  },
  {
    "path": "src/Tools/SelectionTools/Lasso.tscn",
    "content": "[gd_scene format=3 uid=\"uid://cu37uo35mcfom\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bd62qfjn380wf\" path=\"res://src/Tools/BaseSelectionTool.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://dserfd4bdyemm\" path=\"res://src/Tools/SelectionTools/Lasso.gd\" id=\"2\"]\n\n[node name=\"ToolOptions\" unique_id=1811304980 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n"
  },
  {
    "path": "src/Tools/SelectionTools/MagicWand.gd",
    "content": "extends BaseSelectionTool\n\n## Working array used as buffer for segments while flooding\nvar _allegro_flood_segments: Array[Segment]\n## Results array per image while flooding\nvar _allegro_image_segments: Array[Segment]\nvar _tolerance := 0.003\n\n\nclass Segment:\n\tvar flooding := false\n\tvar todo_above := false\n\tvar todo_below := false\n\tvar left_position := -5\n\tvar right_position := -5\n\tvar y := 0\n\tvar next := 0\n\n\tfunc _init(_y: int) -> void:\n\t\ty = _y\n\n\nfunc apply_selection(pos: Vector2i) -> void:\n\tsuper.apply_selection(pos)\n\tvar project := Global.current_project\n\tif pos.x < 0 or pos.y < 0 or pos.x >= project.size.x or pos.y >= project.size.y:\n\t\treturn\n\tvar previous_selection_map := SelectionMap.new()  # Used for intersect\n\tprevious_selection_map.copy_from(project.selection_map)\n\tif !_add and !_subtract and !_intersect:\n\t\tGlobal.canvas.selection.clear_selection()\n\tif _intersect:\n\t\tproject.selection_map.clear()\n\n\tvar cel_image := Image.new()\n\tcel_image.copy_from(_get_draw_image())\n\t_flood_fill(pos, cel_image, project, previous_selection_map)\n\t# Handle mirroring\n\tfor mirror_pos in Tools.get_mirrored_positions(pos):\n\t\t_flood_fill(mirror_pos, cel_image, project, previous_selection_map)\n\n\tGlobal.canvas.selection.commit_undo(\"Select\", undo_data)\n\n\nfunc get_config() -> Dictionary:\n\tvar config := super.get_config()\n\tconfig[\"tolerance\"] = _tolerance\n\treturn config\n\n\nfunc set_config(config: Dictionary) -> void:\n\tsuper.set_config(config)\n\t_tolerance = config.get(\"tolerance\", _tolerance)\n\n\nfunc update_config() -> void:\n\tsuper.update_config()\n\t$ToleranceSlider.value = _tolerance * 255.0\n\n\nfunc _on_tolerance_slider_value_changed(value: float) -> void:\n\t_tolerance = value / 255.0\n\tupdate_config()\n\tsave_config()\n\n\nfunc _flood_fill(\n\tpos: Vector2i, image: Image, project: Project, previous_selection_map: SelectionMap\n) -> void:\n\t# implements the floodfill routine by Shawn Hargreaves\n\t# from https://www1.udel.edu/CIS/software/dist/allegro-4.2.1/src/flood.c\n\tvar selection_map := project.selection_map\n\tif Tools.is_placing_tiles():\n\t\tfor cel in _get_selected_draw_cels():\n\t\t\tif cel is not CelTileMap:\n\t\t\t\tcontinue\n\t\t\tvar tilemap_cel := cel as CelTileMap\n\t\t\tvar cell_pos := tilemap_cel.get_cell_position(pos)\n\t\t\ttilemap_cel.bucket_fill(\n\t\t\t\tcell_pos, -1, _set_bit_rect.bind(project, previous_selection_map)\n\t\t\t)\n\t\treturn\n\tvar color := image.get_pixelv(pos)\n\t# init flood data structures\n\t_allegro_flood_segments = []\n\t_allegro_image_segments = []\n\t_compute_segments_for_image(pos, project, image, color)\n\t# now actually color the image: since we have already checked a few things for the points\n\t# we'll process here, we're going to skip a bunch of safety checks to speed things up.\n\t_select_segments(selection_map, previous_selection_map)\n\n\n# Add a new segment to the array\nfunc _add_new_segment(y := 0) -> void:\n\t_allegro_flood_segments.append(Segment.new(y))\n\n\n# fill an horizontal segment around the specified position, and adds it to the\n# list of segments filled. Returns the first x coordinate after the part of the\n# line that has been filled.\nfunc _flood_line_around_point(\n\tpos: Vector2i, project: Project, image: Image, src_color: Color\n) -> int:\n\t# this method is called by `_flood_fill` after the required data structures\n\t# have been initialized\n\tif not DrawingAlgos.similar_colors(image.get_pixelv(pos), src_color, _tolerance):\n\t\treturn pos.x + 1\n\tvar west := pos\n\tvar east := pos\n\twhile west.x >= 0 && DrawingAlgos.similar_colors(image.get_pixelv(west), src_color, _tolerance):\n\t\twest += Vector2i.LEFT\n\twhile (\n\t\teast.x < project.size.x\n\t\t&& DrawingAlgos.similar_colors(image.get_pixelv(east), src_color, _tolerance)\n\t):\n\t\teast += Vector2i.RIGHT\n\t# Make a note of the stuff we processed\n\tvar c := pos.y\n\tvar segment := _allegro_flood_segments[c]\n\t# we may have already processed some segments on this y coordinate\n\tif segment.flooding:\n\t\twhile segment.next > 0:\n\t\t\tc = segment.next  # index of next segment in this line of image\n\t\t\tsegment = _allegro_flood_segments[c]\n\t\t# found last current segment on this line\n\t\tc = _allegro_flood_segments.size()\n\t\tsegment.next = c\n\t\t_add_new_segment(pos.y)\n\t\tsegment = _allegro_flood_segments[c]\n\t# set the values for the current segment\n\tsegment.flooding = true\n\tsegment.left_position = west.x + 1\n\tsegment.right_position = east.x - 1\n\tsegment.y = pos.y\n\tsegment.next = 0\n\t# Should we process segments above or below this one?\n\t# when there is a selected area, the pixels above and below the one we started creating this\n\t# segment from may be outside it. It's easier to assume we should be checking for segments\n\t# above and below this one than to specifically check every single pixel in it, because that\n\t# test will be performed later anyway.\n\t# On the other hand, this test we described is the same `project.can_pixel_get_drawn` does if\n\t# there is no selection, so we don't need branching here.\n\tsegment.todo_above = pos.y > 0\n\tsegment.todo_below = pos.y < project.size.y - 1\n\t# this is an actual segment we should be coloring, so we add it to the results for the\n\t# current image\n\tif segment.right_position >= segment.left_position:\n\t\t_allegro_image_segments.append(segment)\n\t# we know the point just east of the segment is not part of a segment that should be\n\t# processed, else it would be part of this segment\n\treturn east.x + 1\n\n\nfunc _check_flooded_segment(\n\ty: int, left: int, right: int, project: Project, image: Image, src_color: Color\n) -> bool:\n\tvar ret := false\n\tvar c := 0\n\twhile left <= right:\n\t\tc = y\n\t\twhile true:\n\t\t\tvar segment := _allegro_flood_segments[c]\n\t\t\tif left >= segment.left_position and left <= segment.right_position:\n\t\t\t\tleft = segment.right_position + 2\n\t\t\t\tbreak\n\t\t\tc = segment.next\n\t\t\tif c == 0:  # couldn't find a valid segment, so we draw a new one\n\t\t\t\tleft = _flood_line_around_point(Vector2i(left, y), project, image, src_color)\n\t\t\t\tret = true\n\t\t\t\tbreak\n\treturn ret\n\n\nfunc _compute_segments_for_image(\n\tpos: Vector2i, project: Project, image: Image, src_color: Color\n) -> void:\n\t# initially allocate at least 1 segment per line of image\n\tfor j in image.get_height():\n\t\t_add_new_segment(j)\n\t# start flood algorithm\n\t_flood_line_around_point(pos, project, image, src_color)\n\t# test all segments while also discovering more\n\tvar done := false\n\twhile not done:\n\t\tdone = true\n\t\tvar max_index := _allegro_flood_segments.size()\n\t\tfor c in max_index:\n\t\t\tvar p := _allegro_flood_segments[c]\n\t\t\tif p.todo_below:  # check below the segment?\n\t\t\t\tp.todo_below = false\n\t\t\t\tif _check_flooded_segment(\n\t\t\t\t\tp.y + 1, p.left_position, p.right_position, project, image, src_color\n\t\t\t\t):\n\t\t\t\t\tdone = false\n\t\t\tif p.todo_above:  # check above the segment?\n\t\t\t\tp.todo_above = false\n\t\t\t\tif _check_flooded_segment(\n\t\t\t\t\tp.y - 1, p.left_position, p.right_position, project, image, src_color\n\t\t\t\t):\n\t\t\t\t\tdone = false\n\n\nfunc _select_segments(selection_map: SelectionMap, previous_selection_map: SelectionMap) -> void:\n\t# short circuit for flat colors\n\tfor c in _allegro_image_segments.size():\n\t\tvar p := _allegro_image_segments[c]\n\t\tfor px in range(p.left_position, p.right_position + 1):\n\t\t\t# We don't have to check again whether the point being processed is within the bounds\n\t\t\t_set_bit(Vector2i(px, p.y), selection_map, previous_selection_map)\n\n\nfunc _set_bit(p: Vector2i, selection_map: SelectionMap, prev_selection_map: SelectionMap) -> void:\n\tif _intersect:\n\t\tselection_map.select_pixel(p, prev_selection_map.is_pixel_selected(p))\n\telse:\n\t\tselection_map.select_pixel(p, !_subtract)\n\n\nfunc _set_bit_rect(\n\tp: Vector2i, _index: int, project: Project, prev_selection_map: SelectionMap\n) -> void:\n\tvar selection_map := project.selection_map\n\tvar tilemap := project.get_current_cel() as CelTileMap\n\tvar pixel_coords := p * tilemap.get_tile_size()\n\tif _intersect:\n\t\tselect_tilemap_cell(\n\t\t\ttilemap, pixel_coords, project.selection_map, prev_selection_map.is_pixel_selected(p)\n\t\t)\n\telse:\n\t\tselect_tilemap_cell(tilemap, pixel_coords, project.selection_map, !_subtract)\n"
  },
  {
    "path": "src/Tools/SelectionTools/MagicWand.gd.uid",
    "content": "uid://dyeuj7wmtdmey\n"
  },
  {
    "path": "src/Tools/SelectionTools/MagicWand.tscn",
    "content": "[gd_scene format=3 uid=\"uid://blt8u6nvg1k3g\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bd62qfjn380wf\" path=\"res://src/Tools/BaseSelectionTool.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://dyeuj7wmtdmey\" path=\"res://src/Tools/SelectionTools/MagicWand.gd\" id=\"2\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"3_4ed6a\"]\n\n[node name=\"ToolOptions\" unique_id=919885195 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n\n[node name=\"ToleranceSlider\" type=\"TextureProgressBar\" parent=\".\" index=\"8\" unique_id=85827552]\ncustom_minimum_size = Vector2(32, 24)\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 255.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"3_4ed6a\")\nprefix = \"Tolerance:\"\n\n[connection signal=\"value_changed\" from=\"ToleranceSlider\" to=\".\" method=\"_on_tolerance_slider_value_changed\"]\n"
  },
  {
    "path": "src/Tools/SelectionTools/PaintSelect.gd",
    "content": "extends BaseSelectionTool\n\nvar _brush_size := 2\nvar _brush := Brushes.get_default_brush()\nvar _indicator := BitMap.new()\nvar _polylines := []\nvar _brush_image := Image.new()\nvar _brush_texture: ImageTexture\nvar _circle_tool_shortcut: Array[Vector2i]\n\nvar _last_position := Vector2.INF\nvar _draw_points: Array[Vector2i] = []\n\n\nfunc get_config() -> Dictionary:\n\tvar config := super.get_config()\n\tconfig[\"brush_type\"] = _brush.type\n\tconfig[\"brush_index\"] = _brush.index\n\tconfig[\"brush_size\"] = _brush_size\n\treturn config\n\n\nfunc set_config(config: Dictionary) -> void:\n\tvar type: int = config.get(\"brush_type\", _brush.type)\n\tvar index: int = config.get(\"brush_index\", _brush.index)\n\t_brush = Global.brushes_popup.get_brush(type, index)\n\t_brush_size = config.get(\"brush_size\", _brush_size)\n\n\nfunc update_config() -> void:\n\t$Brush/BrushSize.value = _brush_size\n\tupdate_brush()\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\tpos = snap_position(pos)\n\tsuper.draw_start(pos)\n\tif !_move:\n\t\t_draw_points.append_array(draw_tool(pos))\n\t\t_last_position = pos\n\n\nfunc draw_move(pos_i: Vector2i) -> void:\n\tif transformation_handles.arrow_key_move:\n\t\treturn\n\tvar pos := _get_stabilized_position(pos_i)\n\tpos = snap_position(pos)\n\tsuper.draw_move(pos)\n\tif !_move:\n\t\tfor pixel in Geometry2D.bresenham_line(_last_position, pos):\n\t\t\t_draw_points.append_array(draw_tool(pixel))\n\t\t_last_position = pos\n\t\t_draw_points.append_array(draw_tool(pos))\n\t\t_offset = pos\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tif transformation_handles.arrow_key_move:\n\t\treturn\n\tpos = snap_position(pos)\n\tsuper.draw_end(pos)\n\n\nfunc cancel_tool() -> void:\n\tsuper()\n\t_reset_tool()\n\n\nfunc _reset_tool() -> void:\n\t_draw_points.clear()\n\t_last_position = Vector2.INF\n\tGlobal.canvas.previews_sprite.texture = null\n\n\nfunc draw_preview() -> void:\n\tvar canvas := Global.canvas.previews_sprite\n\tif _last_position != Vector2.INF and !_move:\n\t\tvar image := Image.create(\n\t\t\tGlobal.current_project.size.x, Global.current_project.size.y, false, Image.FORMAT_LA8\n\t\t)\n\t\tfor point in _draw_points:\n\t\t\tvar draw_point := point\n\t\t\tif Global.mirror_view:  # This fixes previewing in mirror mode\n\t\t\t\tdraw_point.x = image.get_width() - draw_point.x - 1\n\t\t\tif Rect2i(Vector2i.ZERO, image.get_size()).has_point(draw_point):\n\t\t\t\timage.set_pixelv(draw_point, Color.WHITE)\n\n\t\t# Handle mirroring\n\t\tfor point in mirror_array(_draw_points):\n\t\t\tvar draw_point := point\n\t\t\tif Global.mirror_view:  # This fixes previewing in mirror mode\n\t\t\t\tdraw_point.x = image.get_width() - draw_point.x - 1\n\t\t\tif Rect2i(Vector2i.ZERO, image.get_size()).has_point(draw_point):\n\t\t\t\timage.set_pixelv(draw_point, Color.WHITE)\n\t\tvar texture := ImageTexture.create_from_image(image)\n\t\tcanvas.texture = texture\n\n\nfunc apply_selection(pos: Vector2i) -> void:\n\tsuper.apply_selection(pos)\n\tvar project := Global.current_project\n\tvar cleared := false\n\tvar previous_selection_map := SelectionMap.new()  # Used for intersect\n\tprevious_selection_map.copy_from(project.selection_map)\n\tif !_add and !_subtract and !_intersect:\n\t\tcleared = true\n\t\tGlobal.canvas.selection.clear_selection()\n\t# This is paint selection so we've done >= 1 nstead of > 1\n\tif _draw_points.size() >= 1:\n\t\tif _intersect:\n\t\t\tproject.selection_map.clear()\n\t\tpaint_selection(project, previous_selection_map, _draw_points)\n\t\t# Handle mirroring\n\t\tvar mirror := mirror_array(_draw_points)\n\t\tpaint_selection(project, previous_selection_map, mirror)\n\telse:\n\t\tif !cleared:\n\t\t\tGlobal.canvas.selection.clear_selection()\n\n\tGlobal.canvas.selection.commit_undo(\"Select\", undo_data)\n\t_reset_tool()\n\n\nfunc paint_selection(\n\tproject: Project, previous_selection_map: SelectionMap, points: Array[Vector2i]\n) -> void:\n\tvar selection_map := project.selection_map\n\tvar selection_size := selection_map.get_size()\n\tfor point in points:\n\t\tif point.x < 0 or point.y < 0 or point.x >= selection_size.x or point.y >= selection_size.y:\n\t\t\tcontinue\n\t\tif _intersect:\n\t\t\tif previous_selection_map.is_pixel_selected(point):\n\t\t\t\tselect_pixel(point, project, true)\n\t\telse:\n\t\t\tselect_pixel(point, project, !_subtract)\n\n\nfunc select_pixel(point: Vector2i, project: Project, select: bool) -> void:\n\tif Tools.is_placing_tiles():\n\t\tvar tilemap := project.get_current_cel() as CelTileMap\n\t\tvar cell_position := tilemap.get_cell_position(point) * tilemap.get_tile_size()\n\t\tselect_tilemap_cell(tilemap, cell_position, project.selection_map, select)\n\tproject.selection_map.select_pixel(point, select)\n\n\nfunc draw_tool(pos: Vector2i) -> Array[Vector2i]:\n\t_prepare_tool()\n\treturn _draw_tool(pos)\n\n\nfunc _prepare_tool() -> void:\n\tmatch _brush.type:\n\t\tBrushes.CIRCLE:\n\t\t\t_prepare_circle_tool(false)\n\t\tBrushes.FILLED_CIRCLE:\n\t\t\t_prepare_circle_tool(true)\n\n\nfunc _prepare_circle_tool(fill: bool) -> void:\n\tvar circle_tool_map := _create_circle_indicator(_brush_size, fill)\n\t# Go through that BitMap and build an Array of the \"displacement\" from the center of the bits\n\t# that are true.\n\tvar diameter := _brush_size * 2 + 1\n\tfor n in range(0, diameter):\n\t\tfor m in range(0, diameter):\n\t\t\tif circle_tool_map.get_bitv(Vector2i(m, n)):\n\t\t\t\t_circle_tool_shortcut.append(Vector2i(m - _brush_size, n - _brush_size))\n\n\n## Make sure to always have invoked _prepare_tool() before this. This computes the coordinates to be\n## drawn if it can (except for the generic brush, when it's actually drawing them)\nfunc _draw_tool(pos: Vector2i) -> Array[Vector2i]:\n\tmatch _brush.type:\n\t\tBrushes.PIXEL:\n\t\t\treturn _compute_draw_tool_pixel(pos)\n\t\tBrushes.CIRCLE:\n\t\t\treturn _compute_draw_tool_circle(pos, false)\n\t\tBrushes.FILLED_CIRCLE:\n\t\t\treturn _compute_draw_tool_circle(pos, true)\n\t\t_:\n\t\t\treturn _compute_draw_tool_brush(pos)\n\n\nfunc _compute_draw_tool_pixel(pos: Vector2i) -> Array[Vector2i]:\n\tvar result: Array[Vector2i] = []\n\tvar start := pos - Vector2i.ONE * (_brush_size >> 1)\n\tvar end := start + Vector2i.ONE * _brush_size\n\tfor y in range(start.y, end.y):\n\t\tfor x in range(start.x, end.x):\n\t\t\tif !_draw_points.has(Vector2i(x, y)):\n\t\t\t\tresult.append(Vector2i(x, y))\n\treturn result\n\n\n# Compute the array of coordinates that should be drawn\nfunc _compute_draw_tool_circle(pos: Vector2i, fill := false) -> Array[Vector2i]:\n\tvar brush_size := Vector2i(_brush_size, _brush_size)\n\tvar offset_pos := pos - (brush_size / 2)\n\tif _circle_tool_shortcut:\n\t\treturn _draw_tool_circle_from_map(pos)\n\n\tvar result: Array[Vector2i] = []\n\tif fill:\n\t\tresult = DrawingAlgos.get_ellipse_points_filled(offset_pos, brush_size)\n\telse:\n\t\tresult = DrawingAlgos.get_ellipse_points(offset_pos, brush_size)\n\treturn result\n\n\nfunc _draw_tool_circle_from_map(pos: Vector2i) -> Array[Vector2i]:\n\tvar result: Array[Vector2i] = []\n\tfor displacement in _circle_tool_shortcut:\n\t\tresult.append(pos + displacement)\n\treturn result\n\n\nfunc _compute_draw_tool_brush(pos: Vector2i) -> Array[Vector2i]:\n\tvar result: Array[Vector2i] = []\n\tvar brush_mask := BitMap.new()\n\tpos = pos - (_indicator.get_size() / 2)\n\tbrush_mask.create_from_image_alpha(_brush_image, 0.0)\n\tfor x in brush_mask.get_size().x:\n\t\tfor y in brush_mask.get_size().y:\n\t\t\tif !_draw_points.has(Vector2i(x, y)):\n\t\t\t\tif brush_mask.get_bitv(Vector2i(x, y)):\n\t\t\t\t\tresult.append(pos + Vector2i(x, y))\n\n\treturn result\n\n\nfunc _on_BrushType_pressed() -> void:\n\tif not Global.brushes_popup.brush_selected.is_connected(_on_Brush_selected):\n\t\tGlobal.brushes_popup.brush_selected.connect(_on_Brush_selected, CONNECT_ONE_SHOT)\n\t# Now we set position and columns\n\tvar tool_option_container := get_node(\"../../\") as Control\n\tvar brush_button := $Brush/Type as Button\n\tvar pop_position := Vector2i(brush_button.global_position) + Vector2i(0, brush_button.size.y)\n\tvar size_x := tool_option_container.size.x\n\tvar size_y: float = tool_option_container.size.y - $Brush.position.y - $Brush.size.y\n\tvar columns = int(size_x / 36) - 1  # 36 is the size of BrushButton.tscn\n\tvar categories = Global.brushes_popup.get_node(\"Background/Brushes/Categories\")\n\tfor child in categories.get_children():\n\t\tif child is GridContainer:\n\t\t\tchild.columns = columns\n\tGlobal.brushes_popup.popup_on_parent(Rect2(pop_position, Vector2(size_x, size_y)))\n\n\nfunc _on_Brush_selected(brush: Brushes.Brush) -> void:\n\t_brush = brush\n\tupdate_brush()\n\tsave_config()\n\n\nfunc _on_BrushSize_value_changed(value: float) -> void:\n\tif _brush_size != int(value):\n\t\t_brush_size = int(value)\n\t\tupdate_config()\n\t\tsave_config()\n\n\n# The Blue Indicator code\nfunc update_brush() -> void:\n\t$Brush/BrushSize.suffix = \"px\"  # Assume we are using default brushes\n\tmatch _brush.type:\n\t\tBrushes.PIXEL:\n\t\t\t_brush_texture = ImageTexture.create_from_image(\n\t\t\t\tload(\"res://assets/graphics/pixel_image.png\")\n\t\t\t)\n\t\tBrushes.CIRCLE:\n\t\t\t_brush_texture = ImageTexture.create_from_image(\n\t\t\t\tload(\"res://assets/graphics/circle_9x9.png\")\n\t\t\t)\n\t\tBrushes.FILLED_CIRCLE:\n\t\t\t_brush_texture = ImageTexture.create_from_image(\n\t\t\t\tload(\"res://assets/graphics/circle_filled_9x9.png\")\n\t\t\t)\n\t\tBrushes.FILE, Brushes.RANDOM_FILE, Brushes.CUSTOM:\n\t\t\t$Brush/BrushSize.suffix = \"00 %\"  # Use a different size convention on images\n\t\t\tif _brush.random.size() <= 1:\n\t\t\t\t_brush_image = _create_blended_brush_image(_brush.image)\n\t\t\telse:\n\t\t\t\tvar random := randi() % _brush.random.size()\n\t\t\t\t_brush_image = _create_blended_brush_image(_brush.random[random])\n\t\t\t_brush_texture = ImageTexture.create_from_image(_brush_image)\n\t_indicator = _create_brush_indicator()\n\t_polylines = _create_polylines(_indicator)\n\n\t$Brush/Type/Texture2D.texture = _brush_texture\n\n\nfunc _create_blended_brush_image(image: Image) -> Image:\n\tvar brush_size := image.get_size() * _brush_size\n\tvar brush := Image.new()\n\tbrush.copy_from(image)\n\tbrush.resize(brush_size.x, brush_size.y, Image.INTERPOLATE_NEAREST)\n\treturn brush\n\n\nfunc _create_brush_indicator() -> BitMap:\n\tmatch _brush.type:\n\t\tBrushes.PIXEL:\n\t\t\treturn _create_pixel_indicator(_brush_size)\n\t\tBrushes.CIRCLE:\n\t\t\treturn _create_circle_indicator(_brush_size, false)\n\t\tBrushes.FILLED_CIRCLE:\n\t\t\treturn _create_circle_indicator(_brush_size, true)\n\t\t_:\n\t\t\treturn _create_image_indicator(_brush_image)\n\n\nfunc _create_pixel_indicator(brush_size: int) -> BitMap:\n\tvar bitmap := BitMap.new()\n\tbitmap.create(Vector2i.ONE * brush_size)\n\tbitmap.set_bit_rect(Rect2i(Vector2i.ZERO, Vector2i.ONE * brush_size), true)\n\treturn bitmap\n\n\nfunc _create_circle_indicator(brush_size: int, fill := false) -> BitMap:\n\t_circle_tool_shortcut = []\n\tvar brush_size_v2 := Vector2i(brush_size, brush_size)\n\tvar diameter := brush_size_v2 * 2 + Vector2i.ONE\n\treturn _fill_bitmap_with_points(_compute_draw_tool_circle(brush_size_v2, fill), diameter)\n\n\nfunc _create_image_indicator(image: Image) -> BitMap:\n\tvar bitmap := BitMap.new()\n\tbitmap.create_from_image_alpha(image, 0.0)\n\treturn bitmap\n\n\nfunc draw_indicator(left: bool) -> void:\n\tvar color := Global.left_tool_color if left else Global.right_tool_color\n\tdraw_indicator_at(_cursor, Vector2i.ZERO, color)\n\n\nfunc draw_indicator_at(pos: Vector2i, offset: Vector2i, color: Color) -> void:\n\tvar canvas = Global.canvas.indicators\n\tpos -= _indicator.get_size() / 2\n\tpos -= offset\n\tcanvas.draw_set_transform(pos, canvas.rotation, canvas.scale)\n\tvar polylines := _polylines\n\tfor line in polylines:\n\t\tvar pool := PackedVector2Array(line)\n\t\tcanvas.draw_polyline(pool, color)\n\tcanvas.draw_set_transform(canvas.position, canvas.rotation, canvas.scale)\n"
  },
  {
    "path": "src/Tools/SelectionTools/PaintSelect.gd.uid",
    "content": "uid://bg6dn55wb74b8\n"
  },
  {
    "path": "src/Tools/SelectionTools/PaintSelect.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bry4ltxur56u7\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bd62qfjn380wf\" path=\"res://src/Tools/BaseSelectionTool.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://bg6dn55wb74b8\" path=\"res://src/Tools/SelectionTools/PaintSelect.gd\" id=\"2\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"3\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"1\"]\nbg_color = Color(1, 1, 1, 1)\nborder_color = Color(1, 1, 1, 1)\ncorner_radius_top_left = 5\ncorner_radius_top_right = 5\ncorner_radius_bottom_right = 5\ncorner_radius_bottom_left = 5\nanti_aliasing = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"2\"]\nbg_color = Color(1, 1, 1, 1)\nborder_color = Color(1, 1, 1, 1)\ncorner_radius_top_left = 5\ncorner_radius_top_right = 5\ncorner_radius_bottom_right = 5\ncorner_radius_bottom_left = 5\nanti_aliasing = false\n\n[node name=\"ToolOptions\" unique_id=830652910 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n\n[node name=\"Brush\" type=\"HBoxContainer\" parent=\".\" index=\"2\" unique_id=321773034]\nlayout_mode = 2\nalignment = 1\n\n[node name=\"Type\" type=\"Button\" parent=\"Brush\" index=\"0\" unique_id=1538616610]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Select a brush\"\nmouse_default_cursor_shape = 2\ntheme_override_styles/normal = SubResource(\"1\")\ntheme_override_styles/pressed = SubResource(\"1\")\ntheme_override_styles/hover = SubResource(\"1\")\ntheme_override_styles/disabled = SubResource(\"2\")\ntheme_override_styles/focus = SubResource(\"2\")\n\n[node name=\"Texture2D\" type=\"TextureRect\" parent=\"Brush/Type\" index=\"0\" unique_id=969487181]\nlayout_mode = 0\noffset_right = 32.0\noffset_bottom = 32.0\nexpand_mode = 1\nstretch_mode = 5\n\n[node name=\"BrushSize\" parent=\"Brush\" index=\"1\" unique_id=1428740001 instance=ExtResource(\"3\")]\nlayout_mode = 2\nmin_value = 1.0\nmax_value = 25.0\nvalue = 1.0\nallow_greater = true\nprefix = \"Size:\"\nsuffix = \"px\"\n\n[connection signal=\"pressed\" from=\"Brush/Type\" to=\".\" method=\"_on_BrushType_pressed\"]\n[connection signal=\"value_changed\" from=\"Brush/BrushSize\" to=\".\" method=\"_on_BrushSize_value_changed\"]\n"
  },
  {
    "path": "src/Tools/SelectionTools/PolygonSelect.gd",
    "content": "extends BaseSelectionTool\n\nvar _last_position := Vector2i(Vector2.INF)\nvar _draw_points: Array[Vector2i] = []\nvar _ready_to_apply := false\n\n\nfunc _init() -> void:\n\t# To prevent tool from remaining active when switching projects\n\tGlobal.project_about_to_switch.connect(_clear)\n\n\nfunc _input(event: InputEvent) -> void:\n\tif _move:\n\t\treturn\n\tif event is InputEventMouseMotion:\n\t\t_last_position = Global.canvas.current_pixel.floor()\n\t\tif Global.mirror_view:\n\t\t\t_last_position.x = (Global.current_project.size.x - 1) - _last_position.x\n\telif event is InputEventMouseButton:\n\t\tif event.double_click and event.button_index == tool_slot.button and _draw_points:\n\t\t\t$DoubleClickTimer.start()\n\t\t\t_draw_points.append_array(Geometry2D.bresenham_line(_draw_points[-1], _draw_points[0]))\n\t\t\t_ready_to_apply = true\n\t\t\tapply_selection(Vector2i.ZERO)  # Argument doesn't matter\n\telse:\n\t\tif event.is_action_pressed(\"transformation_cancel\") and _ongoing_selection:\n\t\t\t_clear()\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\tif !$DoubleClickTimer.is_stopped():\n\t\treturn\n\tpos = snap_position(pos)\n\tsuper.draw_start(pos)\n\tif !_move and !_draw_points:\n\t\t_ongoing_selection = true\n\t\t_draw_points.append(pos)\n\t\t_last_position = pos\n\n\nfunc draw_move(pos: Vector2i) -> void:\n\tif transformation_handles.arrow_key_move:\n\t\treturn\n\tpos = snap_position(pos)\n\tsuper.draw_move(pos)\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tif transformation_handles.arrow_key_move:\n\t\treturn\n\tpos = snap_position(pos)\n\tif !_move and _draw_points:\n\t\tif _draw_points.size() > 1 or _draw_points[-1] != pos:\n\t\t\t_draw_points.append_array(Geometry2D.bresenham_line(_draw_points[-1], pos))\n\t\tif pos == _draw_points[0] and _draw_points.size() > 1:\n\t\t\t_ready_to_apply = true\n\n\tsuper.draw_end(pos)\n\n\nfunc cancel_tool() -> void:\n\tsuper()\n\t_clear()\n\n\nfunc draw_preview() -> void:\n\tvar previews := Global.canvas.previews_sprite\n\tif _ongoing_selection and !_move:\n\t\tvar preview_draw_points := _draw_points.duplicate() as Array[Vector2i]\n\t\tpreview_draw_points.append_array(\n\t\t\tGeometry2D.bresenham_line(_draw_points[-1], _last_position)\n\t\t)\n\t\tvar image := Image.create(\n\t\t\tGlobal.current_project.size.x, Global.current_project.size.y, false, Image.FORMAT_LA8\n\t\t)\n\t\tfor point in preview_draw_points:\n\t\t\tvar draw_point := point\n\t\t\tif Global.mirror_view:  # This fixes previewing in mirror mode\n\t\t\t\tdraw_point.x = image.get_width() - draw_point.x - 1\n\t\t\tif Rect2i(Vector2i.ZERO, image.get_size()).has_point(draw_point):\n\t\t\t\timage.set_pixelv(draw_point, Color.WHITE)\n\n\t\tvar circle_radius := Vector2.ONE * (10.0 / Global.camera.zoom.x)\n\t\tif _last_position == _draw_points[0] and _draw_points.size() > 1:\n\t\t\tvar canvas := Global.canvas.previews\n\t\t\tdraw_empty_circle(\n\t\t\t\tcanvas, Vector2(_draw_points[0]) + Vector2.ONE * 0.5, circle_radius, Color.BLACK\n\t\t\t)\n\n\t\t# Handle mirroring\n\t\tfor point in mirror_array(preview_draw_points):\n\t\t\tvar draw_point := point\n\t\t\tif Global.mirror_view:  # This fixes previewing in mirror mode\n\t\t\t\tdraw_point.x = image.get_width() - draw_point.x - 1\n\t\t\tif Rect2i(Vector2i.ZERO, image.get_size()).has_point(draw_point):\n\t\t\t\timage.set_pixelv(draw_point, Color.WHITE)\n\t\tvar texture := ImageTexture.create_from_image(image)\n\t\tpreviews.texture = texture\n\n\nfunc apply_selection(pos: Vector2i) -> void:\n\tsuper.apply_selection(pos)\n\tif !_ready_to_apply:\n\t\treturn\n\tvar project := Global.current_project\n\tvar cleared := false\n\tvar previous_selection_map := SelectionMap.new()  # Used for intersect\n\tprevious_selection_map.copy_from(project.selection_map)\n\tif !_add and !_subtract and !_intersect:\n\t\tcleared = true\n\t\tGlobal.canvas.selection.clear_selection()\n\tif _draw_points.size() > 3:\n\t\tif _intersect:\n\t\t\tproject.selection_map.clear()\n\t\tlasso_selection(_draw_points, project, previous_selection_map)\n\t\t# Handle mirroring\n\t\tvar callable := lasso_selection.bind(project, previous_selection_map)\n\t\tmirror_array(_draw_points, callable)\n\telse:\n\t\tif !cleared:\n\t\t\tGlobal.canvas.selection.clear_selection()\n\n\tGlobal.canvas.selection.commit_undo(\"Select\", undo_data)\n\t_clear()\n\n\nfunc _clear() -> void:\n\t_ongoing_selection = false\n\tGlobal.canvas.previews_sprite.texture = null\n\t_draw_points.clear()\n\t_ready_to_apply = false\n\tGlobal.canvas.previews.queue_redraw()\n\n\nfunc lasso_selection(\n\tpoints: Array[Vector2i], project: Project, previous_selection_map: SelectionMap\n) -> void:\n\tvar selection_map := project.selection_map\n\tvar selection_size := selection_map.get_size()\n\tvar bounding_rect := Rect2i(points[0], Vector2i.ZERO)\n\tfor point in points:\n\t\tbounding_rect = bounding_rect.expand(point)\n\t\tif point.x < 0 or point.y < 0 or point.x >= selection_size.x or point.y >= selection_size.y:\n\t\t\tcontinue\n\t\tif _intersect:\n\t\t\tif previous_selection_map.is_pixel_selected(point):\n\t\t\t\tselect_pixel(point, project, true)\n\t\telse:\n\t\t\tselect_pixel(point, project, !_subtract)\n\n\tvar v := Vector2i()\n\tfor x in bounding_rect.size.x:\n\t\tv.x = x + bounding_rect.position.x\n\t\tfor y in bounding_rect.size.y:\n\t\t\tv.y = y + bounding_rect.position.y\n\t\t\tif Geometry2D.is_point_in_polygon(v, points):\n\t\t\t\tif _intersect:\n\t\t\t\t\tif previous_selection_map.is_pixel_selected(v):\n\t\t\t\t\t\tselect_pixel(v, project, true)\n\t\t\t\telse:\n\t\t\t\t\tselect_pixel(v, project, !_subtract)\n\n\nfunc select_pixel(point: Vector2i, project: Project, select: bool) -> void:\n\tif Tools.is_placing_tiles():\n\t\tvar tilemap := project.get_current_cel() as CelTileMap\n\t\tvar cell_position := tilemap.get_cell_position(point) * tilemap.get_tile_size()\n\t\tselect_tilemap_cell(tilemap, cell_position, project.selection_map, select)\n\tvar selection_size := project.selection_map.get_size()\n\tif point.x >= 0 and point.y >= 0 and point.x < selection_size.x and point.y < selection_size.y:\n\t\tproject.selection_map.select_pixel(point, select)\n\n\n# Thanks to\n# https://www.reddit.com/r/godot/comments/3ktq39/drawing_empty_circles_and_curves/cv0f4eo/\nfunc draw_empty_circle(\n\tcanvas: CanvasItem, circle_center: Vector2, circle_radius: Vector2, color: Color\n) -> void:\n\tvar draw_counter := 1\n\tvar line_origin := Vector2()\n\tvar line_end := Vector2()\n\tline_origin = circle_radius + circle_center\n\n\twhile draw_counter <= 360:\n\t\tline_end = circle_radius.rotated(deg_to_rad(draw_counter)) + circle_center\n\t\tcanvas.draw_line(line_origin, line_end, color)\n\t\tdraw_counter += 1\n\t\tline_origin = line_end\n\n\tline_end = circle_radius.rotated(TAU) + circle_center\n\tcanvas.draw_line(line_origin, line_end, color)\n"
  },
  {
    "path": "src/Tools/SelectionTools/PolygonSelect.gd.uid",
    "content": "uid://b21qeks86qx0r\n"
  },
  {
    "path": "src/Tools/SelectionTools/PolygonSelect.tscn",
    "content": "[gd_scene format=3 uid=\"uid://dv8bn8gys3tax\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bd62qfjn380wf\" path=\"res://src/Tools/BaseSelectionTool.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://b21qeks86qx0r\" path=\"res://src/Tools/SelectionTools/PolygonSelect.gd\" id=\"2\"]\n\n[node name=\"ToolOptions\" unique_id=422856033 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n\n[node name=\"DoubleClickTimer\" type=\"Timer\" parent=\".\" index=\"8\" unique_id=204575428]\nwait_time = 0.1\none_shot = true\n"
  },
  {
    "path": "src/Tools/SelectionTools/RectSelect.gd",
    "content": "extends BaseSelectionTool\n\nvar _rect := Rect2i()\n\nvar _square := false  ## Mouse Click + Shift\nvar _expand_from_center := false  ## Mouse Click + Ctrl\nvar _displace_origin = false  ## Mouse Click + Alt\n\n\nfunc _input(event: InputEvent) -> void:\n\tif !_move and _rect.has_area():\n\t\tif event.is_action_pressed(\"shape_perfect\"):\n\t\t\t_square = true\n\t\telif event.is_action_released(\"shape_perfect\"):\n\t\t\t_square = false\n\t\tif event.is_action_pressed(\"shape_center\"):\n\t\t\t_expand_from_center = true\n\t\telif event.is_action_released(\"shape_center\"):\n\t\t\t_expand_from_center = false\n\t\tif event.is_action_pressed(\"shape_displace\"):\n\t\t\t_displace_origin = true\n\t\telif event.is_action_released(\"shape_displace\"):\n\t\t\t_displace_origin = false\n\n\nfunc draw_move(pos: Vector2i) -> void:\n\tif transformation_handles.arrow_key_move:\n\t\treturn\n\tpos = snap_position(pos)\n\tsuper.draw_move(pos)\n\tif !_move:\n\t\tif _displace_origin:\n\t\t\t_start_pos += pos - _offset\n\t\t_rect = _get_result_rect(_start_pos, pos)\n\t\t_set_cursor_text(_rect)\n\t\t_offset = pos\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tif transformation_handles.arrow_key_move:\n\t\treturn\n\tpos = snap_position(pos)\n\tsuper.draw_end(pos)\n\t_reset_tool()\n\n\nfunc cancel_tool() -> void:\n\tsuper()\n\t_reset_tool()\n\n\nfunc _reset_tool() -> void:\n\t_rect = Rect2i()\n\t_square = false\n\t_expand_from_center = false\n\t_displace_origin = false\n\n\nfunc draw_preview() -> void:\n\tif _move:\n\t\treturn\n\tvar project := Global.current_project\n\tvar canvas: Node2D = Global.canvas.previews\n\tvar pos := canvas.position\n\tvar canvas_scale := canvas.scale\n\tif Global.mirror_view:\n\t\tpos.x = pos.x + project.size.x\n\t\tcanvas_scale.x = -1\n\tcanvas.draw_set_transform(pos, canvas.rotation, canvas_scale)\n\tcanvas.draw_rect(_rect, Color.BLACK, false)\n\t# Handle mirroring\n\tvar mirror_positions := Tools.get_mirrored_positions(_rect.position, project, 1)\n\tvar mirror_ends := Tools.get_mirrored_positions(_rect.end, project, 1)\n\tfor i in mirror_positions.size():\n\t\tvar mirror_rect := Rect2i()\n\t\tmirror_rect.position = mirror_positions[i]\n\t\tmirror_rect.end = mirror_ends[i]\n\t\tcanvas.draw_rect(mirror_rect, Color.BLACK, false)\n\n\tcanvas.draw_set_transform(canvas.position, canvas.rotation, canvas.scale)\n\n\nfunc apply_selection(pos: Vector2i) -> void:\n\tsuper.apply_selection(pos)\n\tvar project := Global.current_project\n\tif !_add and !_subtract and !_intersect:\n\t\tGlobal.canvas.selection.clear_selection()\n\t\tif _rect.size == Vector2i.ZERO and project.has_selection:\n\t\t\tGlobal.canvas.selection.commit_undo(\"Select\", undo_data)\n\tif _rect.size == Vector2i.ZERO:\n\t\treturn\n\tvar operation := 0\n\tif _subtract:\n\t\toperation = 1\n\telif _intersect:\n\t\toperation = 2\n\tGlobal.canvas.selection.select_rect(_rect, operation)\n\t# Handle mirroring\n\tvar mirror_positions := Tools.get_mirrored_positions(_rect.position, project, 1)\n\tvar mirror_ends := Tools.get_mirrored_positions(_rect.end, project, 1)\n\tfor i in mirror_positions.size():\n\t\tvar mirror_rect := Rect2i()\n\t\tmirror_rect.position = mirror_positions[i]\n\t\tmirror_rect.end = mirror_ends[i]\n\t\tGlobal.canvas.selection.select_rect(mirror_rect.abs(), operation)\n\n\tGlobal.canvas.selection.commit_undo(\"Select\", undo_data)\n\n\n## Given an origin point and destination point, returns a rect representing\n## where the shape will be drawn and what is its size\nfunc _get_result_rect(origin: Vector2i, dest: Vector2i) -> Rect2i:\n\tif Tools.is_placing_tiles():\n\t\tvar cel := Global.current_project.get_current_cel() as CelTileMap\n\t\tvar grid_size := cel.get_tile_size()\n\t\tvar offset := cel.offset % grid_size\n\t\torigin = Tools.snap_to_rectangular_grid_boundary(origin, grid_size, offset)\n\t\tdest = Tools.snap_to_rectangular_grid_boundary(dest, grid_size, offset)\n\tvar rect := Rect2i()\n\n\t# Center the rect on the mouse\n\tif _expand_from_center:\n\t\tvar new_size := dest - origin\n\t\t# Make rect 1:1 while centering it on the mouse\n\t\tif _square:\n\t\t\tvar square_size := maxi(absi(new_size.x), absi(new_size.y))\n\t\t\tnew_size = Vector2i(square_size, square_size)\n\n\t\torigin -= new_size\n\t\tdest = origin + 2 * new_size\n\n\t# Make rect 1:1 while not trying to center it\n\tif _square:\n\t\tvar square_size := mini(absi(origin.x - dest.x), absi(origin.y - dest.y))\n\t\trect.position.x = origin.x if origin.x < dest.x else origin.x - square_size\n\t\trect.position.y = origin.y if origin.y < dest.y else origin.y - square_size\n\t\trect.size = Vector2i(square_size, square_size)\n\t# Get the rect without any modifications\n\telse:\n\t\trect.position = Vector2i(mini(origin.x, dest.x), mini(origin.y, dest.y))\n\t\trect.size = (origin - dest).abs()\n\n\tif (\n\t\tnot Tools.is_placing_tiles()\n\t\tand not Global.snap_to_rectangular_grid_boundary\n\t\tand not Global.snap_to_rectangular_grid_center\n\t):\n\t\trect.size += Vector2i.ONE\n\n\treturn rect\n"
  },
  {
    "path": "src/Tools/SelectionTools/RectSelect.gd.uid",
    "content": "uid://cokrqxbaoc200\n"
  },
  {
    "path": "src/Tools/SelectionTools/RectSelect.tscn",
    "content": "[gd_scene format=3 uid=\"uid://iph72k1ii717\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bd62qfjn380wf\" path=\"res://src/Tools/BaseSelectionTool.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://cokrqxbaoc200\" path=\"res://src/Tools/SelectionTools/RectSelect.gd\" id=\"2\"]\n\n[node name=\"ToolOptions\" unique_id=501699918 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n"
  },
  {
    "path": "src/Tools/UtilityTools/ColorPicker.gd",
    "content": "extends BaseTool\n\nenum { TOP_COLOR, CURRENT_LAYER }\n\nvar _prev_mode := 0\nvar _color_slot := 0\nvar _mode := 0\n\n\nfunc _input(event: InputEvent) -> void:\n\tvar options: OptionButton = $ColorPicker/Options\n\n\tif event.is_action_pressed(\"change_tool_mode\"):\n\t\t_prev_mode = options.selected\n\tif event.is_action(\"change_tool_mode\"):\n\t\toptions.selected = _prev_mode ^ 1\n\t\t_color_slot = options.selected\n\tif event.is_action_released(\"change_tool_mode\"):\n\t\toptions.selected = _prev_mode\n\t\t_color_slot = options.selected\n\n\nfunc _on_Options_item_selected(id: int) -> void:\n\t_color_slot = id\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_ExtractFrom_item_selected(index: int) -> void:\n\t_mode = index\n\tupdate_config()\n\tsave_config()\n\n\nfunc get_config() -> Dictionary:\n\treturn {\"color_slot\": _color_slot, \"mode\": _mode}\n\n\nfunc set_config(config: Dictionary) -> void:\n\t_color_slot = config.get(\"color_slot\", _color_slot)\n\t_mode = config.get(\"mode\", _mode)\n\n\nfunc update_config() -> void:\n\t$ColorPicker/Options.selected = _color_slot\n\t$ColorPicker/ExtractFrom.selected = _mode\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\tsuper.draw_start(pos)\n\t_pick_color(pos)\n\n\nfunc draw_move(pos: Vector2i) -> void:\n\tsuper.draw_move(pos)\n\t_pick_color(pos)\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tsuper.draw_end(pos)\n\n\nfunc _pick_color(pos: Vector2i) -> void:\n\tvar project := Global.current_project\n\tpos = project.tiles.get_canon_position(pos)\n\tif pos.x < 0 or pos.y < 0:\n\t\treturn\n\tif Tools.is_placing_tiles():\n\t\tvar cel := Global.current_project.get_current_cel() as CelTileMap\n\t\tTools.selected_tile_index_changed.emit(cel.get_cell_index_at_coords(pos))\n\t\treturn\n\tvar image := Image.new()\n\timage.copy_from(_get_draw_image())\n\tif pos.x > image.get_width() - 1 or pos.y > image.get_height() - 1:\n\t\treturn\n\n\tvar color := Color(0, 0, 0, 0)\n\tvar palette_index = -1\n\tmatch _mode:\n\t\tTOP_COLOR:\n\t\t\tvar curr_frame := project.frames[project.current_frame]\n\t\t\tfor layer in project.layers.size():\n\t\t\t\tvar idx := (project.layers.size() - 1) - layer\n\t\t\t\tif project.layers[idx].is_visible_in_hierarchy():\n\t\t\t\t\tvar cel := curr_frame.cels[idx]\n\t\t\t\t\timage = cel.get_image()\n\t\t\t\t\tcolor = image.get_pixelv(pos)\n\t\t\t\t\t# If image is indexed then get index as well\n\t\t\t\t\tif cel is PixelCel:\n\t\t\t\t\t\tif cel.image.is_indexed:\n\t\t\t\t\t\t\tpalette_index = cel.image.indices_image.get_pixel(pos.x, pos.y).r8 - 1\n\t\t\t\t\tif not is_zero_approx(color.a):\n\t\t\t\t\t\tbreak\n\t\tCURRENT_LAYER:\n\t\t\tcolor = image.get_pixelv(pos)\n\t\t\tvar current_cel = Global.current_project.get_current_cel()\n\t\t\tif current_cel is PixelCel:\n\t\t\t\tif current_cel.image.is_indexed:\n\t\t\t\t\tpalette_index = current_cel.image.index_image.get_pixel(pos.x, pos.y).r8 - 1\n\tvar button := MOUSE_BUTTON_LEFT if _color_slot == 0 else MOUSE_BUTTON_RIGHT\n\tTools.assign_color(color, button, false, palette_index)\n"
  },
  {
    "path": "src/Tools/UtilityTools/ColorPicker.gd.uid",
    "content": "uid://bt6mnsibfgh81\n"
  },
  {
    "path": "src/Tools/UtilityTools/ColorPicker.tscn",
    "content": "[gd_scene format=3 uid=\"uid://2onobu8eymt8\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://ctfgfelg0sho8\" path=\"res://src/Tools/BaseTool.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://bt6mnsibfgh81\" path=\"res://src/Tools/UtilityTools/ColorPicker.gd\" id=\"2\"]\n\n[node name=\"ToolOptions\" unique_id=1027862236 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n\n[node name=\"ColorPicker\" type=\"VBoxContainer\" parent=\".\" index=\"2\" unique_id=991427137]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"ColorPicker\" index=\"0\" unique_id=696880749]\nlayout_mode = 2\nsize_flags_vertical = 1\nmouse_default_cursor_shape = 2\ntext = \"Pick for:\"\n\n[node name=\"Options\" type=\"OptionButton\" parent=\"ColorPicker\" index=\"1\" unique_id=1682099273]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 2\npopup/item_0/text = \"Left Color\"\npopup/item_0/id = 0\npopup/item_1/text = \"Right Color\"\npopup/item_1/id = 1\n\n[node name=\"Label2\" type=\"Label\" parent=\"ColorPicker\" index=\"2\" unique_id=469053954]\nlayout_mode = 2\nsize_flags_vertical = 1\nmouse_default_cursor_shape = 2\ntext = \"Pick mode:\"\n\n[node name=\"ExtractFrom\" type=\"OptionButton\" parent=\"ColorPicker\" index=\"3\" unique_id=2077666528]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 2\npopup/item_0/text = \"Top Color\"\npopup/item_0/id = 0\npopup/item_1/text = \"Current Layer\"\npopup/item_1/id = 1\n\n[connection signal=\"item_selected\" from=\"ColorPicker/Options\" to=\".\" method=\"_on_Options_item_selected\"]\n[connection signal=\"item_selected\" from=\"ColorPicker/ExtractFrom\" to=\".\" method=\"_on_ExtractFrom_item_selected\"]\n"
  },
  {
    "path": "src/Tools/UtilityTools/CropTool.gd",
    "content": "extends BaseTool\n## Crop Tool, allows you to resize the canvas interactively\n\nvar _offset := Vector2i.ZERO\nvar _crop: CropRect\nvar _start_pos: Vector2\nvar _syncing := false\nvar _locked_ratio := false\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\t_crop = Global.canvas.crop_rect\n\t_crop.updated.connect(_sync_ui)\n\t_crop.tool_count += 1\n\t_sync_ui()\n\n\nfunc _exit_tree() -> void:\n\tsuper._exit_tree()\n\t_crop.tool_count -= 1\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\tsuper.draw_start(pos)\n\t_offset = pos - _crop.rect.position\n\t_start_pos = pos\n\n\nfunc draw_move(pos: Vector2i) -> void:\n\tsuper.draw_move(pos)\n\tif _crop.locked_size:\n\t\t_crop.rect.position = pos - _offset\n\telse:\n\t\tif _crop.mode == CropRect.Mode.POSITION_SIZE and _locked_ratio:\n\t\t\tvar ratio: Vector2 = $\"%Size\".ratio\n\t\t\tvar distance := absf(_start_pos.x - pos.x) + absf(_start_pos.y - pos.y)\n\t\t\t_crop.rect.size.x = roundi(distance * ratio.x / (ratio.x + ratio.y))\n\t\t\t_crop.rect.size.y = roundi(distance * ratio.y / (ratio.x + ratio.y))\n\t\t\tif _start_pos.x < pos.x:\n\t\t\t\t_crop.rect.position.x = _start_pos.x\n\t\t\telse:\n\t\t\t\t_crop.rect.position.x = _start_pos.x - _crop.rect.size.x\n\t\t\tif _start_pos.y < pos.y:\n\t\t\t\t_crop.rect.position.y = _start_pos.y\n\t\t\telse:\n\t\t\t\t_crop.rect.position.y = _start_pos.y - _crop.rect.size.y\n\t\telse:\n\t\t\t_crop.rect.position.x = mini(_start_pos.x, pos.x)\n\t\t\t_crop.rect.position.y = mini(_start_pos.y, pos.y)\n\t\t\t_crop.rect.end.x = maxi(_start_pos.x, pos.x)\n\t\t\t_crop.rect.end.y = maxi(_start_pos.y, pos.y)\n\t\t# Ensure that the size is at least 1:\n\t\t_crop.rect.size.x = maxi(1, _crop.rect.size.x)\n\t\t_crop.rect.size.y = maxi(1, _crop.rect.size.y)\n\t_crop.updated.emit()\n\n\nfunc _sync_ui() -> void:\n\t_syncing = true\n\t$\"%CropMode\".selected = _crop.mode\n\t$\"%SizeLock\".button_pressed = _crop.locked_size\n\tmatch _crop.mode:\n\t\tCropRect.Mode.MARGINS:\n\t\t\t$\"%MarginsContainer\".show()\n\t\t\t$\"%RatioContainer\".hide()\n\t\t\t$\"%PosSizeContainer\".hide()\n\t\t\t$\"%DimensionsLabel\".show()\n\t\tCropRect.Mode.POSITION_SIZE:\n\t\t\t$\"%MarginsContainer\".hide()\n\t\t\t$\"%PosSizeContainer\".show()\n\t\t\t$\"%DimensionsLabel\".hide()\n\n\t$\"%Top\".max_value = (Global.current_project.size.y * 2) - 1\n\t$\"%Bottom\".max_value = Global.current_project.size.y * 2\n\t$\"%Left\".max_value = (Global.current_project.size.x * 2) - 1\n\t$\"%Right\".max_value = Global.current_project.size.x * 2\n\t$\"%Top\".min_value = -Global.current_project.size.y + 1\n\t$\"%Bottom\".min_value = -Global.current_project.size.y\n\t$\"%Left\".min_value = -Global.current_project.size.x + 1\n\t$\"%Right\".min_value = -Global.current_project.size.x\n\t$\"%Top\".value = _crop.rect.position.y\n\t$\"%Bottom\".value = _crop.rect.end.y\n\t$\"%Left\".value = _crop.rect.position.x\n\t$\"%Right\".value = _crop.rect.end.x\n\n\t$\"%Position\".max_value = (Global.current_project.size * 2) - Vector2i.ONE\n\t$\"%Size\".max_value = Global.current_project.size * 2\n\t$\"%Position\".min_value = -Global.current_project.size + Vector2i.ONE\n\t$\"%Size\".min_value = -Global.current_project.size\n\t$\"%Position\".value = _crop.rect.position\n\t$\"%Size\".value = _crop.rect.size\n\n\t$\"%DimensionsLabel\".text = str(_crop.rect.size.x, \" x \", _crop.rect.size.y)\n\t_syncing = false\n\n\n# UI Signals:\n\n\nfunc _on_CropMode_item_selected(index: CropRect.Mode) -> void:\n\tif _syncing:\n\t\treturn\n\t_crop.mode = index\n\t_crop.updated.emit()\n\n\nfunc _on_SizeLock_toggled(button_pressed: bool) -> void:\n\tif button_pressed:\n\t\t$\"%SizeLock\".icon = preload(\"res://assets/graphics/misc/locked_size.png\")\n\telse:\n\t\t$\"%SizeLock\".icon = preload(\"res://assets/graphics/misc/unlocked_size.png\")\n\tif _syncing:\n\t\treturn\n\t_crop.locked_size = button_pressed\n\t_crop.updated.emit()\n\n\nfunc _on_Top_value_changed(value: float) -> void:\n\tif _syncing:\n\t\treturn\n\tvar difference := value - _crop.rect.position.y\n\t_crop.rect.size.y = max(1, _crop.rect.size.y - difference)\n\t_crop.rect.position.y = value\n\t_crop.updated.emit()\n\n\nfunc _on_Bottom_value_changed(value: float) -> void:\n\tif _syncing:\n\t\treturn\n\t_crop.rect.position.y = mini(value - 1, _crop.rect.position.y)\n\t_crop.rect.end.y = value\n\t_crop.updated.emit()\n\n\nfunc _on_Left_value_changed(value: float) -> void:\n\tif _syncing:\n\t\treturn\n\tvar difference := value - _crop.rect.position.x\n\t_crop.rect.size.x = maxi(1, _crop.rect.size.x - difference)\n\t_crop.rect.position.x = value\n\t_crop.updated.emit()\n\n\nfunc _on_Right_value_changed(value: float) -> void:\n\tif _syncing:\n\t\treturn\n\t_crop.rect.position.x = mini(value - 1, _crop.rect.position.x)\n\t_crop.rect.end.x = value\n\t_crop.updated.emit()\n\n\nfunc _on_RatioX_value_changed(value: float) -> void:\n\tif _syncing:\n\t\treturn\n\tvar prev_ratio: Vector2 = $\"%Size\".ratio\n\t$\"%Size\".ratio.x = value\n\t_crop.rect.size.x = roundi(maxf(1, _crop.rect.size.y / prev_ratio.y * value))\n\t_crop.updated.emit()\n\n\nfunc _on_RatioY_value_changed(value: float) -> void:\n\tif _syncing:\n\t\treturn\n\tvar prev_ratio: Vector2 = $\"%Size\".ratio\n\t$\"%Size\".ratio.y = value\n\t_crop.rect.size.y = roundi(maxf(1, _crop.rect.size.x / prev_ratio.x * value))\n\t_crop.updated.emit()\n\n\nfunc _on_Position_value_changed(value: Vector2i) -> void:\n\tif _syncing:\n\t\treturn\n\t_crop.rect.position = value\n\t_crop.updated.emit()\n\n\nfunc _on_Size_value_changed(value: Vector2i) -> void:\n\tif _syncing:\n\t\treturn\n\t_crop.rect.size = value\n\t_crop.updated.emit()\n\n\nfunc _on_Size_ratio_toggled(button_pressed: bool) -> void:\n\t$\"%RatioX\".value = $\"%Size\".ratio.x\n\t$\"%RatioY\".value = $\"%Size\".ratio.y\n\t$\"%RatioContainer\".visible = button_pressed\n\t_locked_ratio = button_pressed\n\n\nfunc _on_Apply_pressed() -> void:\n\t_crop.apply()\n"
  },
  {
    "path": "src/Tools/UtilityTools/CropTool.gd.uid",
    "content": "uid://bvs7k7hwwuuby\n"
  },
  {
    "path": "src/Tools/UtilityTools/CropTool.tscn",
    "content": "[gd_scene format=3 uid=\"uid://c35n21ii7onhe\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://ctfgfelg0sho8\" path=\"res://src/Tools/BaseTool.tscn\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"2\"]\n[ext_resource type=\"Script\" uid=\"uid://bvs7k7hwwuuby\" path=\"res://src/Tools/UtilityTools/CropTool.gd\" id=\"3\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bgrq56ndc4ydj\" path=\"res://assets/graphics/misc/unlocked_size.png\" id=\"4\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bbnqcxa20a5a5\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\" id=\"5\"]\n\n[node name=\"ToolOptions\" unique_id=1159814523 instance=ExtResource(\"1\")]\nscript = ExtResource(\"3\")\n\n[node name=\"ModeLabel\" type=\"Label\" parent=\".\" index=\"2\" unique_id=804929409]\nlayout_mode = 2\ntext = \"Mode:\"\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\".\" index=\"3\" unique_id=421001220]\nlayout_mode = 2\n\n[node name=\"CropMode\" type=\"OptionButton\" parent=\"HBoxContainer\" index=\"0\" unique_id=2106684403]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nclip_text = true\nselected = 0\nitem_count = 2\npopup/item_0/text = \"Margins\"\npopup/item_0/id = 0\npopup/item_1/text = \"Position + Size\"\npopup/item_1/id = 1\n\n[node name=\"SizeLock\" type=\"Button\" parent=\"HBoxContainer\" index=\"1\" unique_id=1878115841]\nunique_name_in_owner = true\nlayout_mode = 2\ntooltip_text = \"Locked size\n\nWhen enabled using the tool on the canvas will only move the cropping rectangle.\n\nWhen disabled using the tool on the canvas will draw the rectangle.\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nicon = ExtResource(\"4\")\n\n[node name=\"MarginsContainer\" type=\"VBoxContainer\" parent=\".\" index=\"4\" unique_id=687858477]\nunique_name_in_owner = true\nlayout_mode = 2\n\n[node name=\"MarginsLabel\" type=\"Label\" parent=\"MarginsContainer\" index=\"0\" unique_id=1754774436]\nlayout_mode = 2\ntext = \"Margins:\"\n\n[node name=\"Top\" parent=\"MarginsContainer\" index=\"1\" unique_id=688061349 instance=ExtResource(\"2\")]\nunique_name_in_owner = true\nlayout_mode = 2\nallow_greater = true\nallow_lesser = true\nprefix = \"Top:\"\n\n[node name=\"Bottom\" parent=\"MarginsContainer\" index=\"2\" unique_id=739734631 instance=ExtResource(\"2\")]\nunique_name_in_owner = true\nlayout_mode = 2\nallow_greater = true\nallow_lesser = true\nprefix = \"Bottom:\"\n\n[node name=\"Left\" parent=\"MarginsContainer\" index=\"3\" unique_id=1074616429 instance=ExtResource(\"2\")]\nunique_name_in_owner = true\nlayout_mode = 2\nallow_greater = true\nallow_lesser = true\nprefix = \"Left:\"\n\n[node name=\"Right\" parent=\"MarginsContainer\" index=\"4\" unique_id=1345948867 instance=ExtResource(\"2\")]\nunique_name_in_owner = true\nlayout_mode = 2\nallow_greater = true\nallow_lesser = true\nprefix = \"Right:\"\n\n[node name=\"RatioContainer\" type=\"VBoxContainer\" parent=\".\" index=\"5\" unique_id=530048396]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\n\n[node name=\"AspectRatioLabel\" type=\"Label\" parent=\"RatioContainer\" index=\"0\" unique_id=898187992]\nlayout_mode = 2\ntext = \"Aspect Ratio:\"\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"RatioContainer\" index=\"1\" unique_id=533082050]\nlayout_mode = 2\n\n[node name=\"RatioX\" parent=\"RatioContainer/HBoxContainer\" index=\"0\" unique_id=1522669245 instance=ExtResource(\"2\")]\nunique_name_in_owner = true\nlayout_mode = 2\nmin_value = 1.0\nvalue = 1.0\nallow_greater = true\n\n[node name=\"Label\" type=\"Label\" parent=\"RatioContainer/HBoxContainer\" index=\"1\" unique_id=1224775819]\nlayout_mode = 2\ntext = \":\"\n\n[node name=\"RatioY\" parent=\"RatioContainer/HBoxContainer\" index=\"2\" unique_id=1813607048 instance=ExtResource(\"2\")]\nunique_name_in_owner = true\nlayout_mode = 2\nmin_value = 1.0\nvalue = 1.0\nallow_greater = true\n\n[node name=\"PosSizeContainer\" type=\"VBoxContainer\" parent=\".\" index=\"6\" unique_id=1989866607]\nunique_name_in_owner = true\nlayout_mode = 2\n\n[node name=\"PositionLabel\" type=\"Label\" parent=\"PosSizeContainer\" index=\"0\" unique_id=299283377]\nlayout_mode = 2\ntext = \"Position:\"\n\n[node name=\"Position\" parent=\"PosSizeContainer\" index=\"1\" unique_id=116509928 instance=ExtResource(\"5\")]\nunique_name_in_owner = true\nlayout_mode = 2\nallow_greater = true\nallow_lesser = true\n\n[node name=\"SizeLabel\" type=\"Label\" parent=\"PosSizeContainer\" index=\"2\" unique_id=196994721]\nlayout_mode = 2\ntext = \"Size:\"\n\n[node name=\"Size\" parent=\"PosSizeContainer\" index=\"3\" unique_id=220993121 instance=ExtResource(\"5\")]\nunique_name_in_owner = true\nlayout_mode = 2\nvalue = Vector2(1, 1)\nmin_value = Vector2(1, 1)\nallow_greater = true\nshow_ratio = true\nprefix_x = \"Width:\"\nprefix_y = \"Height:\"\n\n[node name=\"Apply\" type=\"Button\" parent=\".\" index=\"7\" unique_id=211966480]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Apply\"\n\n[node name=\"DimensionsLabel\" type=\"Label\" parent=\".\" index=\"8\" unique_id=552473952]\nunique_name_in_owner = true\nlayout_mode = 2\n\n[connection signal=\"item_selected\" from=\"HBoxContainer/CropMode\" to=\".\" method=\"_on_CropMode_item_selected\"]\n[connection signal=\"toggled\" from=\"HBoxContainer/SizeLock\" to=\".\" method=\"_on_SizeLock_toggled\"]\n[connection signal=\"value_changed\" from=\"MarginsContainer/Top\" to=\".\" method=\"_on_Top_value_changed\"]\n[connection signal=\"value_changed\" from=\"MarginsContainer/Bottom\" to=\".\" method=\"_on_Bottom_value_changed\"]\n[connection signal=\"value_changed\" from=\"MarginsContainer/Left\" to=\".\" method=\"_on_Left_value_changed\"]\n[connection signal=\"value_changed\" from=\"MarginsContainer/Right\" to=\".\" method=\"_on_Right_value_changed\"]\n[connection signal=\"value_changed\" from=\"RatioContainer/HBoxContainer/RatioX\" to=\".\" method=\"_on_RatioX_value_changed\"]\n[connection signal=\"value_changed\" from=\"RatioContainer/HBoxContainer/RatioY\" to=\".\" method=\"_on_RatioY_value_changed\"]\n[connection signal=\"value_changed\" from=\"PosSizeContainer/Position\" to=\".\" method=\"_on_Position_value_changed\"]\n[connection signal=\"ratio_toggled\" from=\"PosSizeContainer/Size\" to=\".\" method=\"_on_Size_ratio_toggled\"]\n[connection signal=\"value_changed\" from=\"PosSizeContainer/Size\" to=\".\" method=\"_on_Size_value_changed\"]\n[connection signal=\"pressed\" from=\"Apply\" to=\".\" method=\"_on_Apply_pressed\"]\n"
  },
  {
    "path": "src/Tools/UtilityTools/Move.gd",
    "content": "extends BaseTool\n\nvar _start_pos: Vector2i\nvar _offset: Vector2i\nvar _snap_to_grid := false  ## Holding Ctrl while moving.\nvar _undo_data := {}\n\n@onready var selection_node := Global.canvas.selection\n\n\nfunc _input(event: InputEvent) -> void:\n\tif _start_pos == Vector2i(Vector2.INF):\n\t\treturn\n\tif event.is_action_pressed(\"transform_snap_grid\"):\n\t\t_snap_to_grid = true\n\t\t_offset = _offset.snapped(Global.grids[0].grid_size)\n\telif event.is_action_released(\"transform_snap_grid\"):\n\t\t_snap_to_grid = false\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\tsuper.draw_start(pos)\n\tvar project := Global.current_project\n\tif not _can_layer_be_moved(project.layers[project.current_layer]):\n\t\treturn\n\t_start_pos = pos\n\t_offset = pos\n\t_undo_data = _get_undo_data()\n\tif Tools.is_placing_tiles():\n\t\t# Clear selection if it it present (i tried moving the selection proview only but the)\n\t\t# code for it gets too complex so i chose to clear it instead\n\t\tif project.has_selection:\n\t\t\tGlobal.canvas.selection.clear_selection(true)\n\t\t\tproject.selection_map_changed()\n\t\tfor cel in _get_selected_draw_cels():\n\t\t\tif cel is not CelTileMap:\n\t\t\t\tcontinue\n\t\t\t(cel as CelTileMap).prev_offset = (cel as CelTileMap).offset\n\telse:\n\t\tif project.has_selection:\n\t\t\tselection_node.transformation_handles.begin_transform()\n\tGlobal.canvas.sprite_changed_this_frame = true\n\tGlobal.canvas.measurements.update_measurement(Global.MeasurementMode.MOVE)\n\n\nfunc draw_move(pos: Vector2i) -> void:\n\tsuper.draw_move(pos)\n\tvar project := Global.current_project\n\tif not _can_layer_be_moved(project.layers[project.current_layer]):\n\t\treturn\n\tpos = _snap_position(pos)\n\n\tif Tools.is_placing_tiles():\n\t\tfor cel in _get_selected_draw_cels():\n\t\t\tif cel is not CelTileMap:\n\t\t\t\tcontinue\n\t\t\t(cel as CelTileMap).change_offset(cel.offset + pos - _offset)\n\t\tGlobal.canvas.move_preview_location = pos - _start_pos\n\telse:\n\t\tif project.has_selection:\n\t\t\tselection_node.transformation_handles.move_transform(pos - _offset)\n\t\telse:\n\t\t\tGlobal.canvas.move_preview_location = pos - _start_pos\n\t_offset = pos\n\tGlobal.canvas.sprite_changed_this_frame = true\n\tGlobal.canvas.measurements.update_measurement(Global.MeasurementMode.MOVE)\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tvar project := Global.current_project\n\tif not _can_layer_be_moved(project.layers[project.current_layer]):\n\t\tsuper.draw_end(pos)\n\t\treturn\n\tif _start_pos != Vector2i(Vector2.INF):\n\t\tpos = _snap_position(pos)\n\t\tif not (project.has_selection and not Tools.is_placing_tiles()):\n\t\t\tvar pixel_diff := pos - _start_pos\n\t\t\tfor cel in _get_affected_cels():\n\t\t\t\tvar image := cel.get_image()\n\t\t\t\t_move_image(image, pixel_diff)\n\t\t\t\t_move_image(image.indices_image, pixel_diff)\n\t\t\t_commit_undo(\"Draw\")\n\n\t_reset_tool()\n\tsuper.draw_end(pos)\n\n\nfunc cancel_tool() -> void:\n\tsuper()\n\t_reset_tool()\n\n\nfunc _reset_tool() -> void:\n\tGlobal.canvas.move_preview_location = Vector2i.ZERO\n\t_start_pos = Vector2.INF\n\t_snap_to_grid = false\n\tGlobal.canvas.sprite_changed_this_frame = true\n\tGlobal.canvas.measurements.update_measurement(Global.MeasurementMode.NONE)\n\n\nfunc _get_affected_cels() -> Array[BaseCel]:\n\tvar cels: Array[BaseCel]\n\tvar project := Global.current_project\n\tfor cel_index in project.selected_cels:\n\t\tvar frame := project.frames[cel_index[0]]\n\t\tvar cel: BaseCel = frame.cels[cel_index[1]]\n\t\tvar layer: BaseLayer = project.layers[cel_index[1]]\n\t\tif not _can_layer_be_moved(layer):\n\t\t\tcontinue\n\t\tif cel is PixelCel:\n\t\t\tif not cels.has(cel):\n\t\t\t\tcels.append(cel)\n\t\telif cel is GroupCel:\n\t\t\tfor child in layer.get_children(true):\n\t\t\t\tvar child_cel := frame.cels[child.index]\n\t\t\t\tif not _can_layer_be_moved(child):\n\t\t\t\t\tcontinue\n\t\t\t\tif child_cel is PixelCel:\n\t\t\t\t\tif not cels.has(child_cel):\n\t\t\t\t\t\tcels.append(child_cel)\n\treturn cels\n\n\nfunc _move_image(image: Image, pixel_diff: Vector2i) -> void:\n\tvar image_copy := Image.new()\n\timage_copy.copy_from(image)\n\timage.fill(Color(0, 0, 0, 0))\n\timage.blit_rect(image_copy, Rect2i(Vector2i.ZERO, image.get_size()), pixel_diff)\n\n\nfunc _can_layer_be_moved(layer: BaseLayer) -> bool:\n\tif layer.can_layer_get_drawn():\n\t\treturn true\n\tif layer is GroupLayer and layer.can_layer_be_modified():\n\t\treturn true\n\treturn false\n\n\nfunc _snap_position(pos: Vector2) -> Vector2:\n\tif Input.is_action_pressed(\"transform_snap_axis\"):\n\t\tvar angle := pos.angle_to_point(_start_pos)\n\t\tif absf(angle) <= PI / 4 or absf(angle) >= 3 * PI / 4:\n\t\t\tpos.y = _start_pos.y\n\t\telse:\n\t\t\tpos.x = _start_pos.x\n\tif _snap_to_grid:  # Snap to grid\n\t\tvar grid_size := Global.grids[0].grid_size\n\t\tpos = pos.snapped(grid_size)\n\t\t# The part below only corrects the offset for situations when there is no selection\n\t\t# Offsets when there is selection is controlled in _input() function\n\t\tif not Global.current_project.has_selection:\n\t\t\tvar move_offset: Vector2 = _start_pos - (_start_pos / grid_size) * grid_size\n\t\t\tpos += move_offset\n\n\treturn pos\n\n\nfunc _commit_undo(action: String) -> void:\n\tvar project := Global.current_project\n\tproject.update_tilemaps(_undo_data, TileSetPanel.TileEditingMode.AUTO)\n\tvar redo_data := _get_undo_data()\n\tvar frame := -1\n\tvar layer := -1\n\tif Global.animation_timeline.animation_timer.is_stopped() and project.selected_cels.size() == 1:\n\t\tframe = project.current_frame\n\t\tif project.get_current_cel() is not GroupCel:\n\t\t\tlayer = project.current_layer\n\n\tproject.undo_redo.create_action(action)\n\tproject.deserialize_cel_undo_data(redo_data, _undo_data)\n\tif Tools.is_placing_tiles():\n\t\tfor cel in _get_selected_draw_cels():\n\t\t\tif cel is not CelTileMap:\n\t\t\t\tcontinue\n\t\t\tproject.undo_redo.add_do_method(cel.change_offset.bind(cel.offset))\n\t\t\tproject.undo_redo.add_do_method(cel.re_order_tilemap)\n\t\t\tproject.undo_redo.add_undo_method(cel.change_offset.bind(cel.prev_offset))\n\t\t\tproject.undo_redo.add_undo_method(cel.re_order_tilemap)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false, frame, layer))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true, frame, layer))\n\tproject.undo_redo.commit_action()\n\t_undo_data.clear()\n\n\nfunc _get_undo_data() -> Dictionary:\n\tvar data := {}\n\tvar project := Global.current_project\n\tvar cels: Array[BaseCel] = []\n\tif Global.animation_timeline.animation_timer.is_stopped():\n\t\tfor cel in _get_affected_cels():\n\t\t\tcels.append(cel)\n\telse:\n\t\tfor frame in project.frames:\n\t\t\tvar cel := frame.cels[project.current_layer]\n\t\t\tcels.append(cel)\n\tproject.serialize_cel_undo_data(cels, data)\n\treturn data\n"
  },
  {
    "path": "src/Tools/UtilityTools/Move.gd.uid",
    "content": "uid://cbbfygvmu1nfm\n"
  },
  {
    "path": "src/Tools/UtilityTools/Move.tscn",
    "content": "[gd_scene format=3 uid=\"uid://64l4dmyfeev7\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://ctfgfelg0sho8\" path=\"res://src/Tools/BaseTool.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://cbbfygvmu1nfm\" path=\"res://src/Tools/UtilityTools/Move.gd\" id=\"2\"]\n\n[node name=\"ToolOptions\" unique_id=869278679 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n"
  },
  {
    "path": "src/Tools/UtilityTools/Pan.gd",
    "content": "extends BaseTool\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\tsuper.draw_start(pos)\n\tfor camera: CanvasCamera in get_tree().get_nodes_in_group(\"CanvasCameras\"):\n\t\tcamera.drag = true\n\n\nfunc draw_move(pos: Vector2i) -> void:\n\tsuper.draw_move(pos)\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tsuper.draw_end(pos)\n\tfor camera: CanvasCamera in get_tree().get_nodes_in_group(\"CanvasCameras\"):\n\t\tcamera.drag = false\n"
  },
  {
    "path": "src/Tools/UtilityTools/Pan.gd.uid",
    "content": "uid://b1cqiehlm0loo\n"
  },
  {
    "path": "src/Tools/UtilityTools/Pan.tscn",
    "content": "[gd_scene format=3 uid=\"uid://pvno2bc0jepk\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://ctfgfelg0sho8\" path=\"res://src/Tools/BaseTool.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://b1cqiehlm0loo\" path=\"res://src/Tools/UtilityTools/Pan.gd\" id=\"2\"]\n\n[node name=\"ToolOptions\" unique_id=862670790 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n"
  },
  {
    "path": "src/Tools/UtilityTools/Text.gd",
    "content": "extends BaseTool\n\nconst BOLD_FLAG := 1\nconst ITALIC_FLAG := 2\nconst EMBOLDEN_AMOUNT := 0.6\nconst ITALIC_AMOUNT := 0.2\nconst ITALIC_TRANSFORM := Transform2D(Vector2(1.0, ITALIC_AMOUNT), Vector2(0.0, 1.0), Vector2.ZERO)\nconst NEW_CANVAS_ITEM_MATERIAL := preload(\"res://assets/premult_alpha_canvas_item_mat.tres\")\n\nvar text_edit: TextToolEdit:\n\tset(value):\n\t\ttext_edit = value\n\t\tconfirm_buttons.visible = is_instance_valid(text_edit)\n\t\tget_tree().current_scene.is_writing_text = is_instance_valid(text_edit)\nvar text_size := 16\nvar font := FontVariation.new()\nvar font_name := \"\":\n\tset(value):\n\t\tfont_name = value\n\t\tfont.base_font = Global.find_font_from_name(font_name)\n\t\tfont.base_font.antialiasing = antialiasing\n\t\t_textedit_text_changed()\nvar text_style := 0:\n\tset(value):\n\t\ttext_style = value\n\t\tfont.variation_embolden = EMBOLDEN_AMOUNT if text_style & BOLD_FLAG else 0.0\n\t\tfont.variation_transform = ITALIC_TRANSFORM if text_style & ITALIC_FLAG else Transform2D()\n\t\tsave_config()\n\t\t_textedit_text_changed()\n\nvar horizontal_alignment := HORIZONTAL_ALIGNMENT_LEFT\nvar antialiasing := TextServer.FONT_ANTIALIASING_NONE:\n\tset(value):\n\t\tantialiasing = value\n\t\tfont.base_font.antialiasing = antialiasing\n\nvar _offset := Vector2i.ZERO\n\n@onready var confirm_buttons: HBoxContainer = $ConfirmButtons\n@onready var font_option_button: OptionButton = $GridContainer/FontOptionButton\n@onready var horizontal_alignment_group: ButtonGroup = %HorizontalAlignmentLeftButton.button_group\n@onready var anti_aliasing_group: ButtonGroup = %AAOffButton.button_group\n\n\nfunc _ready() -> void:\n\tif tool_slot.button == MOUSE_BUTTON_RIGHT:\n\t\t$TextSizeSlider.allow_global_input_events = not Global.share_options_between_tools\n\t\tGlobal.share_options_between_tools_changed.connect(\n\t\t\tfunc(enabled): $TextSizeSlider.allow_global_input_events = not enabled\n\t\t)\n\tvar font_names := Global.get_available_font_names()\n\tfor f_name in font_names:\n\t\tfont_option_button.add_item(f_name)\n\tTools.color_changed.connect(_on_color_changed)\n\thorizontal_alignment_group.pressed.connect(_on_horizontal_alignment_button_pressed)\n\tanti_aliasing_group.pressed.connect(_on_antialiasing_button_pressed)\n\tsuper._ready()\n\n\nfunc get_config() -> Dictionary:\n\treturn {\n\t\t\"font_name\": font_name,\n\t\t\"text_size\": text_size,\n\t\t\"text_style\": text_style,\n\t\t\"horizontal_alignment\": horizontal_alignment,\n\t\t\"antialiasing\": antialiasing\n\t}\n\n\nfunc set_config(config: Dictionary) -> void:\n\tfont_name = config.get(\"font_name\", \"Roboto\")\n\tif font_name not in Global.get_available_font_names():\n\t\tfont_name = \"Roboto\"\n\ttext_size = config.get(\"text_size\", text_size)\n\ttext_style = config.get(\"text_style\", text_style)\n\thorizontal_alignment = config.get(\"horizontal_alignment\", horizontal_alignment)\n\tantialiasing = config.get(\"antialiasing\", antialiasing)\n\n\nfunc update_config() -> void:\n\tfor i in font_option_button.item_count:\n\t\tvar item_name: String = font_option_button.get_item_text(i)\n\t\tif font_name == item_name:\n\t\t\tfont_option_button.selected = i\n\t$TextSizeSlider.value = text_size\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\tif not is_instance_valid(text_edit):\n\t\ttext_edit = TextToolEdit.new()\n\t\ttext_edit.text = \"\"\n\t\ttext_edit.font = font\n\t\ttext_edit.add_theme_color_override(&\"font_color\", tool_slot.color)\n\t\ttext_edit.add_theme_font_size_override(&\"font_size\", text_size)\n\t\tGlobal.canvas.add_child(text_edit)\n\t\ttext_edit.position = pos - Vector2i(0, text_edit.custom_minimum_size.y / 2)\n\t_offset = pos\n\n\nfunc draw_move(pos: Vector2i) -> void:\n\tif is_instance_valid(text_edit) and not text_edit.get_global_rect().has_point(pos):\n\t\ttext_edit.position += Vector2(pos - _offset)\n\t_offset = pos\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tif is_instance_valid(text_edit):\n\t\ttext_edit.grab_focus()\n\tsuper.draw_end(pos)\n\n\nfunc text_to_pixels() -> void:\n\tif not is_instance_valid(text_edit):\n\t\treturn\n\tif text_edit.text.is_empty():\n\t\ttext_edit.queue_free()\n\t\ttext_edit = null\n\t\treturn\n\n\tvar undo_data := _get_undo_data()\n\tvar project := Global.current_project\n\tvar image := project.frames[project.current_frame].cels[project.current_layer].get_image()\n\n\tvar vp := RenderingServer.viewport_create()\n\tvar canvas := RenderingServer.canvas_create()\n\tRenderingServer.viewport_attach_canvas(vp, canvas)\n\tRenderingServer.viewport_set_size(vp, project.size.x, project.size.y)\n\tRenderingServer.viewport_set_disable_3d(vp, true)\n\tRenderingServer.viewport_set_active(vp, true)\n\tRenderingServer.viewport_set_transparent_background(vp, true)\n\tRenderingServer.viewport_set_default_canvas_item_texture_filter(\n\t\tvp, RenderingServer.CANVAS_ITEM_TEXTURE_FILTER_NEAREST\n\t)\n\n\tvar ci_rid := RenderingServer.canvas_item_create()\n\tRenderingServer.viewport_set_canvas_transform(vp, canvas, Transform2D())\n\tRenderingServer.canvas_item_set_parent(ci_rid, canvas)\n\tvar texture := RenderingServer.texture_2d_create(image)\n\tRenderingServer.canvas_item_add_texture_rect(ci_rid, Rect2(Vector2.ZERO, project.size), texture)\n\tRenderingServer.canvas_item_set_material(ci_rid, NEW_CANVAS_ITEM_MATERIAL.get_rid())\n\tvar text := text_edit.text\n\tvar color := tool_slot.color\n\tvar font_ascent := font.get_ascent(text_size)\n\tvar pos := Vector2(0, font_ascent + text_edit.get_theme_constant(&\"line_spacing\"))\n\tpos += text_edit.position\n\tfont.draw_multiline_string(\n\t\tci_rid, pos, text, horizontal_alignment, text_edit.size.x, text_size, -1, color\n\t)\n\n\tRenderingServer.viewport_set_update_mode(vp, RenderingServer.VIEWPORT_UPDATE_ONCE)\n\tRenderingServer.force_draw(false)\n\tvar viewport_texture := RenderingServer.texture_2d_get(RenderingServer.viewport_get_texture(vp))\n\tRenderingServer.free_rid(vp)\n\tRenderingServer.free_rid(canvas)\n\tRenderingServer.free_rid(ci_rid)\n\tRenderingServer.free_rid(texture)\n\tviewport_texture.convert(image.get_format())\n\n\ttext_edit.queue_free()\n\ttext_edit = null\n\tif not viewport_texture.is_empty():\n\t\timage.copy_from(viewport_texture)\n\t\tif image is ImageExtended:\n\t\t\timage.convert_rgb_to_indexed()\n\t\tcommit_undo(\"Draw\", undo_data)\n\n\nfunc commit_undo(action: String, undo_data: Dictionary) -> void:\n\tvar project := Global.current_project\n\tGlobal.canvas.update_selected_cels_textures(project)\n\tproject.update_tilemaps(undo_data)\n\tvar redo_data := _get_undo_data()\n\tvar frame := -1\n\tvar layer := -1\n\tif Global.animation_timeline.animation_timer.is_stopped() and project.selected_cels.size() == 1:\n\t\tframe = project.current_frame\n\t\tlayer = project.current_layer\n\n\tproject.undo_redo.create_action(action)\n\tproject.deserialize_cel_undo_data(redo_data, undo_data)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false, frame, layer))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true, frame, layer))\n\tproject.undo_redo.commit_action()\n\n\nfunc _get_undo_data() -> Dictionary:\n\tvar data := {}\n\tGlobal.current_project.serialize_cel_undo_data(_get_selected_draw_cels(), data)\n\treturn data\n\n\nfunc _on_confirm_button_pressed() -> void:\n\tif is_instance_valid(text_edit):\n\t\ttext_to_pixels()\n\n\nfunc _on_cancel_button_pressed() -> void:\n\tif is_instance_valid(text_edit):\n\t\ttext_edit.queue_free()\n\t\ttext_edit = null\n\n\nfunc _textedit_text_changed() -> void:\n\tif not is_instance_valid(text_edit):\n\t\treturn\n\ttext_edit.add_theme_font_size_override(&\"font_size\", 1)  # Needed to update font and text style\n\ttext_edit.add_theme_font_size_override(&\"font_size\", text_size)\n\ttext_edit._on_text_changed()\n\n\nfunc _on_color_changed(_color_info: Dictionary, _button: int) -> void:\n\tif is_instance_valid(text_edit):\n\t\ttext_edit.add_theme_color_override(&\"font_color\", tool_slot.color)\n\n\nfunc _on_text_size_slider_value_changed(value: float) -> void:\n\ttext_size = value\n\t_textedit_text_changed()\n\tsave_config()\n\n\nfunc _on_font_option_button_item_selected(index: int) -> void:\n\tfont_name = font_option_button.get_item_text(index)\n\tsave_config()\n\n\nfunc _on_bold_button_toggled(toggled_on: bool) -> void:\n\tif toggled_on:\n\t\ttext_style |= BOLD_FLAG\n\telse:\n\t\ttext_style &= ~BOLD_FLAG\n\n\nfunc _on_italic_button_toggled(toggled_on: bool) -> void:\n\tif toggled_on:\n\t\ttext_style |= ITALIC_FLAG\n\telse:\n\t\ttext_style &= ~ITALIC_FLAG\n\n\nfunc _on_horizontal_alignment_button_pressed(button: BaseButton) -> void:\n\t@warning_ignore(\"int_as_enum_without_cast\")\n\thorizontal_alignment = button.get_index()\n\n\nfunc _on_antialiasing_button_pressed(button: BaseButton) -> void:\n\t@warning_ignore(\"int_as_enum_without_cast\")\n\tantialiasing = button.get_index()\n\n\nfunc _exit_tree() -> void:\n\ttext_to_pixels()\n"
  },
  {
    "path": "src/Tools/UtilityTools/Text.gd.uid",
    "content": "uid://jidmtna3jc4y\n"
  },
  {
    "path": "src/Tools/UtilityTools/Text.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bdregpkflev7u\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://ctfgfelg0sho8\" path=\"res://src/Tools/BaseTool.tscn\" id=\"1_1q6ub\"]\n[ext_resource type=\"Script\" uid=\"uid://jidmtna3jc4y\" path=\"res://src/Tools/UtilityTools/Text.gd\" id=\"2_ql5g6\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://d267xalp3p7ru\" path=\"res://assets/graphics/misc/check_plain.png\" id=\"3_novww\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"3_tidsq\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bnc78807k1xjv\" path=\"res://assets/graphics/misc/close.png\" id=\"4_nhcnn\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dcs2c1qvc0a6c\" path=\"res://assets/graphics/tools/text_options/bold.png\" id=\"6_44cpf\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://b4paoyuodyjet\" path=\"res://assets/graphics/tools/text_options/italic.png\" id=\"7_vnai6\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dvwgfoajkwkbt\" path=\"res://assets/graphics/tools/text_options/allign_left.png\" id=\"8_krqdj\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bw8cnv4x3bv76\" path=\"res://assets/graphics/tools/text_options/allign_center.png\" id=\"9_icae5\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://crgq05c1i6p67\" path=\"res://assets/graphics/tools/text_options/allign_right.png\" id=\"10_s8jkt\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://cb6op8ekb24jq\" path=\"res://assets/graphics/tools/text_options/allign_fill.png\" id=\"11_wdbj6\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bu0lr6u0f7iva\" path=\"res://assets/graphics/tools/text_options/antialiasing_off.png\" id=\"12_25fng\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dgkjy5utwxfs0\" path=\"res://assets/graphics/tools/text_options/antialiasing_grayscale.png\" id=\"13_y175e\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dux65bi78pmu8\" path=\"res://assets/graphics/tools/text_options/antialiasing_lcd.png\" id=\"14_s8hba\"]\n\n[sub_resource type=\"ButtonGroup\" id=\"ButtonGroup_ikyyu\"]\n\n[sub_resource type=\"ButtonGroup\" id=\"ButtonGroup_jplns\"]\n\n[node name=\"ToolOptions\" unique_id=88395253 instance=ExtResource(\"1_1q6ub\")]\nscript = ExtResource(\"2_ql5g6\")\nmetadata/_edit_vertical_guides_ = [-9.0]\n\n[node name=\"ConfirmButtons\" type=\"HBoxContainer\" parent=\".\" index=\"2\" unique_id=1202368220]\nvisible = false\nlayout_mode = 2\n\n[node name=\"ConfirmButton\" type=\"Button\" parent=\"ConfirmButtons\" index=\"0\" unique_id=1834447363 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(0, 26)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ConfirmButtons/ConfirmButton\" index=\"0\" unique_id=2101779184]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"3_novww\")\nstretch_mode = 3\n\n[node name=\"CancelButton\" type=\"Button\" parent=\"ConfirmButtons\" index=\"1\" unique_id=865786363 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(0, 26)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ConfirmButtons/CancelButton\" index=\"0\" unique_id=689664199]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"4_nhcnn\")\nstretch_mode = 3\n\n[node name=\"TextSizeSlider\" type=\"TextureProgressBar\" parent=\".\" index=\"3\" unique_id=751931878]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nmax_value = 128.0\nvalue = 16.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"3_tidsq\")\nprefix = \"Size:\"\nsuffix = \"px\"\nallow_global_input_events = true\nglobal_increment_action = \"brush_size_increment\"\nglobal_decrement_action = \"brush_size_decrement\"\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\".\" index=\"4\" unique_id=1005494357]\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"FontLabel\" type=\"Label\" parent=\"GridContainer\" index=\"0\" unique_id=1307343024]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Font:\"\n\n[node name=\"FontOptionButton\" type=\"OptionButton\" parent=\"GridContainer\" index=\"1\" unique_id=25472526]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nfit_to_longest_item = false\n\n[node name=\"StyleButtonContainer\" type=\"HBoxContainer\" parent=\".\" index=\"5\" unique_id=1185557076]\nlayout_mode = 2\n\n[node name=\"BoldButton\" type=\"Button\" parent=\"StyleButtonContainer\" index=\"0\" unique_id=650071589 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntoggle_mode = true\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"StyleButtonContainer/BoldButton\" index=\"0\" unique_id=751649768]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"6_44cpf\")\nstretch_mode = 3\n\n[node name=\"ItalicButton\" type=\"Button\" parent=\"StyleButtonContainer\" index=\"1\" unique_id=1205920878 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntoggle_mode = true\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"StyleButtonContainer/ItalicButton\" index=\"0\" unique_id=464286797]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"7_vnai6\")\nstretch_mode = 3\n\n[node name=\"HorizontalAlignmentContainer\" type=\"HBoxContainer\" parent=\".\" index=\"6\" unique_id=1357713691]\nlayout_mode = 2\n\n[node name=\"HorizontalAlignmentLeftButton\" type=\"Button\" parent=\"HorizontalAlignmentContainer\" index=\"0\" unique_id=1685157862 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_pressed = true\nbutton_group = SubResource(\"ButtonGroup_ikyyu\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"HorizontalAlignmentContainer/HorizontalAlignmentLeftButton\" index=\"0\" unique_id=1469495756]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"8_krqdj\")\nstretch_mode = 3\n\n[node name=\"HorizontalAlignmentLeftButton2\" type=\"Button\" parent=\"HorizontalAlignmentContainer\" index=\"1\" unique_id=1832797136 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_ikyyu\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"HorizontalAlignmentContainer/HorizontalAlignmentLeftButton2\" index=\"0\" unique_id=1788416211]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"9_icae5\")\nstretch_mode = 3\n\n[node name=\"HorizontalAlignmentLeftButton3\" type=\"Button\" parent=\"HorizontalAlignmentContainer\" index=\"2\" unique_id=804103826 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_ikyyu\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"HorizontalAlignmentContainer/HorizontalAlignmentLeftButton3\" index=\"0\" unique_id=1843848436]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"10_s8jkt\")\nstretch_mode = 3\n\n[node name=\"HorizontalAlignmentLeftButton4\" type=\"Button\" parent=\"HorizontalAlignmentContainer\" index=\"3\" unique_id=114489334 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_ikyyu\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"HorizontalAlignmentContainer/HorizontalAlignmentLeftButton4\" index=\"0\" unique_id=816608930]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"11_wdbj6\")\nstretch_mode = 3\n\n[node name=\"AntiAliasingButtonContainer\" type=\"HBoxContainer\" parent=\".\" index=\"7\" unique_id=304903914]\nlayout_mode = 2\n\n[node name=\"AAOffButton\" type=\"Button\" parent=\"AntiAliasingButtonContainer\" index=\"0\" unique_id=1494774598 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_pressed = true\nbutton_group = SubResource(\"ButtonGroup_jplns\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"AntiAliasingButtonContainer/AAOffButton\" index=\"0\" unique_id=478902294]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"12_25fng\")\nstretch_mode = 3\n\n[node name=\"AAGrayscaleButton\" type=\"Button\" parent=\"AntiAliasingButtonContainer\" index=\"1\" unique_id=1657126603 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_jplns\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"AntiAliasingButtonContainer/AAGrayscaleButton\" index=\"0\" unique_id=947082635]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"13_y175e\")\nstretch_mode = 3\n\n[node name=\"AALCDButton\" type=\"Button\" parent=\"AntiAliasingButtonContainer\" index=\"2\" unique_id=1278165184 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_jplns\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"AntiAliasingButtonContainer/AALCDButton\" index=\"0\" unique_id=887071209]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"14_s8hba\")\nstretch_mode = 3\n\n[connection signal=\"pressed\" from=\"ConfirmButtons/ConfirmButton\" to=\".\" method=\"_on_confirm_button_pressed\"]\n[connection signal=\"pressed\" from=\"ConfirmButtons/CancelButton\" to=\".\" method=\"_on_cancel_button_pressed\"]\n[connection signal=\"value_changed\" from=\"TextSizeSlider\" to=\".\" method=\"_on_text_size_slider_value_changed\"]\n[connection signal=\"item_selected\" from=\"GridContainer/FontOptionButton\" to=\".\" method=\"_on_font_option_button_item_selected\"]\n[connection signal=\"toggled\" from=\"StyleButtonContainer/BoldButton\" to=\".\" method=\"_on_bold_button_toggled\"]\n[connection signal=\"toggled\" from=\"StyleButtonContainer/ItalicButton\" to=\".\" method=\"_on_italic_button_toggled\"]\n"
  },
  {
    "path": "src/Tools/UtilityTools/Zoom.gd",
    "content": "extends BaseTool\n\nenum ZoomMode { ZOOM_OUT, ZOOM_IN }\n\nvar _relative: Vector2\nvar _prev_mode := ZoomMode.ZOOM_OUT\nvar _zoom_mode := ZoomMode.ZOOM_OUT\n\n\nfunc _input(event: InputEvent) -> void:\n\tif event is InputEventMouseMotion:\n\t\t_relative = event.relative\n\n\tif event.is_action_pressed(\"change_tool_mode\"):\n\t\t_prev_mode = $ModeOptions.selected\n\tif event.is_action(\"change_tool_mode\"):\n\t\t$ModeOptions.selected = _prev_mode ^ 1\n\t\t_zoom_mode = $ModeOptions.selected\n\tif event.is_action_released(\"change_tool_mode\"):\n\t\t$ModeOptions.selected = _prev_mode\n\t\t_zoom_mode = $ModeOptions.selected\n\n\nfunc _on_ModeOptions_item_selected(id: ZoomMode) -> void:\n\t_zoom_mode = id\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_FitToFrame_pressed() -> void:\n\tfor camera: CanvasCamera in get_tree().get_nodes_in_group(\"CanvasCameras\"):\n\t\tcamera.fit_to_frame(Global.current_project.size)\n\n\nfunc _on_100_pressed() -> void:\n\tfor camera: CanvasCamera in get_tree().get_nodes_in_group(\"CanvasCameras\"):\n\t\tcamera.zoom_100()\n\n\nfunc get_config() -> Dictionary:\n\treturn {\"zoom_mode\": _zoom_mode}\n\n\nfunc set_config(config: Dictionary) -> void:\n\t_zoom_mode = config.get(\"zoom_mode\", _zoom_mode)\n\n\nfunc update_config() -> void:\n\t$ModeOptions.selected = _zoom_mode\n\n\nfunc draw_start(pos: Vector2i) -> void:\n\tsuper.draw_start(pos)\n\tvar mouse_pos := get_global_mouse_position()\n\tfor camera: CanvasCamera in get_tree().get_nodes_in_group(\"CanvasCameras\"):\n\t\tvar viewport_container := camera.get_viewport().get_parent() as SubViewportContainer\n\t\tvar viewport_rect := Rect2(viewport_container.global_position, viewport_container.size)\n\t\tif viewport_rect.has_point(mouse_pos):\n\t\t\tcamera.zoom_camera(_zoom_mode * 2 - 1)\n\n\nfunc draw_move(pos: Vector2i) -> void:\n\tsuper.draw_move(pos)\n\tvar mouse_pos := get_global_mouse_position()\n\tfor camera: CanvasCamera in get_tree().get_nodes_in_group(\"CanvasCameras\"):\n\t\tvar viewport_container := camera.get_viewport().get_parent() as SubViewportContainer\n\t\tvar viewport_rect := Rect2(viewport_container.global_position, viewport_container.size)\n\t\tif viewport_rect.has_point(mouse_pos):\n\t\t\tcamera.zoom_camera(-_relative.x / 3)\n\n\nfunc draw_end(pos: Vector2i) -> void:\n\tsuper.draw_end(pos)\n"
  },
  {
    "path": "src/Tools/UtilityTools/Zoom.gd.uid",
    "content": "uid://gofqkox1cbvw\n"
  },
  {
    "path": "src/Tools/UtilityTools/Zoom.tscn",
    "content": "[gd_scene format=3 uid=\"uid://qyxbkvju2fbb\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://ctfgfelg0sho8\" path=\"res://src/Tools/BaseTool.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://gofqkox1cbvw\" path=\"res://src/Tools/UtilityTools/Zoom.gd\" id=\"2\"]\n\n[node name=\"ToolOptions\" unique_id=1013280209 instance=ExtResource(\"1\")]\nscript = ExtResource(\"2\")\n\n[node name=\"Mode\" type=\"Label\" parent=\".\" index=\"2\" unique_id=1621096171]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Mode:\"\n\n[node name=\"ModeOptions\" type=\"OptionButton\" parent=\".\" index=\"3\" unique_id=1565823199]\ncustom_minimum_size = Vector2(92, 0)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nitem_count = 2\npopup/item_0/text = \"Zoom out\"\npopup/item_0/id = 0\npopup/item_1/text = \"Zoom in\"\npopup/item_1/id = 1\n\n[node name=\"Options\" type=\"Label\" parent=\".\" index=\"4\" unique_id=1324144552]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Options:\"\n\n[node name=\"FitToFrame\" type=\"Button\" parent=\".\" index=\"5\" unique_id=1652046134]\ncustom_minimum_size = Vector2(92, 0)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Fit to frame\"\n\n[node name=\"100%\" type=\"Button\" parent=\".\" index=\"6\" unique_id=746701739]\ncustom_minimum_size = Vector2(92, 0)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"100% Zoom\"\n\n[connection signal=\"item_selected\" from=\"ModeOptions\" to=\".\" method=\"_on_ModeOptions_item_selected\"]\n[connection signal=\"pressed\" from=\"FitToFrame\" to=\".\" method=\"_on_FitToFrame_pressed\"]\n[connection signal=\"pressed\" from=\"100%\" to=\".\" method=\"_on_100_pressed\"]\n"
  },
  {
    "path": "src/UI/Buttons/BrushButton.gd",
    "content": "extends BaseButton\n\nvar brush = Global.brushes_popup.Brush.new()\n\n\nfunc _ready() -> void:\n\tTools.flip_rotated.connect(_flip_rotate_updated)\n\n\nfunc _on_BrushButton_pressed() -> void:\n\t# Delete the brush on middle mouse press\n\tif Input.is_action_just_released(\"middle_mouse\"):\n\t\t_on_DeleteButton_pressed()\n\telse:\n\t\tGlobal.brushes_popup.select_brush(brush)\n\n\nfunc _on_DeleteButton_pressed() -> void:\n\tif brush.type != Global.brushes_popup.CUSTOM:\n\t\treturn\n\n\tGlobal.brushes_popup.remove_brush(self)\n\n\nfunc _on_BrushButton_mouse_entered() -> void:\n\tif brush.type == Global.brushes_popup.CUSTOM:\n\t\t$DeleteButton.visible = true\n\n\nfunc _on_BrushButton_mouse_exited() -> void:\n\tif brush.type == Global.brushes_popup.CUSTOM:\n\t\t$DeleteButton.visible = false\n\n\nfunc _flip_rotate_updated(flip_x: bool, flip_y: bool, transposed: bool) -> void:\n\tvar brush_texture_rotation := 0\n\tif transposed == true:\n\t\tbrush_texture_rotation -= 90\n\t$BrushTexture.rotation_degrees = brush_texture_rotation\n\t$BrushTexture.set_flip_h(flip_x)\n\t$BrushTexture.set_flip_v(flip_y)\n"
  },
  {
    "path": "src/UI/Buttons/BrushButton.gd.uid",
    "content": "uid://c3u1fpvf6s5vp\n"
  },
  {
    "path": "src/UI/Buttons/BrushButton.tscn",
    "content": "[gd_scene format=3 uid=\"uid://ckg78y8l0rmf3\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://3pmb60gpst7b\" path=\"res://src/UI/Nodes/TransparentChecker.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://c3u1fpvf6s5vp\" path=\"res://src/UI/Buttons/BrushButton.gd\" id=\"2\"]\n[ext_resource type=\"Shader\" uid=\"uid://c50kmfvf635kb\" path=\"res://src/Shaders/TransparentChecker.gdshader\" id=\"3_wckfl\"]\n\n[sub_resource type=\"ShaderMaterial\" id=\"ShaderMaterial_f61lm\"]\nshader = ExtResource(\"3_wckfl\")\nshader_parameter/size = 10.0\nshader_parameter/alpha = 1.0\nshader_parameter/color1 = Color(0.7, 0.7, 0.7, 1)\nshader_parameter/color2 = Color(1, 1, 1, 1)\nshader_parameter/offset = Vector2(0, 0)\nshader_parameter/scale = Vector2(0, 0)\nshader_parameter/rect_size = Vector2(32, 32)\nshader_parameter/follow_movement = false\nshader_parameter/follow_scale = false\n\n[node name=\"BrushButton\" type=\"Button\" unique_id=1551764523]\ncustom_minimum_size = Vector2(36, 36)\noffset_right = 36.0\noffset_bottom = 36.0\nbutton_mask = 7\nscript = ExtResource(\"2\")\n\n[node name=\"BrushTexture\" type=\"TextureRect\" parent=\".\" unique_id=1080571876]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 2.0\noffset_top = 2.0\noffset_right = -2.0\noffset_bottom = -2.0\npivot_offset = Vector2(16, 16)\nexpand_mode = 1\nstretch_mode = 5\n\n[node name=\"TransparentChecker\" parent=\"BrushTexture\" unique_id=492659377 instance=ExtResource(\"1\")]\nshow_behind_parent = true\nmaterial = SubResource(\"ShaderMaterial_f61lm\")\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\n\n[node name=\"DeleteButton\" type=\"Button\" parent=\".\" unique_id=913782994]\nvisible = false\nmodulate = Color(1, 0.00392157, 0.00392157, 0.878431)\nlayout_mode = 0\nanchor_left = 1.0\nanchor_right = 1.0\noffset_left = -12.0\noffset_top = 2.0\noffset_right = 8.0\noffset_bottom = 22.0\nscale = Vector2(0.5, 0.5)\ntext = \"X\"\n\n[connection signal=\"mouse_entered\" from=\".\" to=\".\" method=\"_on_BrushButton_mouse_entered\"]\n[connection signal=\"mouse_exited\" from=\".\" to=\".\" method=\"_on_BrushButton_mouse_exited\"]\n[connection signal=\"pressed\" from=\".\" to=\".\" method=\"_on_BrushButton_pressed\"]\n[connection signal=\"mouse_entered\" from=\"DeleteButton\" to=\".\" method=\"_on_BrushButton_mouse_entered\"]\n[connection signal=\"mouse_exited\" from=\"DeleteButton\" to=\".\" method=\"_on_BrushButton_mouse_exited\"]\n[connection signal=\"pressed\" from=\"DeleteButton\" to=\".\" method=\"_on_DeleteButton_pressed\"]\n"
  },
  {
    "path": "src/UI/Buttons/BrushesPopup.gd",
    "content": "class_name Brushes\nextends Popup\n\nsignal brush_selected(brush)\nsignal brush_removed(brush)\nenum { PIXEL, CIRCLE, FILLED_CIRCLE, FILE, RANDOM_FILE, CUSTOM }\n\nvar pixel_image := preload(\"res://assets/graphics/pixel_image.png\")\nvar circle_image := preload(\"res://assets/graphics/circle_9x9.png\")\nvar circle_filled_image := preload(\"res://assets/graphics/circle_filled_9x9.png\")\n\n\nclass Brush:\n\tvar type: int\n\tvar image: Image\n\tvar random := []\n\tvar index: int\n\n\nfunc _ready() -> void:\n\tvar container = get_node(\"Background/Brushes/Categories/DefaultBrushContainer\")\n\tvar button := Brushes.create_button(pixel_image)\n\tbutton.brush.type = PIXEL\n\tbutton.tooltip_text = \"Pixel brush\"\n\tcontainer.add_child(button)\n\tbutton.brush.index = button.get_index()\n\n\tbutton = Brushes.create_button(circle_image)\n\tbutton.brush.type = CIRCLE\n\tbutton.tooltip_text = \"Circle brush\"\n\tcontainer.add_child(button)\n\tbutton.brush.index = button.get_index()\n\n\tbutton = Brushes.create_button(circle_filled_image)\n\tbutton.brush.type = FILLED_CIRCLE\n\tbutton.tooltip_text = \"Filled circle brush\"\n\tcontainer.add_child(button)\n\tbutton.brush.index = button.get_index()\n\n\nfunc select_brush(brush: Brush) -> void:\n\tbrush_selected.emit(brush)\n\thide()\n\n\nstatic func get_default_brush() -> Brush:\n\tvar brush := Brush.new()\n\tbrush.type = PIXEL\n\tbrush.index = 0\n\treturn brush\n\n\nstatic func create_button(image: Image) -> Node:\n\tvar button: BaseButton = preload(\"res://src/UI/Buttons/BrushButton.tscn\").instantiate()\n\tvar tex := ImageTexture.create_from_image(image)\n\tbutton.get_node(\"BrushTexture\").texture = tex\n\tbutton.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\treturn button\n\n\nstatic func add_file_brush(images: Array, hint := \"\") -> void:\n\tvar button := create_button(images[0])\n\tbutton.brush.type = FILE if images.size() == 1 else RANDOM_FILE\n\tbutton.brush.image = images[0]\n\tbutton.brush.random = images\n\tbutton.tooltip_text = hint\n\tvar container\n\tif button.brush.type == RANDOM_FILE:\n\t\tcontainer = Global.brushes_popup.get_node(\n\t\t\t\"Background/Brushes/Categories/RandomFileBrushContainer\"\n\t\t)\n\telse:\n\t\tcontainer = Global.brushes_popup.get_node(\n\t\t\t\"Background/Brushes/Categories/FileBrushContainer\"\n\t\t)\n\tcontainer.add_child(button)\n\tbutton.brush.index = button.get_index()\n\n\nstatic func add_project_brush(image: Image, hint := \"\") -> void:\n\tvar button := create_button(image)\n\tbutton.brush.type = CUSTOM\n\tbutton.brush.image = image\n\tbutton.tooltip_text = hint\n\tvar container = Global.brushes_popup.get_node(\n\t\t\"Background/Brushes/Categories/ProjectBrushContainer\"\n\t)\n\tcontainer.add_child(button)\n\tbutton.brush.index = button.get_index()\n\tcontainer.visible = true\n\tGlobal.brushes_popup.get_node(\"Background/Brushes/Categories/ProjectLabel\").visible = true\n\n\nstatic func clear_project_brush() -> void:\n\tvar container = Global.brushes_popup.get_node(\n\t\t\"Background/Brushes/Categories/ProjectBrushContainer\"\n\t)\n\tfor child in container.get_children():\n\t\tcontainer.remove_child(child)\n\t\tchild.queue_free()\n\t\tGlobal.brushes_popup.brush_removed.emit(child.brush)\n\n\nfunc get_brush(type: int, index: int) -> Brush:\n\tvar container = get_node(\"Background/Brushes/Categories/DefaultBrushContainer\")\n\tmatch type:\n\t\tCUSTOM:\n\t\t\tcontainer = get_node(\"Background/Brushes/Categories/ProjectBrushContainer\")\n\t\tFILE:\n\t\t\tcontainer = get_node(\"Background/Brushes/Categories/FileBrushContainer\")\n\t\tRANDOM_FILE:\n\t\t\tcontainer = get_node(\"Background/Brushes/Categories/RandomFileBrushContainer\")\n\n\tvar brush := Brushes.get_default_brush()\n\tif index < container.get_child_count():\n\t\tbrush = container.get_child(index).brush\n\treturn brush\n\n\nfunc remove_brush(brush_button: Node) -> void:\n\tbrush_removed.emit(brush_button.brush)\n\n\tvar project := Global.current_project\n\tvar undo_brushes: Array = project.brushes.duplicate()\n\tproject.brushes.erase(brush_button.brush.image)\n\n\tif project.brushes.size() == 0:\n\t\tvar container = Global.brushes_popup.get_node(\n\t\t\t\"Background/Brushes/Categories/ProjectBrushContainer\"\n\t\t)\n\t\tcontainer.visible = false\n\t\tGlobal.brushes_popup.get_node(\"Background/Brushes/Categories/ProjectLabel\").visible = false\n\n\tproject.undo_redo.create_action(\"Delete Custom Brush\")\n\tproject.undo_redo.add_do_property(project, \"brushes\", project.brushes)\n\tproject.undo_redo.add_undo_property(project, \"brushes\", undo_brushes)\n\tproject.undo_redo.add_do_method(redo_custom_brush.bind(brush_button))\n\tproject.undo_redo.add_undo_method(undo_custom_brush.bind(brush_button))\n\tproject.undo_redo.add_undo_reference(brush_button)\n\tproject.undo_redo.commit_action()\n\n\nfunc undo_custom_brush(brush_button: BaseButton = null) -> void:\n\tGlobal.general_undo()\n\tvar action_name := Global.current_project.undo_redo.get_current_action_name()\n\tif action_name == \"Delete Custom Brush\":\n\t\t$Background/Brushes/Categories/ProjectBrushContainer.add_child(brush_button)\n\t\t$Background/Brushes/Categories/ProjectBrushContainer.move_child(\n\t\t\tbrush_button, brush_button.brush.index\n\t\t)\n\t\tbrush_button.get_node(\"DeleteButton\").visible = false\n\n\nfunc redo_custom_brush(brush_button: BaseButton = null) -> void:\n\tGlobal.general_redo()\n\tvar action_name := Global.current_project.undo_redo.get_current_action_name()\n\tif action_name == \"Delete Custom Brush\":\n\t\t$Background/Brushes/Categories/ProjectBrushContainer.remove_child(brush_button)\n"
  },
  {
    "path": "src/UI/Buttons/BrushesPopup.gd.uid",
    "content": "uid://ba58pum22xsy4\n"
  },
  {
    "path": "src/UI/Buttons/BrushesPopup.tscn",
    "content": "[gd_scene format=3 uid=\"uid://c5x85ysdouh4t\"]\n\n[ext_resource type=\"Script\" uid=\"uid://ba58pum22xsy4\" path=\"res://src/UI/Buttons/BrushesPopup.gd\" id=\"1\"]\n\n[node name=\"BrushesPopup\" type=\"Popup\" unique_id=549013437]\ncanvas_item_default_texture_filter = 0\noversampling_override = 1.0\nscript = ExtResource(\"1\")\n\n[node name=\"Background\" type=\"PanelContainer\" parent=\".\" unique_id=1232694708]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\n\n[node name=\"Brushes\" type=\"ScrollContainer\" parent=\"Background\" unique_id=614218602]\ncustom_minimum_size = Vector2(0, 36)\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"Categories\" type=\"VBoxContainer\" parent=\"Background/Brushes\" unique_id=49833390]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"Label\" type=\"Label\" parent=\"Background/Brushes/Categories\" unique_id=454992811]\nlayout_mode = 2\ntext = \"Default Brushes\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"Background/Brushes/Categories/Label\" unique_id=2099064991]\nlayout_mode = 0\nanchor_top = 1.0\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_top = -4.0\n\n[node name=\"DefaultBrushContainer\" type=\"GridContainer\" parent=\"Background/Brushes/Categories\" unique_id=378915918]\nlayout_mode = 2\n\n[node name=\"ProjectLabel\" type=\"Label\" parent=\"Background/Brushes/Categories\" unique_id=233842379]\nvisible = false\nlayout_mode = 2\ntext = \"Project Brushes\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"Background/Brushes/Categories/ProjectLabel\" unique_id=622542002]\nlayout_mode = 0\nanchor_top = 1.0\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_top = -4.0\n\n[node name=\"ProjectBrushContainer\" type=\"GridContainer\" parent=\"Background/Brushes/Categories\" unique_id=2109562622]\nlayout_mode = 2\n\n[node name=\"FileLabel\" type=\"Label\" parent=\"Background/Brushes/Categories\" unique_id=1705630477]\nlayout_mode = 2\ntext = \"File Brushes\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"Background/Brushes/Categories/FileLabel\" unique_id=625752180]\nlayout_mode = 0\nanchor_top = 1.0\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_top = -4.0\n\n[node name=\"FileBrushContainer\" type=\"GridContainer\" parent=\"Background/Brushes/Categories\" unique_id=775454782]\nlayout_mode = 2\n\n[node name=\"RandomFileLabel\" type=\"Label\" parent=\"Background/Brushes/Categories\" unique_id=928533361]\nlayout_mode = 2\ntext = \"Random File Brushes\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"Background/Brushes/Categories/RandomFileLabel\" unique_id=1048097203]\nlayout_mode = 0\nanchor_top = 1.0\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_top = -4.0\n\n[node name=\"RandomFileBrushContainer\" type=\"GridContainer\" parent=\"Background/Brushes/Categories\" unique_id=546315926]\nlayout_mode = 2\n"
  },
  {
    "path": "src/UI/Buttons/PatternButton.gd",
    "content": "extends BaseButton\n\nvar pattern = Global.patterns_popup.Pattern.new()\n\n\nfunc _on_PatternButton_pressed() -> void:\n\tGlobal.patterns_popup.select_pattern(pattern)\n"
  },
  {
    "path": "src/UI/Buttons/PatternButton.gd.uid",
    "content": "uid://7q1rsxt0dt6q\n"
  },
  {
    "path": "src/UI/Buttons/PatternButton.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bx6xntkb2tstx\"]\n\n[ext_resource type=\"Script\" uid=\"uid://7q1rsxt0dt6q\" path=\"res://src/UI/Buttons/PatternButton.gd\" id=\"2\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"2\"]\nbg_color = Color(1, 1, 1, 1)\nborder_color = Color(1, 1, 1, 1)\ncorner_radius_top_left = 5\ncorner_radius_top_right = 5\ncorner_radius_bottom_right = 5\ncorner_radius_bottom_left = 5\nanti_aliasing = false\n\n[sub_resource type=\"StyleBoxFlat\" id=\"1\"]\nbg_color = Color(1, 1, 1, 1)\nborder_color = Color(1, 1, 1, 1)\ncorner_radius_top_left = 5\ncorner_radius_top_right = 5\ncorner_radius_bottom_right = 5\ncorner_radius_bottom_left = 5\nanti_aliasing = false\n\n[node name=\"PatternButton\" type=\"Button\" unique_id=1626814312]\ncustom_minimum_size = Vector2(32, 32)\noffset_right = 32.0\noffset_bottom = 32.0\ntheme_override_styles/normal = SubResource(\"2\")\ntheme_override_styles/pressed = SubResource(\"2\")\ntheme_override_styles/hover = SubResource(\"2\")\ntheme_override_styles/disabled = SubResource(\"1\")\ntheme_override_styles/focus = SubResource(\"1\")\nbutton_mask = 7\nscript = ExtResource(\"2\")\n\n[node name=\"PatternTexture\" type=\"TextureRect\" parent=\".\" unique_id=1562740963]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 0\noffset_right = 32.0\noffset_bottom = 32.0\nexpand_mode = 1\nstretch_mode = 5\n\n[connection signal=\"pressed\" from=\".\" to=\".\" method=\"_on_PatternButton_pressed\"]\n"
  },
  {
    "path": "src/UI/Buttons/PatternsPopup.gd",
    "content": "class_name Patterns\nextends PopupPanel\n\nsignal pattern_selected(pattern: Pattern)\n\nvar default_pattern: Pattern = null\n\n\nclass Pattern:\n\tvar image: Image\n\tvar index: int\n\n\nfunc _ready() -> void:\n\tadd(Image.new(), \"Clipboard\")\n\n\nfunc select_pattern(pattern: Pattern) -> void:\n\tpattern_selected.emit(pattern)\n\thide()\n\n\nfunc create_button(image: Image) -> Node:\n\tvar button: BaseButton = preload(\"res://src/UI/Buttons/PatternButton.tscn\").instantiate()\n\tvar tex: ImageTexture\n\tif !image.is_empty():\n\t\ttex = ImageTexture.create_from_image(image)\n\tbutton.get_child(0).texture = tex\n\tbutton.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\treturn button\n\n\nfunc add(image: Image, hint := \"\") -> void:\n\tvar button := create_button(image)\n\tbutton.pattern.image = image\n\tbutton.tooltip_text = hint\n\tvar container := get_node(\"ScrollContainer/PatternContainer\")\n\tcontainer.add_child(button)\n\tbutton.pattern.index = button.get_index()\n\n\tif Global.patterns_popup.default_pattern == null:\n\t\tGlobal.patterns_popup.default_pattern = button.pattern\n\n\nfunc get_pattern(index: int) -> Pattern:\n\tvar container = Global.patterns_popup.get_node(\"ScrollContainer/PatternContainer\")\n\tvar pattern := default_pattern\n\tif index < container.get_child_count():\n\t\tpattern = container.get_child(index).pattern\n\treturn pattern\n"
  },
  {
    "path": "src/UI/Buttons/PatternsPopup.gd.uid",
    "content": "uid://cfj3y81pxid3d\n"
  },
  {
    "path": "src/UI/Buttons/PatternsPopup.tscn",
    "content": "[gd_scene format=3 uid=\"uid://d1jyt8wleg8ft\"]\n\n[ext_resource type=\"Script\" uid=\"uid://cfj3y81pxid3d\" path=\"res://src/UI/Buttons/PatternsPopup.gd\" id=\"1\"]\n\n[node name=\"PatternsPopup\" type=\"PopupPanel\" unique_id=1276766252]\ncanvas_item_default_texture_filter = 0\noversampling_override = 1.0\nscript = ExtResource(\"1\")\n\n[node name=\"ScrollContainer\" type=\"ScrollContainer\" parent=\".\" unique_id=1920539584]\ncustom_minimum_size = Vector2(0, 36)\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 4.0\noffset_top = 4.0\noffset_right = -4.0\noffset_bottom = -4.0\nsize_flags_horizontal = 3\n\n[node name=\"PatternContainer\" type=\"GridContainer\" parent=\"ScrollContainer\" unique_id=1254570713]\nlayout_mode = 2\ncolumns = 6\n"
  },
  {
    "path": "src/UI/Canvas/Canvas.gd",
    "content": "class_name Canvas\nextends Node2D\n\nconst CURSOR_SPEED_RATE := 6.0\n\nvar current_pixel := Vector2.ZERO\nvar sprite_changed_this_frame := false  ## For optimization purposes\nvar update_all_layers := false\n## For optimization purposes. A kind of override to force include a layer during canvas update.\n## Used in Undo/Redo for FX and visibility changes\nvar mandatory_update_layers := PackedInt32Array()\nvar project_changed := false\nvar move_preview_location := Vector2i.ZERO\nvar layer_texture_array := Texture2DArray.new()\nvar layer_metadata_image := Image.new()\nvar layer_metadata_texture := ImageTexture.new()\n\n@onready var currently_visible_frame := $CurrentlyVisibleFrame as SubViewport\n@onready var current_frame_drawer := $CurrentlyVisibleFrame/CurrentFrameDrawer as Node2D\n@onready var tile_mode := $TileMode as Node2D\n@onready var color_index := $ColorIndex as Node2D\n@onready var pixel_grid := $PixelGrid as Node2D\n@onready var grid := $Grid as Node2D\n@onready var selection := $Selection as SelectionNode\n@onready var onion_past := $OnionPast as Node2D\n@onready var onion_future := $OnionFuture as Node2D\n@onready var crop_rect := $CropRect as CropRect\n@onready var indicators := $Indicators as Node2D\n@onready var previews := $Previews as Node2D\n@onready var previews_sprite := $PreviewsSprite as Sprite2D\n@onready var mouse_guide_container := $MouseGuideContainer as Node2D\n@onready var gizmos_3d := $Gizmos3D as Node2D\n@onready var measurements := $Measurements as Node2D\n@onready var reference_image_container := $ReferenceImages as Node2D\n\n\nfunc _ready() -> void:\n\tmaterial.set_shader_parameter(\"layers\", layer_texture_array)\n\tmaterial.set_shader_parameter(\"metadata\", layer_metadata_texture)\n\tGlobal.project_switched.connect(queue_redraw_all_layers)\n\tGlobal.cel_switched.connect(queue_redraw_all_layers)\n\tonion_past.type = onion_past.PAST\n\tonion_past.blue_red_color = Global.onion_skinning_past_color\n\tonion_future.type = onion_future.FUTURE\n\tonion_future.blue_red_color = Global.onion_skinning_future_color\n\tawait get_tree().process_frame\n\tawait get_tree().process_frame\n\tcamera_zoom()\n\n\nfunc _draw() -> void:\n\tvar position_tmp := position\n\tvar scale_tmp := scale\n\tif Global.mirror_view:\n\t\tposition_tmp.x = position_tmp.x + Global.current_project.size.x\n\t\tscale_tmp.x = -1\n\t# If we just use the first cel and it happens to be a GroupCel\n\t# nothing will get drawn\n\tvar cel_to_draw := Global.current_project.find_first_drawable_cel()\n\tdraw_set_transform(position_tmp, rotation, scale_tmp)\n\t# Placeholder so we can have a material here\n\tif is_instance_valid(cel_to_draw):\n\t\tdraw_texture(cel_to_draw.image_texture, Vector2.ZERO)\n\tdraw_layers(project_changed)\n\tproject_changed = false\n\tif Global.onion_skinning:\n\t\trefresh_onion()\n\tcurrently_visible_frame.size = Global.current_project.size\n\tcurrent_frame_drawer.queue_redraw()\n\ttile_mode.queue_redraw()\n\tdraw_set_transform(position, rotation, scale)\n\tcolor_index.queue_redraw()\n\n\nfunc _input(event: InputEvent) -> void:\n\t# Move the cursor with the keyboard (numpad keys by default)\n\tvar mouse_movement := Input.get_vector(\n\t\t&\"move_mouse_left\", &\"move_mouse_right\", &\"move_mouse_up\", &\"move_mouse_down\"\n\t)\n\t# Don't process anything below if the input isn't a mouse event, a tool activation shortcut,\n\t# or the numpad keys that move the cursor.\n\t# This decreases CPU/GPU usage slightly.\n\tif event is not InputEventMouseMotion and event is not InputEventGesture:\n\t\tif (\n\t\t\tmouse_movement == Vector2.ZERO\n\t\t\tand not (\n\t\t\t\tevent.is_action(&\"activate_left_tool\") or event.is_action(&\"activate_right_tool\")\n\t\t\t)\n\t\t):\n\t\t\treturn\n\tif mouse_movement != Vector2.ZERO:\n\t\tvar tmp_position := get_viewport().get_mouse_position()\n\t\ttmp_position += mouse_movement * CURSOR_SPEED_RATE\n\t\tget_viewport().warp_mouse(tmp_position)\n\tcurrent_pixel = get_local_mouse_position()\n\n\tsprite_changed_this_frame = false\n\tTools.handle_draw(Vector2i(current_pixel.floor()), event)\n\n\tif sprite_changed_this_frame:\n\t\tqueue_redraw()\n\t\tupdate_selected_cels_textures()\n\n\nfunc queue_redraw_all_layers() -> void:\n\tproject_changed = true\n\tqueue_redraw()\n\n\nfunc camera_zoom() -> void:\n\tfor camera: CanvasCamera in get_tree().get_nodes_in_group(\"CanvasCameras\"):\n\t\tcamera.fit_to_frame(Global.current_project.size)\n\n\tGlobal.transparent_checker.update_rect()\n\n\nfunc update_texture(\n\tlayer_i: int, frame_i := -1, project := Global.current_project, undo := false\n) -> void:\n\tif frame_i == -1:\n\t\tframe_i = project.current_frame\n\n\tif frame_i < project.frames.size() and layer_i < project.layers.size():\n\t\tvar current_cel := project.frames[frame_i].cels[layer_i]\n\t\tcurrent_cel.update_texture(undo)\n\t\t# Needed so that changes happening to the non-selected layer(s) are also visible\n\t\t# e.g. when undoing/redoing, when applying image effects to the entire frame, etc\n\t\tif frame_i != project.current_frame:\n\t\t\t# Don't update if the cel is on a different frame (can happen with undo/redo)\n\t\t\treturn\n\t\tvar layer := project.layers[layer_i].get_blender_ancestor()\n\t\tvar cel_image: Image\n\t\tif layer.is_blender():\n\t\t\tcel_image = layer.blend_children(\n\t\t\t\tproject.frames[project.current_frame], Vector2i.ZERO, Global.display_layer_effects\n\t\t\t)\n\t\telse:\n\t\t\tif Global.display_layer_effects:\n\t\t\t\tcel_image = layer.display_effects(current_cel)\n\t\t\telse:\n\t\t\t\tcel_image = current_cel.get_image()\n\t\tif (\n\t\t\tcel_image.get_size()\n\t\t\t== Vector2i(layer_texture_array.get_width(), layer_texture_array.get_height())\n\t\t):\n\t\t\tlayer_texture_array.update_layer(cel_image, project.ordered_layers.find(layer.index))\n\n\nfunc update_selected_cels_textures(project := Global.current_project) -> void:\n\tfor cel_index in project.selected_cels:\n\t\tvar frame_index: int = cel_index[0]\n\t\tvar layer_index: int = cel_index[1]\n\t\tif frame_index < project.frames.size() and layer_index < project.layers.size():\n\t\t\tvar current_cel := project.frames[frame_index].cels[layer_index]\n\t\t\tcurrent_cel.update_texture()\n\n\nfunc draw_layers(force_recreate := false) -> void:\n\tvar project := Global.current_project\n\tvar recreate_texture_array := (\n\t\tlayer_texture_array.get_layers() != project.layers.size()\n\t\tor layer_texture_array.get_width() != project.size.x\n\t\tor layer_texture_array.get_height() != project.size.y\n\t\tor force_recreate\n\t)\n\tif recreate_texture_array:\n\t\tvar textures: Array[Image] = []\n\t\ttextures.resize(project.layers.size())\n\t\t# Nx4 texture, where N is the number of layers and the first row are the blend modes,\n\t\t# the second are the opacities, the third are the origins and the fourth are the\n\t\t# clipping mask booleans.\n\t\tlayer_metadata_image = Image.create(project.layers.size(), 4, false, Image.FORMAT_RGF)\n\t\t# Draw current frame layers\n\t\tfor i in project.layers.size():\n\t\t\tvar layer := project.layers[i]\n\t\t\tvar ordered_index := project.ordered_layers.find(layer.index)\n\t\t\tvar cel_image := Image.new()\n\t\t\t_update_texture_array_layer(project, layer, cel_image, false)\n\t\t\ttextures[ordered_index] = cel_image\n\t\t\t# Store the origin\n\t\t\tif [project.current_frame, i] in project.selected_cels:\n\t\t\t\tvar origin := Vector2(move_preview_location).abs() / Vector2(cel_image.get_size())\n\t\t\t\tlayer_metadata_image.set_pixel(\n\t\t\t\t\tordered_index, 2, Color(origin.x, origin.y, 0.0, 0.0)\n\t\t\t\t)\n\t\t\telse:\n\t\t\t\tlayer_metadata_image.set_pixel(ordered_index, 2, Color())\n\n\t\tlayer_texture_array.create_from_images(textures)\n\t\tlayer_metadata_texture.set_image(layer_metadata_image)\n\telse:  # Update the TextureArray\n\t\tif layer_texture_array.get_layers() > 0:\n\t\t\tfor i in project.layers.size():\n\t\t\t\tvar layer := project.layers[i]\n\t\t\t\tif not update_all_layers:\n\t\t\t\t\tvar test_array := [project.current_frame, i]\n\t\t\t\t\tif not test_array in project.selected_cels:\n\t\t\t\t\t\tvar include := false\n\t\t\t\t\t\t# Some layers are required for mandatory update because they are part of\n\t\t\t\t\t\t# an undo/redo action that is being performed right now. The may not be\n\t\t\t\t\t\t# currently selected but still require an update\n\t\t\t\t\t\tif i in mandatory_update_layers:\n\t\t\t\t\t\t\tinclude = true\n\t\t\t\t\t\telse:\n\t\t\t\t\t\t\tvar parents := layer.get_ancestors()\n\t\t\t\t\t\t\t# Even if the layer itself is not changed, if it is part of a group layer\n\t\t\t\t\t\t\t# with passthrough mode, it will still need an update if it's group cel is\n\t\t\t\t\t\t\t# selected.\n\t\t\t\t\t\t\tfor parent in parents:\n\t\t\t\t\t\t\t\tif parent.blend_mode == BaseLayer.BlendModes.PASS_THROUGH:\n\t\t\t\t\t\t\t\t\tvar test_array_parent := [project.current_frame, parent.index]\n\t\t\t\t\t\t\t\t\tif test_array_parent in project.selected_cels:\n\t\t\t\t\t\t\t\t\t\tinclude = true\n\t\t\t\t\t\tif not include:\n\t\t\t\t\t\t\tcontinue\n\t\t\t\tvar ordered_index := project.ordered_layers.find(layer.index)\n\t\t\t\tvar cel_image := Image.new()\n\t\t\t\t_update_texture_array_layer(project, layer, cel_image, true)\n\t\t\t\tvar parent_layer := layer.get_blender_ancestor()\n\t\t\t\tif layer != parent_layer:\n\t\t\t\t\t# True when the layer has parents. In that case, update its top-most parent.\n\t\t\t\t\t_update_texture_array_layer(project, parent_layer, Image.new(), true)\n\t\t\t\t# Update the origin\n\t\t\t\tvar origin := Vector2(move_preview_location).abs() / Vector2(cel_image.get_size())\n\t\t\t\tlayer_metadata_image.set_pixel(\n\t\t\t\t\tordered_index, 2, Color(origin.x, origin.y, 0.0, 0.0)\n\t\t\t\t)\n\t\t\tlayer_metadata_texture.update(layer_metadata_image)\n\n\tmaterial.set_shader_parameter(\"origin_x_positive\", move_preview_location.x > 0)\n\tmaterial.set_shader_parameter(\"origin_y_positive\", move_preview_location.y > 0)\n\tmandatory_update_layers = []\n\tupdate_all_layers = false\n\n\nfunc _update_texture_array_layer(\n\tproject: Project, layer: BaseLayer, cel_image: Image, update_layer: bool\n) -> void:\n\tvar ordered_index := project.ordered_layers.find(layer.index)\n\tvar cel := project.frames[project.current_frame].cels[layer.index]\n\tvar include := true\n\tif layer.is_blender():\n\t\tcel_image.copy_from(\n\t\t\tlayer.blend_children(\n\t\t\t\tproject.frames[project.current_frame],\n\t\t\t\tmove_preview_location,\n\t\t\t\tGlobal.display_layer_effects\n\t\t\t)\n\t\t)\n\telse:\n\t\tif Global.display_layer_effects:\n\t\t\tcel_image.copy_from(layer.display_effects(cel))\n\t\telse:\n\t\t\tcel_image.copy_from(cel.get_image())\n\tif layer.is_blended_by_ancestor():\n\t\tinclude = false\n\tif update_layer:\n\t\tlayer_texture_array.update_layer(cel_image, ordered_index)\n\tDrawingAlgos.set_layer_metadata_image(layer, cel, layer_metadata_image, ordered_index, include)\n\n\nfunc refresh_onion() -> void:\n\tonion_past.queue_redraw()\n\tonion_future.queue_redraw()\n"
  },
  {
    "path": "src/UI/Canvas/Canvas.gd.uid",
    "content": "uid://xagqbybf2bic\n"
  },
  {
    "path": "src/UI/Canvas/Canvas.tscn",
    "content": "[gd_scene format=3 uid=\"uid://ba24iuv55m4l3\"]\n\n[ext_resource type=\"Script\" uid=\"uid://xagqbybf2bic\" path=\"res://src/UI/Canvas/Canvas.gd\" id=\"1\"]\n[ext_resource type=\"Shader\" uid=\"uid://b3cj543ir4o23\" path=\"res://src/Shaders/BlendLayers.gdshader\" id=\"1_253dh\"]\n[ext_resource type=\"Script\" uid=\"uid://ca7ibx6ttu7v0\" path=\"res://src/UI/Canvas/Grid.gd\" id=\"2\"]\n[ext_resource type=\"Script\" uid=\"uid://bsnac40pqg22b\" path=\"res://src/UI/Canvas/Indicators.gd\" id=\"3\"]\n[ext_resource type=\"Script\" uid=\"uid://c6o3x53fp0qcj\" path=\"res://src/UI/Canvas/TileMode.gd\" id=\"4\"]\n[ext_resource type=\"Script\" uid=\"uid://bkpdbfe1felex\" path=\"res://src/UI/Canvas/CurrentFrameDrawer.gd\" id=\"5\"]\n[ext_resource type=\"Script\" uid=\"uid://d2c7i4rkts8jh\" path=\"res://src/UI/Canvas/PixelGrid.gd\" id=\"6\"]\n[ext_resource type=\"Script\" uid=\"uid://df031dm6pgp2j\" path=\"res://src/UI/Canvas/Previews.gd\" id=\"7\"]\n[ext_resource type=\"Script\" uid=\"uid://bcxi23cv8j5vr\" path=\"res://src/UI/Canvas/Selection.gd\" id=\"8\"]\n[ext_resource type=\"Shader\" uid=\"uid://droyxrcawbpcn\" path=\"res://src/Shaders/MarchingAntsOutline.gdshader\" id=\"9\"]\n[ext_resource type=\"Script\" uid=\"uid://dtu2ddt5gojeb\" path=\"res://src/UI/Canvas/TransformationHandles.gd\" id=\"10_crpat\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://no3w7e2264u4\" path=\"res://src/UI/Canvas/MouseGuideContainer.tscn\" id=\"11\"]\n[ext_resource type=\"Script\" uid=\"uid://dpem6717iqxdc\" path=\"res://src/UI/Canvas/OnionSkinning.gd\" id=\"12\"]\n[ext_resource type=\"Script\" uid=\"uid://c17sncjk3paec\" path=\"res://src/UI/Canvas/CropRect.gd\" id=\"13\"]\n[ext_resource type=\"Script\" uid=\"uid://dln7rbciajoaa\" path=\"res://src/UI/Canvas/Gizmos3D.gd\" id=\"14\"]\n[ext_resource type=\"Script\" uid=\"uid://b570gjxdcfmv1\" path=\"res://src/UI/Canvas/Measurements.gd\" id=\"16_nxilb\"]\n[ext_resource type=\"Shader\" uid=\"uid://jvo6i3t4snow\" path=\"res://src/Shaders/AutoInvertColors.gdshader\" id=\"17_lowhf\"]\n[ext_resource type=\"Script\" uid=\"uid://bpp7sufx80fs4\" path=\"res://src/UI/Canvas/ReferenceImages.gd\" id=\"17_qfjb4\"]\n[ext_resource type=\"Script\" uid=\"uid://dfmjalcuvsqqf\" path=\"res://src/UI/Canvas/color_index.gd\" id=\"18_o3xx2\"]\n[ext_resource type=\"Script\" uid=\"uid://w5recpwdrsat\" path=\"res://src/UI/Canvas/TileModeIndices.gd\" id=\"19_7a6wb\"]\n\n[sub_resource type=\"ShaderMaterial\" id=\"ShaderMaterial_6b0ox\"]\nshader = ExtResource(\"1_253dh\")\nshader_parameter/origin_x_positive = true\nshader_parameter/origin_y_positive = true\n\n[sub_resource type=\"CanvasItemMaterial\" id=\"1\"]\nblend_mode = 4\n\n[sub_resource type=\"ShaderMaterial\" id=\"ShaderMaterial_ascg6\"]\nshader = ExtResource(\"17_lowhf\")\nshader_parameter/width = 0.05\nshader_parameter/hollow_shapes = false\n\n[sub_resource type=\"ShaderMaterial\" id=\"2\"]\nshader = ExtResource(\"9\")\nshader_parameter/width = 0.05\nshader_parameter/first_color = Color(1, 1, 1, 1)\nshader_parameter/second_color = Color(0, 0, 0, 1)\nshader_parameter/animated = true\nshader_parameter/frequency = 200.0\nshader_parameter/stripe_direction = 0.5\n\n[sub_resource type=\"ShaderMaterial\" id=\"3\"]\nshader = ExtResource(\"17_lowhf\")\nshader_parameter/width = 0.05\nshader_parameter/hollow_shapes = true\n\n[node name=\"Canvas\" type=\"Node2D\" unique_id=248802489]\nmaterial = SubResource(\"ShaderMaterial_6b0ox\")\nscript = ExtResource(\"1\")\n\n[node name=\"CurrentlyVisibleFrame\" type=\"SubViewport\" parent=\".\" unique_id=1575010261]\ndisable_3d = true\ntransparent_bg = true\nhandle_input_locally = false\nrender_target_update_mode = 3\n\n[node name=\"CurrentFrameDrawer\" type=\"Node2D\" parent=\"CurrentlyVisibleFrame\" unique_id=437531815]\nmaterial = SubResource(\"ShaderMaterial_6b0ox\")\nscript = ExtResource(\"5\")\n\n[node name=\"TileMode\" type=\"Node2D\" parent=\".\" unique_id=616806130]\nshow_behind_parent = true\nmaterial = SubResource(\"1\")\nscript = ExtResource(\"4\")\n\n[node name=\"ColorIndex\" type=\"Node2D\" parent=\".\" unique_id=1922558684]\nmaterial = SubResource(\"ShaderMaterial_ascg6\")\nscript = ExtResource(\"18_o3xx2\")\n\n[node name=\"PixelGrid\" type=\"Node2D\" parent=\".\" unique_id=497674764]\nscript = ExtResource(\"6\")\n\n[node name=\"Grid\" type=\"Node2D\" parent=\".\" unique_id=487125994]\nscript = ExtResource(\"2\")\n\n[node name=\"Selection\" type=\"Node2D\" parent=\".\" unique_id=2051472332]\nscript = ExtResource(\"8\")\n\n[node name=\"TransformationHandles\" type=\"Node2D\" parent=\"Selection\" unique_id=1878849198]\nscript = ExtResource(\"10_crpat\")\n\n[node name=\"MarchingAntsOutline\" type=\"Sprite2D\" parent=\"Selection\" unique_id=1581854965]\nmaterial = SubResource(\"2\")\ncentered = false\n\n[node name=\"CropRect\" type=\"Node2D\" parent=\".\" unique_id=1029683026]\nvisible = false\nscript = ExtResource(\"13\")\n\n[node name=\"Indicators\" type=\"Node2D\" parent=\".\" unique_id=201253381]\nscript = ExtResource(\"3\")\n\n[node name=\"Previews\" type=\"Node2D\" parent=\".\" unique_id=844489526]\nmaterial = SubResource(\"3\")\nscript = ExtResource(\"7\")\n\n[node name=\"PreviewsSprite\" type=\"Sprite2D\" parent=\".\" unique_id=1590710631]\nmaterial = SubResource(\"3\")\ncentered = false\n\n[node name=\"OnionPast\" type=\"Node2D\" parent=\".\" unique_id=827291263 groups=[\"canvas_onion_skinning\"]]\nscript = ExtResource(\"12\")\n\n[node name=\"OnionFuture\" type=\"Node2D\" parent=\".\" unique_id=630363001 groups=[\"canvas_onion_skinning\"]]\nscript = ExtResource(\"12\")\n\n[node name=\"MouseGuideContainer\" parent=\".\" unique_id=1352013159 instance=ExtResource(\"11\")]\n\n[node name=\"Gizmos3D\" type=\"Node2D\" parent=\".\" unique_id=1219529280]\nscript = ExtResource(\"14\")\n\n[node name=\"Measurements\" type=\"Node2D\" parent=\".\" unique_id=1341129440]\nscript = ExtResource(\"16_nxilb\")\n\n[node name=\"ReferenceImages\" type=\"Node2D\" parent=\".\" unique_id=573476337]\nscript = ExtResource(\"17_qfjb4\")\n\n[node name=\"TileModeIndices\" type=\"Node2D\" parent=\".\" unique_id=1893337686]\nmaterial = SubResource(\"ShaderMaterial_ascg6\")\nscript = ExtResource(\"19_7a6wb\")\n"
  },
  {
    "path": "src/UI/Canvas/CanvasCamera.gd",
    "content": "class_name CanvasCamera\nextends Node2D\n\nsignal zoom_changed\nsignal rotation_changed\nsignal offset_changed\n\nenum Cameras { MAIN, SECOND, SMALL }\n\nconst CAMERA_SPEED_RATE := 15.0\n\n@export var index := 0\n\nvar zoom := Vector2.ONE:\n\tset(value):\n\t\tzoom = value\n\t\tGlobal.current_project.cameras_zoom[index] = zoom\n\t\tzoom_changed.emit()\n\t\t_update_viewport_transform()\nvar camera_angle := 0.0:\n\tset(value):\n\t\tcamera_angle = wrapf(value, -PI, PI)\n\t\tcamera_angle_degrees = rad_to_deg(camera_angle)\n\t\tGlobal.current_project.cameras_rotation[index] = camera_angle\n\t\trotation_changed.emit()\n\t\t_update_viewport_transform()\nvar camera_angle_degrees := 0.0\nvar offset := Vector2.ZERO:\n\tset(value):\n\t\toffset = value\n\t\tGlobal.current_project.cameras_offset[index] = offset\n\t\toffset_changed.emit()\n\t\t_update_viewport_transform()\nvar camera_screen_center := Vector2.ZERO\nvar zoom_in_max := Vector2(500, 500)\nvar zoom_out_max := Vector2(0.01, 0.01)\nvar viewport_container: SubViewportContainer\nvar transparent_checker: ColorRect\nvar mouse_pos := Vector2.ZERO\nvar drag := false\nvar rotation_slider: ValueSlider\nvar zoom_slider: ValueSlider\nvar should_tween := true\n\n@onready var viewport := get_viewport()\n\n\nfunc _ready() -> void:\n\tviewport.size_changed.connect(_update_viewport_transform)\n\tGlobal.project_switched.connect(_project_switched)\n\tif not DisplayServer.is_touchscreen_available():\n\t\tset_process_input(false)\n\tif index == Cameras.MAIN:\n\t\trotation_slider = Global.top_menu_container.get_node(\"%RotationSlider\")\n\t\trotation_slider.value_changed.connect(_rotation_slider_value_changed)\n\t\tzoom_slider = Global.top_menu_container.get_node(\"%ZoomSlider\")\n\t\tzoom_slider.value_changed.connect(_zoom_slider_value_changed)\n\tzoom_changed.connect(_zoom_changed)\n\trotation_changed.connect(_rotation_changed)\n\tviewport_container = get_viewport().get_parent()\n\ttransparent_checker = get_viewport().get_node(\"TransparentChecker\")\n\tupdate_transparent_checker_offset()\n\n\nfunc _input(event: InputEvent) -> void:\n\tif not DisplayServer.is_touchscreen_available():\n\t\tget_window().gui_release_focus()\n\tif !Global.can_draw:\n\t\tdrag = false\n\t\treturn\n\tmouse_pos = viewport_container.get_local_mouse_position()\n\tif event.is_action_pressed(&\"pan\"):\n\t\tdrag = true\n\telif event.is_action_released(&\"pan\"):\n\t\tdrag = false\n\telif event.is_action_pressed(&\"zoom_in\", false, true):  # Wheel Up Event\n\t\tzoom_camera(1)\n\telif event.is_action_pressed(&\"zoom_out\", false, true):  # Wheel Down Event\n\t\tzoom_camera(-1)\n\telif event.is_action_pressed(&\"rotate_right\", false, true):  # Wheel Up Event\n\t\trotate_camera(1)\n\telif event.is_action_pressed(&\"rotate_left\", false, true):  # Wheel Down Event\n\t\trotate_camera(-1)\n\n\telif event is InputEventMagnifyGesture:  # Zoom gesture on touchscreens\n\t\tvar scale_factor := (event as InputEventMagnifyGesture).factor\n\t\tvar zoom_strength := log(scale_factor) * 8.0\n\t\tzoom_camera(zoom_strength, event.position)\n\telif event is InputEventPanGesture:\n\t\t# Pan gesture on touchscreens\n\t\toffset = offset + event.delta.rotated(camera_angle) * 2.0 / zoom\n\telif event is InputEventMouseMotion:\n\t\tif drag:\n\t\t\toffset = offset - event.relative.rotated(camera_angle) / zoom\n\t\t\tupdate_transparent_checker_offset()\n\telse:\n\t\tvar dir := Input.get_vector(&\"camera_left\", &\"camera_right\", &\"camera_up\", &\"camera_down\")\n\t\tif dir != Vector2.ZERO and !_has_selection_tool():\n\t\t\toffset = offset + (dir.rotated(camera_angle) / zoom) * CAMERA_SPEED_RATE\n\n\nfunc rotate_camera(dir: float) -> void:\n\tcamera_angle += PI / 180 * dir\n\n\nfunc zoom_camera(dir: float, event_pos := mouse_pos) -> void:\n\tvar viewport_size := viewport_container.size\n\tif Global.smooth_zoom:\n\t\tvar zoom_margin := zoom * dir / 5\n\t\tvar new_zoom := zoom + zoom_margin\n\t\tif Global.integer_zoom:\n\t\t\tnew_zoom = (zoom + Vector2.ONE * dir).floor()\n\t\tif new_zoom < zoom_in_max && new_zoom > zoom_out_max:\n\t\t\tvar new_offset := (\n\t\t\t\toffset\n\t\t\t\t+ (\n\t\t\t\t\t(-0.5 * viewport_size + event_pos).rotated(camera_angle)\n\t\t\t\t\t* (Vector2.ONE / zoom - Vector2.ONE / new_zoom)\n\t\t\t\t)\n\t\t\t)\n\t\t\tvar tween := create_tween().set_parallel()\n\t\t\ttween.set_trans(Tween.TRANS_LINEAR).set_ease(Tween.EASE_IN)\n\t\t\ttween.tween_property(self, \"zoom\", new_zoom, 0.05)\n\t\t\ttween.tween_property(self, \"offset\", new_offset, 0.05)\n\telse:\n\t\tvar prev_zoom := zoom\n\t\tvar zoom_margin := zoom * dir / 10\n\t\tif Global.integer_zoom:\n\t\t\tzoom_margin = (Vector2.ONE * dir).floor()\n\t\tif zoom + zoom_margin <= zoom_in_max:\n\t\t\tzoom += zoom_margin\n\t\tif zoom < zoom_out_max:\n\t\t\tif Global.integer_zoom:\n\t\t\t\tzoom = Vector2.ONE\n\t\t\telse:\n\t\t\t\tzoom = zoom_out_max\n\t\toffset = (\n\t\t\toffset\n\t\t\t+ (\n\t\t\t\t(-0.5 * viewport_size + event_pos).rotated(camera_angle)\n\t\t\t\t* (Vector2.ONE / prev_zoom - Vector2.ONE / zoom)\n\t\t\t)\n\t\t)\n\n\nfunc zoom_100() -> void:\n\tzoom = Vector2.ONE\n\toffset = Global.current_project.size / 2\n\n\nfunc fit_to_frame(size: Vector2) -> void:\n\tviewport_container = get_viewport().get_parent()\n\tvar h_ratio := viewport_container.size.x / size.x\n\tvar v_ratio := viewport_container.size.y / size.y\n\tvar ratio := minf(h_ratio, v_ratio)\n\tif ratio == 0 or !viewport_container.visible:\n\t\treturn\n\t# Temporarily disable integer zoom.\n\tvar reset_integer_zoom := Global.integer_zoom\n\tif reset_integer_zoom:\n\t\tGlobal.integer_zoom = !Global.integer_zoom\n\toffset = size / 2\n\n\t# Adjust to the rotated size:\n\tif camera_angle != 0.0:\n\t\t# Calculating the rotated corners of the frame to find its rotated size.\n\t\tvar a := Vector2.ZERO  # Top left\n\t\tvar b := Vector2(size.x, 0).rotated(camera_angle)  # Top right.\n\t\tvar c := Vector2(0, size.y).rotated(camera_angle)  # Bottom left.\n\t\tvar d := Vector2(size.x, size.y).rotated(camera_angle)  # Bottom right.\n\n\t\t# Find how far apart each opposite point is on each axis, and take the longer one.\n\t\tsize.x = maxf(absf(a.x - d.x), absf(b.x - c.x))\n\t\tsize.y = maxf(absf(a.y - d.y), absf(b.y - c.y))\n\n\tratio = clampf(ratio, 0.1, ratio)\n\tzoom = Vector2(ratio, ratio)\n\tif reset_integer_zoom:\n\t\tGlobal.integer_zoom = !Global.integer_zoom\n\n\nfunc update_transparent_checker_offset() -> void:\n\tvar o := get_global_transform_with_canvas().get_origin()\n\tvar s := get_global_transform_with_canvas().get_scale()\n\ttransparent_checker.update_offset(o, s)\n\n\n## Updates the viewport's canvas transform, which is the area of the canvas that is\n## currently visible. Called every time the camera's zoom, rotation or origin changes.\nfunc _update_viewport_transform() -> void:\n\tif not is_instance_valid(viewport):\n\t\treturn\n\tvar zoom_scale := Vector2.ONE / zoom\n\tvar viewport_size := get_viewport_rect().size\n\tvar half_size := viewport_size * 0.5\n\tvar screen_offset := -(half_size * zoom_scale).rotated(camera_angle) + offset\n\tvar xform := Transform2D(camera_angle, zoom_scale, 0, screen_offset)\n\tcamera_screen_center = xform * half_size\n\tviewport.canvas_transform = xform.affine_inverse()\n\n\nfunc _zoom_changed() -> void:\n\tupdate_transparent_checker_offset()\n\tif index == Cameras.MAIN:\n\t\tshould_tween = false\n\t\tzoom_slider.set_value_no_signal_update_display(zoom.x * 100.0)\n\t\tshould_tween = true\n\t\tfor guide in Global.current_project.guides:\n\t\t\tguide.width = 1.0 / zoom.x * 2\n\n\nfunc _rotation_changed() -> void:\n\tif index == Cameras.MAIN:\n\t\t# Negative to make going up in value clockwise, and match the spinbox which does the same\n\t\trotation_slider.value = -camera_angle_degrees\n\n\nfunc _zoom_slider_value_changed(value: float) -> void:\n\tif value <= 0:\n\t\tvalue = 1\n\tvar new_zoom := Vector2(value, value) / 100.0\n\tif zoom.is_equal_approx(new_zoom):\n\t\treturn\n\tif Global.smooth_zoom and should_tween:\n\t\tvar tween := create_tween().set_trans(Tween.TRANS_LINEAR).set_ease(Tween.EASE_IN)\n\t\ttween.tween_property(self, \"zoom\", new_zoom, 0.05)\n\telse:\n\t\tzoom = new_zoom\n\n\nfunc _rotation_slider_value_changed(value: float) -> void:\n\t# Negative makes going up rotate clockwise\n\tvar angle := deg_to_rad(-value)\n\tvar difference := angle - camera_angle\n\tvar canvas_center: Vector2 = Global.current_project.size / 2\n\toffset = (offset - canvas_center).rotated(difference) + canvas_center\n\tcamera_angle = angle\n\n\nfunc _has_selection_tool() -> bool:\n\tif not Global.current_project.has_selection:\n\t\treturn false\n\tfor slot in Tools._slots.values():\n\t\tif slot.tool_node is BaseSelectionTool:\n\t\t\treturn true\n\treturn false\n\n\nfunc _project_switched() -> void:\n\toffset = Global.current_project.cameras_offset[index]\n\tcamera_angle = Global.current_project.cameras_rotation[index]\n\tzoom = Global.current_project.cameras_zoom[index]\n\n\nfunc _rotate_camera_around_point(degrees: float, point: Vector2) -> void:\n\tvar angle := deg_to_rad(degrees)\n\toffset = (offset - point).rotated(angle) + point\n\tcamera_angle = camera_angle + angle\n"
  },
  {
    "path": "src/UI/Canvas/CanvasCamera.gd.uid",
    "content": "uid://ctqrsfsbx4kwk\n"
  },
  {
    "path": "src/UI/Canvas/CanvasPreview.gd",
    "content": "extends Node2D\n\nenum Mode { TIMELINE, SPRITESHEET }\nvar mode := Mode.TIMELINE\n## Use this material only when the animation of the canvas preview is playing\n## This way we optimize drawing when the frame being shown is the same as the main canvas\nvar animation_material := material as ShaderMaterial\nvar h_frames := 1\nvar v_frames := 1\nvar start_sprite_sheet_frame := 1\nvar end_sprite_sheet_frame := 1\nvar frame_index := 0:\n\tset(value):\n\t\tframe_index = value\n\t\tif mode == Mode.SPRITESHEET:\n\t\t\treturn\n\t\tif frame_index == Global.current_project.current_frame:  # Animation not playing\n\t\t\tif material != Global.canvas.material:\n\t\t\t\tmaterial = Global.canvas.material\n\t\telse:  # The animation of the canvas preview is playing\n\t\t\tif material != animation_material:\n\t\t\t\tmaterial = animation_material\n\n@onready var animation_timer := $AnimationTimer as Timer\n@onready var transparent_checker = get_parent().get_node(\"TransparentChecker\") as ColorRect\n\n\nfunc _ready() -> void:\n\tGlobal.cel_switched.connect(_cel_switched)\n\tmaterial = Global.canvas.material\n\n\nfunc _draw() -> void:\n\tvar project := Global.current_project\n\tmatch mode:\n\t\tMode.TIMELINE:\n\t\t\tif frame_index >= project.frames.size():\n\t\t\t\tframe_index = project.current_frame\n\t\t\tif animation_timer.is_stopped():\n\t\t\t\tframe_index = project.current_frame\n\t\t\tvar frame := project.frames[frame_index]\n\t\t\tanimation_timer.wait_time = frame.get_duration_in_seconds(project.fps)\n\t\t\t# If we just use the first cel and it happens to be a GroupCel\n\t\t\t# nothing will get drawn\n\t\t\tvar cel_to_draw := Global.current_project.find_first_drawable_cel(frame)\n\t\t\t# Placeholder so we can have a material here\n\t\t\tif is_instance_valid(cel_to_draw):\n\t\t\t\tdraw_texture(cel_to_draw.image_texture, Vector2.ZERO)\n\t\t\tif material == animation_material:\n\t\t\t\t# Only use a unique material if the animation of the canvas preview is playing\n\t\t\t\t# Otherwise showing a different frame than the main canvas is impossible\n\t\t\t\t_draw_layers()\n\t\tMode.SPRITESHEET:\n\t\t\tvar image := project.frames[project.current_frame].cels[0].get_image()\n\t\t\tvar slices := _split_spritesheet(image, h_frames, v_frames)\n\t\t\t# Limit start and end\n\t\t\tif end_sprite_sheet_frame > slices.size():\n\t\t\t\tend_sprite_sheet_frame = slices.size()\n\t\t\tif start_sprite_sheet_frame < 0:\n\t\t\t\tstart_sprite_sheet_frame = 0\n\t\t\tif frame_index >= end_sprite_sheet_frame:\n\t\t\t\tframe_index = start_sprite_sheet_frame - 1\n\t\t\tvar src_rect := slices[frame_index]\n\t\t\tvar rect := Rect2(Vector2.ZERO, src_rect.size)\n\t\t\t# If we just use the first cel and it happens to be a GroupCel\n\t\t\t# nothing will get drawn\n\t\t\tvar cel_to_draw := Global.current_project.find_first_drawable_cel()\n\t\t\t# Placeholder so we can have a material here\n\t\t\tif is_instance_valid(cel_to_draw):\n\t\t\t\tdraw_texture_rect_region(cel_to_draw.image_texture, rect, src_rect)\n\t\t\ttransparent_checker.fit_rect(rect)\n\n\nfunc _draw_layers() -> void:\n\tvar project := Global.current_project\n\tvar current_frame := project.frames[frame_index]\n\tvar current_cels := current_frame.cels\n\tvar textures: Array[Image] = []\n\t# Nx4 texture, where N is the number of layers and the first row are the blend modes,\n\t# the second are the opacities, the third are the origins and the fourth are the\n\t# clipping mask booleans.\n\tvar metadata_image := Image.create(project.layers.size(), 4, false, Image.FORMAT_R8)\n\t# Draw current frame layers\n\tfor i in project.ordered_layers:\n\t\tvar cel := current_cels[i]\n\t\tvar layer := project.layers[i]\n\t\tvar cel_image: Image\n\t\tif layer.is_blender():\n\t\t\tcel_image = layer.blend_children(\n\t\t\t\tcurrent_frame, Vector2i.ZERO, Global.display_layer_effects\n\t\t\t)\n\t\telse:\n\t\t\tif Global.display_layer_effects:\n\t\t\t\tcel_image = layer.display_effects(cel)\n\t\t\telse:\n\t\t\t\tcel_image = cel.get_image()\n\t\ttextures.append(cel_image)\n\t\tDrawingAlgos.set_layer_metadata_image(layer, cel, metadata_image, i)\n\tvar texture_array := Texture2DArray.new()\n\ttexture_array.create_from_images(textures)\n\tmaterial.set_shader_parameter(\"layers\", texture_array)\n\tmaterial.set_shader_parameter(\"metadata\", ImageTexture.create_from_image(metadata_image))\n\n\nfunc _on_AnimationTimer_timeout() -> void:\n\tmatch mode:\n\t\tMode.TIMELINE:\n\t\t\tvar project := Global.current_project\n\t\t\tvar first_frame := 0\n\t\t\tvar last_frame := project.frames.size() - 1\n\n\t\t\tif Global.play_only_tags:\n\t\t\t\tfor tag in project.animation_tags:\n\t\t\t\t\tif project.current_frame + 1 >= tag.from && project.current_frame + 1 <= tag.to:\n\t\t\t\t\t\tfirst_frame = tag.from - 1\n\t\t\t\t\t\tlast_frame = mini(project.frames.size() - 1, tag.to - 1)\n\n\t\t\tif frame_index < last_frame:\n\t\t\t\tframe_index += 1\n\t\t\telse:\n\t\t\t\tframe_index = first_frame\n\t\t\tvar frame := project.frames[frame_index]\n\t\t\tanimation_timer.wait_time = frame.get_duration_in_seconds(project.fps)\n\n\t\tMode.SPRITESHEET:\n\t\t\tframe_index += 1\n\t\t\tanimation_timer.wait_time = 1.0 / Global.current_project.fps\n\tanimation_timer.set_one_shot(true)\n\tanimation_timer.start()\n\tqueue_redraw()\n\n\nfunc _cel_switched() -> void:\n\tqueue_redraw()\n\n\nfunc _split_spritesheet(image: Image, horiz: int, vert: int) -> Array[Rect2]:\n\tvar result: Array[Rect2] = []\n\thoriz = mini(horiz, image.get_size().x)\n\tvert = mini(vert, image.get_size().y)\n\tvar frame_width := image.get_size().x / horiz\n\tvar frame_height := image.get_size().y / vert\n\tfor yy in range(vert):\n\t\tfor xx in range(horiz):\n\t\t\tresult.append(Rect2(frame_width * xx, frame_height * yy, frame_width, frame_height))\n\treturn result\n"
  },
  {
    "path": "src/UI/Canvas/CanvasPreview.gd.uid",
    "content": "uid://d0fky8xflhu6s\n"
  },
  {
    "path": "src/UI/Canvas/CanvasPreview.tscn",
    "content": "[gd_scene format=3 uid=\"uid://c546tskdu53j1\"]\n\n[ext_resource type=\"Script\" uid=\"uid://d0fky8xflhu6s\" path=\"res://src/UI/Canvas/CanvasPreview.gd\" id=\"1\"]\n[ext_resource type=\"Shader\" uid=\"uid://b3cj543ir4o23\" path=\"res://src/Shaders/BlendLayers.gdshader\" id=\"1_28j41\"]\n\n[sub_resource type=\"ShaderMaterial\" id=\"ShaderMaterial_21d5l\"]\nshader = ExtResource(\"1_28j41\")\nshader_parameter/origin_x_positive = true\nshader_parameter/origin_y_positive = true\n\n[node name=\"CanvasPreview\" type=\"Node2D\" unique_id=288925646]\nmaterial = SubResource(\"ShaderMaterial_21d5l\")\nscript = ExtResource(\"1\")\n\n[node name=\"AnimationTimer\" type=\"Timer\" parent=\".\" unique_id=937838332]\n\n[connection signal=\"timeout\" from=\"AnimationTimer\" to=\".\" method=\"_on_AnimationTimer_timeout\"]\n"
  },
  {
    "path": "src/UI/Canvas/CropRect.gd",
    "content": "class_name CropRect\nextends Node2D\n## Draws the rectangle overlay for the crop tool\n## Stores the shared settings between left and right crop tools\n\nsignal updated\n\nenum Mode { MARGINS, POSITION_SIZE }\n\nconst BIG := 100000  ## Size of big rectangles used to darken background.\nconst DARKEN_COLOR := Color(0, 0, 0, 0.5)\nconst LINE_COLOR := Color.WHITE\n\nvar mode := Mode.MARGINS:\n\tset(value):\n\t\tmode = value\nvar locked_size := false\nvar rect := Rect2i(0, 0, 1, 1)\n\n## How many crop tools are active (0-2), setter makes this visible if not 0\nvar tool_count := 0:\n\tset(value):\n\t\tif tool_count == 0 and value > 0:\n\t\t\treset()  # Reset once 1 tool becomes the crop tool\n\t\ttool_count = value\n\t\tvisible = tool_count\n\n\nfunc _ready() -> void:\n\tupdated.connect(queue_redraw)\n\tGlobal.project_switched.connect(reset)\n\tmode = Global.config_cache.get_value(\"tools\", \"crop_mode\", 0)\n\tlocked_size = Global.config_cache.get_value(\"tools\", \"crop_locked_size\", false)\n\treset()\n\n\nfunc _exit_tree() -> void:\n\tGlobal.config_cache.set_value(\"tools\", \"crop_mode\", mode)\n\tGlobal.config_cache.set_value(\"tools\", \"crop_locked_size\", locked_size)\n\n\nfunc _draw() -> void:\n\t# Darken the background by drawing big rectangles around it (top/bottomm/left/right):\n\tdraw_rect(\n\t\tRect2(rect.position.x - BIG, rect.position.y - BIG, BIG * 2 + rect.size.x, BIG),\n\t\tDARKEN_COLOR\n\t)\n\tdraw_rect(Rect2(rect.position.x - BIG, rect.end.y, BIG * 2 + rect.size.x, BIG), DARKEN_COLOR)\n\tdraw_rect(Rect2(rect.position.x - BIG, rect.position.y, BIG, rect.size.y), DARKEN_COLOR)\n\tdraw_rect(Rect2(rect.end.x, rect.position.y, BIG, rect.size.y), DARKEN_COLOR)\n\n\t# Rect:\n\tdraw_rect(rect, LINE_COLOR, false)\n\n\t# Horizontal rule of thirds lines:\n\tvar third: float = rect.position.y + rect.size.y * 0.333\n\tdraw_line(Vector2(rect.position.x, third), Vector2(rect.end.x, third), LINE_COLOR)\n\tthird = rect.position.y + rect.size.y * 0.667\n\tdraw_line(Vector2(rect.position.x, third), Vector2(rect.end.x, third), LINE_COLOR)\n\n\t# Vertical rule of thirds lines:\n\tthird = rect.position.x + rect.size.x * 0.333\n\tdraw_line(Vector2(third, rect.position.y), Vector2(third, rect.end.y), LINE_COLOR)\n\tthird = rect.position.x + rect.size.x * 0.667\n\tdraw_line(Vector2(third, rect.position.y), Vector2(third, rect.end.y), LINE_COLOR)\n\n\nfunc apply() -> void:\n\tDrawingAlgos.resize_canvas(rect.size.x, rect.size.y, -rect.position.x, -rect.position.y)\n\n\nfunc reset() -> void:\n\trect.position = Vector2.ZERO\n\trect.size = Global.current_project.size\n\tupdated.emit()\n"
  },
  {
    "path": "src/UI/Canvas/CropRect.gd.uid",
    "content": "uid://c17sncjk3paec\n"
  },
  {
    "path": "src/UI/Canvas/CurrentFrameDrawer.gd",
    "content": "extends Node2D\n\n\nfunc _draw() -> void:\n\t# Placeholder so we can have a material here\n\tdraw_texture(\n\t\tGlobal.current_project.frames[Global.current_project.current_frame].cels[0].image_texture,\n\t\tVector2.ZERO\n\t)\n"
  },
  {
    "path": "src/UI/Canvas/CurrentFrameDrawer.gd.uid",
    "content": "uid://bkpdbfe1felex\n"
  },
  {
    "path": "src/UI/Canvas/Gizmos3D.gd",
    "content": "extends Node2D\n\nenum { X, Y, Z }\n\nconst ARROW_LENGTH := 14\nconst LIGHT_ARROW_LENGTH := 25\nconst GIZMO_WIDTH := 0.4\nconst SCALE_CIRCLE_LENGTH := 8\nconst SCALE_CIRCLE_RADIUS := 1\nconst CHAR_SCALE := 0.10\nconst DISAPPEAR_THRESHOLD := 1  ## length of arrow below which system won't draw it (for cleaner UI)\n\nvar always_visible: Dictionary[Cel3DObject, Texture2D] = {}\nvar points_per_object: Dictionary[Cel3DObject, PackedVector2Array] = {}\nvar selected_color := Color.WHITE\nvar hovered_color := Color.GRAY\n\nvar gizmos_origin: Vector2\nvar proj_right_local: Vector2\nvar proj_up_local: Vector2\nvar proj_back_local: Vector2\nvar right_axis_width: float = 1.0\nvar up_axis_width: float = 1.0\nvar back_axis_width: float = 1.0\n# Same vectors as `proj_x_local`, but with a smaller length, for the rotation & scale gizmos\nvar proj_right_local_scale: Vector2\nvar proj_up_local_scale: Vector2\nvar proj_back_local_scale: Vector2\nvar gizmo_pos_x := PackedVector2Array()\nvar gizmo_pos_y := PackedVector2Array()\nvar gizmo_pos_z := PackedVector2Array()\nvar gizmo_rot_x := PackedVector2Array()\nvar gizmo_rot_y := PackedVector2Array()\nvar gizmo_rot_z := PackedVector2Array()\n\n@onready var canvas := get_parent() as Canvas\n\n\nfunc _ready() -> void:\n\tGlobal.cel_switched.connect(_cel_switched)\n\tGlobal.camera.zoom_changed.connect(queue_redraw)\n\n\nfunc get_hovering_gizmo(pos: Vector2) -> int:\n\tvar draw_scale := Vector2(10.0, 10.0) / Global.camera.zoom\n\tpos -= gizmos_origin\n\t# Scale the position based on the zoom, has the same effect as enlarging the shapes\n\tpos /= draw_scale\n\t# Inflate the rotation polylines by one to make them easier to click\n\tvar rot_x_offset := Geometry2D.offset_polyline(gizmo_rot_x, 1)[0]\n\tvar rot_y_offset := Geometry2D.offset_polyline(gizmo_rot_y, 1)[0]\n\tvar rot_z_offset := Geometry2D.offset_polyline(gizmo_rot_z, 1)[0]\n\n\tif Geometry2D.is_point_in_circle(pos, proj_right_local_scale, SCALE_CIRCLE_RADIUS):\n\t\treturn Cel3DObject.Gizmos.X_SCALE\n\telif Geometry2D.is_point_in_circle(pos, proj_up_local_scale, SCALE_CIRCLE_RADIUS):\n\t\treturn Cel3DObject.Gizmos.Y_SCALE\n\telif Geometry2D.is_point_in_circle(pos, proj_back_local_scale, SCALE_CIRCLE_RADIUS):\n\t\treturn Cel3DObject.Gizmos.Z_SCALE\n\telif Geometry2D.point_is_inside_triangle(pos, gizmo_pos_x[0], gizmo_pos_x[1], gizmo_pos_x[2]):\n\t\treturn Cel3DObject.Gizmos.X_POS\n\telif Geometry2D.point_is_inside_triangle(pos, gizmo_pos_y[0], gizmo_pos_y[1], gizmo_pos_y[2]):\n\t\treturn Cel3DObject.Gizmos.Y_POS\n\telif Geometry2D.point_is_inside_triangle(pos, gizmo_pos_z[0], gizmo_pos_z[1], gizmo_pos_z[2]):\n\t\treturn Cel3DObject.Gizmos.Z_POS\n\telif Geometry2D.is_point_in_polygon(pos, rot_x_offset):\n\t\treturn Cel3DObject.Gizmos.X_ROT\n\telif Geometry2D.is_point_in_polygon(pos, rot_y_offset):\n\t\treturn Cel3DObject.Gizmos.Y_ROT\n\telif Geometry2D.is_point_in_polygon(pos, rot_z_offset):\n\t\treturn Cel3DObject.Gizmos.Z_ROT\n\treturn Cel3DObject.Gizmos.NONE\n\n\nfunc _cel_switched() -> void:\n\tfor object in points_per_object:\n\t\tif not object.find_cel():\n\t\t\tif object.selected:\n\t\t\t\tobject.deselect()\n\tqueue_redraw()\n\n\nfunc _find_selected_object() -> Cel3DObject:\n\tfor object in points_per_object:\n\t\tif is_instance_valid(object) and object.selected:\n\t\t\treturn object\n\treturn null\n\n\nfunc add_always_visible(object3d: Cel3DObject, texture: Texture2D) -> void:\n\talways_visible[object3d] = texture\n\tqueue_redraw()\n\n\nfunc remove_always_visible(object3d: Cel3DObject) -> void:\n\talways_visible.erase(object3d)\n\tqueue_redraw()\n\n\nfunc get_points(camera: Camera3D, object3d: Cel3DObject) -> void:\n\tvar debug_mesh := object3d.box_shape.get_debug_mesh()\n\tvar arrays := debug_mesh.surface_get_arrays(0)\n\tvar points := PackedVector2Array()\n\tfor vertex in arrays[ArrayMesh.ARRAY_VERTEX]:\n\t\tvar x_vertex: Vector3 = object3d.transform * (vertex)\n\t\tvar point := camera.unproject_position(x_vertex)\n\t\tif not camera.is_position_behind(x_vertex):\n\t\t\tpoints.append(point)\n\tpoints_per_object[object3d] = points\n\tif object3d.selected:\n\t\tgizmos_origin = camera.unproject_position(object3d.position)\n\t\tvar right := object3d.position + object3d.transform.basis.x.normalized()\n\t\tvar left := object3d.position - object3d.transform.basis.x.normalized()\n\t\tvar up := object3d.position + object3d.transform.basis.y.normalized()\n\t\tvar down := object3d.position - object3d.transform.basis.y.normalized()\n\t\tvar back := object3d.position + object3d.transform.basis.z.normalized()\n\t\tvar front := object3d.position - object3d.transform.basis.z.normalized()\n\n\t\tvar camera_right = camera.transform.basis.x.normalized()\n\t\tright_axis_width = lerpf(0.5, 0.1, (1 + (camera_right - right).z) / 2.0)\n\t\tup_axis_width = lerpf(0.5, 0.1, (1 + (camera_right - up).z) / 2.0)\n\t\tback_axis_width = lerpf(0.5, 0.1, (1 + (camera_right - back).z) / 2.0)\n\n\t\tvar proj_right := object3d.camera.unproject_position(right)\n\t\tvar proj_up := object3d.camera.unproject_position(up)\n\t\tvar proj_back := object3d.camera.unproject_position(back)\n\n\t\tproj_right_local = proj_right - gizmos_origin\n\t\tproj_up_local = proj_up - gizmos_origin\n\t\tproj_back_local = proj_back - gizmos_origin\n\n\t\tvar curve_right_local := proj_right_local\n\t\tvar curve_up_local := proj_up_local\n\t\tvar curve_back_local := proj_back_local\n\t\tif right.distance_to(camera.position) > left.distance_to(camera.position):\n\t\t\tcurve_right_local = object3d.camera.unproject_position(left) - gizmos_origin\n\t\tif up.distance_to(camera.position) > down.distance_to(camera.position):\n\t\t\tcurve_up_local = object3d.camera.unproject_position(down) - gizmos_origin\n\t\tif back.distance_to(camera.position) > front.distance_to(camera.position):\n\t\t\tcurve_back_local = object3d.camera.unproject_position(front) - gizmos_origin\n\n\t\tproj_right_local = _resize_vector(proj_right_local, ARROW_LENGTH)\n\t\tproj_up_local = _resize_vector(proj_up_local, ARROW_LENGTH)\n\t\tproj_back_local = _resize_vector(proj_back_local, ARROW_LENGTH)\n\n\t\tproj_right_local_scale = _resize_vector(proj_right_local, SCALE_CIRCLE_LENGTH)\n\t\tproj_up_local_scale = _resize_vector(proj_up_local, SCALE_CIRCLE_LENGTH)\n\t\tproj_back_local_scale = _resize_vector(proj_back_local, SCALE_CIRCLE_LENGTH)\n\n\t\t# Calculate position gizmos (arrows)\n\t\tgizmo_pos_x = _find_arrow(proj_right_local)\n\t\tgizmo_pos_y = _find_arrow(proj_up_local)\n\t\tgizmo_pos_z = _find_arrow(proj_back_local)\n\t\t# Calculate rotation gizmos\n\t\tgizmo_rot_x = _find_curve(curve_up_local, curve_back_local)\n\t\tgizmo_rot_y = _find_curve(curve_right_local, curve_back_local)\n\t\tgizmo_rot_z = _find_curve(curve_right_local, curve_up_local)\n\n\tqueue_redraw()\n\n\nfunc clear_points(object3d: Cel3DObject) -> void:\n\tpoints_per_object.erase(object3d)\n\tqueue_redraw()\n\n\nfunc _draw() -> void:\n\tvar draw_scale := Vector2(10.0, 10.0) / Global.camera.zoom\n\tfor object in always_visible:\n\t\tif not always_visible[object]:\n\t\t\tcontinue\n\t\tif not object.find_cel():\n\t\t\tcontinue\n\t\tvar texture: Texture2D = always_visible[object]\n\t\tvar center := Vector2(8, 8)\n\t\tvar pos: Vector2 = object.camera.unproject_position(object.position)\n\t\tvar back: Vector3 = object.position - object.transform.basis.z\n\t\tvar back_proj: Vector2 = object.camera.unproject_position(back) - pos\n\t\tback_proj = _resize_vector(back_proj, LIGHT_ARROW_LENGTH)\n\t\tdraw_set_transform(pos, 0, draw_scale / 4)\n\t\tdraw_texture(texture, -center)\n\t\tdraw_set_transform(pos, 0, draw_scale / 2)\n\t\tif object.type == Cel3DObject.Type.DIR_LIGHT:\n\t\t\tvar line_width = lerpf(0.5, 0.1, (1 + (Vector3.RIGHT - back).z) / 2.0)\n\t\t\tdraw_line(Vector2.ZERO, back_proj, Color.WHITE, line_width)\n\t\t\tvar arrow := _find_arrow(back_proj)\n\t\t\t_draw_arrow(arrow, Color.WHITE)\n\t\tdraw_set_transform_matrix(Transform2D())\n\n\tif points_per_object.is_empty():\n\t\treturn\n\tfor object in points_per_object:\n\t\tvar points: PackedVector2Array = points_per_object[object]\n\t\tif points.is_empty():\n\t\t\tcontinue\n\t\tif object.selected:\n\t\t\tvar is_applying_gizmos = false\n\t\t\t# Draw bounding box outline\n\t\t\tdraw_multiline(points, selected_color, 0.5)\n\t\t\tif object.applying_gizmos == Cel3DObject.Gizmos.X_ROT:\n\t\t\t\tdraw_line(gizmos_origin, canvas.current_pixel, Color.RED)\n\t\t\t\tis_applying_gizmos = true\n\t\t\telif object.applying_gizmos == Cel3DObject.Gizmos.Y_ROT:\n\t\t\t\tdraw_line(gizmos_origin, canvas.current_pixel, Color.GREEN)\n\t\t\t\tis_applying_gizmos = true\n\t\t\telif object.applying_gizmos == Cel3DObject.Gizmos.Z_ROT:\n\t\t\t\tdraw_line(gizmos_origin, canvas.current_pixel, Color.BLUE)\n\t\t\t\tis_applying_gizmos = true\n\t\t\tdraw_set_transform(gizmos_origin, 0, draw_scale)\n\t\t\t# Draw position arrows\n\t\t\tif proj_right_local.length() > DISAPPEAR_THRESHOLD:\n\t\t\t\tdraw_line(Vector2.ZERO, proj_right_local, Color.RED, right_axis_width)\n\t\t\t\t_draw_arrow(gizmo_pos_x, Color.RED)\n\t\t\tif proj_up_local.length() > DISAPPEAR_THRESHOLD:\n\t\t\t\tdraw_line(Vector2.ZERO, proj_up_local, Color.GREEN, up_axis_width)\n\t\t\t\t_draw_arrow(gizmo_pos_y, Color.GREEN)\n\t\t\tif proj_back_local.length() > DISAPPEAR_THRESHOLD:\n\t\t\t\tdraw_line(Vector2.ZERO, proj_back_local, Color.BLUE, back_axis_width)\n\t\t\t\t_draw_arrow(gizmo_pos_z, Color.BLUE)\n\t\t\tdraw_circle(Vector2.ZERO, 0.4, Color.ORANGE)\n\t\t\tif is_applying_gizmos:\n\t\t\t\tcontinue\n\n\t\t\t# Draw rotation curves\n\t\t\tdraw_polyline(gizmo_rot_x, Color.RED, GIZMO_WIDTH)\n\t\t\tdraw_polyline(gizmo_rot_y, Color.GREEN, GIZMO_WIDTH)\n\t\t\tdraw_polyline(gizmo_rot_z, Color.BLUE, GIZMO_WIDTH)\n\n\t\t\t# Draw scale circles\n\t\t\tdraw_circle(proj_right_local_scale, SCALE_CIRCLE_RADIUS, Color.RED)\n\t\t\tdraw_circle(proj_up_local_scale, SCALE_CIRCLE_RADIUS, Color.GREEN)\n\t\t\tdraw_circle(proj_back_local_scale, SCALE_CIRCLE_RADIUS, Color.BLUE)\n\n\t\t\t# Draw X, Y, Z characters on top of the scale circles\n\t\t\tvar font := Themes.get_font()\n\t\t\tvar font_height := font.get_height()\n\t\t\tvar char_position := Vector2(-font_height, font_height) * CHAR_SCALE / 4 * draw_scale\n\t\t\tdraw_set_transform(gizmos_origin + char_position, 0, draw_scale * CHAR_SCALE)\n\t\t\tdraw_char(font, proj_right_local_scale / CHAR_SCALE, \"X\")\n\t\t\tdraw_char(font, proj_up_local_scale / CHAR_SCALE, \"Y\")\n\t\t\tdraw_char(font, proj_back_local_scale / CHAR_SCALE, \"Z\")\n\t\t\tdraw_set_transform_matrix(Transform2D())\n\t\telif object.hovered:\n\t\t\tdraw_multiline(points, hovered_color)\n\n\n## resizes the vector [param v] by amount [param l] but clamps the resized length to original length\nfunc _resize_vector(v: Vector2, l: float) -> Vector2:\n\treturn (v.normalized() * l).limit_length(v.length())\n\n\nfunc _find_curve(a: Vector2, b: Vector2) -> PackedVector2Array:\n\tvar curve2d := Curve2D.new()\n\tcurve2d.bake_interval = 1\n\tvar control := b.lerp(a, 0.5)\n\ta = _resize_vector(a, SCALE_CIRCLE_LENGTH)\n\tb = _resize_vector(b, SCALE_CIRCLE_LENGTH)\n\tcontrol = control.normalized() * sqrt(pow(a.length() / 4, 2) * 2)  # Thank you Pythagoras\n\tcurve2d.add_point(a, Vector2.ZERO, control)\n\tcurve2d.add_point(b, control)\n\treturn curve2d.get_baked_points()\n\n\nfunc _find_arrow(a: Vector2, tilt := 0.5) -> PackedVector2Array:\n\t# The middle point of line between b and c will now touch the\n\t# starting point instead of the original \"a\" vector\n\ta -= Vector2(0, 1).rotated(a.angle() + PI / 2) * 2\n\tvar b := a + Vector2(-tilt, 1).rotated(a.angle() + PI / 2) * 2\n\tvar c := a + Vector2(tilt, 1).rotated(a.angle() + PI / 2) * 2\n\treturn PackedVector2Array([a, b, c])\n\n\nfunc _draw_arrow(triangle: PackedVector2Array, color: Color) -> void:\n\tdraw_primitive(triangle, [color, color, color], [])\n"
  },
  {
    "path": "src/UI/Canvas/Gizmos3D.gd.uid",
    "content": "uid://dln7rbciajoaa\n"
  },
  {
    "path": "src/UI/Canvas/Grid.gd",
    "content": "extends Node2D\n\nvar unique_rect_lines := PackedVector2Array()\nvar unique_iso_lines := PackedVector2Array()\n\n\nfunc _ready() -> void:\n\tGlobal.project_switched.connect(queue_redraw)\n\tGlobal.cel_switched.connect(queue_redraw)\n\n\nfunc _draw() -> void:\n\tif not Global.draw_grid:\n\t\treturn\n\n\tvar target_rect: Rect2i\n\tunique_rect_lines.clear()\n\tunique_iso_lines.clear()\n\tfor grid_idx in range(Global.grids.size() - 1, -1, -1):\n\t\tif Global.grids[grid_idx].grid_draw_over_tile_mode:\n\t\t\ttarget_rect = Global.current_project.tiles.get_bounding_rect()\n\t\telse:\n\t\t\ttarget_rect = Rect2i(Vector2i.ZERO, Global.current_project.size)\n\t\tif not target_rect.has_area():\n\t\t\treturn\n\n\t\tvar grid_type := Global.grids[grid_idx].grid_type\n\t\tvar flags: PackedStringArray = Global.grids[grid_idx].special_flags\n\t\tvar is_y_separated: bool = flags.has(\"y_separated\")\n\t\tvar is_pixelated: bool = Global.grids[grid_idx].is_pixelated\n\t\tvar cel := Global.current_project.get_current_cel()\n\t\tif cel is CelTileMap and grid_idx == 0:\n\t\t\tif cel.get_tile_shape() == TileSet.TILE_SHAPE_ISOMETRIC:\n\t\t\t\tgrid_type = Global.GridTypes.ISOMETRIC\n\t\t\t\tis_pixelated = true\n\t\t\t\tis_y_separated = false\n\t\t\telif cel.get_tile_shape() == TileSet.TILE_SHAPE_HEXAGON:\n\t\t\t\tif cel.get_tile_offset_axis() == TileSet.TILE_OFFSET_AXIS_HORIZONTAL:\n\t\t\t\t\tgrid_type = Global.GridTypes.HEXAGONAL_POINTY_TOP\n\t\t\t\telse:\n\t\t\t\t\tgrid_type = Global.GridTypes.HEXAGONAL_FLAT_TOP\n\t\t\telse:\n\t\t\t\tgrid_type = Global.GridTypes.CARTESIAN\n\t\tif grid_type == Global.GridTypes.CARTESIAN:\n\t\t\t_draw_cartesian_grid(grid_idx, target_rect)\n\t\telif grid_type == Global.GridTypes.ISOMETRIC:\n\t\t\tif is_pixelated:\n\t\t\t\t_draw_pixelated_isometric_grid(grid_idx, target_rect, is_y_separated)\n\t\t\telse:\n\t\t\t\t_draw_isometric_grid(grid_idx, target_rect)\n\t\telif grid_type == Global.GridTypes.HEXAGONAL_POINTY_TOP:\n\t\t\t_draw_hexagonal_grid(grid_idx, target_rect, true)\n\t\telif grid_type == Global.GridTypes.HEXAGONAL_FLAT_TOP:\n\t\t\t_draw_hexagonal_grid(grid_idx, target_rect, false)\n\n\nfunc _draw_cartesian_grid(grid_index: int, target_rect: Rect2i) -> void:\n\tvar grid := Global.grids[grid_index]\n\tvar grid_size := grid.grid_size\n\tvar grid_offset := grid.grid_offset\n\tvar cel := Global.current_project.get_current_cel()\n\tif cel is CelTileMap and grid_index == 0:\n\t\tgrid_size = (cel as CelTileMap).get_tile_size()\n\t\tgrid_offset = (cel as CelTileMap).offset\n\tvar grid_multiline_points := PackedVector2Array()\n\n\tvar x: float = (\n\t\ttarget_rect.position.x + fposmod(grid_offset.x - target_rect.position.x, grid_size.x)\n\t)\n\twhile x <= target_rect.end.x:\n\t\tif not Vector2(x, target_rect.position.y) in unique_rect_lines:\n\t\t\tgrid_multiline_points.push_back(Vector2(x, target_rect.position.y))\n\t\t\tgrid_multiline_points.push_back(Vector2(x, target_rect.end.y))\n\t\tx += grid_size.x\n\n\tvar y: float = (\n\t\ttarget_rect.position.y + fposmod(grid_offset.y - target_rect.position.y, grid_size.y)\n\t)\n\twhile y <= target_rect.end.y:\n\t\tif not Vector2(target_rect.position.x, y) in unique_rect_lines:\n\t\t\tgrid_multiline_points.push_back(Vector2(target_rect.position.x, y))\n\t\t\tgrid_multiline_points.push_back(Vector2(target_rect.end.x, y))\n\t\ty += grid_size.y\n\n\tunique_rect_lines.append_array(grid_multiline_points)\n\tif not grid_multiline_points.is_empty():\n\t\tdraw_multiline(grid_multiline_points, grid.grid_color)\n\n\nfunc _draw_isometric_grid(grid_index: int, target_rect: Rect2i) -> void:\n\tvar grid := Global.grids[grid_index]\n\tvar grid_multiline_points := PackedVector2Array()\n\n\tvar cell_size: Vector2 = grid.grid_size\n\tvar origin_offset: Vector2 = Vector2(grid.grid_offset - target_rect.position).posmodv(cell_size)\n\tvar cel := Global.current_project.get_current_cel()\n\tif cel is CelTileMap and grid_index == 0:\n\t\tcell_size = (cel as CelTileMap).get_tile_size()\n\t\torigin_offset = (cel as CelTileMap).offset\n\tvar max_cell_count: Vector2 = Vector2(target_rect.size) / cell_size\n\n\t# lines ↗↗↗ (from bottom-left to top-right)\n\tvar per_cell_offset: Vector2 = cell_size * Vector2(1, -1)\n\n\t#  lines ↗↗↗ starting from the rect's left side (top to bottom):\n\tvar y: float = fposmod(\n\t\torigin_offset.y + cell_size.y * (0.5 + origin_offset.x / cell_size.x), cell_size.y\n\t)\n\twhile y < target_rect.size.y:\n\t\tvar start: Vector2 = Vector2(target_rect.position) + Vector2(0, y)\n\t\tvar cells_to_rect_bounds: float = minf(max_cell_count.x, y / cell_size.y)\n\t\tvar end := start + cells_to_rect_bounds * per_cell_offset\n\t\tif not start in unique_iso_lines:\n\t\t\tgrid_multiline_points.push_back(start)\n\t\t\tgrid_multiline_points.push_back(end)\n\t\ty += cell_size.y\n\n\t#  lines ↗↗↗ starting from the rect's bottom side (left to right):\n\tvar x: float = (y - target_rect.size.y) / cell_size.y * cell_size.x\n\twhile x < target_rect.size.x:\n\t\tvar start: Vector2 = Vector2(target_rect.position) + Vector2(x, target_rect.size.y)\n\t\tvar cells_to_rect_bounds: float = minf(max_cell_count.y, max_cell_count.x - x / cell_size.x)\n\t\tvar end: Vector2 = start + cells_to_rect_bounds * per_cell_offset\n\t\tif not start in unique_iso_lines:\n\t\t\tgrid_multiline_points.push_back(start)\n\t\t\tgrid_multiline_points.push_back(end)\n\t\tx += cell_size.x\n\n\t# lines ↘↘↘ (from top-left to bottom-right)\n\tper_cell_offset = cell_size\n\n\t#  lines ↘↘↘ starting from the rect's left side (top to bottom):\n\ty = fposmod(origin_offset.y - cell_size.y * (0.5 + origin_offset.x / cell_size.x), cell_size.y)\n\twhile y < target_rect.size.y:\n\t\tvar start: Vector2 = Vector2(target_rect.position) + Vector2(0, y)\n\t\tvar cells_to_rect_bounds: float = minf(max_cell_count.x, max_cell_count.y - y / cell_size.y)\n\t\tvar end: Vector2 = start + cells_to_rect_bounds * per_cell_offset\n\t\tif not start in unique_iso_lines:\n\t\t\tgrid_multiline_points.push_back(start)\n\t\t\tgrid_multiline_points.push_back(end)\n\t\ty += cell_size.y\n\n\t#  lines ↘↘↘ starting from the rect's top side (left to right):\n\tx = fposmod(origin_offset.x - cell_size.x * (0.5 + origin_offset.y / cell_size.y), cell_size.x)\n\twhile x < target_rect.size.x:\n\t\tvar start: Vector2 = Vector2(target_rect.position) + Vector2(x, 0)\n\t\tvar cells_to_rect_bounds: float = minf(max_cell_count.y, max_cell_count.x - x / cell_size.x)\n\t\tvar end: Vector2 = start + cells_to_rect_bounds * per_cell_offset\n\t\tif not start in unique_iso_lines:\n\t\t\tgrid_multiline_points.push_back(start)\n\t\t\tgrid_multiline_points.push_back(end)\n\t\tx += cell_size.x\n\tgrid_multiline_points.append_array(grid_multiline_points)\n\n\tif not grid_multiline_points.is_empty():\n\t\tdraw_multiline(grid_multiline_points, grid.grid_color)\n\n\nfunc _draw_pixelated_isometric_grid(grid_index: int, target_rect: Rect2i, stacked := false) -> void:\n\tvar grid := Global.grids[grid_index]\n\tvar grid_multiline_points := PackedVector2Array()\n\tvar cell_size: Vector2 = grid.grid_size\n\tvar stack_offset := Vector2.ZERO\n\tif stacked:\n\t\tif cell_size.x > cell_size.y:\n\t\t\tif int(cell_size.y) % 2 == 0:\n\t\t\t\tstack_offset.y = 2\n\t\t\telse:\n\t\t\t\tstack_offset.y = 1\n\t\telif cell_size.y > cell_size.x:\n\t\t\tif int(cell_size.x) % 2 == 0:\n\t\t\t\tstack_offset.x = 2\n\t\t\telse:\n\t\t\t\tstack_offset.x = 1\n\tvar origin_offset: Vector2 = Vector2(grid.grid_offset - target_rect.position).posmodv(\n\t\tcell_size + stack_offset\n\t)\n\tvar cel := Global.current_project.get_current_cel()\n\tif cel is CelTileMap and grid_index == 0:\n\t\tcell_size = (cel as CelTileMap).get_tile_size()\n\t\torigin_offset = Vector2((cel as CelTileMap).offset - target_rect.position).posmodv(\n\t\t\tcell_size + stack_offset\n\t\t)\n\tvar max_cell_count: Vector2 = Vector2(target_rect.size) / cell_size\n\tvar start_offset = origin_offset - cell_size + Vector2(target_rect.position)\n\tvar tile_sep = Vector2.ZERO\n\tfor cel_y in range(0, max_cell_count.y + 2):\n\t\tfor cel_x in range(0, max_cell_count.x + 2):\n\t\t\tvar cel_pos: Vector2 = Vector2(cel_x, cel_y) * cell_size + start_offset + tile_sep\n\t\t\tgrid_multiline_points.append_array(\n\t\t\t\tget_isometric_polyline(cel_pos, cell_size, target_rect, stacked)\n\t\t\t)\n\t\t\tif cell_size.y > cell_size.x:\n\t\t\t\ttile_sep.x += stack_offset.x\n\t\ttile_sep.x = 0\n\t\tif cell_size.x > cell_size.y:\n\t\t\ttile_sep.y += stack_offset.y\n\tif not grid_multiline_points.is_empty():\n\t\tdraw_multiline(grid_multiline_points, grid.grid_color)\n\n\nfunc _draw_hexagonal_grid(grid_index: int, target_rect: Rect2i, pointy_top: bool) -> void:\n\tvar grid := Global.grids[grid_index]\n\tvar grid_size := grid.grid_size\n\tvar grid_offset := grid.grid_offset\n\tvar cel := Global.current_project.get_current_cel()\n\tif cel is CelTileMap and grid_index == 0:\n\t\tgrid_size = (cel as CelTileMap).get_tile_size()\n\t\tgrid_offset = (cel as CelTileMap).offset\n\tvar grid_multiline_points := PackedVector2Array()\n\tvar x: float\n\tvar y: float\n\tif pointy_top:\n\t\tx = (target_rect.position.x + fposmod(grid_offset.x - target_rect.position.x, grid_size.x))\n\t\ty = (\n\t\t\ttarget_rect.position.y\n\t\t\t+ fposmod(grid_offset.y - target_rect.position.y, grid_size.y * 1.5)\n\t\t)\n\t\tx -= grid_size.x\n\t\ty -= grid_size.y * 1.5\n\telse:\n\t\tx = (\n\t\t\ttarget_rect.position.x\n\t\t\t+ fposmod(grid_offset.x - target_rect.position.x, grid_size.x * 1.5)\n\t\t)\n\t\ty = (target_rect.position.y + fposmod(grid_offset.y - target_rect.position.y, grid_size.y))\n\t\tx -= grid_size.x * 1.5\n\t\ty -= grid_size.y\n\tvar half_size := grid_size / 2.0\n\tvar quarter_size := grid_size / 4.0\n\tvar three_quarters_size := (grid_size * 3.0) / 4.0\n\tif pointy_top:\n\t\twhile x < target_rect.end.x:\n\t\t\tvar i := 0\n\t\t\twhile y < target_rect.end.y:\n\t\t\t\tvar xx := x\n\t\t\t\tif i % 2 == 1:\n\t\t\t\t\t@warning_ignore(\"integer_division\")\n\t\t\t\t\txx += grid_size.x / 2\n\t\t\t\tvar width := xx + grid_size.x\n\t\t\t\tvar height := y + grid_size.y\n\t\t\t\tvar half := xx + half_size.x\n\t\t\t\tvar quarter := y + quarter_size.y\n\t\t\t\tvar third_quarter := y + three_quarters_size.y\n\n\t\t\t\tvar top_pos := Vector2(half, y)\n\t\t\t\tvar quarter_top_right := Vector2(width, quarter)\n\t\t\t\tvar quarter_bottom_right := Vector2(width, third_quarter)\n\t\t\t\tvar bottom_pos := Vector2(half, height)\n\t\t\t\tvar quarter_bottom_left := Vector2(xx, third_quarter)\n\t\t\t\tvar quarter_top_left := Vector2(xx, quarter)\n\t\t\t\t_hexagonal_cell_points_append(\n\t\t\t\t\ttop_pos, quarter_top_right, target_rect, grid_multiline_points\n\t\t\t\t)\n\t\t\t\t_hexagonal_cell_points_append(\n\t\t\t\t\tquarter_top_right, quarter_bottom_right, target_rect, grid_multiline_points\n\t\t\t\t)\n\t\t\t\t_hexagonal_cell_points_append(\n\t\t\t\t\tquarter_bottom_right, bottom_pos, target_rect, grid_multiline_points\n\t\t\t\t)\n\t\t\t\t_hexagonal_cell_points_append(\n\t\t\t\t\tbottom_pos, quarter_bottom_left, target_rect, grid_multiline_points\n\t\t\t\t)\n\t\t\t\t_hexagonal_cell_points_append(\n\t\t\t\t\tquarter_bottom_left, quarter_top_left, target_rect, grid_multiline_points\n\t\t\t\t)\n\t\t\t\t_hexagonal_cell_points_append(\n\t\t\t\t\tquarter_top_left, top_pos, target_rect, grid_multiline_points\n\t\t\t\t)\n\t\t\t\ty += ((grid_size.y * 3.0) / 4.0)\n\t\t\t\ti += 1\n\t\t\ty = (\n\t\t\t\ttarget_rect.position.y\n\t\t\t\t+ fposmod(grid_offset.y - target_rect.position.y, grid_size.y * 1.5)\n\t\t\t)\n\t\t\ty -= grid_size.y * 1.5\n\t\t\tx += grid_size.x\n\telse:\n\t\twhile y < target_rect.end.y:\n\t\t\tvar i := 0\n\t\t\twhile x < target_rect.end.x:\n\t\t\t\tvar yy := y\n\t\t\t\tif i % 2 == 1:\n\t\t\t\t\t@warning_ignore(\"integer_division\")\n\t\t\t\t\tyy += grid_size.y / 2\n\t\t\t\tvar width := x + grid_size.x\n\t\t\t\tvar height := yy + grid_size.y\n\t\t\t\tvar half := yy + half_size.y\n\t\t\t\tvar quarter := x + quarter_size.x\n\t\t\t\tvar third_quarter := x + three_quarters_size.x\n\n\t\t\t\tvar left_pos := Vector2(x, half)\n\t\t\t\tvar quarter_top_left := Vector2(quarter, height)\n\t\t\t\tvar quarter_top_right := Vector2(third_quarter, height)\n\t\t\t\tvar right_pos := Vector2(width, half)\n\t\t\t\tvar quarter_bottom_right := Vector2(third_quarter, yy)\n\t\t\t\tvar quarter_bottom_left := Vector2(quarter, yy)\n\t\t\t\t_hexagonal_cell_points_append(\n\t\t\t\t\tleft_pos, quarter_top_left, target_rect, grid_multiline_points\n\t\t\t\t)\n\t\t\t\t_hexagonal_cell_points_append(\n\t\t\t\t\tquarter_top_left, quarter_top_right, target_rect, grid_multiline_points\n\t\t\t\t)\n\t\t\t\t_hexagonal_cell_points_append(\n\t\t\t\t\tquarter_top_right, right_pos, target_rect, grid_multiline_points\n\t\t\t\t)\n\t\t\t\t_hexagonal_cell_points_append(\n\t\t\t\t\tright_pos, quarter_bottom_right, target_rect, grid_multiline_points\n\t\t\t\t)\n\t\t\t\t_hexagonal_cell_points_append(\n\t\t\t\t\tquarter_bottom_right, quarter_bottom_left, target_rect, grid_multiline_points\n\t\t\t\t)\n\t\t\t\t_hexagonal_cell_points_append(\n\t\t\t\t\tquarter_bottom_left, left_pos, target_rect, grid_multiline_points\n\t\t\t\t)\n\t\t\t\tx += ((grid_size.x * 3.0) / 4.0)\n\t\t\t\ti += 1\n\t\t\tx = (\n\t\t\t\ttarget_rect.position.x\n\t\t\t\t+ fposmod(grid_offset.x - target_rect.position.x, grid_size.x * 1.5)\n\t\t\t)\n\t\t\tx -= grid_size.x * 1.5\n\t\t\ty += grid_size.y\n\tif not grid_multiline_points.is_empty():\n\t\tdraw_multiline(grid_multiline_points, grid.grid_color)\n\n\nfunc _hexagonal_cell_points_append(\n\ta: Vector2, b: Vector2, rect: Rect2, grid_multiline_points: PackedVector2Array\n) -> void:\n\tvar expanded_rect := rect\n\texpanded_rect.size += Vector2.ONE\n\tif expanded_rect.has_point(a) && expanded_rect.has_point(b):\n\t\tgrid_multiline_points.push_back(a)\n\t\tgrid_multiline_points.push_back(b)\n\t# If a point is outside the edge of the canvas,\n\t# we want to draw the line until the point of intersection with the canvas edge.\n\t# Find the slope of the line and find the line equation, then solve for y or x.\n\t# TODO: There has to be a better way to do this.\n\t# This is too much code and it does not produce 100% correct results.\n\telif expanded_rect.has_point(a):\n\t\tvar m := (b.y - a.y) / (b.x - a.x)\n\t\tif b.x > rect.end.x:\n\t\t\tgrid_multiline_points.push_back(a)\n\t\t\tvar yy := m * (rect.end.x - a.x) + a.y\n\t\t\tgrid_multiline_points.push_back(Vector2(rect.end.x, yy))\n\t\telif b.x < rect.position.x:\n\t\t\tgrid_multiline_points.push_back(a)\n\t\t\tvar yy := m * (rect.position.x - a.x) + a.y\n\t\t\tgrid_multiline_points.push_back(Vector2(rect.position.x, yy))\n\t\telif b.y > rect.end.y:\n\t\t\tgrid_multiline_points.push_back(a)\n\t\t\tvar xx := (rect.end.y - a.y) / m + a.x\n\t\t\tgrid_multiline_points.push_back(Vector2(xx, rect.end.y))\n\t\telif b.y < rect.position.y:\n\t\t\tgrid_multiline_points.push_back(a)\n\t\t\tvar xx := (rect.position.y - a.y) / m + a.x\n\t\t\tgrid_multiline_points.push_back(Vector2(xx, rect.position.y))\n\n\telif expanded_rect.has_point(b):\n\t\tvar m := (a.y - b.y) / (a.x - b.x)\n\t\tif a.x > rect.end.x:\n\t\t\tgrid_multiline_points.push_back(b)\n\t\t\tvar yy := m * (rect.end.x - b.x) + b.y\n\t\t\tgrid_multiline_points.push_back(Vector2(rect.end.x, yy))\n\t\telif a.x < rect.position.x:\n\t\t\tgrid_multiline_points.push_back(b)\n\t\t\tvar yy := m * (rect.position.x - b.x) + b.y\n\t\t\tgrid_multiline_points.push_back(Vector2(rect.position.x, yy))\n\t\telif a.y > rect.end.y:\n\t\t\tgrid_multiline_points.push_back(b)\n\t\t\tvar xx := (rect.end.y - b.y) / m + b.x\n\t\t\tgrid_multiline_points.push_back(Vector2(xx, rect.end.y))\n\t\telif a.y < rect.position.y:\n\t\t\tgrid_multiline_points.push_back(b)\n\t\t\tvar xx := (rect.position.y - b.y) / m + b.x\n\t\t\tgrid_multiline_points.push_back(Vector2(xx, rect.position.y))\n\n\n## Helper functions for _draw_pixelated_isometric_grid()\nfunc _create_polylines(points: Array[Vector2i], bound: Rect2i) -> Array:\n\tvar lines = []\n\tfor i in points.size():\n\t\tvar point = points[i]\n\t\tif i < points.size() - 1:\n\t\t\tvar next_point = points[i + 1]\n\t\t\tif (\n\t\t\t\tpoint.x < bound.position.x\n\t\t\t\tor point.x > bound.end.x\n\t\t\t\tor point.y < bound.position.y\n\t\t\t\tor point.y > bound.end.y\n\t\t\t\tor next_point.x < bound.position.x\n\t\t\t\tor next_point.x > bound.end.x\n\t\t\t\tor next_point.y < bound.position.y\n\t\t\t\tor next_point.y > bound.end.y\n\t\t\t):\n\t\t\t\tcontinue\n\t\t\tlines.append(point)\n\t\t\tif next_point.y < point.y:\n\t\t\t\tlines.append(point + Vector2i.UP)\n\t\t\t\tlines.append(point + Vector2i.UP)\n\t\t\telif next_point.y > point.y:\n\t\t\t\tlines.append(point + Vector2i.DOWN)\n\t\t\t\tlines.append(point + Vector2i.DOWN)\n\t\t\tlines.append(next_point)\n\treturn lines\n\n\n## Helper functions for _draw_pixelated_isometric_grid()\nfunc get_isometric_polyline(\n\tpoint: Vector2, tile_size: Vector2, bound, is_stacked := false\n) -> PackedVector2Array:\n\tvar lines = PackedVector2Array()\n\tvar centre = ((tile_size - Vector2.ONE) / 2).floor()\n\tvar tile_size_x = Vector2i(tile_size.x, 0)\n\tvar tile_size_y = Vector2i(0, tile_size.y)\n\tvar top_left = Geometry2D.bresenham_line(\n\t\tVector2i(point) + Vector2i(centre.x, 0), Vector2i(point) + Vector2i(0, centre.y)\n\t)\n\t# x-mirror of the top_left array\n\tvar top_right = Geometry2D.bresenham_line(\n\t\ttile_size_x + Vector2i(point) - Vector2i(centre.x, 0),\n\t\ttile_size_x + Vector2i(point) + Vector2i(0, centre.y)\n\t)\n\t# y-mirror of the top_left array\n\tvar down_left = Geometry2D.bresenham_line(\n\t\ttile_size_y + Vector2i(point) + Vector2i(centre.x, 0),\n\t\ttile_size_y + Vector2i(point) - Vector2i(0, centre.y)\n\t)\n\t# xy-mirror of the top_left array\n\tvar down_right = Geometry2D.bresenham_line(\n\t\tVector2i(tile_size) + Vector2i(point) - Vector2i(centre.x, 0),\n\t\tVector2i(tile_size) + Vector2i(point) - Vector2i(0, centre.y)\n\t)\n\t## Add tile separators\n\tif is_stacked:\n\t\tvar separator_points: Array[Vector2i] = [top_left[0], down_left[0]]\n\t\tvar adders = [Vector2i.UP, Vector2i.DOWN]\n\t\tvar compensation := Vector2i.RIGHT\n\t\tif tile_size.y > tile_size.x:\n\t\t\tseparator_points = [top_left[-1], top_right[-1]]\n\t\t\tadders = [Vector2i.LEFT, Vector2i.RIGHT]\n\t\t\tcompensation = Vector2i.DOWN\n\t\tif tile_size.y == tile_size.x:\n\t\t\tseparator_points.clear()\n\t\t\tadders.clear()\n\t\t\tcompensation = Vector2i.ZERO\n\t\tfor i in separator_points.size():\n\t\t\tvar sep = separator_points[i]\n\t\t\tif !bound.has_point(sep) or !bound.has_point(sep + adders[i]):\n\t\t\t\tcontinue\n\t\t\tlines.append(sep)\n\t\t\tlines.append(sep + compensation)\n\t\t\tlines.append(sep + compensation)\n\t\t\tlines.append(sep + compensation + adders[i])\n\tlines.append_array(_create_polylines(top_left, bound))\n\tlines.append_array(_create_polylines(top_right, bound))\n\tlines.append_array(_create_polylines(down_left, bound))\n\tlines.append_array(_create_polylines(down_right, bound))\n\t# Connect un-connected sides left in the shape\n\t# top/down peaks\n\tif (\n\t\tbound.has_point(Vector2i(point) + Vector2i(centre.x, 0))\n\t\tand bound.has_point(tile_size_x + Vector2i(point) - Vector2i(centre.x, 0))\n\t):\n\t\tlines.append(Vector2i(point) + Vector2i(centre.x, 0))\n\t\tlines.append(tile_size_x + Vector2i(point) - Vector2i(centre.x, 0))\n\tif (\n\t\tbound.has_point(tile_size_y + Vector2i(point) + Vector2i(centre.x, 0))\n\t\tand bound.has_point(Vector2i(tile_size) + Vector2i(point) - Vector2i(centre.x, 0))\n\t):\n\t\tlines.append(tile_size_y + Vector2i(point) + Vector2i(centre.x, 0))\n\t\tlines.append(Vector2i(tile_size) + Vector2i(point) - Vector2i(centre.x, 0))\n\t# side peaks\n\tif (\n\t\tbound.has_point(Vector2i(point) + Vector2i(0, centre.y))\n\t\tand bound.has_point(tile_size_y + Vector2i(point) - Vector2i(0, centre.y))\n\t):\n\t\tlines.append(Vector2i(point) + Vector2i(0, centre.y))\n\t\tlines.append(tile_size_y + Vector2i(point) - Vector2i(0, centre.y))\n\tif (\n\t\tbound.has_point(tile_size_x + Vector2i(point) + Vector2i(0, centre.y))\n\t\tand bound.has_point(Vector2i(tile_size) + Vector2i(point) - Vector2i(0, centre.y))\n\t):\n\t\tlines.append(tile_size_x + Vector2i(point) + Vector2i(0, centre.y))\n\t\tlines.append(Vector2i(tile_size) + Vector2i(point) - Vector2i(0, centre.y))\n\treturn lines\n"
  },
  {
    "path": "src/UI/Canvas/Grid.gd.uid",
    "content": "uid://ca7ibx6ttu7v0\n"
  },
  {
    "path": "src/UI/Canvas/Indicators.gd",
    "content": "extends Node2D\n\n\nfunc _input(event: InputEvent) -> void:\n\tif event is InputEventMouse or event is InputEventKey:\n\t\tqueue_redraw()\n\n\nfunc _draw() -> void:\n\t# Draw rectangle to indicate the pixel currently being hovered on\n\tif Global.can_draw:\n\t\tTools.draw_indicator()\n"
  },
  {
    "path": "src/UI/Canvas/Indicators.gd.uid",
    "content": "uid://bsnac40pqg22b\n"
  },
  {
    "path": "src/UI/Canvas/Measurements.gd",
    "content": "extends Node2D\n\nconst WIDTH := 2\n\nvar font: Font\nvar line_color := Global.guide_color\nvar mode := Global.MeasurementMode.NONE\nvar apparent_width: float = WIDTH\nvar rect_bounds: Rect2i\nvar text_server := TextServerManager.get_primary_interface()\n\n@onready var canvas := get_parent() as Canvas\n\n\nfunc _ready() -> void:\n\tfont = Themes.get_font()\n\n\nfunc update_measurement(mode_idx := Global.MeasurementMode.NONE) -> void:\n\tmode = mode_idx\n\tqueue_redraw()\n\n\nfunc _draw() -> void:\n\tmatch mode:\n\t\tGlobal.MeasurementMode.DISPLAY_RECT:\n\t\t\t_prepare_cel_rect()\n\t\t\t_draw_move_measurement()\n\t\tGlobal.MeasurementMode.MOVE:\n\t\t\t_prepare_movement_rect()\n\t\t\t_draw_move_measurement()\n\t\t_:\n\t\t\trect_bounds = Rect2i()\n\n\nfunc _input(event: InputEvent) -> void:\n\tapparent_width = WIDTH / get_viewport().canvas_transform.get_scale().x\n\tif event.is_action_released(&\"change_layer_automatically\"):\n\t\tupdate_measurement(Global.MeasurementMode.NONE)\n\telif event.is_action(&\"change_layer_automatically\"):\n\t\tupdate_measurement(Global.MeasurementMode.DISPLAY_RECT)\n\telif event is InputEventMouseMotion and mode == Global.MeasurementMode.DISPLAY_RECT:\n\t\tupdate_measurement(Global.MeasurementMode.DISPLAY_RECT)\n\n\nfunc _prepare_cel_rect() -> void:\n\tvar project := Global.current_project\n\tvar pos := canvas.current_pixel.floor()\n\tif Global.mirror_view:\n\t\tpos.x = project.size.x - pos.x - 1\n\tvar cel := project.get_current_cel()\n\tvar image := cel.get_image()\n\trect_bounds = image.get_used_rect()\n\tif pos.x > image.get_width() - 1 or pos.y > image.get_height() - 1 or pos.x < 0 or pos.y < 0:\n\t\treturn\n\n\tvar curr_frame := project.frames[project.current_frame]\n\tfor layer in project.layers.size():\n\t\tvar layer_index := (project.layers.size() - 1) - layer\n\t\tif project.layers[layer_index].is_visible_in_hierarchy():\n\t\t\timage = curr_frame.cels[layer_index].get_image()\n\t\t\tvar color := image.get_pixelv(pos)\n\t\t\tif not is_zero_approx(color.a):\n\t\t\t\trect_bounds = image.get_used_rect()\n\t\t\t\tbreak\n\n\nfunc _prepare_movement_rect() -> void:\n\tvar project := Global.current_project\n\tif project.has_selection and not Tools.is_placing_tiles():\n\t\trect_bounds = canvas.selection.preview_selection_map.get_used_rect()\n\t\trect_bounds.position = Vector2i(\n\t\t\tcanvas.selection.transformation_handles.preview_transform.origin\n\t\t)\n\t\tif !rect_bounds.has_area():\n\t\t\trect_bounds = project.selection_map.get_selection_rect(project)\n\t\treturn\n\tif rect_bounds.has_area():\n\t\treturn\n\tvar selected_cels := Global.current_project.selected_cels\n\tvar frames := []\n\tfor selected_cel in selected_cels:\n\t\tif not selected_cel[0] in frames:\n\t\t\tframes.append(selected_cel[0])\n\tfor frame in frames:\n\t\t# Find used rect of the current frame (across all of the layers)\n\t\tvar used_rect := Rect2i()\n\t\tfor cel_idx in project.frames[frame].cels.size():\n\t\t\tif not [frame, cel_idx] in selected_cels:\n\t\t\t\tcontinue\n\t\t\tvar cel := project.frames[frame].cels[cel_idx]\n\t\t\tif not cel is PixelCel:\n\t\t\t\tcontinue\n\t\t\tvar cel_rect := cel.get_image().get_used_rect()\n\t\t\tif cel_rect.has_area():\n\t\t\t\tused_rect = used_rect.merge(cel_rect) if used_rect.has_area() else cel_rect\n\t\tif not used_rect.has_area():\n\t\t\tcontinue\n\t\tif !rect_bounds.has_area():\n\t\t\trect_bounds = used_rect\n\t\telse:\n\t\t\trect_bounds = rect_bounds.merge(used_rect)\n\tif not rect_bounds.has_area():\n\t\trect_bounds = Rect2i(Vector2i.ZERO, project.size)\n\n\nfunc _draw_move_measurement() -> void:\n\tvar p_size := Global.current_project.size\n\tvar dashed_color := line_color\n\tdashed_color.a = 0.5\n\t# Draw boundary\n\tvar boundary := Rect2i(rect_bounds)\n\tboundary.position += canvas.move_preview_location\n\tif Global.mirror_view:\n\t\tboundary.position.x = p_size.x - boundary.size.x - boundary.position.x\n\tdraw_rect(boundary, line_color, false, apparent_width)\n\t# calculate lines\n\tvar top := Vector2(boundary.get_center().x, boundary.position.y)\n\tvar bottom := Vector2(boundary.get_center().x, boundary.end.y)\n\tvar left := Vector2(boundary.position.x, boundary.get_center().y)\n\tvar right := Vector2(boundary.end.x, boundary.get_center().y)\n\t# Top, bottom\n\tvar p_vertical := PackedVector2Array([Vector2(top.x, 0), Vector2(bottom.x, p_size.y)])\n\t# Left, right\n\tvar p_horizontal := PackedVector2Array([Vector2(0, left.y), Vector2(p_size.x, right.y)])\n\tvar lines: Array[PackedVector2Array] = []\n\tif left.x > -boundary.size.x:  # Left side\n\t\tif left.x < p_size.x:\n\t\t\tlines.append(PackedVector2Array([left, p_horizontal[0]]))\n\t\telse:\n\t\t\tlines.append(PackedVector2Array([left, p_horizontal[1]]))\n\tif right.x < p_size.x + boundary.size.x:  # Right side\n\t\tif right.x > 0:\n\t\t\tlines.append(PackedVector2Array([right, p_horizontal[1]]))\n\t\telse:\n\t\t\tlines.append(PackedVector2Array([right, p_horizontal[0]]))\n\tif top.y > -boundary.size.y:  # Top side\n\t\tif top.y < p_size.y:\n\t\t\tlines.append(PackedVector2Array([top, p_vertical[0]]))\n\t\telse:\n\t\t\tlines.append(PackedVector2Array([top, p_vertical[1]]))\n\tif bottom.y < p_size.y + boundary.size.y:  # Bottom side\n\t\tif bottom.y > 0:\n\t\t\tlines.append(PackedVector2Array([bottom, p_vertical[1]]))\n\t\telse:\n\t\t\tlines.append(PackedVector2Array([bottom, p_vertical[0]]))\n\tfor line in lines:\n\t\tif !Rect2i(Vector2i.ZERO, p_size + Vector2i.ONE).has_point(line[1]):\n\t\t\tvar point_a := Vector2.ZERO\n\t\t\tvar point_b := Vector2.ZERO\n\t\t\t# Project lines if needed\n\t\t\tif line[1] == p_vertical[0]:  # Upper horizontal projection\n\t\t\t\tpoint_a = Vector2(p_size.x / 2.0, 0)\n\t\t\t\tpoint_b = Vector2(top.x, 0)\n\t\t\telif line[1] == p_vertical[1]:  # Lower horizontal projection\n\t\t\t\tpoint_a = Vector2(p_size.x / 2.0, p_size.y)\n\t\t\t\tpoint_b = Vector2(bottom.x, p_size.y)\n\t\t\telif line[1] == p_horizontal[0]:  # Left vertical projection\n\t\t\t\tpoint_a = Vector2(0, p_size.y / 2.0)\n\t\t\t\tpoint_b = Vector2(0, left.y)\n\t\t\telif line[1] == p_horizontal[1]:  # Right vertical projection\n\t\t\t\tpoint_a = Vector2(p_size.x, p_size.y / 2.0)\n\t\t\t\tpoint_b = Vector2(p_size.x, right.y)\n\t\t\tvar offset := (point_b - point_a).normalized() * (boundary.size / 2.0)\n\t\t\tdraw_dashed_line(point_a + offset, point_b + offset, dashed_color, apparent_width)\n\t\tdraw_line(line[0], line[1], line_color, apparent_width)\n\t\tvar canvas_zoom := get_viewport().canvas_transform.get_scale()\n\t\tvar canvas_rotation := -get_viewport().canvas_transform.get_rotation()\n\t\tvar string_vec := line[0] + (line[1] - line[0]) / 2.0\n\t\tvar string_pos := (string_vec * canvas_zoom).rotated(-canvas_rotation)\n\t\tvar string := text_server.format_number(str(line[0].distance_to(line[1]), \"px\"))\n\t\tdraw_set_transform(Vector2.ZERO, canvas_rotation, Vector2.ONE / canvas_zoom)\n\t\tdraw_string(font, string_pos, string)\n\t\tdraw_set_transform(Vector2.ZERO, 0, Vector2.ONE)\n"
  },
  {
    "path": "src/UI/Canvas/Measurements.gd.uid",
    "content": "uid://b570gjxdcfmv1\n"
  },
  {
    "path": "src/UI/Canvas/MouseGuide.gd",
    "content": "extends Line2D\n\nenum Types { VERTICAL, HORIZONTAL }\nconst INPUT_WIDTH := 4\nconst DOTTED_LINE_TEXTURE := preload(\"res://assets/graphics/dotted_line.png\")\n\n@export var type := 0\nvar track_mouse := true\n\n\nfunc _ready() -> void:\n\t# Add a subtle difference to the normal guide color by mixing in some green\n\tdefault_color = Global.guide_color.lerp(Color(0.2, 0.92, 0.2), .6)\n\ttexture = DOTTED_LINE_TEXTURE\n\ttexture_repeat = CanvasItem.TEXTURE_REPEAT_ENABLED\n\ttexture_mode = Line2D.LINE_TEXTURE_TILE\n\tawait get_tree().process_frame\n\tawait get_tree().process_frame\n\twidth = 2.0 / get_viewport().canvas_transform.get_scale().x\n\tdraw_guide_line()\n\n\nfunc draw_guide_line() -> void:\n\tif type == Types.HORIZONTAL:\n\t\tpoints[0] = Vector2(-19999, 0)\n\t\tpoints[1] = Vector2(19999, 0)\n\telse:\n\t\tpoints[0] = Vector2(0, 19999)\n\t\tpoints[1] = Vector2(0, -19999)\n\n\nfunc _input(event: InputEvent) -> void:\n\tif !Global.show_mouse_guides or !Global.can_draw:\n\t\tvisible = false\n\t\treturn\n\tvisible = true\n\tif event is InputEventMouseMotion:\n\t\tvar mouse_point := get_local_mouse_position().snapped(Vector2(0.5, 0.5))\n\t\tvar project_size := Global.current_project.size\n\t\tif Rect2(Vector2.ZERO, project_size).has_point(mouse_point):\n\t\t\tvisible = true\n\t\telse:\n\t\t\tvisible = false\n\t\t\treturn\n\t\tif type == Types.HORIZONTAL:\n\t\t\tpoints[0].y = mouse_point.y\n\t\t\tpoints[1].y = mouse_point.y\n\t\telse:\n\t\t\tpoints[0].x = mouse_point.x\n\t\t\tpoints[1].x = mouse_point.x\n\tqueue_redraw()\n\n\nfunc _draw() -> void:\n\tvar viewport_size := get_viewport_rect().size\n\tvar half_size := viewport_size * 0.5\n\tvar zoom := get_viewport().canvas_transform.get_scale()\n\tvar canvas_rotation := -get_viewport().canvas_transform.get_rotation()\n\tvar origin := get_viewport().canvas_transform.get_origin()\n\tvar pure_origin := (origin / zoom).rotated(canvas_rotation)\n\tvar zoom_scale := Vector2.ONE / zoom\n\tvar offset := -pure_origin + (half_size * zoom_scale).rotated(canvas_rotation)\n\twidth = 2.0 / zoom.x\n\n\t# An array of the points that make up the corners of the viewport\n\tvar viewport_poly := PackedVector2Array(\n\t\t[Vector2.ZERO, Vector2(viewport_size.x, 0), viewport_size, Vector2(0, viewport_size.y)]\n\t)\n\t# Adjusting viewport_poly to take into account the camera offset, zoom, and rotation\n\tfor p in range(viewport_poly.size()):\n\t\tviewport_poly[p] = (\n\t\t\tviewport_poly[p].rotated(canvas_rotation) * zoom\n\t\t\t+ Vector2(\n\t\t\t\toffset.x - (viewport_size.rotated(canvas_rotation).x / 2) / zoom.x,\n\t\t\t\toffset.y - (viewport_size.rotated(canvas_rotation).y / 2) / zoom.y\n\t\t\t)\n\t\t)\n"
  },
  {
    "path": "src/UI/Canvas/MouseGuide.gd.uid",
    "content": "uid://ca5vb3n0qtpl5\n"
  },
  {
    "path": "src/UI/Canvas/MouseGuideContainer.tscn",
    "content": "[gd_scene format=3 uid=\"uid://no3w7e2264u4\"]\n\n[ext_resource type=\"Script\" uid=\"uid://ca5vb3n0qtpl5\" path=\"res://src/UI/Canvas/MouseGuide.gd\" id=\"2\"]\n\n[node name=\"MouseGuideContainer\" type=\"Node2D\" unique_id=1866113840]\n\n[node name=\"Vertical\" type=\"Line2D\" parent=\".\" unique_id=1879310]\nvisible = false\npoints = PackedVector2Array(0, 19999, 0, -19999)\nscript = ExtResource(\"2\")\n\n[node name=\"Horizontal\" type=\"Line2D\" parent=\".\" unique_id=1814959576]\nvisible = false\npoints = PackedVector2Array(-19999, 0, 19999, 0)\nscript = ExtResource(\"2\")\ntype = 1\n"
  },
  {
    "path": "src/UI/Canvas/OnionSkinning.gd",
    "content": "extends Node2D\n\nenum { PAST, FUTURE }\n\nvar type := PAST\nvar opacity := 0.6\nvar blue_red_color := Color.BLUE\nvar rate := Global.onion_skinning_past_rate\n\n@onready var canvas := get_parent() as Canvas\n\n\nfunc _draw() -> void:\n\tvar project := Global.current_project\n\tif !Global.onion_skinning:\n\t\treturn\n\trate = Global.onion_skinning_past_rate if type == PAST else Global.onion_skinning_future_rate\n\tif rate <= 0:\n\t\treturn\n\n\tvar color := blue_red_color if Global.onion_skinning_blue_red else Color.WHITE\n\tvar position_tmp := position\n\tvar scale_tmp := scale\n\tif Global.mirror_view:\n\t\tposition_tmp.x += project.size.x\n\t\tscale_tmp.x = -1\n\tdraw_set_transform(position_tmp, rotation, scale_tmp)\n\n\tfor i in range(1, rate + 1):\n\t\tvar change := project.current_frame\n\t\tchange += i if type == FUTURE else -i\n\t\tif change == clampi(change, 0, project.frames.size() - 1):\n\t\t\tvar layer_i := 0\n\t\t\tfor cel in project.frames[change].cels:\n\t\t\t\tvar layer := project.layers[layer_i]\n\t\t\t\tif layer.is_visible_in_hierarchy() and not layer.ignore_onion:\n\t\t\t\t\tcolor.a = opacity / i\n\t\t\t\t\tif [change, layer_i] in project.selected_cels:\n\t\t\t\t\t\tdraw_texture(cel.image_texture, canvas.move_preview_location, color)\n\t\t\t\t\telse:\n\t\t\t\t\t\tdraw_texture(cel.image_texture, Vector2.ZERO, color)\n\t\t\t\tlayer_i += 1\n\tdraw_set_transform(position, rotation, scale)\n"
  },
  {
    "path": "src/UI/Canvas/OnionSkinning.gd.uid",
    "content": "uid://dpem6717iqxdc\n"
  },
  {
    "path": "src/UI/Canvas/PixelGrid.gd",
    "content": "extends Node2D\n\n\nfunc _ready() -> void:\n\tGlobal.camera.zoom_changed.connect(queue_redraw)\n\n\nfunc _draw() -> void:\n\tif not Global.draw_pixel_grid:\n\t\treturn\n\n\tvar zoom_percentage := 100.0 * Global.camera.zoom.x\n\tif zoom_percentage < Global.pixel_grid_show_at_zoom:\n\t\treturn\n\n\tvar target_rect := Global.current_project.tiles.get_bounding_rect()\n\tif not target_rect.has_area():\n\t\treturn\n\n\tvar grid_multiline_points := PackedVector2Array()\n\tfor x in range(ceili(target_rect.position.x), floori(target_rect.end.x) + 1):\n\t\tgrid_multiline_points.push_back(Vector2(x, target_rect.position.y))\n\t\tgrid_multiline_points.push_back(Vector2(x, target_rect.end.y))\n\n\tfor y in range(ceili(target_rect.position.y), floori(target_rect.end.y) + 1):\n\t\tgrid_multiline_points.push_back(Vector2(target_rect.position.x, y))\n\t\tgrid_multiline_points.push_back(Vector2(target_rect.end.x, y))\n\n\tif not grid_multiline_points.is_empty():\n\t\tdraw_multiline(grid_multiline_points, Global.pixel_grid_color)\n"
  },
  {
    "path": "src/UI/Canvas/PixelGrid.gd.uid",
    "content": "uid://d2c7i4rkts8jh\n"
  },
  {
    "path": "src/UI/Canvas/Previews.gd",
    "content": "extends Node2D\n\n\nfunc _ready() -> void:\n\tGlobal.camera.zoom_changed.connect(_update_on_zoom)\n\n\nfunc _input(event: InputEvent) -> void:\n\tif event is InputEventMouse or event is InputEventKey:\n\t\tqueue_redraw()\n\n\nfunc _draw() -> void:\n\tif Global.can_draw:\n\t\tTools.draw_preview()\n\n\nfunc _update_on_zoom() -> void:\n\tmaterial.set_shader_parameter(\"width\", 1.0 / Global.camera.zoom.x)\n"
  },
  {
    "path": "src/UI/Canvas/Previews.gd.uid",
    "content": "uid://df031dm6pgp2j\n"
  },
  {
    "path": "src/UI/Canvas/ReferenceImages.gd",
    "content": "extends Node2D\n\n## This node contains [ReferenceImage] nodes\n\nsignal reference_image_changed(index: int)\n\nenum Mode { SELECT, MOVE, ROTATE, SCALE }\n\nconst ROTATION_SNAP = 0.01\n\nvar mode: Mode = Mode.SELECT\n\nvar index: int:\n\tget:\n\t\treturn Global.current_project.reference_index\nvar drag_start_pos: Vector2\nvar dragging := false\nvar lmb_held := false  ## Holds whether the LBB is being held (use dragging for actual checks)\n\n# Original Transform\nvar og_pos: Vector2\nvar og_scale: Vector2\nvar og_rotation: float\n\nvar undo_data: Dictionary\n\nvar reference_menu := PopupMenu.new()\n\n\nfunc _ready() -> void:\n\tGlobal.camera.zoom_changed.connect(_update_on_zoom)\n\tGlobal.control.get_node(\"Dialogs\").add_child(reference_menu)\n\n\t# Makes sure that the dark overlay disappears when the popup is hidden\n\treference_menu.visibility_changed.connect(func(): Global.dialog_open(reference_menu.visible))\n\t# Emitted when a item is selected from the menu\n\treference_menu.id_pressed.connect(_reference_menu_id_pressed)\n\n\n## Updates the index and configures the \"gizmo\"\nfunc update_index(new_index: int) -> void:\n\tindex = new_index\n\treference_image_changed.emit(new_index)\n\tqueue_redraw()\n\n\nfunc _input(event: InputEvent) -> void:\n\tvar local_mouse_pos := get_local_mouse_position()\n\n\t# Check if that event was for the quick menu (opened by the shortcut)\n\tif event.is_action_pressed(\"reference_quick_menu\"):\n\t\tvar list: Array[ReferenceImage] = Global.current_project.reference_images\n\t\tpopulate_reference_menu(list, true)\n\t\tvar popup_position := Global.control.get_global_mouse_position()\n\t\treference_menu.popup_on_parent(Rect2i(popup_position, Vector2i.ONE))\n\n\tvar ri: ReferenceImage = Global.current_project.get_current_reference_image()\n\n\tif !ri:\n\t\treturn\n\n\t# Check if want to cancel the reference transform\n\tif event.is_action_pressed(\"cancel_reference_transform\") and dragging:\n\t\tri.position = og_pos\n\t\tri.scale = og_scale\n\t\tri.rotation = og_rotation\n\t\tdragging = false\n\t\tGlobal.can_draw = true\n\t\tcommit_undo(\"Cancel Transform Content\", undo_data)\n\t\treturn\n\n\tif event is InputEventMouseButton:\n\t\tif event.button_index == MOUSE_BUTTON_LEFT:\n\t\t\tif event.is_pressed():\n\t\t\t\tdragging = false\n\t\t\t\tlmb_held = true\n\t\t\t\tundo_data = get_undo_data()\n\t\t\t\tGlobal.can_draw = false\n\t\t\t\tdrag_start_pos = get_local_mouse_position()\n\t\t\t\t# Set the original positions\n\t\t\t\tog_pos = ri.position\n\t\t\t\tog_scale = ri.scale\n\t\t\t\tog_rotation = ri.rotation\n\n\t\t\tif !event.is_pressed():\n\t\t\t\tGlobal.can_draw = true\n\n\t\t\t\tif dragging:\n\t\t\t\t\tcommit_undo(\"Transform Content\", undo_data)\n\t\t\t\telse:\n\t\t\t\t\t# Overlapping reference images\n\t\t\t\t\tvar overlapping: Array[ReferenceImage] = []\n\n\t\t\t\t\tfor idx: int in Global.current_project.reference_images.size():\n\t\t\t\t\t\tvar r := Global.current_project.reference_images[idx]\n\t\t\t\t\t\t# The bounding polygon\n\t\t\t\t\t\tvar p := get_reference_polygon(idx)\n\t\t\t\t\t\tif Geometry2D.is_point_in_polygon(local_mouse_pos, p):\n\t\t\t\t\t\t\toverlapping.append(r)\n\n\t\t\t\t\t# Some special cases\n\t\t\t\t\t# 1. There is only one Reference Image\n\t\t\t\t\tif overlapping.size() == 1:\n\t\t\t\t\t\tvar idx := overlapping[0].get_index()\n\t\t\t\t\t\tGlobal.current_project.set_reference_image_index(idx)\n\t\t\t\t\t# 2. There are more than 1 Reference Images\n\t\t\t\t\telif overlapping.size() > 1:\n\t\t\t\t\t\tpopulate_reference_menu(overlapping, true)\n\t\t\t\t\t\tvar popup_position := Global.control.get_global_mouse_position()\n\t\t\t\t\t\treference_menu.popup_on_parent(Rect2i(popup_position, Vector2i.ONE))\n\t\t\t\t\t# 3. There are no Reference Images\n\t\t\t\t\telse:\n\t\t\t\t\t\tGlobal.current_project.set_reference_image_index(-1)\n\n\t\t\t\tundo_data.clear()\n\t\t\t\tdragging = false\n\t\t\t\tlmb_held = false\n\n\tif event is InputEventMouseMotion:\n\t\t# We check if the LMB is pressed and if we're not dragging then we force the\n\t\t# dragging state.\n\t\t# We dont use timers because it makes more sense to wait for the users mouse to move\n\t\t# and that's what defines dragging. It would be smart to add a \"deadzone\" to determine\n\t\t# if the mouse had moved enough.\n\t\tif lmb_held and !dragging:\n\t\t\tdragging = true\n\n\t\tif dragging:\n\t\t\tvar text := \"\"\n\n\t\t\tif mode == Mode.SELECT:\n\t\t\t\t# Scale\n\t\t\t\tif Input.is_action_pressed(\"reference_scale\"):\n\t\t\t\t\tscale_reference_image(local_mouse_pos, ri)\n\t\t\t\t\ttext = str(\n\t\t\t\t\t\t\"Moving: \", (og_scale * 100).floor(), \" -> \", (ri.scale * 100).floor()\n\t\t\t\t\t)\n\t\t\t\t# Rotate\n\t\t\t\telif Input.is_action_pressed(\"reference_rotate\"):\n\t\t\t\t\trotate_reference_image(local_mouse_pos, ri)\n\t\t\t\t\ttext = str(\n\t\t\t\t\t\t\"Rotating: \",\n\t\t\t\t\t\tsnappedf(rad_to_deg(og_rotation), ROTATION_SNAP),\n\t\t\t\t\t\t\"° -> \",\n\t\t\t\t\t\tsnappedf(rad_to_deg(ri.rotation), ROTATION_SNAP),\n\t\t\t\t\t\t\"°\"\n\t\t\t\t\t)\n\t\t\t\telse:\n\t\t\t\t\tmove_reference_image(local_mouse_pos, ri)\n\t\t\t\t\ttext = str(\"Moving to: \", og_pos.floor(), \" -> \", ri.position.floor())\n\t\t\telif mode == Mode.MOVE:\n\t\t\t\tmove_reference_image(local_mouse_pos, ri)\n\t\t\t\ttext = str(\"Moving to: \", og_pos.floor(), \" -> \", ri.position.floor())\n\t\t\telif mode == Mode.ROTATE:\n\t\t\t\trotate_reference_image(local_mouse_pos, ri)\n\t\t\t\ttext = str(\n\t\t\t\t\t\"Rotating: \",\n\t\t\t\t\tsnappedf(rad_to_deg(og_rotation), ROTATION_SNAP),\n\t\t\t\t\t\"° -> \",\n\t\t\t\t\tsnappedf(rad_to_deg(ri.rotation), ROTATION_SNAP),\n\t\t\t\t\t\"°\"\n\t\t\t\t)\n\t\t\telif mode == Mode.SCALE:\n\t\t\t\tscale_reference_image(local_mouse_pos, ri)\n\t\t\t\ttext = str(\"Moving: \", (og_scale * 100).floor(), \" -> \", (ri.scale * 100).floor())\n\n\t\t\tGlobal.on_cursor_position_text_changed.emit(text)\n\n\t\tqueue_redraw()\n\n\n## Uniformly scales the [ReferenceImage] using this nodes \"local_mouse_position\".\nfunc scale_reference_image(mouse_pos: Vector2, img: ReferenceImage) -> void:\n\tvar s := (\n\t\tVector2.ONE\n\t\t* minf(\n\t\t\tfloat(mouse_pos.x - drag_start_pos.x),\n\t\t\tfloat(mouse_pos.y - drag_start_pos.y),\n\t\t)\n\t)\n\n\timg.scale = (og_scale + (s / 100.0))\n\n\n## Rotate the [ReferenceImage] using this nodes \"local_mouse_position\".\nfunc rotate_reference_image(mouse_pos: Vector2, img: ReferenceImage) -> void:\n\tvar starting_angle := og_rotation - og_pos.angle_to_point(drag_start_pos)\n\tvar new_angle := img.position.angle_to_point(mouse_pos)\n\tvar angle := starting_angle + new_angle\n\tangle = deg_to_rad(snappedf(rad_to_deg(wrapf(angle, -PI, PI)), ROTATION_SNAP))\n\timg.rotation = angle\n\n\n## Move the [ReferenceImage] using this nodes \"local_mouse_position\".\nfunc move_reference_image(mouse_pos: Vector2, img: ReferenceImage) -> void:\n\timg.position = (mouse_pos - (drag_start_pos - og_pos)).floor()\n\n\n## Makes a polygon that matches the transformed [ReferenceImage]\nfunc get_reference_polygon(i: int) -> PackedVector2Array:\n\tif i < 0:\n\t\treturn []\n\n\tvar ri: ReferenceImage = Global.current_project.reference_images[i]\n\tvar rect := ri.get_rect()\n\tvar poly := get_transformed_rect_polygon(rect, ri.transform)\n\treturn poly\n\n\n## Returns a [PackedVector2Array] based on the corners of the [Rect2].\n## This function also transforms the polygon.\nfunc get_transformed_rect_polygon(rect: Rect2, t: Transform2D) -> PackedVector2Array:\n\t# First we scale the Rect2\n\trect.position *= t.get_scale()\n\trect.size *= t.get_scale()\n\n\t# We create a polygon based on the Rect2\n\tvar p: PackedVector2Array = [\n\t\trect.position,\n\t\tVector2(rect.end.x, rect.position.y),\n\t\trect.end,\n\t\tVector2(rect.position.x, rect.end.y)\n\t]\n\n\t# Finally rotate and move the polygon\n\tvar final: PackedVector2Array = []\n\tfor v: Vector2 in p:\n\t\tvar vert := v.rotated(t.get_rotation()) + t.get_origin()\n\t\tfinal.append(vert)\n\n\treturn final\n\n\nfunc populate_reference_menu(items: Array[ReferenceImage], default := false) -> void:\n\treference_menu.clear()\n\t# Default / Reset\n\tif default:\n\t\treference_menu.add_item(\"None\", 0)\n\t\treference_menu.add_separator()\n\n\tfor ri: ReferenceImage in items:\n\t\t# NOTE: using image_path.get_file() instead of full image_path because usually paths are\n\t\t# long and if we are limiting to 22 characters as well, then every entry will end up\n\t\t# looking the same\n\t\tvar idx: int = ri.get_index() + 1\n\t\tvar label: String = \"(%o) %s\" % [idx, ri.image_path.get_file()]\n\t\t# We trim the length of the title\n\t\tlabel = label.left(22) + \"...\"\n\t\treference_menu.add_item(label, idx)\n\n\n# When a id is pressed in the reference menu\nfunc _reference_menu_id_pressed(id: int) -> void:\n\tGlobal.can_draw = true\n\tGlobal.current_project.set_reference_image_index(id - 1)\n\treference_menu.hide()\n\n\nfunc remove_reference_image(idx: int) -> void:\n\tvar ri: ReferenceImage = Global.current_project.get_reference_image(idx)\n\tGlobal.current_project.reference_images.remove_at(idx)\n\tri.queue_free()\n\tGlobal.current_project.set_reference_image_index(-1)\n\tGlobal.current_project.change_project()\n\n\nfunc _update_on_zoom() -> void:\n\tqueue_redraw()\n\n\nfunc get_undo_data() -> Dictionary:\n\tvar ri: ReferenceImage = Global.current_project.get_current_reference_image()\n\n\tif !ri:\n\t\treturn {}\n\n\tvar data := {}\n\tdata[\"position\"] = ri.position\n\tdata[\"scale\"] = ri.scale\n\tdata[\"rotation\"] = ri.rotation\n\tdata[\"overlay_color\"] = ri.overlay_color\n\tdata[\"filter\"] = ri.filter\n\tdata[\"monochrome\"] = ri.monochrome\n\tdata[\"color_clamping\"] = ri.color_clamping\n\treturn data\n\n\nfunc commit_undo(action: String, undo_data_tmp: Dictionary) -> void:\n\tif !undo_data_tmp:\n\t\tprint(\"No undo data found for ReferenceImages.gd!\")\n\t\treturn\n\n\tvar ri: ReferenceImage = Global.current_project.get_current_reference_image()\n\tif !ri:\n\t\tprint(\"No Reference Image ReferenceImages.gd!\")\n\t\treturn\n\n\tvar redo_data: Dictionary = get_undo_data()\n\tvar project := Global.current_project\n\n\tproject.undo_redo.create_action(action)\n\n\tfor key in undo_data_tmp.keys():\n\t\tif redo_data.has(key):\n\t\t\tproject.undo_redo.add_do_property(ri, key, redo_data.get(key))\n\t\t\tproject.undo_redo.add_undo_property(ri, key, undo_data_tmp.get(key))\n\n\tproject.undo_redo.add_do_method(Global.general_redo.bind(project))\n\tproject.undo_redo.add_do_method(ri.change_properties)\n\tproject.undo_redo.add_undo_method(Global.general_undo.bind(project))\n\tproject.undo_redo.add_undo_method(ri.change_properties)\n\n\tproject.undo_redo.commit_action()\n\tundo_data.clear()\n\n\nfunc _draw() -> void:\n\tif index < 0:\n\t\treturn\n\tvar line_width := 2.0 / Global.camera.zoom.x\n\t# If we are dragging show where the Reference was coming from\n\tif dragging:\n\t\tvar i: ReferenceImage = Global.current_project.get_current_reference_image()\n\t\tvar prev_transform := Transform2D(og_rotation, og_scale, 0.0, og_pos)\n\t\tvar prev_poly := get_transformed_rect_polygon(i.get_rect(), prev_transform)\n\t\tprev_poly.append(prev_poly[0])\n\t\tdraw_polyline(prev_poly, Color(1, 0.29, 0.29), line_width)\n\n\t# First we highlight the Reference Images under the mouse with yellow\n\tfor ri: ReferenceImage in Global.current_project.reference_images:\n\t\tvar p := get_transformed_rect_polygon(ri.get_rect(), ri.transform)\n\t\tp.append(p[0])\n\t\tif ri.get_index() == index:\n\t\t\tdraw_polyline(p, Color(0.50, 0.99, 0.29), line_width)\n\t\telif Geometry2D.is_point_in_polygon(get_local_mouse_position(), p) and !dragging:\n\t\t\tdraw_polyline(p, Color(0.98, 0.80, 0.29), line_width)\n"
  },
  {
    "path": "src/UI/Canvas/ReferenceImages.gd.uid",
    "content": "uid://bpp7sufx80fs4\n"
  },
  {
    "path": "src/UI/Canvas/Rulers/Guide.gd",
    "content": "class_name Guide\nextends Line2D\n\nenum Types { HORIZONTAL, VERTICAL, XY, X_MINUS_Y }\n\nconst INPUT_WIDTH := 4.0\n\nvar font := Themes.get_font()\nvar has_focus := true\nvar mouse_pos := Vector2.ZERO\nvar type := Types.HORIZONTAL\nvar project := Global.current_project\nvar text_server := TextServerManager.get_primary_interface()\n\n\nfunc _ready() -> void:\n\tGlobal.project_switched.connect(_project_switched)\n\twidth = 2.0 / get_viewport().canvas_transform.get_scale().x\n\tdefault_color = Global.guide_color\n\tproject.guides.append(self)\n\tif _outside_canvas():\n\t\tmodulate.a = 0.5\n\n\nfunc _input(_event: InputEvent) -> void:\n\tif not visible:\n\t\treturn\n\tmouse_pos = get_local_mouse_position()\n\tvar is_hovering := is_pos_over_line(mouse_pos)\n\tif Input.is_action_just_pressed(&\"left_mouse\") and Global.can_draw and is_hovering:\n\t\tvar project_rect := Rect2i(Vector2i.ZERO, project.size)\n\t\tif not project_rect.has_point(mouse_pos) or Global.move_guides_on_canvas:\n\t\t\thas_focus = true\n\t\t\tGlobal.can_draw = false\n\t\t\tqueue_redraw()\n\tif has_focus:\n\t\tif Input.is_action_pressed(&\"left_mouse\"):\n\t\t\tif type == Types.HORIZONTAL:\n\t\t\t\tvar yy := snappedf(mouse_pos.y, 0.5)\n\t\t\t\tpoints[0].y = yy\n\t\t\t\tpoints[1].y = yy\n\t\t\telif type == Types.VERTICAL:\n\t\t\t\tvar xx := snappedf(mouse_pos.x, 0.5)\n\t\t\t\tpoints[0].x = xx\n\t\t\t\tpoints[1].x = xx\n\t\t\telif type == Types.XY or type == Types.X_MINUS_Y:\n\t\t\t\tvar normal := Tools.X_MINUS_Y_LINE\n\t\t\t\tif type == Types.X_MINUS_Y:\n\t\t\t\t\tnormal = Tools.XY_LINE\n\t\t\t\tvar c := normal.dot(mouse_pos)\n\t\t\t\tc = snappedf(c, 0.5)\n\n\t\t\t\tvar dir := (normal * Vector2(1, -1)).normalized()\n\t\t\t\tvar half_len := (points[1] - points[0]).length() / 2.0\n\t\t\t\tvar center := normal * c\n\n\t\t\t\tpoints[0] = center - dir * half_len\n\t\t\t\tpoints[1] = center + dir * half_len\n\t\t\tmodulate.a = 0.5 if _outside_canvas() else 1.0\n\t\telif Input.is_action_just_released(&\"left_mouse\"):\n\t\t\tGlobal.can_draw = true\n\t\t\thas_focus = false\n\t\t\tif _outside_canvas():\n\t\t\t\tproject.guides.erase(self)\n\t\t\t\tqueue_free()\n\t\t\telse:\n\t\t\t\tqueue_redraw()\n\n\nfunc _draw() -> void:\n\tif !has_focus:\n\t\treturn\n\tvar viewport_size := get_viewport_rect().size\n\tvar half_size := viewport_size * 0.5\n\tvar zoom := get_viewport().canvas_transform.get_scale()\n\tvar canvas_rotation := -get_viewport().canvas_transform.get_rotation()\n\tvar origin := get_viewport().canvas_transform.get_origin()\n\tvar pure_origin := (origin / zoom).rotated(canvas_rotation)\n\tvar zoom_scale := Vector2.ONE / zoom\n\tvar offset := -pure_origin + (half_size * zoom_scale).rotated(canvas_rotation)\n\n\t# An array of the points that make up the corners of the viewport\n\tvar viewport_poly := PackedVector2Array(\n\t\t[Vector2.ZERO, Vector2(viewport_size.x, 0), viewport_size, Vector2(0, viewport_size.y)]\n\t)\n\t# Adjusting viewport_poly to take into account the camera offset, zoom, and rotation\n\tfor p in range(viewport_poly.size()):\n\t\tviewport_poly[p] = (\n\t\t\tviewport_poly[p].rotated(canvas_rotation) * zoom\n\t\t\t+ Vector2(\n\t\t\t\toffset.x - (viewport_size.rotated(canvas_rotation).x / 2) / zoom.x,\n\t\t\t\toffset.y - (viewport_size.rotated(canvas_rotation).y / 2) / zoom.y\n\t\t\t)\n\t\t)\n\n\tvar string := (\n\t\t\"%spx\" % str(snappedf(mouse_pos.y if type == Types.HORIZONTAL else mouse_pos.x, 0.5))\n\t)\n\tstring = text_server.format_number(string)\n\tvar color: Color = Global.control.theme.get_color(\"font_color\", \"Label\")\n\t# X and Y offsets for nicer looking spacing\n\tvar x_offset := 5\n\tvar y_offset := -7  # Only used where the string is above the guide\n\n\tvar font_string_size := font.get_string_size(string)\n\tvar font_height := font.get_height()\n\t# Draw the string where the guide intersects with the viewport poly\n\t# Priority is top edge, then left, then right\n\tvar intersection = Geometry2D.segment_intersects_segment(\n\t\tpoints[0], points[1], viewport_poly[0], viewport_poly[1]\n\t)\n\n\tif intersection:\n\t\tdraw_set_transform(intersection, canvas_rotation, Vector2(2.0, 2.0) / zoom)\n\t\tif (\n\t\t\tintersection.distance_squared_to(viewport_poly[0])\n\t\t\t< intersection.distance_squared_to(viewport_poly[1])\n\t\t):\n\t\t\tdraw_string(\n\t\t\t\tfont,\n\t\t\t\tVector2(x_offset, font_height),\n\t\t\t\tstring,\n\t\t\t\tHORIZONTAL_ALIGNMENT_LEFT,\n\t\t\t\t-1,\n\t\t\t\tThemes.get_font_size(),\n\t\t\t\tcolor\n\t\t\t)\n\t\telse:\n\t\t\tdraw_string(\n\t\t\t\tfont,\n\t\t\t\tVector2(-font_string_size.x - x_offset, font_height),\n\t\t\t\tstring,\n\t\t\t\tHORIZONTAL_ALIGNMENT_LEFT,\n\t\t\t\t-1,\n\t\t\t\tThemes.get_font_size(),\n\t\t\t\tcolor\n\t\t\t)\n\t\treturn\n\n\tintersection = Geometry2D.segment_intersects_segment(\n\t\tpoints[0], points[1], viewport_poly[3], viewport_poly[0]\n\t)\n\tif intersection:\n\t\tdraw_set_transform(intersection, canvas_rotation, Vector2(2.0, 2.0) / zoom)\n\t\tif (\n\t\t\tintersection.distance_squared_to(viewport_poly[3])\n\t\t\t< intersection.distance_squared_to(viewport_poly[0])\n\t\t):\n\t\t\tdraw_string(\n\t\t\t\tfont,\n\t\t\t\tVector2(x_offset, y_offset),\n\t\t\t\tstring,\n\t\t\t\tHORIZONTAL_ALIGNMENT_LEFT,\n\t\t\t\t-1,\n\t\t\t\tThemes.get_font_size(),\n\t\t\t\tcolor\n\t\t\t)\n\t\telse:\n\t\t\tdraw_string(\n\t\t\t\tfont,\n\t\t\t\tVector2(x_offset, font_height),\n\t\t\t\tstring,\n\t\t\t\tHORIZONTAL_ALIGNMENT_LEFT,\n\t\t\t\t-1,\n\t\t\t\tThemes.get_font_size(),\n\t\t\t\tcolor\n\t\t\t)\n\t\treturn\n\n\tintersection = Geometry2D.segment_intersects_segment(\n\t\tpoints[0], points[1], viewport_poly[1], viewport_poly[2]\n\t)\n\n\tif intersection:\n\t\tdraw_set_transform(intersection, canvas_rotation, Vector2(2.0, 2.0) / zoom)\n\t\tif (\n\t\t\tintersection.distance_squared_to(viewport_poly[1])\n\t\t\t< intersection.distance_squared_to(viewport_poly[2])\n\t\t):\n\t\t\tdraw_string(\n\t\t\t\tfont,\n\t\t\t\tVector2(-font_string_size.x - x_offset, font_height),\n\t\t\t\tstring,\n\t\t\t\tHORIZONTAL_ALIGNMENT_LEFT,\n\t\t\t\t-1,\n\t\t\t\tThemes.get_font_size(),\n\t\t\t\tcolor\n\t\t\t)\n\t\telse:\n\t\t\tdraw_string(\n\t\t\t\tfont,\n\t\t\t\tVector2(-font_string_size.x - x_offset, y_offset),\n\t\t\t\tstring,\n\t\t\t\tHORIZONTAL_ALIGNMENT_LEFT,\n\t\t\t\t-1,\n\t\t\t\tThemes.get_font_size(),\n\t\t\t\tcolor\n\t\t\t)\n\t\treturn\n\n\t# If there's no intersection with a viewport edge, show string in top left corner\n\tdraw_set_transform(viewport_poly[0], canvas_rotation, Vector2(2.0, 2.0) / zoom)\n\tdraw_string(\n\t\tfont,\n\t\tVector2(x_offset, font_height),\n\t\tstring,\n\t\tHORIZONTAL_ALIGNMENT_LEFT,\n\t\t-1,\n\t\tThemes.get_font_size(),\n\t\tcolor\n\t)\n\n\nfunc force_input(event: InputEvent) -> void:\n\t_input(event)\n\n\nfunc set_color(color: Color) -> void:\n\tdefault_color = color\n\n\nfunc get_direction() -> Vector2:\n\treturn points[0].direction_to(points[1])\n\n\nfunc is_pos_over_line(pos: Vector2, thickness := INPUT_WIDTH) -> bool:\n\tvar start := points[0]\n\tvar end := points[1]\n\tvar line_vec := end - start\n\tvar len_sq := line_vec.length_squared()\n\tif len_sq == 0.0:\n\t\treturn (pos - start).length() <= thickness\n\n\t# Project the mouse onto the line segment (clamped between 0 and 1).\n\tvar t := clampf((pos - start).dot(line_vec) / len_sq, 0.0, 1.0)\n\tvar projection := start + t * line_vec\n\n\t# Distance from mouse to closest point on the segment.\n\tvar dist := pos.distance_to(projection)\n\treturn dist <= thickness\n\n\nfunc _project_switched() -> void:\n\tif self in Global.current_project.guides:\n\t\tvisible = Global.show_guides\n\t\tif self is SymmetryGuide:\n\t\t\tif type == Types.HORIZONTAL:\n\t\t\t\tvisible = Global.show_x_symmetry_axis and Global.show_guides\n\t\t\telif type == Types.VERTICAL:\n\t\t\t\tvisible = Global.show_y_symmetry_axis and Global.show_guides\n\t\t\telif type == Types.XY:\n\t\t\t\tvisible = Global.show_xy_symmetry_axis and Global.show_guides\n\t\t\telif type == Types.X_MINUS_Y:\n\t\t\t\tvisible = Global.show_x_minus_y_symmetry_axis and Global.show_guides\n\telse:\n\t\tvisible = false\n\n\nfunc _outside_canvas() -> bool:\n\tif type == Types.HORIZONTAL:\n\t\treturn points[0].y < 0 || points[0].y > project.size.y\n\telse:\n\t\treturn points[0].x < 0 || points[0].x > project.size.x\n"
  },
  {
    "path": "src/UI/Canvas/Rulers/Guide.gd.uid",
    "content": "uid://c4m77kyx7dgmf\n"
  },
  {
    "path": "src/UI/Canvas/Rulers/HorizontalRuler.gd",
    "content": "extends Button\n\nconst RULER_WIDTH := 16\n\n@export var viewport_container: SubViewportContainer\n@export var camera: CanvasCamera\n\nvar major_subdivision := 2\nvar minor_subdivision := 4\n\nvar first: Vector2\nvar last: Vector2\nvar text_server := TextServerManager.get_primary_interface()\n\n@onready var vertical_ruler := $\"../ViewportandVerticalRuler/VerticalRuler\" as Button\n\n\nfunc _ready() -> void:\n\tGlobal.project_switched.connect(queue_redraw)\n\tviewport_container.resized.connect(queue_redraw)\n\tcamera.zoom_changed.connect(queue_redraw)\n\tcamera.rotation_changed.connect(queue_redraw)\n\tcamera.offset_changed.connect(queue_redraw)\n\n\nfunc _gui_input(event: InputEvent) -> void:\n\tfor guide in Global.current_project.guides:\n\t\tguide.force_input(event)\n\n\n# Code taken and modified from Godot's source code\nfunc _draw() -> void:\n\tvar font := Themes.get_font()\n\tvar transform := Transform2D()\n\tvar ruler_transform := Transform2D()\n\tvar major_subdivide := Transform2D()\n\tvar minor_subdivide := Transform2D()\n\tvar zoom := camera.zoom.x\n\ttransform.x = Vector2(zoom, zoom)\n\n\t# This tracks the \"true\" top left corner of the drawing:\n\ttransform.origin = (\n\t\tviewport_container.size / 2 + camera.offset.rotated(-camera.camera_angle) * -zoom\n\t)\n\n\tvar proj_size := Global.current_project.size\n\n\t# Calculating the rotated corners of the image, use min to find the farthest left\n\tvar a := Vector2.ZERO  # Top left\n\tvar b := Vector2(proj_size.x, 0).rotated(-camera.camera_angle)  # Top right\n\tvar c := Vector2(0, proj_size.y).rotated(-camera.camera_angle)  # Bottom left\n\tvar d := Vector2(proj_size.x, proj_size.y).rotated(-camera.camera_angle)  # Bottom right\n\ttransform.origin.x += minf(minf(a.x, b.x), minf(c.x, d.x)) * zoom\n\n\tvar basic_rule := 100.0\n\tvar i := 0\n\twhile basic_rule * zoom > 100:\n\t\tbasic_rule /= 5.0 if i % 2 else 2.0\n\t\ti += 1\n\ti = 0\n\twhile basic_rule * zoom < 100:\n\t\tbasic_rule *= 2.0 if i % 2 else 5.0\n\t\ti += 1\n\n\truler_transform = ruler_transform.scaled(Vector2(basic_rule, basic_rule))\n\n\tmajor_subdivide = major_subdivide.scaled(\n\t\tVector2(1.0 / major_subdivision, 1.0 / major_subdivision)\n\t)\n\tminor_subdivide = minor_subdivide.scaled(\n\t\tVector2(1.0 / minor_subdivision, 1.0 / minor_subdivision)\n\t)\n\n\tvar final_transform := transform * ruler_transform * major_subdivide * minor_subdivide\n\tfirst = final_transform.affine_inverse() * Vector2.ZERO\n\tlast = final_transform.affine_inverse() * viewport_container.size\n\n\tfor j in range(ceili(first.x), ceili(last.x)):\n\t\tvar pos: Vector2 = final_transform * Vector2(j, 0)\n\t\tif j % (major_subdivision * minor_subdivision) == 0:\n\t\t\tdraw_line(\n\t\t\t\tVector2(pos.x + RULER_WIDTH, 0),\n\t\t\t\tVector2(pos.x + RULER_WIDTH, RULER_WIDTH),\n\t\t\t\tColor.WHITE\n\t\t\t)\n\t\t\tvar val := ((ruler_transform * major_subdivide * minor_subdivide) * Vector2(j, 0)).x\n\t\t\tvar str_to_draw := \"%*.*f\" % [0, step_decimals(val), snappedf(val, 0.1)]\n\t\t\tstr_to_draw = text_server.format_number(str_to_draw)\n\t\t\tvar draw_pos := Vector2(pos.x + RULER_WIDTH + 2, font.get_height() - 4)\n\t\t\tdraw_string(\n\t\t\t\tfont, draw_pos, str_to_draw, HORIZONTAL_ALIGNMENT_LEFT, -1, Themes.get_font_size()\n\t\t\t)\n\t\telse:\n\t\t\tif j % minor_subdivision == 0:\n\t\t\t\tdraw_line(\n\t\t\t\t\tVector2(pos.x + RULER_WIDTH, RULER_WIDTH * 0.33),\n\t\t\t\t\tVector2(pos.x + RULER_WIDTH, RULER_WIDTH),\n\t\t\t\t\tColor.WHITE\n\t\t\t\t)\n\t\t\telse:\n\t\t\t\tdraw_line(\n\t\t\t\t\tVector2(pos.x + RULER_WIDTH, RULER_WIDTH * 0.66),\n\t\t\t\t\tVector2(pos.x + RULER_WIDTH, RULER_WIDTH),\n\t\t\t\t\tColor.WHITE\n\t\t\t\t)\n\n\nfunc _on_HorizontalRuler_pressed() -> void:\n\tcreate_guide()\n\n\nfunc create_guide() -> void:\n\tif !Global.show_guides:\n\t\treturn\n\tvar mouse_pos := get_local_mouse_position()\n\tif mouse_pos.x < RULER_WIDTH:  # For double guides\n\t\tvertical_ruler.create_guide()\n\tvar guide := Guide.new()\n\tif absf(camera.camera_angle_degrees) < 45 or absf(camera.camera_angle_degrees) > 135:\n\t\tguide.type = guide.Types.HORIZONTAL\n\t\tguide.add_point(Vector2(-19999, Global.canvas.current_pixel.y))\n\t\tguide.add_point(Vector2(19999, Global.canvas.current_pixel.y))\n\telse:\n\t\tguide.type = guide.Types.VERTICAL\n\t\tguide.add_point(Vector2(Global.canvas.current_pixel.x, -19999))\n\t\tguide.add_point(Vector2(Global.canvas.current_pixel.x, 19999))\n\tGlobal.canvas.add_child(guide)\n\tqueue_redraw()\n\n\nfunc _on_HorizontalRuler_mouse_entered() -> void:\n\tvar mouse_pos := get_local_mouse_position()\n\tif mouse_pos.x < RULER_WIDTH:  # For double guides\n\t\tmouse_default_cursor_shape = Control.CURSOR_FDIAGSIZE\n\telse:\n\t\tmouse_default_cursor_shape = Control.CURSOR_VSPLIT\n"
  },
  {
    "path": "src/UI/Canvas/Rulers/HorizontalRuler.gd.uid",
    "content": "uid://bs5pld0j5yvsk\n"
  },
  {
    "path": "src/UI/Canvas/Rulers/SymmetryGuide.gd",
    "content": "class_name SymmetryGuide\nextends Guide\n\nvar _texture := preload(\"res://assets/graphics/dotted_line.png\")\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\thas_focus = false\n\tvisible = false\n\ttexture = _texture\n\ttexture_repeat = CanvasItem.TEXTURE_REPEAT_ENABLED\n\ttexture_mode = Line2D.LINE_TEXTURE_TILE\n\twidth = 4.0 / get_viewport().canvas_transform.get_scale().x\n\tset_color(Global.guide_color)\n\n\nfunc _input(_event: InputEvent) -> void:\n\tif !visible:\n\t\treturn\n\tsuper._input(_event)\n\tif type == Types.HORIZONTAL:\n\t\tproject.y_symmetry_point = points[0].y * 2 - 1\n\t\tpoints[0].y = clampf(points[0].y, 0, project.size.y)\n\t\tpoints[1].y = clampf(points[1].y, 0, project.size.y)\n\telif type == Types.VERTICAL:\n\t\tpoints[0].x = clampf(points[0].x, 0, project.size.x)\n\t\tpoints[1].x = clampf(points[1].x, 0, project.size.x)\n\t\tproject.x_symmetry_point = points[0].x * 2 - 1\n\telif type == Types.XY:\n\t\tvar mid := (points[0] + points[1]) * 0.5\n\t\tvar normal := Tools.X_MINUS_Y_LINE\n\t\tvar c_xy := normal.dot(mid)\n\t\tproject.xy_symmetry_point = normal * c_xy\n\telif type == Types.X_MINUS_Y:\n\t\tvar mid := (points[0] + points[1]) * 0.5\n\t\tvar normal := Tools.XY_LINE\n\t\tvar c_xy := normal.dot(mid)\n\t\tproject.x_minus_y_symmetry_point = normal * c_xy\n\n\n## Add a subtle difference to the normal guide color by mixing in some blue\nfunc set_color(color: Color) -> void:\n\tdefault_color = color.lerp(Color(.2, .2, .65), .6)\n\n\nfunc _outside_canvas() -> bool:\n\treturn false\n"
  },
  {
    "path": "src/UI/Canvas/Rulers/SymmetryGuide.gd.uid",
    "content": "uid://cu2j7facqpp5k\n"
  },
  {
    "path": "src/UI/Canvas/Rulers/VerticalRuler.gd",
    "content": "extends Button\n\nconst RULER_WIDTH := 16\n\n@export var viewport_container: SubViewportContainer\n@export var camera: CanvasCamera\n\nvar major_subdivision := 2\nvar minor_subdivision := 4\n\nvar first: Vector2\nvar last: Vector2\nvar text_server := TextServerManager.get_primary_interface()\n\n\nfunc _ready() -> void:\n\tGlobal.project_switched.connect(queue_redraw)\n\tviewport_container.resized.connect(queue_redraw)\n\tcamera.zoom_changed.connect(queue_redraw)\n\tcamera.rotation_changed.connect(queue_redraw)\n\tcamera.offset_changed.connect(queue_redraw)\n\n\nfunc _gui_input(event: InputEvent) -> void:\n\tfor guide in Global.current_project.guides:\n\t\tguide.force_input(event)\n\n\n# Code taken and modified from Godot's source code\nfunc _draw() -> void:\n\tvar font := Themes.get_font()\n\tvar transform := Transform2D()\n\tvar ruler_transform := Transform2D()\n\tvar major_subdivide := Transform2D()\n\tvar minor_subdivide := Transform2D()\n\tvar zoom := camera.zoom.x\n\ttransform.y = Vector2(zoom, zoom)\n\n\t# This tracks the \"true\" top left corner of the drawing:\n\ttransform.origin = (\n\t\tviewport_container.size / 2 + camera.offset.rotated(-camera.camera_angle) * -zoom\n\t)\n\n\tvar proj_size := Global.current_project.size\n\n\t# Calculating the rotated corners of the image, use min to find the top one\n\tvar a := Vector2.ZERO  # Top left\n\tvar b := Vector2(proj_size.x, 0).rotated(-camera.camera_angle)  # Top right\n\tvar c := Vector2(0, proj_size.y).rotated(-camera.camera_angle)  # Bottom left\n\tvar d := Vector2(proj_size.x, proj_size.y).rotated(-camera.camera_angle)  # Bottom right\n\ttransform.origin.y += minf(minf(a.y, b.y), minf(c.y, d.y)) * zoom\n\n\tvar basic_rule := 100.0\n\tvar i := 0\n\twhile basic_rule * zoom > 100:\n\t\tbasic_rule /= 5.0 if i % 2 else 2.0\n\t\ti += 1\n\ti = 0\n\twhile basic_rule * zoom < 100:\n\t\tbasic_rule *= 2.0 if i % 2 else 5.0\n\t\ti += 1\n\n\truler_transform = ruler_transform.scaled(Vector2(basic_rule, basic_rule))\n\n\tmajor_subdivide = major_subdivide.scaled(\n\t\tVector2(1.0 / major_subdivision, 1.0 / major_subdivision)\n\t)\n\tminor_subdivide = minor_subdivide.scaled(\n\t\tVector2(1.0 / minor_subdivision, 1.0 / minor_subdivision)\n\t)\n\n\tvar final_transform := transform * ruler_transform * major_subdivide * minor_subdivide\n\tfirst = final_transform.affine_inverse() * Vector2.ZERO\n\tlast = final_transform.affine_inverse() * viewport_container.size\n\n\tfor j in range(ceili(first.y), ceili(last.y)):\n\t\tvar pos: Vector2 = final_transform * Vector2(0, j)\n\t\tif j % (major_subdivision * minor_subdivision) == 0:\n\t\t\tdraw_line(Vector2(0, pos.y), Vector2(RULER_WIDTH, pos.y), Color.WHITE)\n\t\t\tvar text_angle := -PI / 2\n\t\t\tvar text_pos := Vector2(font.get_height() - 4, pos.y - 2)\n\t\t\tif is_layout_rtl():\n\t\t\t\ttext_angle = PI / 2\n\t\t\t\ttext_pos = Vector2(font.get_height() - 18, pos.y + 2)\n\t\t\tvar text_xform := Transform2D(text_angle, text_pos)\n\t\t\tdraw_set_transform_matrix(text_xform)\n\t\t\tvar val := ((ruler_transform * major_subdivide * minor_subdivide) * Vector2(0, j)).y\n\t\t\tvar str_to_draw := \"%*.*f\" % [0, step_decimals(val), snappedf(val, 0.1)]\n\t\t\tstr_to_draw = text_server.format_number(str_to_draw)\n\t\t\tdraw_string(\n\t\t\t\tfont, Vector2(), str_to_draw, HORIZONTAL_ALIGNMENT_LEFT, -1, Themes.get_font_size()\n\t\t\t)\n\t\t\tdraw_set_transform_matrix(Transform2D())\n\t\telse:\n\t\t\tif j % minor_subdivision == 0:\n\t\t\t\tdraw_line(\n\t\t\t\t\tVector2(RULER_WIDTH * 0.33, pos.y), Vector2(RULER_WIDTH, pos.y), Color.WHITE\n\t\t\t\t)\n\t\t\telse:\n\t\t\t\tdraw_line(\n\t\t\t\t\tVector2(RULER_WIDTH * 0.66, pos.y), Vector2(RULER_WIDTH, pos.y), Color.WHITE\n\t\t\t\t)\n\n\nfunc _on_VerticalRuler_pressed() -> void:\n\tcreate_guide()\n\n\nfunc create_guide() -> void:\n\tif !Global.show_guides:\n\t\treturn\n\tvar guide := Guide.new()\n\tif absf(camera.camera_angle_degrees) < 45 or absf(camera.camera_angle_degrees) > 135:\n\t\tguide.type = guide.Types.VERTICAL\n\t\tguide.add_point(Vector2(Global.canvas.current_pixel.x, -19999))\n\t\tguide.add_point(Vector2(Global.canvas.current_pixel.x, 19999))\n\telse:\n\t\tguide.type = guide.Types.HORIZONTAL\n\t\tguide.add_point(Vector2(-19999, Global.canvas.current_pixel.y))\n\t\tguide.add_point(Vector2(19999, Global.canvas.current_pixel.y))\n\tGlobal.canvas.add_child(guide)\n\tqueue_redraw()\n"
  },
  {
    "path": "src/UI/Canvas/Rulers/VerticalRuler.gd.uid",
    "content": "uid://cqx80356eubav\n"
  },
  {
    "path": "src/UI/Canvas/Selection.gd",
    "content": "class_name SelectionNode\nextends Node2D\n\nsignal transformation_confirmed\nsignal transformation_canceled\n\nenum SelectionOperation { ADD, SUBTRACT, INTERSECT }\nconst CLIPBOARD_FILE_PATH := \"user://clipboard.txt\"\n\n# flags (additional properties of selection that can be toggled)\nvar flag_tilemode := false\n\nvar undo_data: Dictionary\nvar is_pasting := false\n\nvar preview_selection_map := SelectionMap.new()\nvar preview_selection_texture := ImageTexture.new()\n\n@onready var canvas := get_parent() as Canvas\n@onready var transformation_handles := $TransformationHandles as TransformationHandles\n@onready var marching_ants_outline := $MarchingAntsOutline as Sprite2D\n\n\nfunc _ready() -> void:\n\t# Ensure to only call _input() if the cursor is inside the main canvas viewport\n\tGlobal.main_viewport.mouse_entered.connect(set_process_input.bind(true))\n\tGlobal.main_viewport.mouse_exited.connect(set_process_input.bind(false))\n\tmarching_ants_outline.texture = preview_selection_texture\n\tmarching_ants_outline.material.set_shader_parameter(\n\t\t\"animated\", Global.selection_animated_borders\n\t)\n\ttransformation_handles.preview_transform_changed.connect(_update_marching_ants)\n\tGlobal.project_switched.connect(_project_switched)\n\tGlobal.camera.zoom_changed.connect(_update_on_zoom)\n\n\nfunc _input(event: InputEvent) -> void:\n\tif transformation_handles.is_transforming_content():\n\t\tif event.is_action_pressed(&\"transformation_confirm\"):\n\t\t\ttransform_content_confirm()\n\t\telif event.is_action_pressed(&\"transformation_cancel\"):\n\t\t\ttransform_content_cancel()\n\n\nfunc _draw() -> void:\n\ttransformation_handles.queue_redraw()\n\n\nfunc _update_on_zoom() -> void:\n\tvar zoom := Global.camera.zoom.x\n\tvar size := maxi(\n\t\tGlobal.current_project.selection_map.get_size().x,\n\t\tGlobal.current_project.selection_map.get_size().y\n\t)\n\tmarching_ants_outline.material.set_shader_parameter(\"width\", 1.0 / zoom)\n\tmarching_ants_outline.material.set_shader_parameter(\"frequency\", zoom * 10 * size / 64)\n\n\nfunc select_rect(rect: Rect2i, operation := SelectionOperation.ADD) -> void:\n\tvar project := Global.current_project\n\t# Used only if the selection is outside of the canvas boundaries,\n\t# on the left and/or above (negative coords)\n\tvar offset_position := Vector2i.ZERO\n\tif project.selection_offset.x < 0:\n\t\trect.position.x -= project.selection_offset.x\n\t\toffset_position.x = project.selection_offset.x\n\tif project.selection_offset.y < 0:\n\t\trect.position.y -= project.selection_offset.y\n\t\toffset_position.y = project.selection_offset.y\n\n\tif offset_position != Vector2i.ZERO:\n\t\tproject.selection_map.move_bitmap_values(project)\n\n\tif operation == SelectionOperation.ADD:\n\t\tproject.selection_map.fill_rect(rect, Color(1, 1, 1, 1))\n\telif operation == SelectionOperation.SUBTRACT:\n\t\tproject.selection_map.fill_rect(rect, Color(0))\n\telif operation == SelectionOperation.INTERSECT:\n\t\tvar previous_selection_map := SelectionMap.new()\n\t\tprevious_selection_map.copy_from(project.selection_map)\n\t\tproject.selection_map.clear()\n\t\tfor x in range(rect.position.x, rect.end.x):\n\t\t\tfor y in range(rect.position.y, rect.end.y):\n\t\t\t\tvar pos := Vector2i(x, y)\n\t\t\t\tif !Rect2i(Vector2i.ZERO, previous_selection_map.get_size()).has_point(pos):\n\t\t\t\t\tcontinue\n\t\t\t\tproject.selection_map.select_pixel(\n\t\t\t\t\tpos, previous_selection_map.is_pixel_selected(pos, false)\n\t\t\t\t)\n\n\tif offset_position != Vector2i.ZERO and project.has_selection:\n\t\tproject.selection_map.move_bitmap_values(project)\n\n\nfunc transform_content_confirm() -> void:\n\tif not transformation_handles.is_transforming_content():\n\t\treturn\n\tvar project := Global.current_project\n\tvar preview_image := transformation_handles.pre_transformed_image\n\tvar original_selection_rect = project.selection_map.get_selection_rect(project)\n\ttransformation_handles.bake_transform_to_selection(project.selection_map, true)\n\tvar bounds := DrawingAlgos.get_transformed_bounds(\n\t\toriginal_selection_rect.size, transformation_handles.preview_transform\n\t)\n\tbounds.position -= bounds.position\n\tfor cel in get_selected_draw_cels():\n\t\tvar cel_image := cel.get_image()\n\t\tvar src := Image.new()\n\t\tsrc.copy_from(preview_image)\n\t\tif not is_pasting:\n\t\t\tif not is_instance_valid(cel.transformed_content):\n\t\t\t\tcontinue\n\t\t\tsrc.copy_from(cel.transformed_content)\n\t\t\tcel.transformed_content = null\n\t\tvar transformation_origin := transformation_handles.get_transform_top_left(src.get_size())\n\t\tif Tools.is_placing_tiles() and not is_pasting:\n\t\t\tif cel is not CelTileMap:\n\t\t\t\tcontinue\n\t\t\tvar tilemap := cel as CelTileMap\n\t\t\t@warning_ignore(\"integer_division\")\n\t\t\tvar horizontal_size := bounds.size.x / tilemap.get_tile_size().x\n\t\t\t@warning_ignore(\"integer_division\")\n\t\t\tvar vertical_size := bounds.size.y / tilemap.get_tile_size().y\n\t\t\tvar selected_cells := tilemap.resize_selection(\n\t\t\t\ttransformation_handles.pre_transform_tilemap_cells, horizontal_size, vertical_size\n\t\t\t)\n\t\t\tsrc.crop(bounds.size.x, bounds.size.y)\n\t\t\ttilemap.apply_resizing_to_image(src, selected_cells, bounds, true)\n\t\telse:\n\t\t\ttransformation_handles.bake_transform_to_image(src, bounds)\n\n\t\tif Tools.is_placing_tiles():\n\t\t\tif cel.get_tile_shape() != TileSet.TILE_SHAPE_SQUARE:\n\t\t\t\tcontinue\n\t\t\tcel_image.blit_rect(src, bounds, transformation_origin)\n\t\telse:\n\t\t\tcel_image.blit_rect_mask(src, src, bounds, transformation_origin)\n\t\tcel_image.convert_rgb_to_indexed()\n\tcommit_undo(\"Move Selection\", undo_data)\n\n\tis_pasting = false\n\tqueue_redraw()\n\tcanvas.queue_redraw()\n\ttransformation_confirmed.emit()\n\n\nfunc transform_content_cancel() -> void:\n\tif not transformation_handles.is_transforming_content():\n\t\treturn\n\tvar project := Global.current_project\n\tproject.selection_offset = transformation_handles.pre_transform_selection_offset\n\tproject.selection_map_changed()\n\tfor cel in get_selected_draw_cels():\n\t\tvar cel_image := cel.get_image()\n\t\tif !is_pasting and cel.transformed_content:\n\t\t\tcel_image.blit_rect_mask(\n\t\t\t\tcel.transformed_content,\n\t\t\t\tcel.transformed_content,\n\t\t\t\tRect2i(Vector2i.ZERO, Global.current_project.selection_map.get_size()),\n\t\t\t\tproject.selection_map.get_selection_rect(project).position\n\t\t\t)\n\t\t\tcel.transformed_content = null\n\tfor cel_index in project.selected_cels:\n\t\tcanvas.update_texture(cel_index[1])\n\tis_pasting = false\n\tqueue_redraw()\n\tcanvas.queue_redraw()\n\ttransformation_canceled.emit()\n\n\nfunc commit_undo(action: String, undo_data_tmp: Dictionary) -> void:\n\tif !undo_data_tmp:\n\t\tprint(\"No undo data found!\")\n\t\treturn\n\tvar project := Global.current_project\n\tif Tools.is_placing_tiles() and not is_pasting:\n\t\tfor cel in undo_data_tmp:\n\t\t\tif cel is CelTileMap:\n\t\t\t\t(cel as CelTileMap).re_index_all_cells(true)\n\telse:\n\t\tproject.update_tilemaps(undo_data_tmp, TileSetPanel.TileEditingMode.AUTO)\n\tvar redo_data := get_undo_data(undo_data_tmp[\"undo_image\"])\n\tproject.undo_redo.create_action(action)\n\tproject.deserialize_cel_undo_data(redo_data, undo_data_tmp)\n\tproject.undo_redo.add_do_property(project, \"selection_offset\", redo_data[\"outline_offset\"])\n\n\tproject.undo_redo.add_undo_property(\n\t\tproject, \"selection_offset\", undo_data_tmp[\"outline_offset\"]\n\t)\n\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_do_method(project.selection_map_changed)\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_undo_method(project.selection_map_changed)\n\tproject.undo_redo.commit_action()\n\n\tundo_data.clear()\n\n\nfunc get_undo_data(undo_image: bool) -> Dictionary:\n\tvar data := {}\n\tvar project := Global.current_project\n\tdata[project.selection_map] = project.selection_map.data\n\tdata[\"outline_offset\"] = Global.current_project.selection_offset\n\tdata[\"undo_image\"] = undo_image\n\n\tif undo_image:\n\t\tGlobal.current_project.serialize_cel_undo_data(get_selected_draw_cels(), data)\n\treturn data\n\n\nfunc _update_marching_ants() -> void:\n\tpreview_selection_map.copy_from(Global.current_project.selection_map)\n\tif is_instance_valid(transformation_handles.transformed_selection_map):\n\t\ttransformation_handles.bake_transform_to_selection(preview_selection_map)\n\tpreview_selection_texture.set_image(preview_selection_map)\n\n\n# TODO: Change BaseCel to PixelCel if Godot ever fixes issues\n# with typed arrays being cast into other types.\nfunc get_selected_draw_cels() -> Array[BaseCel]:\n\tvar cels: Array[BaseCel] = []\n\tvar project := Global.current_project\n\tfor cel_index in project.selected_cels:\n\t\tvar cel: BaseCel = project.frames[cel_index[0]].cels[cel_index[1]]\n\t\tif not cel is PixelCel:\n\t\t\tcontinue\n\t\tif project.layers[cel_index[1]].can_layer_get_drawn():\n\t\t\tcels.append(cel)\n\treturn cels\n\n\nfunc _get_selected_draw_images(tile_cel_pointer: Array[CelTileMap]) -> Array[ImageExtended]:\n\tvar images: Array[ImageExtended] = []\n\tvar project := Global.current_project\n\tfor cel_index in project.selected_cels:\n\t\tvar cel: BaseCel = project.frames[cel_index[0]].cels[cel_index[1]]\n\t\tif not cel is PixelCel:\n\t\t\tcontinue\n\t\tif cel is CelTileMap and Tools.is_placing_tiles():\n\t\t\ttile_cel_pointer.append(cel)\n\t\t\tcontinue\n\t\tif project.layers[cel_index[1]].can_layer_get_drawn():\n\t\t\timages.append(cel.get_image())\n\treturn images\n\n\n## Returns the portion of current cel's image enclosed by the selection.\nfunc get_enclosed_image() -> Image:\n\tvar project := Global.current_project\n\tif !project.has_selection:\n\t\treturn\n\n\tvar image := project.get_current_cel().get_image()\n\tvar enclosed_img := Image.new()\n\tif transformation_handles.is_transforming_content():\n\t\tenclosed_img.copy_from(transformation_handles.transformed_image)\n\telse:\n\t\tenclosed_img = get_selected_image(image)\n\treturn enclosed_img\n\n\nfunc cut() -> void:\n\tvar project := Global.current_project\n\tif !project.layers[project.current_layer].can_layer_get_drawn():\n\t\treturn\n\tcopy()\n\tdelete(false)\n\n\n## Copies the selection content (works in or between pixelorama instances only).\nfunc copy() -> void:\n\tvar project := Global.current_project\n\tvar cl_image := Image.new()\n\tvar cl_selection_map := SelectionMap.new()\n\tvar cl_big_bounding_rectangle := Rect2()\n\tvar cl_selection_offset := Vector2.ZERO\n\n\tvar image := project.get_current_cel().get_image()\n\tvar to_copy := Image.new()\n\tif !project.has_selection:\n\t\tto_copy.copy_from(image)\n\t\tcl_selection_map.copy_from(project.selection_map)\n\t\tcl_selection_map.select_all()\n\t\tcl_big_bounding_rectangle = Rect2(Vector2.ZERO, project.size)\n\telse:\n\t\tvar selection_rect := project.selection_map.get_selection_rect(project)\n\t\tif transformation_handles.is_transforming_content():\n\t\t\tto_copy.copy_from(transformation_handles.transformed_image)\n\t\t\tcl_selection_map = preview_selection_map\n\t\telse:\n\t\t\tto_copy = image.get_region(selection_rect)\n\t\t\t# Remove unincluded pixels if the selection is not a single rectangle\n\t\t\tvar offset_pos := selection_rect.position\n\t\t\tfor x in to_copy.get_size().x:\n\t\t\t\tfor y in to_copy.get_size().y:\n\t\t\t\t\tvar pos := Vector2i(x, y)\n\t\t\t\t\tif offset_pos.x < 0:\n\t\t\t\t\t\toffset_pos.x = 0\n\t\t\t\t\tif offset_pos.y < 0:\n\t\t\t\t\t\toffset_pos.y = 0\n\t\t\t\t\tif not project.selection_map.is_pixel_selected(pos + offset_pos, false):\n\t\t\t\t\t\tto_copy.set_pixelv(pos, Color(0))\n\t\t\tcl_selection_map.copy_from(project.selection_map)\n\t\tcl_big_bounding_rectangle = selection_rect\n\n\tcl_image = to_copy\n\tcl_selection_offset = project.selection_offset\n\tvar transfer_clipboard := {\n\t\t\"image\": cl_image,\n\t\t\"selection_map\": cl_selection_map.data,\n\t\t\"big_bounding_rectangle\": cl_big_bounding_rectangle,\n\t\t\"selection_offset\": cl_selection_offset,\n\t}\n\n\tvar clipboard_file := FileAccess.open(CLIPBOARD_FILE_PATH, FileAccess.WRITE)\n\tclipboard_file.store_var(transfer_clipboard, true)\n\tclipboard_file.close()\n\n\tif !to_copy.is_empty():\n\t\tvar pattern: Patterns.Pattern = Global.patterns_popup.get_pattern(0)\n\t\tpattern.image = to_copy\n\t\tvar tex := ImageTexture.create_from_image(to_copy)\n\t\tvar container = Global.patterns_popup.get_node(\"ScrollContainer/PatternContainer\")\n\t\tcontainer.get_child(0).get_child(0).texture = tex\n\n\n## Pastes the selection content.\nfunc paste(in_place := false) -> void:\n\tif !FileAccess.file_exists(CLIPBOARD_FILE_PATH):\n\t\treturn\n\tvar clipboard_file := FileAccess.open(CLIPBOARD_FILE_PATH, FileAccess.READ)\n\tvar clipboard = clipboard_file.get_var(true)\n\tclipboard_file.close()\n\n\t# Sanity checks\n\tif typeof(clipboard) != TYPE_DICTIONARY:\n\t\treturn\n\tif !clipboard.has_all([\"image\", \"selection_map\", \"big_bounding_rectangle\", \"selection_offset\"]):\n\t\treturn\n\tif clipboard.image.is_empty():\n\t\treturn\n\n\tif transformation_handles.is_transforming_content():\n\t\ttransform_content_confirm()\n\tundo_data = get_undo_data(true)\n\tclear_selection()\n\tvar project := Global.current_project\n\n\tvar clip_map := SelectionMap.new()\n\tclip_map.data = clipboard.selection_map\n\tvar max_size := Vector2i(\n\t\tmaxi(clip_map.get_size().x, project.selection_map.get_size().x),\n\t\tmaxi(clip_map.get_size().y, project.selection_map.get_size().y)\n\t)\n\n\tproject.selection_map.copy_from(clip_map)\n\tproject.selection_map.crop(max_size.x, max_size.y)\n\tvar selection_rect := project.selection_map.get_selection_rect(project)\n\tproject.selection_offset = clipboard.selection_offset\n\tvar transform_origin: Vector2 = clipboard.big_bounding_rectangle.position\n\tif not in_place:  # If \"Paste\" is selected, and not \"Paste in Place\"\n\t\tvar camera_center := Global.camera.camera_screen_center\n\t\tcamera_center -= Vector2(selection_rect.size) / 2.0\n\t\tvar max_pos := project.size - selection_rect.size\n\t\tif max_pos.x >= 0:\n\t\t\tcamera_center.x = clampf(camera_center.x, 0, max_pos.x)\n\t\telse:\n\t\t\tcamera_center.x = 0\n\t\tif max_pos.y >= 0:\n\t\t\tcamera_center.y = clampf(camera_center.y, 0, max_pos.y)\n\t\telse:\n\t\t\tcamera_center.y = 0\n\t\ttransform_origin = Vector2i(camera_center.floor())\n\t\tif Tools.is_placing_tiles():\n\t\t\tvar tilemap_cel := Global.current_project.get_current_cel() as CelTileMap\n\t\t\tvar grid_size := tilemap_cel.get_tile_size()\n\t\t\tvar offset := tilemap_cel.offset % grid_size\n\t\t\ttransform_origin = Vector2i(\n\t\t\t\tTools.snap_to_rectangular_grid_boundary(transform_origin, grid_size, offset)\n\t\t\t)\n\t\telif Global.snap_to_rectangular_grid_center:\n\t\t\tvar grid_size := Global.grids[0].grid_size\n\t\t\tvar grid_offset := Global.grids[0].grid_offset\n\t\t\ttransform_origin = Vector2i(\n\t\t\t\tTools.snap_to_rectangular_grid_center(transform_origin, grid_size, grid_offset)\n\t\t\t)\n\t\telif Global.snap_to_rectangular_grid_boundary:\n\t\t\tvar grid_size := Global.grids[0].grid_size\n\t\t\tvar grid_offset := Global.grids[0].grid_offset\n\t\t\ttransform_origin = Vector2i(\n\t\t\t\tTools.snap_to_rectangular_grid_boundary(transform_origin, grid_size, grid_offset)\n\t\t\t)\n\t\tproject.selection_map.move_bitmap_values(Global.current_project, false)\n\telse:\n\t\tif Tools.is_placing_tiles():\n\t\t\tvar tilemap_cel := Global.current_project.get_current_cel() as CelTileMap\n\t\t\tvar grid_size := tilemap_cel.get_tile_size()\n\t\t\tvar offset := tilemap_cel.offset % grid_size\n\t\t\tproject.selection_offset = Tools.snap_to_rectangular_grid_boundary(\n\t\t\t\tproject.selection_offset, grid_size, offset\n\t\t\t)\n\t\t\ttransform_origin = Vector2i(\n\t\t\t\tTools.snap_to_rectangular_grid_boundary(transform_origin, grid_size, offset)\n\t\t\t)\n\t\telif Global.snap_to_rectangular_grid_center:\n\t\t\tvar grid_size := Global.grids[0].grid_size\n\t\t\tvar grid_offset := Global.grids[0].grid_offset\n\t\t\tproject.selection_offset = Tools.snap_to_rectangular_grid_center(\n\t\t\t\tproject.selection_offset, grid_size, grid_offset\n\t\t\t)\n\t\t\ttransform_origin = Vector2i(\n\t\t\t\tTools.snap_to_rectangular_grid_center(transform_origin, grid_size, grid_offset)\n\t\t\t)\n\t\telif Global.snap_to_rectangular_grid_boundary:\n\t\t\tvar grid_size := Global.grids[0].grid_size\n\t\t\tvar grid_offset := Global.grids[0].grid_offset\n\t\t\tproject.selection_offset = Tools.snap_to_rectangular_grid_boundary(\n\t\t\t\tproject.selection_offset, grid_size, grid_offset\n\t\t\t)\n\t\t\ttransform_origin = Vector2i(\n\t\t\t\tTools.snap_to_rectangular_grid_boundary(transform_origin, grid_size, grid_offset)\n\t\t\t)\n\n\tis_pasting = true\n\tproject.selection_map_changed()\n\ttransformation_handles.begin_transform(clipboard.image)\n\ttransformation_handles.preview_transform.origin = transform_origin\n\n\nfunc paste_from_clipboard() -> void:\n\tif not DisplayServer.clipboard_has_image():\n\t\treturn\n\tvar clipboard_image := DisplayServer.clipboard_get_image()\n\tif clipboard_image.is_empty() or clipboard_image.is_invisible():\n\t\treturn\n\tif transformation_handles.is_transforming_content():\n\t\ttransform_content_confirm()\n\tundo_data = get_undo_data(true)\n\tclear_selection()\n\tvar project := Global.current_project\n\tclipboard_image.convert(project.get_image_format())\n\tvar clip_map := SelectionMap.new()\n\tclip_map.copy_from(\n\t\tImage.create(\n\t\t\tclipboard_image.get_width(),\n\t\t\tclipboard_image.get_height(),\n\t\t\tfalse,\n\t\t\tproject.selection_map.get_format()\n\t\t)\n\t)\n\tclip_map.fill_rect(Rect2i(Vector2i.ZERO, clipboard_image.get_size()), Color(1, 1, 1, 1))\n\tvar max_size := Vector2i(\n\t\tmaxi(clip_map.get_size().x, project.selection_map.get_size().x),\n\t\tmaxi(clip_map.get_size().y, project.selection_map.get_size().y)\n\t)\n\n\tproject.selection_map.copy_from(clip_map)\n\tproject.selection_map.crop(max_size.x, max_size.y)\n\tproject.selection_map_changed()\n\ttransformation_handles.begin_transform(clipboard_image)\n\tis_pasting = true\n\n\n## Deletes the drawing enclosed within the selection's area.\nfunc delete(selected_cels := true) -> void:\n\tvar project := Global.current_project\n\tif !project.layers[project.current_layer].can_layer_get_drawn():\n\t\treturn\n\tif transformation_handles.is_transforming_content():\n\t\tif (\n\t\t\ttransformation_handles.transformed_image.is_empty()\n\t\t\tor transformation_handles.transformed_image.is_invisible()\n\t\t):\n\t\t\ttransform_content_confirm()\n\t\telse:\n\t\t\ttransformation_handles.reset_transform()\n\t\t\tclear_selection()\n\t\t\ttransformation_handles.set_selection(null, Rect2())\n\t\t\tis_pasting = false\n\t\t\tqueue_redraw()\n\t\t\tcommit_undo(\"Draw\", undo_data)\n\t\t\treturn\n\n\tvar undo_data_tmp := get_undo_data(true)\n\tvar images: Array[ImageExtended]\n\tvar tile_cels: Array[CelTileMap]\n\tif selected_cels:\n\t\timages = _get_selected_draw_images(tile_cels)\n\telse:\n\t\timages = [project.get_current_cel().get_image()]\n\t\tif project.get_current_cel() is CelTileMap:\n\t\t\tif Tools.is_placing_tiles():\n\t\t\t\timages.clear()\n\t\t\t\ttile_cels.append(project.get_current_cel())\n\n\tif project.has_selection:\n\t\tvar blank := project.new_empty_image()\n\t\tvar selection_map_copy := project.selection_map.return_cropped_copy(project, project.size)\n\t\tvar selection_rect := selection_map_copy.get_used_rect()\n\t\tfor image in images:\n\t\t\timage.blit_rect_mask(blank, selection_map_copy, selection_rect, selection_rect.position)\n\t\t\timage.convert_rgb_to_indexed()\n\t\tvar selection = project.selection_map.get_used_rect()\n\t\tfor tile_cel: CelTileMap in tile_cels:\n\t\t\tvar row := 0\n\t\t\tfor y in range(\n\t\t\t\tselection.position.y, selection.end.y, floori(tile_cel.tile_size.y / 2.0)\n\t\t\t):\n\t\t\t\tvar current_offset := floori(tile_cel.tile_size.x / 2.0) if row % 2 != 0 else 0\n\t\t\t\tfor x in range(\n\t\t\t\t\tselection.position.x + current_offset, selection.end.x, tile_cel.tile_size.x\n\t\t\t\t):\n\t\t\t\t\tvar point = Vector2i(x, y) + Vector2i((Vector2(tile_cel.tile_size) / 2).ceil())\n\t\t\t\t\tif selection.has_point(point):\n\t\t\t\t\t\tvar tile_position := tile_cel.get_cell_position(point)\n\t\t\t\t\t\tvar cell := tile_cel.get_cell_at(tile_position)\n\t\t\t\t\t\ttile_cel.set_index(cell, 0)\n\t\t\t\t\t\ttile_cel.update_tilemap()\n\t\t\t\trow += 1\n\telse:\n\t\tfor image in images:\n\t\t\timage.fill(0)\n\t\t\timage.convert_rgb_to_indexed()\n\tclear_selection()\n\tcommit_undo(\"Draw\", undo_data_tmp)\n\n\n## Makes a project brush out of the current selection's content.\nfunc new_brush() -> void:\n\tvar brush := get_enclosed_image()\n\tif brush and !brush.is_invisible():\n\t\tvar brush_used: Image = brush.get_region(brush.get_used_rect())\n\t\tGlobal.current_project.brushes.append(brush_used)\n\t\tBrushes.add_project_brush(brush_used)\n\n\n## Select the entire region of current cel.\nfunc select_all() -> void:\n\tvar undo_data_tmp := get_undo_data(false)\n\tclear_selection()\n\tvar full_rect := Rect2i(Vector2i.ZERO, Global.current_project.size)\n\tselect_rect(full_rect)\n\tcommit_undo(\"Select\", undo_data_tmp)\n\n\n## Inverts the selection.\nfunc invert() -> void:\n\ttransform_content_confirm()\n\tvar project := Global.current_project\n\tvar undo_data_tmp := get_undo_data(false)\n\tproject.selection_map.crop(project.size.x, project.size.y)\n\tproject.selection_map.invert()\n\tproject.selection_map_changed()\n\tproject.selection_offset = Vector2.ZERO\n\tcommit_undo(\"Select\", undo_data_tmp)\n\n\n## Clears the selection.\nfunc clear_selection(use_undo := false) -> void:\n\tvar project := Global.current_project\n\tif !project.has_selection:\n\t\treturn\n\ttransform_content_confirm()\n\tvar undo_data_tmp := get_undo_data(false)\n\tproject.selection_map.crop(project.size.x, project.size.y)\n\tproject.selection_map.clear()\n\tproject.selection_offset = Vector2.ZERO\n\tqueue_redraw()\n\tif use_undo:\n\t\tcommit_undo(\"Clear Selection\", undo_data_tmp)\n\n\nfunc select_cel_rect() -> void:\n\ttransform_content_confirm()\n\tvar project := Global.current_project\n\tvar undo_data_tmp := get_undo_data(false)\n\tproject.selection_map.crop(project.size.x, project.size.y)\n\tproject.selection_map.clear()\n\tvar current_cel := project.get_current_cel()\n\tvar cel_image: Image\n\tif current_cel is GroupCel:\n\t\tvar group_layer := project.layers[project.current_layer] as GroupLayer\n\t\tcel_image = group_layer.blend_children(project.frames[project.current_frame])\n\telse:\n\t\tcel_image = current_cel.get_image()\n\tproject.selection_map.select_rect(cel_image.get_used_rect())\n\tproject.selection_map_changed()\n\tproject.selection_offset = Vector2.ZERO\n\tcommit_undo(\"Select\", undo_data_tmp)\n\n\nfunc select_cel_pixels(layer: BaseLayer, frame: Frame) -> void:\n\ttransform_content_confirm()\n\tvar project := Global.current_project\n\tvar undo_data_tmp := get_undo_data(false)\n\tproject.selection_map.crop(project.size.x, project.size.y)\n\tproject.selection_map.clear()\n\tvar current_cel := frame.cels[layer.index]\n\tvar cel_image: Image\n\tif current_cel is GroupCel:\n\t\tcel_image = (layer as GroupLayer).blend_children(frame)\n\telse:\n\t\tcel_image = current_cel.get_image()\n\tvar selection_format := project.selection_map.get_format()\n\tproject.selection_map.copy_from(cel_image)\n\tproject.selection_map.convert(selection_format)\n\tproject.selection_map_changed()\n\tproject.selection_offset = Vector2.ZERO\n\tcommit_undo(\"Select\", undo_data_tmp)\n\n\nfunc _project_switched() -> void:\n\tmarching_ants_outline.offset = Global.current_project.selection_offset\n\t_update_marching_ants()\n\tqueue_redraw()\n\n\nfunc get_selected_image(cel_image: Image) -> Image:\n\tvar project := Global.current_project\n\tvar selection_map_copy := project.selection_map.return_cropped_copy(project, project.size)\n\tvar selection_rect := selection_map_copy.get_used_rect()\n\tvar image := Image.create(\n\t\tselection_rect.size.x, selection_rect.size.y, false, project.get_image_format()\n\t)\n\timage.blit_rect_mask(cel_image, selection_map_copy, selection_rect, Vector2i.ZERO)\n\treturn image\n"
  },
  {
    "path": "src/UI/Canvas/Selection.gd.uid",
    "content": "uid://bcxi23cv8j5vr\n"
  },
  {
    "path": "src/UI/Canvas/TileMode.gd",
    "content": "extends Node2D\n\nvar tiles: Tiles\nvar draw_center := false\n\n@onready var canvas := Global.canvas\n\n\nfunc _draw() -> void:\n\tvar positions := get_tile_positions()\n\tvar tilemode_opacity := Global.tilemode_opacity\n\n\tif Global.mirror_view:\n\t\tvar position_tmp := Vector2(Global.current_project.size.x, 0)\n\t\tvar scale_tmp := Vector2(-1, 1)\n\t\tdraw_set_transform(position_tmp, 0, scale_tmp)\n\n\tvar modulate_color := Color(\n\t\ttilemode_opacity, tilemode_opacity, tilemode_opacity, tilemode_opacity\n\t)  # premultiply alpha blending is applied\n\tvar current_frame_texture := canvas.currently_visible_frame.get_texture()\n\tfor pos in positions:\n\t\tdraw_texture(current_frame_texture, pos, modulate_color)\n\n\tdraw_set_transform(Vector2.ZERO, 0, Vector2.ONE)\n\n\nfunc get_tile_positions() -> Array[Vector2i]:\n\tvar defaulted_tiles := tiles\n\tif defaulted_tiles == null:\n\t\tdefaulted_tiles = Global.current_project.tiles\n\n\tvar x_basis := defaulted_tiles.x_basis\n\tvar y_basis := defaulted_tiles.y_basis\n\tvar tile_mode := defaulted_tiles.mode\n\n\tvar x_range := (\n\t\trange(-1, 2) if tile_mode in [Tiles.MODE.X_AXIS, Tiles.MODE.BOTH] else range(0, 1)\n\t)\n\tvar y_range := (\n\t\trange(-1, 2) if tile_mode in [Tiles.MODE.Y_AXIS, Tiles.MODE.BOTH] else range(0, 1)\n\t)\n\tvar positions: Array[Vector2i] = []\n\tfor r in y_range:\n\t\tfor c in x_range:\n\t\t\tif not draw_center and r == 0 and c == 0:\n\t\t\t\tcontinue\n\t\t\tvar pos: Vector2i = r * y_basis + c * x_basis\n\t\t\tpositions.append(pos)\n\treturn positions\n"
  },
  {
    "path": "src/UI/Canvas/TileMode.gd.uid",
    "content": "uid://c6o3x53fp0qcj\n"
  },
  {
    "path": "src/UI/Canvas/TileModeIndices.gd",
    "content": "extends Node2D\n\nconst FONT_SIZE := 16\n\n\nfunc _input(event: InputEvent) -> void:\n\tif event.is_action(\"ctrl\"):\n\t\tqueue_redraw()\n\n\nfunc _draw() -> void:\n\tvar current_cel := Global.current_project.get_current_cel()\n\tif current_cel is CelTileMap and Input.is_action_pressed(\"ctrl\"):\n\t\tvar tilemap_cel := current_cel as CelTileMap\n\t\tvar tile_size := tilemap_cel.get_tile_size()\n\t\tvar min_axis := mini(tilemap_cel.get_tile_size().x, tilemap_cel.get_tile_size().y)\n\t\tvar scale_factor := min_axis / 32.0\n\t\tdraw_set_transform(position, rotation, Vector2(scale_factor, scale_factor))\n\t\tvar font := Themes.get_font()\n\t\tfor cell_coords: Vector2i in tilemap_cel.cells:\n\t\t\tvar cell := tilemap_cel.get_cell_at(cell_coords)\n\t\t\tif cell.index == 0:\n\t\t\t\tcontinue\n\t\t\tvar text := cell.to_string()\n\t\t\tvar pos := tilemap_cel.get_pixel_coords(cell_coords)\n\t\t\tif Global.mirror_view:\n\t\t\t\tpos.x = Global.current_project.size.x - pos.x - tilemap_cel.get_tile_size().x\n\t\t\tpos.y += tile_size.y - font.get_ascent(FONT_SIZE * 0.5) * scale_factor\n\t\t\tdraw_string(\n\t\t\t\tfont,\n\t\t\t\tpos / scale_factor,\n\t\t\t\ttext,\n\t\t\t\tHORIZONTAL_ALIGNMENT_CENTER,\n\t\t\t\ttile_size.x / scale_factor,\n\t\t\t\tFONT_SIZE\n\t\t\t)\n\tdraw_set_transform(position, rotation, scale)\n"
  },
  {
    "path": "src/UI/Canvas/TileModeIndices.gd.uid",
    "content": "uid://w5recpwdrsat\n"
  },
  {
    "path": "src/UI/Canvas/TransformationHandles.gd",
    "content": "class_name TransformationHandles\nextends Node2D\n\nsignal preview_transform_changed\n\nconst HANDLE_RADIUS := 1.0\nconst RS_HANDLE_DISTANCE := 2\nconst KEY_MOVE_ACTION_NAMES: PackedStringArray = [&\"ui_up\", &\"ui_down\", &\"ui_left\", &\"ui_right\"]\n\nvar currently_transforming := false\nvar arrow_key_move := false\nvar only_transforms_selection := false\nvar transformed_selection_map: SelectionMap:\n\tset(value):\n\t\ttransformed_selection_map = value\n\t\tif is_instance_valid(transformed_selection_map):\n\t\t\tpivot = transformed_selection_map.get_size() / 2\n\t\telse:\n\t\t\t_set_default_cursor()\n\t\tset_process_input(is_instance_valid(transformed_selection_map))\n\t\tqueue_redraw()\nvar transformed_image := Image.new()\nvar pre_transformed_image := Image.new()\nvar pre_transform_selection_offset: Vector2\nvar pre_transform_tilemap_cells: Array[Array]\nvar image_texture := ImageTexture.new()\n\n## Preview transform, not yet applied to the image.\nvar preview_transform := Transform2D():\n\tset(value):\n\t\tpreview_transform = clamp_transform_image_space(value, pre_transformed_image.get_size())\n\t\tpreview_transform_changed.emit()\n\nvar original_selection_transform := Transform2D()\nvar transformation_algorithm := 0:\n\tset(value):\n\t\ttransformation_algorithm = value\n\t\tpreview_transform_changed.emit()\n\n## Tracking handles\nvar active_handle: TransformHandle:\n\tset(value):\n\t\tactive_handle = value\n\t\tGlobal.can_draw = not is_instance_valid(active_handle)\n\nvar handles: Array[TransformHandle] = [\n\tTransformHandle.new(TransformHandle.Type.PIVOT),\n\tTransformHandle.new(TransformHandle.Type.SCALE, Vector2(0, 0)),  # Top left\n\tTransformHandle.new(TransformHandle.Type.SCALE, Vector2(0.5, 0)),  # Center top\n\tTransformHandle.new(TransformHandle.Type.SCALE, Vector2(1, 0)),  # Top right\n\tTransformHandle.new(TransformHandle.Type.SCALE, Vector2(1, 0.5)),  # Center right\n\tTransformHandle.new(TransformHandle.Type.SCALE, Vector2(1, 1)),  # Bottom right\n\tTransformHandle.new(TransformHandle.Type.SCALE, Vector2(0.5, 1)),  # Center bottom\n\tTransformHandle.new(TransformHandle.Type.SCALE, Vector2(0, 1)),  # Bottom left\n\tTransformHandle.new(TransformHandle.Type.SCALE, Vector2(0, 0.5)),  # Center left\n\tTransformHandle.new(TransformHandle.Type.ROTATE, Vector2(0, 0)),  # Top left\n\tTransformHandle.new(TransformHandle.Type.ROTATE, Vector2(1, 0)),  # Top right\n\tTransformHandle.new(TransformHandle.Type.ROTATE, Vector2(1, 1)),  # Bottom right\n\tTransformHandle.new(TransformHandle.Type.ROTATE, Vector2(0, 1)),  # Bottom left\n\tTransformHandle.new(TransformHandle.Type.SKEW, Vector2(0.5, 0)),  # Center top\n\tTransformHandle.new(TransformHandle.Type.SKEW, Vector2(1, 0.5)),  # Center right\n\tTransformHandle.new(TransformHandle.Type.SKEW, Vector2(0.5, 1)),  # Center bottom\n\tTransformHandle.new(TransformHandle.Type.SKEW, Vector2(0, 0.5))  # Center left\n]\nvar drag_start: Vector2\nvar start_transform := Transform2D()\n\n## The transformation's pivot. By default it is set to the center of the image.\nvar pivot := Vector2.ZERO:\n\tset(value):\n\t\tpivot = value\n\t\tif is_instance_valid(transformed_selection_map):\n\t\t\tvar image_size := transformed_selection_map.get_size() as Vector2\n\t\t\thandles[0].pos = pivot / image_size\n\n@onready var selection_node := get_parent() as SelectionNode\n@onready var canvas := get_parent().get_parent() as Canvas\n\n\nclass TransformHandle:\n\tenum Type { SCALE, ROTATE, SKEW, PIVOT }\n\n\tvar type := Type.SCALE\n\tvar pos := Vector2(0.5, 0.5)\n\n\tfunc _init(_type: Type, _pos := Vector2(0.5, 0.5)) -> void:\n\t\ttype = _type\n\t\tpos = _pos\n\n\tfunc get_anchor() -> Vector2:\n\t\tvar anchor := pos\n\t\tif pos.x == 0:\n\t\t\tanchor.x = 1\n\t\telif pos.x == 1:\n\t\t\tanchor.x = 0\n\t\tif pos.y == 0:\n\t\t\tanchor.y = 1\n\t\telif pos.y == 1:\n\t\t\tanchor.y = 0\n\t\treturn anchor\n\n\tfunc get_direction() -> Vector2:\n\t\treturn pos * 2 - Vector2.ONE\n\n\nfunc _ready() -> void:\n\tselection_node.transformation_confirmed.connect(func(): active_handle = null)\n\tselection_node.transformation_canceled.connect(func(): active_handle = null)\n\tpreview_transform_changed.connect(_on_preview_transform_changed)\n\tGlobal.camera.zoom_changed.connect(queue_redraw)\n\tset_process_input(false)\n\n\nfunc _input(event: InputEvent) -> void:\n\tvar project := Global.current_project\n\tif not project.layers[project.current_layer].can_layer_get_drawn():\n\t\treturn\n\tif event is InputEventKey:\n\t\t_move_with_arrow_keys(event)\n\tvar mouse_pos := get_local_mouse_position()\n\tif Global.mirror_view:\n\t\tmouse_pos.x = Global.current_project.size.x - mouse_pos.x\n\tvar hovered_handle := _get_hovered_handle(mouse_pos)\n\tif is_instance_valid(hovered_handle):\n\t\tif hovered_handle.type == TransformHandle.Type.PIVOT:\n\t\t\tInput.set_default_cursor_shape(Input.CURSOR_MOVE)\n\t\telif hovered_handle.type == TransformHandle.Type.ROTATE:\n\t\t\tInput.set_default_cursor_shape(Input.CURSOR_POINTING_HAND)\n\t\telse:\n\t\t\tvar cursor_shape := Input.CURSOR_POINTING_HAND\n\t\t\tvar local_direction := hovered_handle.get_direction().normalized()\n\t\t\tvar global_direction := preview_transform.basis_xform(local_direction.normalized())\n\t\t\tvar angle := global_direction.angle()\n\t\t\tif hovered_handle.type == TransformHandle.Type.SKEW:\n\t\t\t\tangle += PI / 2\n\t\t\tcursor_shape = angle_to_cursor(angle)\n\t\t\tInput.set_default_cursor_shape(cursor_shape)\n\telse:\n\t\t_set_default_cursor()\n\tif event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT:\n\t\tif event.pressed:\n\t\t\t_handle_mouse_press(mouse_pos, hovered_handle)\n\t\telse:\n\t\t\tactive_handle = null\n\telif event is InputEventMouseMotion:\n\t\tif active_handle != null:\n\t\t\t_handle_mouse_drag(mouse_pos)\n\n\nfunc _draw() -> void:\n\tif not is_instance_valid(transformed_selection_map):\n\t\treturn\n\tvar zoom_value := Vector2.ONE / Global.camera.zoom * 10\n\tvar position_tmp := position\n\tvar position_top_left := position + get_transform_top_left()\n\tvar scale_tmp := scale\n\tif Global.mirror_view:\n\t\tposition_tmp.x = Global.current_project.size.x - position_tmp.x\n\t\tposition_top_left.x = Global.current_project.size.x - position_top_left.x\n\t\tscale_tmp.x = -1\n\tif is_instance_valid(transformed_image) and not transformed_image.is_empty():\n\t\tdraw_set_transform(position_top_left, rotation, scale_tmp)\n\t\tvar preview_color := Color(1, 1, 1, Global.transformation_preview_alpha)\n\t\tdraw_texture(image_texture, Vector2.ZERO, preview_color)\n\tdraw_set_transform(position_tmp, rotation, scale_tmp)\n\t# Draw handles\n\tfor handle in handles:\n\t\tvar pos := get_handle_position(handle)\n\t\tif handle.type == TransformHandle.Type.SCALE:\n\t\t\tdraw_rect(\n\t\t\t\t_circle_to_square(pos, HANDLE_RADIUS * zoom_value), Global.selection_border_color_2\n\t\t\t)\n\t\t\tdraw_rect(\n\t\t\t\t_circle_to_square(pos, (HANDLE_RADIUS - 0.3) * zoom_value),\n\t\t\t\tGlobal.selection_border_color_1\n\t\t\t)\n\t\telif handle.type == TransformHandle.Type.PIVOT:\n\t\t\tif is_rotated_or_skewed():\n\t\t\t\tvar final_size := HANDLE_RADIUS * zoom_value.x\n\t\t\t\tdraw_circle(pos, final_size, Color.WHITE, false)\n\t\t\t\tdraw_circle(pos, final_size * 0.25, Color.WHITE)\n\n\nfunc _move_with_arrow_keys(event: InputEvent) -> void:\n\tvar selection_tool_selected := false\n\tfor slot in Tools._slots.values():\n\t\tif slot.tool_node is BaseSelectionTool:\n\t\t\tselection_tool_selected = true\n\t\t\tbreak\n\tif !selection_tool_selected:\n\t\treturn\n\tif not Global.current_project.has_selection:\n\t\treturn\n\tif !Global.current_project.layers[Global.current_project.current_layer].can_layer_get_drawn():\n\t\treturn\n\tif _is_action_direction_pressed(event) and !arrow_key_move:\n\t\tarrow_key_move = true\n\t\tbegin_transform()\n\tif _is_action_direction_released(event) and arrow_key_move:\n\t\tarrow_key_move = false\n\n\tif _is_action_direction(event) and arrow_key_move:\n\t\tvar step := Vector2.ONE\n\t\tif Input.is_key_pressed(KEY_CTRL):\n\t\t\tstep = Global.grids[0].grid_size\n\t\tvar input := Input.get_vector(&\"ui_left\", &\"ui_right\", &\"ui_up\", &\"ui_down\")\n\t\tvar final_input := input.rotated(snappedf(Global.camera.camera_angle, PI / 2))\n\t\t# These checks are needed to fix a bug where the selection got stuck\n\t\t# to the canvas boundaries when they were 1px away from them\n\t\tif is_zero_approx(absf(final_input.x)):\n\t\t\tfinal_input.x = 0\n\t\tif is_zero_approx(absf(final_input.y)):\n\t\t\tfinal_input.y = 0\n\t\tvar final_direction := (final_input * step).round()\n\t\tif Tools.is_placing_tiles():\n\t\t\tvar tilemap_cel := Global.current_project.get_current_cel() as CelTileMap\n\t\t\tvar grid_size := tilemap_cel.get_tile_size()\n\t\t\tfinal_direction *= Vector2(grid_size)\n\t\tmove_transform(final_direction)\n\n\nfunc _get_hovered_handle(mouse_pos: Vector2) -> TransformHandle:\n\tvar zoom_value := Vector2.ONE / Global.camera.zoom * 10\n\tfor handle in handles:\n\t\tif handle.type == TransformHandle.Type.PIVOT and not is_rotated_or_skewed():\n\t\t\tcontinue\n\t\tvar total_radius := HANDLE_RADIUS * zoom_value.x\n\t\tif handle.type == TransformHandle.Type.ROTATE or handle.type == TransformHandle.Type.SKEW:\n\t\t\ttotal_radius *= 2\n\t\tif get_handle_position(handle).distance_to(mouse_pos) < total_radius:\n\t\t\treturn handle\n\treturn null\n\n\n## Begin dragging handle.\nfunc _handle_mouse_press(mouse_pos: Vector2, hovered_handle: TransformHandle) -> void:\n\tif hovered_handle != null:\n\t\tactive_handle = hovered_handle\n\t\tbegin_drag(mouse_pos)\n\n\n## Update [member preview_transform] based which handle we're dragging.\nfunc _handle_mouse_drag(mouse_pos: Vector2) -> void:\n\tvar delta := mouse_pos - drag_start\n\tmatch active_handle.type:\n\t\tTransformHandle.Type.SCALE:\n\t\t\tpreview_transform = resize_transform_handle(start_transform, active_handle, delta)\n\t\tTransformHandle.Type.ROTATE:\n\t\t\tpreview_transform = rotate_transform_handle(start_transform, mouse_pos)\n\t\tTransformHandle.Type.SKEW:\n\t\t\tpreview_transform = shear_transform_handle(start_transform, delta, active_handle)\n\t\tTransformHandle.Type.PIVOT:\n\t\t\thandle_pivot_drag(mouse_pos, start_transform)\n\tqueue_redraw()\n\n\n## Check if an event is a ui_up/down/left/right event pressed\nfunc _is_action_direction_pressed(event: InputEvent) -> bool:\n\tfor action in KEY_MOVE_ACTION_NAMES:\n\t\tif event.is_action_pressed(action, false, true):\n\t\t\treturn true\n\treturn false\n\n\n## Check if an event is a ui_up/down/left/right event\nfunc _is_action_direction(event: InputEvent) -> bool:\n\tfor action in KEY_MOVE_ACTION_NAMES:\n\t\tif event.is_action(action, true):\n\t\t\treturn true\n\treturn false\n\n\n## Check if an event is a ui_up/down/left/right event release\nfunc _is_action_direction_released(event: InputEvent) -> bool:\n\tfor action in KEY_MOVE_ACTION_NAMES:\n\t\tif event.is_action_released(action, true):\n\t\t\treturn true\n\treturn false\n\n\nfunc clamp_transform_image_space(\n\tt: Transform2D, image_size: Vector2, min_pixels := 1.0\n) -> Transform2D:\n\tvar bounds := DrawingAlgos.get_transformed_bounds(image_size, t)\n\tvar width := bounds.size.x\n\tvar height := bounds.size.y\n\n\tif width < min_pixels or height < min_pixels:\n\t\t# Compute scale correction in local space to ensure 1-pixel size\n\t\tvar scale_x := width < min_pixels and width != 0\n\t\tvar scale_y := height < min_pixels and height != 0\n\t\tvar sx := t.x.length()\n\t\tvar sy := t.y.length()\n\t\tif scale_x:\n\t\t\tsx = sx * (min_pixels / width)\n\t\tif scale_y:\n\t\t\tsy = sy * (min_pixels / height)\n\t\t# Re-apply scale preserving direction and orientation\n\t\tt.x = t.x.normalized() * sx\n\t\tt.y = t.y.normalized() * sy\n\n\treturn t\n\n\nfunc _on_preview_transform_changed() -> void:\n\tif not pre_transformed_image.is_empty():\n\t\ttransformed_image.copy_from(pre_transformed_image)\n\t\tvar bounds := DrawingAlgos.get_transformed_bounds(\n\t\t\ttransformed_selection_map.get_size(), preview_transform\n\t\t)\n\t\tif bounds.size.x == 0 or bounds.size.y == 0:\n\t\t\treturn\n\t\tif Tools.is_placing_tiles():\n\t\t\tfor cel in selection_node.get_selected_draw_cels():\n\t\t\t\tif cel is not CelTileMap:\n\t\t\t\t\tcontinue\n\t\t\t\tvar tilemap := cel as CelTileMap\n\t\t\t\tvar horizontal_size := bounds.size.x / tilemap.get_tile_size().x\n\t\t\t\tvar vertical_size := bounds.size.y / tilemap.get_tile_size().y\n\t\t\t\tvar selected_cells := tilemap.resize_selection(\n\t\t\t\t\tpre_transform_tilemap_cells, horizontal_size, vertical_size\n\t\t\t\t)\n\t\t\t\ttransformed_image.crop(bounds.size.x, bounds.size.y)\n\t\t\t\ttilemap.apply_resizing_to_image(transformed_image, selected_cells, bounds, false)\n\t\telse:\n\t\t\tbounds.position -= bounds.position\n\t\t\tbake_transform_to_image(transformed_image, bounds)\n\t\timage_texture.set_image(transformed_image)\n\n\nfunc _set_default_cursor() -> void:\n\tvar project := Global.current_project\n\tvar cursor := Input.CURSOR_ARROW\n\tif Global.cross_cursor:\n\t\tcursor = Input.CURSOR_CROSS\n\tvar layer: BaseLayer = project.layers[project.current_layer]\n\tif not layer.can_layer_get_drawn():\n\t\tcursor = Input.CURSOR_FORBIDDEN\n\n\tif DisplayServer.cursor_get_shape() != cursor:\n\t\tInput.set_default_cursor_shape(cursor)\n\n\nfunc _circle_to_square(center: Vector2, radius: Vector2) -> Rect2:\n\tvar rect := Rect2(center - radius / 2, radius)\n\treturn rect\n\n\nfunc is_rotated_or_skewed() -> bool:\n\treturn preview_transform.get_rotation() != 0 or preview_transform.get_skew() != 0\n\n\nfunc is_transforming_content() -> bool:\n\treturn currently_transforming\n\n\nfunc get_handle_position(handle: TransformHandle, t := preview_transform) -> Vector2:\n\tvar image_size := transformed_selection_map.get_size()\n\tvar local := Vector2(image_size.x * handle.pos.x, image_size.y * handle.pos.y)\n\tvar world_pos := t * local\n\tif handle.type == TransformHandle.Type.ROTATE or handle.type == TransformHandle.Type.SKEW:\n\t\tvar zoom_value := Vector2.ONE / Global.camera.zoom * 10\n\t\tvar handle_distance := RS_HANDLE_DISTANCE * zoom_value\n\t\t# Determine direction of offset from center\n\t\tvar rot_and_skew := DrawingAlgos.transform_remove_scale(t)\n\t\tvar offset := rot_and_skew.basis_xform(handle.get_direction() * handle_distance)\n\t\toffset = offset.normalized() * handle_distance\n\t\tworld_pos += offset\n\treturn world_pos\n\n\n## Apply an affine transform [param m] around [param pivot_local] onto [param t].\nfunc transform_around(t: Transform2D, m: Transform2D, pivot_local: Vector2) -> Transform2D:\n\tvar pivot_world := t * pivot_local\n\tvar to_origin := Transform2D(Vector2(1, 0), Vector2(0, 1), -pivot_world)\n\tvar back := Transform2D(Vector2(1, 0), Vector2(0, 1), pivot_world)\n\treturn back * m * to_origin * t\n\n\nfunc begin_drag(mouse_pos: Vector2) -> void:\n\tdrag_start = mouse_pos\n\tstart_transform = preview_transform\n\tbegin_transform()\n\n\nfunc move_transform(pos: Vector2) -> void:\n\tvar final_pos := pos\n\tif Tools.is_placing_tiles():\n\t\t# NOTE: we don't use offset here because the [param pos] is expected to already have\n\t\t# offsetted coordinates.\n\t\tvar grid_size := (Global.current_project.get_current_cel() as CelTileMap).get_tile_size()\n\t\tfinal_pos = Tools.snap_to_rectangular_grid_boundary(pos, grid_size, Vector2.ZERO)\n\tpreview_transform = preview_transform.translated(final_pos)\n\tqueue_redraw()\n\n\n## Called by the sliders in the selection tool options.\nfunc resize_transform(delta: Vector2) -> void:\n\tvar bottom_right_handle := handles[5]\n\tpreview_transform = resize_transform_handle(preview_transform, bottom_right_handle, delta)\n\tqueue_redraw()\n\n\n## Called by the sliders in the selection tool options.\nfunc rotate_transform(angle: float) -> void:\n\tif Tools.is_placing_tiles():\n\t\treturn\n\tvar delta_ang := angle - preview_transform.get_rotation()\n\tvar m := Transform2D().rotated(delta_ang)\n\tpreview_transform = transform_around(preview_transform, m, pivot)\n\tqueue_redraw()\n\n\n## Called by the sliders in the selection tool options.\nfunc shear_transform(angle: float) -> void:\n\tif Tools.is_placing_tiles():\n\t\treturn\n\tvar t_rotation := preview_transform.get_rotation()\n\tvar t_scale := preview_transform.get_scale()\n\tvar t_origin := preview_transform.origin\n\n\tpreview_transform = Transform2D(t_rotation, t_scale, angle, t_origin)\n\tqueue_redraw()\n\n\nfunc resize_transform_handle(\n\tt: Transform2D, handle: TransformHandle, delta: Vector2\n) -> Transform2D:\n\tif Tools.is_placing_tiles():\n\t\tvar tilemap := Global.current_project.get_current_cel() as CelTileMap\n\t\tif tilemap.get_tile_shape() != TileSet.TILE_SHAPE_SQUARE:\n\t\t\treturn t\n\t\tdrag_start = drag_start.snapped(tilemap.get_tile_size())\n\t\tdelta = delta.snapped(tilemap.get_tile_size())\n\tvar image_size := transformed_selection_map.get_size() as Vector2\n\t# Step 1: Convert drag to local space\n\tvar local_start := t.affine_inverse() * drag_start\n\tvar local_now := t.affine_inverse() * (drag_start + delta)\n\tvar local_delta := local_now - local_start\n\n\t# Step 2: Determine resize axis and direction\n\tvar scale_x := 1.0\n\tvar scale_y := 1.0\n\tvar anchor := handle.get_anchor()\n\tif anchor.x == 0:\n\t\tscale_x = (image_size.x + local_delta.x) / image_size.x\n\telif anchor.x == 1:\n\t\tscale_x = (image_size.x - local_delta.x) / image_size.x\n\tif anchor.y == 0:\n\t\tscale_y = (image_size.y + local_delta.y) / image_size.y\n\telif anchor.y == 1:\n\t\tscale_y = (image_size.y - local_delta.y) / image_size.y\n\n\tif Input.is_action_pressed(\"shape_center\"):\n\t\tanchor = Vector2(0.5, 0.5)\n\tif Input.is_action_pressed(\"shape_perfect\"):\n\t\tif anchor.x == 0 or anchor.x == 1:\n\t\t\tif anchor.y == 0.5:\n\t\t\t\tscale_y = absf(scale_x)\n\t\t\telse:\n\t\t\t\tscale_y = scale_x\n\t\telse:\n\t\t\tif anchor.x == 0.5:\n\t\t\t\tscale_x = absf(scale_y)\n\t\t\telse:\n\t\t\t\tscale_x = scale_y\n\t# Step 3: Build scaled basis vectors from original\n\tvar bx := t.x.normalized() * t.x.length() * scale_x\n\tvar by := t.y.normalized() * t.y.length() * scale_y\n\tvar new_t := Transform2D(bx, by, t.origin)\n\n\t# Step 4: Keep anchor in place\n\tvar local_anchor := anchor * image_size\n\tvar world_anchor_before := t * local_anchor\n\tvar world_anchor_after := new_t * local_anchor\n\tnew_t.origin += world_anchor_before - world_anchor_after\n\n\treturn new_t\n\n\n## Rotation around pivot based on initial drag.\nfunc rotate_transform_handle(t: Transform2D, mouse_pos: Vector2) -> Transform2D:\n\tif Tools.is_placing_tiles():\n\t\treturn t\n\t# Compute initial and current angles\n\tvar pivot_world := t * pivot\n\tvar start_vec := drag_start - pivot_world\n\tvar curr_vec := mouse_pos - pivot_world\n\tvar delta_ang := fposmod(curr_vec.angle() - start_vec.angle(), TAU)\n\tif Input.is_action_pressed(\"shape_perfect\"):\n\t\tdelta_ang = snappedf(delta_ang, PI / 8)\n\tvar m := Transform2D().rotated(delta_ang)\n\treturn transform_around(t, m, pivot)\n\n\nfunc shear_transform_handle(t: Transform2D, delta: Vector2, handle: TransformHandle) -> Transform2D:\n\tif Tools.is_placing_tiles():\n\t\treturn t\n\tvar image_size := transformed_selection_map.get_size() as Vector2\n\tvar handle_global_position := get_handle_position(handle, t)\n\tvar center := t * pivot\n\tvar handle_vector := (handle_global_position - center).normalized()\n\tvar handle_angle := rad_to_deg(fposmod(handle_vector.angle(), TAU))\n\tvar is_horizontal := true\n\tif in_range(handle_angle, 315, 45):\n\t\tis_horizontal = false\n\telif in_range(handle_angle, 45, 135):\n\t\tis_horizontal = true\n\telif in_range(handle_angle, 135, 225):\n\t\tis_horizontal = false\n\t\tdelta.y = -delta.y\n\telif in_range(handle_angle, 225, 315):\n\t\tis_horizontal = true\n\t\tdelta.x = -delta.x\n\n\tvar shear_matrix := Transform2D.IDENTITY\n\tif is_horizontal:\n\t\t# Slant Y axis based on X movement (horizontal shear)\n\t\tvar shear_amount := delta.x / image_size.x\n\t\tshear_matrix = Transform2D(Vector2(1, 0), Vector2(shear_amount, 1), Vector2())\n\telse:\n\t\t# Slant X axis based on Y movement (vertical shear)\n\t\tvar shear_amount := delta.y / image_size.y\n\t\tshear_matrix = Transform2D(Vector2(1, shear_amount), Vector2(0, 1), Vector2())\n\n\t# Apply the shear matrix in local space around pivot\n\treturn transform_around(t, shear_matrix, pivot)\n\n\nfunc handle_pivot_drag(mouse_pos: Vector2, t: Transform2D) -> void:\n\tvar local_mouse := t.affine_inverse() * mouse_pos\n\tpivot = local_mouse\n\n\n## Checks if [param angle] is between [param lower] and [param upper] degrees.\nfunc in_range(angle: float, lower: float, upper: float) -> bool:\n\tangle = fmod(angle, 360)\n\tlower = fmod(lower, 360)\n\tupper = fmod(upper, 360)\n\tif lower > upper:\n\t\treturn angle >= lower or angle <= upper\n\treturn angle > lower and angle < upper\n\n\nfunc angle_to_cursor(angle: float) -> Input.CursorShape:\n\tvar deg := fmod(rad_to_deg(angle) + 360.0, 360.0)\n\n\tif deg >= 337.5 or deg < 22.5:\n\t\treturn Input.CURSOR_HSIZE  # Right\n\tif deg < 67.5:\n\t\tif Global.mirror_view:\n\t\t\treturn Input.CURSOR_BDIAGSIZE\n\t\treturn Input.CURSOR_FDIAGSIZE  # Bottom-right\n\tif deg < 112.5:\n\t\treturn Input.CURSOR_VSIZE  # Down\n\tif deg < 157.5:\n\t\tif Global.mirror_view:\n\t\t\treturn Input.CURSOR_FDIAGSIZE\n\t\treturn Input.CURSOR_BDIAGSIZE  # Bottom-left\n\tif deg < 202.5:\n\t\treturn Input.CURSOR_HSIZE  # Left\n\tif deg < 247.5:\n\t\tif Global.mirror_view:\n\t\t\treturn Input.CURSOR_BDIAGSIZE\n\t\treturn Input.CURSOR_FDIAGSIZE  # Top-left\n\tif deg < 292.5:\n\t\treturn Input.CURSOR_VSIZE  # Up\n\tif deg < 337.5:\n\t\tif Global.mirror_view:\n\t\t\treturn Input.CURSOR_FDIAGSIZE\n\t\treturn Input.CURSOR_BDIAGSIZE  # Top-right\n\n\treturn Input.CURSOR_ARROW\n\n\nfunc set_selection(selection_map: SelectionMap, selection_rect: Rect2i) -> void:\n\tcurrently_transforming = false\n\ttransformed_selection_map = selection_map\n\tpre_transformed_image = Image.new()\n\ttransformed_image = Image.new()\n\tif is_instance_valid(transformed_selection_map):\n\t\tpreview_transform = Transform2D().translated(selection_rect.position)\n\telse:\n\t\tpreview_transform = Transform2D.IDENTITY\n\toriginal_selection_transform = preview_transform\n\tpre_transform_tilemap_cells.clear()\n\tqueue_redraw()\n\n\n## Called when a transformation begins to happen.\nfunc begin_transform(\n\timage: Image = null,\n\tproject := Global.current_project,\n\tforce_move_content := false,\n\tforce_move_selection_only := false\n) -> void:\n\tcurrently_transforming = true\n\tvar selection_only_action := Input.is_action_pressed(&\"transform_move_selection_only\", true)\n\tvar move_selection_only := selection_only_action or force_move_selection_only\n\tif move_selection_only and not force_move_content:\n\t\tif not only_transforms_selection:\n\t\t\tselection_node.undo_data = selection_node.get_undo_data(false)\n\t\t\tonly_transforms_selection = true\n\t\treturn\n\telse:\n\t\tif only_transforms_selection:\n\t\t\tselection_node.transform_content_confirm()\n\t\t\tonly_transforms_selection = false\n\tif not pre_transformed_image.is_empty():\n\t\treturn\n\tif is_instance_valid(image):\n\t\tpre_transformed_image = image\n\t\ttransformed_image.copy_from(pre_transformed_image)\n\t\timage_texture.set_image(transformed_image)\n\t\treturn\n\tselection_node.undo_data = selection_node.get_undo_data(true)\n\tvar map_copy := project.selection_map.return_cropped_copy(project, project.size)\n\tvar selection_rect := map_copy.get_used_rect()\n\tvar current_cel := project.get_current_cel()\n\tif current_cel is CelTileMap and Tools.is_placing_tiles():\n\t\tif current_cel.get_tile_shape() != TileSet.TILE_SHAPE_SQUARE:\n\t\t\treturn\n\t\tpre_transform_tilemap_cells = (current_cel as CelTileMap).get_selected_cells(\n\t\t\tproject.selection_map, selection_rect\n\t\t)\n\tvar blended_image := project.new_empty_image()\n\tDrawingAlgos.blend_layers(\n\t\tblended_image, project.frames[project.current_frame], Vector2i.ZERO, project, true\n\t)\n\tpre_transformed_image = Image.create(\n\t\tselection_rect.size.x, selection_rect.size.y, false, project.get_image_format()\n\t)\n\tpre_transformed_image.blit_rect_mask(blended_image, map_copy, selection_rect, Vector2i.ZERO)\n\timage_texture.set_image(pre_transformed_image)\n\tif pre_transformed_image.is_empty():\n\t\treturn\n\ttransformed_image.copy_from(pre_transformed_image)\n\tqueue_redraw()\n\t# Remove content from the cels\n\tvar clear_image := Image.create(\n\t\tpre_transformed_image.get_width(),\n\t\tpre_transformed_image.get_height(),\n\t\tpre_transformed_image.has_mipmaps(),\n\t\tpre_transformed_image.get_format()\n\t)\n\tfor cel in selection_node.get_selected_draw_cels():\n\t\tvar cel_image := cel.get_image()\n\t\tcel.transformed_content = selection_node.get_selected_image(cel_image)\n\t\tcel_image.blit_rect_mask(\n\t\t\tclear_image,\n\t\t\tcel.transformed_content,\n\t\t\tRect2i(Vector2i.ZERO, project.selection_map.get_size()),\n\t\t\tselection_rect.position\n\t\t)\n\tfor cel_index in project.selected_cels:\n\t\tcanvas.update_texture(cel_index[1])\n\n\nfunc reset_transform() -> void:\n\tcurrently_transforming = false\n\tpreview_transform = original_selection_transform\n\tif is_instance_valid(transformed_selection_map):\n\t\tpivot = transformed_selection_map.get_size() / 2\n\tpre_transformed_image = Image.new()\n\ttransformed_image = Image.new()\n\tpre_transform_tilemap_cells.clear()\n\tfor cel in selection_node.get_selected_draw_cels():\n\t\tcel.transformed_content = null\n\tqueue_redraw()\n\n\nfunc get_transform_top_left(size := transformed_selection_map.get_size()) -> Vector2:\n\tvar bounds := DrawingAlgos.get_transformed_bounds(size, preview_transform)\n\treturn bounds.position.ceil()\n\n\nfunc bake_transform_to_image(image: Image, used_rect := Rect2i()) -> void:\n\tif used_rect.size.x < 1:\n\t\tused_rect.size.x = 1\n\tif used_rect.size.y < 1:\n\t\tused_rect.size.y = 1\n\tDrawingAlgos.transform_image_with_viewport(\n\t\timage, preview_transform, pivot, transformation_algorithm, used_rect\n\t)\n\n\nfunc bake_transform_to_selection(map: SelectionMap, is_confirmed := false) -> void:\n\tvar bounds := DrawingAlgos.get_transformed_bounds(\n\t\ttransformed_selection_map.get_size(), preview_transform\n\t)\n\tif bounds.size.x == 0 or bounds.size.y == 0:\n\t\treturn\n\tvar transformation_origin := get_transform_top_left().max(Vector2.ZERO)\n\tif is_confirmed:\n\t\tvar position_top_left := position + get_transform_top_left()\n\t\ttransformation_origin = position_top_left\n\t\tmap.crop(Global.current_project.size.x, Global.current_project.size.y)\n\t\tGlobal.current_project.selection_offset = Vector2.ZERO\n\telse:\n\t\tmap.ensure_selection_fits(Global.current_project, bounds)\n\tbounds.position -= bounds.position\n\tvar transformed_selection := SelectionMap.new()\n\ttransformed_selection.copy_from(transformed_selection_map)\n\tbake_transform_to_image(transformed_selection, bounds)\n\tvar selection_size_rect := Rect2i(Vector2i.ZERO, transformed_selection.get_size())\n\tmap.blit_rect_custom(transformed_selection, selection_size_rect, transformation_origin)\n"
  },
  {
    "path": "src/UI/Canvas/TransformationHandles.gd.uid",
    "content": "uid://dtu2ddt5gojeb\n"
  },
  {
    "path": "src/UI/Canvas/color_index.gd",
    "content": "extends Node2D\n\nconst FONT_SIZE = 16\n\nvar users := 1\nvar enabled: bool = false:\n\tset(value):\n\t\tenabled = value\n\t\tqueue_redraw()\nvar text_server := TextServerManager.get_primary_interface()\n\n\nfunc _ready() -> void:\n\tGlobal.camera.zoom_changed.connect(queue_redraw)\n\n\nfunc _draw() -> void:\n\tif not enabled:\n\t\treturn\n\t# when we zoom out there is a visual issue that inverts the text\n\t# (kind of how you look through a magnifying glass)\n\t# so we should restrict the rendering distance of this preview.\n\tvar zoom_percentage := 100.0 * Global.camera.zoom.x\n\tif zoom_percentage < Global.pixel_grid_show_at_zoom:\n\t\treturn\n\tvar project = ExtensionsApi.project.current_project\n\tvar size: Vector2i = project.size\n\tvar cel: BaseCel = project.frames[project.current_frame].cels[project.current_layer]\n\tif not cel is PixelCel:\n\t\treturn\n\tvar index_image: Image = cel.image.indices_image\n\tif index_image.get_size() != size or not cel.image.is_indexed:\n\t\treturn\n\n\tvar font: Font = ExtensionsApi.theme.get_theme().default_font\n\tdraw_set_transform(position, rotation, Vector2(0.05, 0.05))\n\tfor x in range(size.x):\n\t\tfor y in range(size.y):\n\t\t\tvar index := index_image.get_pixel(x, y).r8\n\t\t\tif index == 0:\n\t\t\t\tcontinue\n\t\t\tvar pos := Vector2(x, y)\n\t\t\tif Global.mirror_view:\n\t\t\t\tpos.x = project.size.x - pos.x - 1\n\t\t\tpos = pos * 20 + Vector2.DOWN * 16\n\t\t\tvar font_size := FONT_SIZE if (index < 100) else int(FONT_SIZE / 1.5)\n\t\t\tdraw_string(\n\t\t\t\tfont,\n\t\t\t\tpos,\n\t\t\t\ttext_server.format_number(str(index)),\n\t\t\t\tHORIZONTAL_ALIGNMENT_LEFT,\n\t\t\t\t-1,\n\t\t\t\tfont_size\n\t\t\t)\n\tdraw_set_transform(position, rotation, scale)\n"
  },
  {
    "path": "src/UI/Canvas/color_index.gd.uid",
    "content": "uid://dfmjalcuvsqqf\n"
  },
  {
    "path": "src/UI/CanvasPreviewContainer/CanvasPreviewContainer.gd",
    "content": "extends PanelContainer\n\n@onready var preview_zoom_slider := $VBox/HBox/VBoxContainer/PreviewZoomSlider as VSlider\n@onready var canvas_preview := $\"%CanvasPreview\" as Node2D\n@onready var camera := $\"%CameraPreview\" as CanvasCamera\n@onready var play_button := $\"%PlayButton\" as Button\n@onready var start_frame := $\"%StartFrame\" as ValueSlider\n@onready var end_frame := $\"%EndFrame\" as ValueSlider\n\n\nfunc _ready() -> void:\n\tcamera.zoom_changed.connect(_zoom_changed)\n\n\nfunc _gui_input(event: InputEvent) -> void:\n\tvar checker: ColorRect = $VBox/HBox/PreviewViewportContainer/SubViewport/TransparentChecker\n\tif event is InputEventMouseButton:\n\t\tvar mouse_pos = checker.get_local_mouse_position()\n\t\tif (\n\t\t\tmouse_pos.x >= 0\n\t\t\tand mouse_pos.y >= 0\n\t\t\tand mouse_pos.x <= checker.size.x\n\t\t\tand mouse_pos.y <= checker.size.y\n\t\t):\n\t\t\tif event.double_click:\n\t\t\t\tif canvas_preview.mode == canvas_preview.Mode.SPRITESHEET:\n\t\t\t\t\tvar sprite_sheet_idx = canvas_preview.frame_index\n\t\t\t\t\tvar x: int = sprite_sheet_idx % canvas_preview.h_frames\n\t\t\t\t\tvar y: int = sprite_sheet_idx / canvas_preview.v_frames\n\t\t\t\t\tmouse_pos += Vector2(x, y) * checker.size\n\t\t\t\tGlobal.camera.offset = mouse_pos\n\n\nfunc _zoom_changed() -> void:\n\tpreview_zoom_slider.value = camera.zoom.x\n\n\nfunc _on_PreviewZoomSlider_value_changed(value: float) -> void:\n\tcamera.zoom = Vector2(value, value)\n\tcamera.update_transparent_checker_offset()\n\n\nfunc _on_PlayButton_toggled(button_pressed: bool) -> void:\n\tif button_pressed:\n\t\tif canvas_preview.mode == canvas_preview.Mode.TIMELINE:\n\t\t\tif Global.current_project.frames.size() <= 1:\n\t\t\t\tplay_button.button_pressed = false\n\t\t\t\treturn\n\t\telse:\n\t\t\tif start_frame.value == end_frame.value:\n\t\t\t\tplay_button.button_pressed = false\n\t\t\t\treturn\n\t\tcanvas_preview.animation_timer.start()\n\t\tGlobal.change_button_texturerect(play_button.get_child(0), \"pause.png\")\n\telse:\n\t\tcanvas_preview.animation_timer.stop()\n\t\tGlobal.change_button_texturerect(play_button.get_child(0), \"play.png\")\n\n\nfunc _on_OptionButton_item_selected(index: int) -> void:\n\tplay_button.button_pressed = false\n\tcanvas_preview.mode = index\n\tif index == 0:\n\t\t$VBox/Animation/VBoxContainer/Options.visible = false\n\t\tcanvas_preview.transparent_checker.fit_rect(\n\t\t\tRect2(Vector2.ZERO, Global.current_project.size)\n\t\t)\n\telse:\n\t\t$VBox/Animation/VBoxContainer/Options.visible = true\n\tcanvas_preview.queue_redraw()\n\n\nfunc _on_HFrames_value_changed(value: float) -> void:\n\tcanvas_preview.h_frames = value\n\tvar frames: int = canvas_preview.h_frames * canvas_preview.v_frames\n\tstart_frame.max_value = frames\n\tend_frame.max_value = frames\n\tcanvas_preview.queue_redraw()\n\n\nfunc _on_VFrames_value_changed(value: float) -> void:\n\tcanvas_preview.v_frames = value\n\tvar frames: int = canvas_preview.h_frames * canvas_preview.v_frames\n\tstart_frame.max_value = frames\n\tend_frame.max_value = frames\n\tcanvas_preview.queue_redraw()\n\n\nfunc _on_StartFrame_value_changed(value: float) -> void:\n\tcanvas_preview.frame_index = value - 1\n\tcanvas_preview.start_sprite_sheet_frame = value\n\tif end_frame.value < value:\n\t\tend_frame.value = value\n\tcanvas_preview.queue_redraw()\n\n\nfunc _on_EndFrame_value_changed(value: float) -> void:\n\tcanvas_preview.end_sprite_sheet_frame = value\n\tif start_frame.value > value:\n\t\tstart_frame.value = value\n\t\tcanvas_preview.frame_index = value - 1\n\tcanvas_preview.queue_redraw()\n\n\nfunc _on_PreviewViewportContainer_mouse_entered() -> void:\n\tcamera.set_process_input(true)\n\n\nfunc _on_PreviewViewportContainer_mouse_exited() -> void:\n\tcamera.set_process_input(false)\n"
  },
  {
    "path": "src/UI/CanvasPreviewContainer/CanvasPreviewContainer.gd.uid",
    "content": "uid://b6l0yorq5b46r\n"
  },
  {
    "path": "src/UI/CanvasPreviewContainer/CanvasPreviewContainer.tscn",
    "content": "[gd_scene format=3 uid=\"uid://ccsihk3yxwei5\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://3pmb60gpst7b\" path=\"res://src/UI/Nodes/TransparentChecker.tscn\" id=\"1\"]\n[ext_resource type=\"Shader\" uid=\"uid://c50kmfvf635kb\" path=\"res://src/Shaders/TransparentChecker.gdshader\" id=\"2\"]\n[ext_resource type=\"Script\" uid=\"uid://b6l0yorq5b46r\" path=\"res://src/UI/CanvasPreviewContainer/CanvasPreviewContainer.gd\" id=\"4\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://c546tskdu53j1\" path=\"res://src/UI/Canvas/CanvasPreview.tscn\" id=\"5\"]\n[ext_resource type=\"Script\" uid=\"uid://ctqrsfsbx4kwk\" path=\"res://src/UI/Canvas/CanvasCamera.gd\" id=\"5_ge2km\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://c7smxwfa8826j\" path=\"res://assets/graphics/timeline/play.png\" id=\"6\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"8\"]\n\n[sub_resource type=\"ShaderMaterial\" id=\"1\"]\nshader = ExtResource(\"2\")\nshader_parameter/size = 10.0\nshader_parameter/alpha = 1.0\nshader_parameter/color1 = Color(0.7, 0.7, 0.7, 1)\nshader_parameter/color2 = Color(1, 1, 1, 1)\nshader_parameter/offset = Vector2(0, 0)\nshader_parameter/scale = Vector2(0, 0)\nshader_parameter/rect_size = Vector2(0, 0)\nshader_parameter/follow_movement = false\nshader_parameter/follow_scale = false\n\n[node name=\"CanvasPreviewContainer\" type=\"PanelContainer\" unique_id=1665289064]\ncustom_minimum_size = Vector2(0, 110)\noffset_right = 328.0\noffset_bottom = 174.0\nscript = ExtResource(\"4\")\n\n[node name=\"VBox\" type=\"VBoxContainer\" parent=\".\" unique_id=449623774]\nlayout_mode = 2\n\n[node name=\"HBox\" type=\"HBoxContainer\" parent=\"VBox\" unique_id=359535911]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"VBox/HBox\" unique_id=1082567405]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"VBox/HBox/VBoxContainer\" unique_id=2123199402]\nlayout_mode = 2\nsize_flags_horizontal = 4\ntext = \"+\"\n\n[node name=\"PreviewZoomSlider\" type=\"VSlider\" parent=\"VBox/HBox/VBoxContainer\" unique_id=1185696676]\nlayout_mode = 2\nsize_flags_horizontal = 4\nsize_flags_vertical = 3\nmouse_default_cursor_shape = 2\nmin_value = 1.0\nmax_value = 5.0\nstep = 0.01\nvalue = 1.0\n\n[node name=\"Label2\" type=\"Label\" parent=\"VBox/HBox/VBoxContainer\" unique_id=745124252]\nlayout_mode = 2\nsize_flags_horizontal = 4\ntext = \"-\"\n\n[node name=\"PreviewViewportContainer\" type=\"SubViewportContainer\" parent=\"VBox/HBox\" unique_id=573890257]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\nstretch = true\n\n[node name=\"SubViewport\" type=\"SubViewport\" parent=\"VBox/HBox/PreviewViewportContainer\" unique_id=1001948000]\ntransparent_bg = true\nhandle_input_locally = false\ncanvas_item_default_texture_filter = 0\nsize = Vector2i(308, 139)\nrender_target_update_mode = 4\n\n[node name=\"TransparentChecker\" parent=\"VBox/HBox/PreviewViewportContainer/SubViewport\" unique_id=834267784 instance=ExtResource(\"1\")]\nmaterial = SubResource(\"1\")\n\n[node name=\"CanvasPreview\" parent=\"VBox/HBox/PreviewViewportContainer/SubViewport\" unique_id=2109276218 groups=[\"CanvasPreviews\"] instance=ExtResource(\"5\")]\nunique_name_in_owner = true\n\n[node name=\"CameraPreview\" type=\"Node2D\" parent=\"VBox/HBox/PreviewViewportContainer/SubViewport\" unique_id=177284600 groups=[\"CanvasCameras\"]]\nunique_name_in_owner = true\nscript = ExtResource(\"5_ge2km\")\nindex = 2\n\n[node name=\"Animation\" type=\"HBoxContainer\" parent=\"VBox\" unique_id=1328469717]\nlayout_mode = 2\n\n[node name=\"PlayButton\" type=\"Button\" parent=\"VBox/Animation\" unique_id=1578705779 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(20, 20)\nlayout_mode = 2\nsize_flags_vertical = 4\nmouse_default_cursor_shape = 2\ntoggle_mode = true\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"VBox/Animation/PlayButton\" unique_id=514261216]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -3.5\noffset_top = -6.0\noffset_right = 3.5\noffset_bottom = 6.0\nmouse_default_cursor_shape = 2\ntexture = ExtResource(\"6\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"VBox/Animation\" unique_id=524830466]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"Mode\" type=\"HBoxContainer\" parent=\"VBox/Animation/VBoxContainer\" unique_id=2086290509]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"VBox/Animation/VBoxContainer/Mode\" unique_id=1920647195]\nlayout_mode = 2\ntext = \"Animation mode:\"\n\n[node name=\"OptionButton\" type=\"OptionButton\" parent=\"VBox/Animation/VBoxContainer/Mode\" unique_id=646642218]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nclip_text = true\nselected = 0\nitem_count = 2\npopup/item_0/text = \"All frames\"\npopup/item_0/id = 0\npopup/item_1/text = \"Current frame as spritesheet\"\npopup/item_1/id = 1\n\n[node name=\"Options\" type=\"FoldableContainer\" parent=\"VBox/Animation/VBoxContainer\" unique_id=968849488]\nvisible = false\nlayout_mode = 2\ntheme_type_variation = &\"CollapsibleContainer\"\nfolded = true\ntitle = \"Spritesheet options\"\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"VBox/Animation/VBoxContainer/Options\" unique_id=1886995117]\nvisible = false\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"HFrames\" type=\"TextureProgressBar\" parent=\"VBox/Animation/VBoxContainer/Options/GridContainer\" unique_id=926775710]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nvalue = 1.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"8\")\nprefix = \"Horizontal frames:\"\n\n[node name=\"VFrames\" type=\"TextureProgressBar\" parent=\"VBox/Animation/VBoxContainer/Options/GridContainer\" unique_id=393251188]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nvalue = 1.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"8\")\nprefix = \"Vertical frames:\"\n\n[node name=\"StartFrame\" type=\"TextureProgressBar\" parent=\"VBox/Animation/VBoxContainer/Options/GridContainer\" unique_id=1427742430]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nmax_value = 1.0\nvalue = 1.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"8\")\nprefix = \"Start frame:\"\n\n[node name=\"EndFrame\" type=\"TextureProgressBar\" parent=\"VBox/Animation/VBoxContainer/Options/GridContainer\" unique_id=1405399283]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nmax_value = 1.0\nvalue = 1.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"8\")\nprefix = \"End frame:\"\n\n[connection signal=\"value_changed\" from=\"VBox/HBox/VBoxContainer/PreviewZoomSlider\" to=\".\" method=\"_on_PreviewZoomSlider_value_changed\"]\n[connection signal=\"mouse_entered\" from=\"VBox/HBox/PreviewViewportContainer\" to=\".\" method=\"_on_PreviewViewportContainer_mouse_entered\"]\n[connection signal=\"mouse_exited\" from=\"VBox/HBox/PreviewViewportContainer\" to=\".\" method=\"_on_PreviewViewportContainer_mouse_exited\"]\n[connection signal=\"toggled\" from=\"VBox/Animation/PlayButton\" to=\".\" method=\"_on_PlayButton_toggled\"]\n[connection signal=\"item_selected\" from=\"VBox/Animation/VBoxContainer/Mode/OptionButton\" to=\".\" method=\"_on_OptionButton_item_selected\"]\n[connection signal=\"value_changed\" from=\"VBox/Animation/VBoxContainer/Options/GridContainer/HFrames\" to=\".\" method=\"_on_HFrames_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBox/Animation/VBoxContainer/Options/GridContainer/VFrames\" to=\".\" method=\"_on_VFrames_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBox/Animation/VBoxContainer/Options/GridContainer/StartFrame\" to=\".\" method=\"_on_StartFrame_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBox/Animation/VBoxContainer/Options/GridContainer/EndFrame\" to=\".\" method=\"_on_EndFrame_value_changed\"]\n"
  },
  {
    "path": "src/UI/ColorPickers/ColorPicker.gd",
    "content": "extends Container\n\nconst VALUE_ARROW := preload(\"res://assets/graphics/misc/value_arrow_right.svg\")\nconst VALUE_ARROW_EXPANDED := preload(\"res://assets/graphics/misc/value_arrow.svg\")\n\n## The HBoxContainer parent of the picker shapes.\nvar shapes_container: HBoxContainer\n## The internal control node of the HSV Rectangle of the [ColorPicker] node.\nvar hsv_rectangle: Control\n## The internal control node of the HSV Wheel of the [ColorPicker] node.\nvar hsv_wheel: Control\n## The internal control node of the VHS Circle of the [ColorPicker] node.\nvar vhs_circle: Control\n## The internal control node of OKHSL VHS Circle of the [ColorPicker] node.\nvar okhsl_circle: Control\n## The internal control node of the OK HS Rectangle of the [ColorPicker] node.\nvar ok_hs_rectangle: Control\n## The internal control node of the OK HL Rectangle of the [ColorPicker] node.\nvar ok_hl_rectangle: Control\n## The internal swatches button of the [ColorPicker] node.\n## Used to ensure that swatches are always invisible.\nvar swatches_button: HBoxContainer\n## The internal container for the color sliders of the [ColorPicker] node.\nvar color_slider_types_hbox: HBoxContainer\nvar color_sliders_grid: GridContainer\nvar _skip_color_picker_update := false\n\n@onready var color_picker := %ColorPicker as ColorPicker\n@onready var color_buttons := %ColorButtons as HBoxContainer\n@onready var left_color_rect := %LeftColorRect as ColorRect\n@onready var right_color_rect := %RightColorRect as ColorRect\n@onready var average_color := %AverageColor as ColorRect\n@onready var expand_button: Button = $ScrollContainer/VerticalContainer/ExpandButton\n\n@onready\nvar _mm_change_hue := Keychain.actions[&\"mm_color_change_hue\"] as Keychain.MouseMovementInputAction\n@onready var _mm_change_sat := (\n\tKeychain.actions[&\"mm_color_change_saturation\"] as Keychain.MouseMovementInputAction\n)\n@onready var _mm_change_value := (\n\tKeychain.actions[&\"mm_color_change_value\"] as Keychain.MouseMovementInputAction\n)\n@onready var _mm_change_alpha := (\n\tKeychain.actions[&\"mm_color_change_alpha\"] as Keychain.MouseMovementInputAction\n)\n\n\nfunc _ready() -> void:\n\tTools.options_reset.connect(reset_options)\n\tTools.color_changed.connect(update_color)\n\t_average(left_color_rect.color, right_color_rect.color)\n\tcolor_picker.color_mode = Global.config_cache.get_value(\n\t\t\"color_picker\", \"color_mode\", ColorPicker.MODE_RGB\n\t)\n\tcolor_picker.picker_shape = Global.config_cache.get_value(\n\t\t\"color_picker\", \"picker_shape\", ColorPicker.SHAPE_HSV_RECTANGLE\n\t)\n\t# Make changes to the UI of the color picker by modifying its internal children\n\tawait get_tree().process_frame\n\t# The MarginContainer that contains all of the color picker nodes.\n\tvar picker_margin_container := color_picker.get_child(0, true) as MarginContainer\n\tpicker_margin_container.size_flags_vertical = Control.SIZE_EXPAND_FILL\n\tvar picker_vbox_container := picker_margin_container.get_child(0, true) as VBoxContainer\n\n\tshapes_container = picker_vbox_container.get_child(0, true)\n\tshapes_container.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\tshapes_container.size_flags_vertical = Control.SIZE_EXPAND_FILL\n\thsv_rectangle = shapes_container.get_child(0, true) as Control\n\thsv_rectangle.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\t# The HBoxContainer of the screen color picker, the color preview rectangle and the\n\t# button that lets users change the picker shape. It is visible because\n\t# color_picker.sampler_visible is set to true.\n\t# We are hiding the color preview rectangle, adding the hex LineEdit, the\n\t# left/right color buttons and the color switch, default and average buttons.\n\tvar sampler_cont := picker_vbox_container.get_child(1, true) as HBoxContainer\n\t# The color preview rectangle that we're hiding.\n\tvar color_texture_rect := sampler_cont.get_child(1, true) as TextureRect\n\tcolor_texture_rect.visible = false\n\tvar shape_menu_button := sampler_cont.get_child(2, true) as MenuButton\n\tvar shape_popup_menu := shape_menu_button.get_popup()\n\tshape_popup_menu.id_pressed.connect(_on_shape_popup_menu_id_pressed)\n\t# The HBoxContainer where we get the hex LineEdit node from, and moving it to sampler_cont\n\tvar hex_cont := picker_vbox_container.get_child(4, true) as Container\n\tvar hex_edit := hex_cont.get_child(2, true)\n\thex_cont.remove_child(hex_edit)\n\tsampler_cont.add_child(hex_edit)\n\tsampler_cont.move_child(hex_edit, 1)\n\t# Move the color buttons (left, right, switch, default, average) on the sampler container\n\tcolor_buttons.get_parent().remove_child(color_buttons)\n\tsampler_cont.add_child(color_buttons)\n\tsampler_cont.move_child(color_buttons, 0)\n\n\tcolor_slider_types_hbox = picker_vbox_container.get_child(2, true) as HBoxContainer\n\tcolor_slider_types_hbox.visible = false\n\tcolor_sliders_grid = picker_vbox_container.get_child(3, true) as GridContainer\n\tcolor_sliders_grid.visible = false\n\tswatches_button = picker_vbox_container.get_child(5, true).get_child(0, true) as HBoxContainer\n\tswatches_button.visible = false\n\t# The GridContainer that contains the swatch buttons. These are not visible in our case\n\t# but for some reason its h_separation needs to be set to a value larger than 4,\n\t# otherwise a weird bug occurs with the Recent Colors where, adding new colors\n\t# increases the size of the color buttons.\n\tvar presets_container := (\n\t\tpicker_vbox_container.get_child(5, true).get_child(2, true) as GridContainer\n\t)\n\tpresets_container.add_theme_constant_override(\"h_separation\", 5)\n\t# Move the expand button above the RGB, HSV etc buttons\n\texpand_button.get_parent().remove_child(expand_button)\n\tpicker_vbox_container.add_child(expand_button)\n\tpicker_vbox_container.move_child(expand_button, 2)\n\n\texpand_button.button_pressed = Global.config_cache.get_value(\n\t\t\"color_picker\", \"is_expanded\", false\n\t)\n\t_on_shape_popup_menu_id_pressed(color_picker.picker_shape)\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_TRANSLATION_CHANGED and is_instance_valid(left_color_rect):\n\t\t_average(left_color_rect.color, right_color_rect.color)\n\n\nfunc _input(event: InputEvent) -> void:\n\tvar hue_value := _mm_change_hue.get_action_distance(event)\n\tvar sat_value := _mm_change_sat.get_action_distance(event)\n\tvar value_value := _mm_change_value.get_action_distance(event)\n\tvar alpha_value := _mm_change_alpha.get_action_distance(event)\n\tif (\n\t\tis_zero_approx(hue_value)\n\t\tand is_zero_approx(sat_value)\n\t\tand is_zero_approx(value_value)\n\t\tand is_zero_approx(alpha_value)\n\t):\n\t\treturn\n\tvar c: Color = Tools._slots[Tools.picking_color_for].color\n\tc.h += hue_value\n\tc.s += sat_value\n\tc.v += value_value\n\tc.a += alpha_value\n\tTools.assign_color(c, Tools.picking_color_for, false)\n\n\nfunc _on_color_picker_color_changed(color: Color) -> void:\n\t# Due to the decimal nature of the color values, some values get rounded off\n\t# unintentionally before entering this method.\n\t# Even though the decimal values change, the HTML code remains the same after the change.\n\t# So we're using this trick to convert the values back to how they are shown in\n\t# the color picker's UI.\n\tcolor = Color(color.to_html())\n\t_skip_color_picker_update = true\n\t# This was requested by Issue #54 on GitHub\n\t# Do it here instead of in Tools.assign_color in order to ensure that the\n\t# color picker's color value changes.\n\tvar c: Color = Tools._slots[Tools.picking_color_for].color\n\tif color.a == 0:\n\t\tif color.r != c.r or color.g != c.g or color.b != c.b:\n\t\t\tcolor.a = 1\n\t\t\tcolor_picker.color.a = 1\n\tTools.assign_color(color, Tools.picking_color_for, false)\n\n\nfunc _on_shape_popup_menu_id_pressed(id: ColorPicker.PickerShapeType) -> void:\n\tGlobal.config_cache.set_value(\"color_picker\", \"picker_shape\", color_picker.picker_shape)\n\t# All of this is needed so that the shape controls scale well when resized.\n\t# The internal AspectRatioContainer was removed in Godot 4.5 so we have to add our own\n\t# for the non-rectangular shapes.\n\t_hide_shape_controls()\n\tif id == ColorPicker.SHAPE_HSV_WHEEL:\n\t\tif is_instance_valid(hsv_wheel):\n\t\t\thsv_wheel.get_parent().visible = true\n\t\telse:\n\t\t\thsv_wheel = shapes_container.get_child(-1, true)\n\t\t\t_modify_color_shapes(hsv_wheel, false)\n\telif id == ColorPicker.SHAPE_VHS_CIRCLE:\n\t\tif is_instance_valid(vhs_circle):\n\t\t\tvhs_circle.get_parent().visible = true\n\t\telse:\n\t\t\tvhs_circle = shapes_container.get_child(-2, true)\n\t\t\t_modify_color_shapes(vhs_circle, false)\n\telif id == ColorPicker.SHAPE_OKHSL_CIRCLE:\n\t\tif is_instance_valid(okhsl_circle):\n\t\t\tokhsl_circle.get_parent().visible = true\n\t\telse:\n\t\t\tokhsl_circle = shapes_container.get_child(-2, true)\n\t\t\t_modify_color_shapes(okhsl_circle, false)\n\telif id == ColorPicker.SHAPE_OK_HS_RECTANGLE and not is_instance_valid(ok_hs_rectangle):\n\t\tok_hs_rectangle = shapes_container.get_child(-2, true)\n\t\t_modify_color_shapes(ok_hs_rectangle, true)\n\telif id == ColorPicker.SHAPE_OK_HL_RECTANGLE and not is_instance_valid(ok_hl_rectangle):\n\t\tok_hl_rectangle = shapes_container.get_child(-2, true)\n\t\t_modify_color_shapes(ok_hl_rectangle, true)\n\n\nfunc _modify_color_shapes(node: Control, rectangle: bool) -> void:\n\tnode.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\tif not rectangle:\n\t\tvar aspect_ratio_container := AspectRatioContainer.new()\n\t\taspect_ratio_container.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\t\taspect_ratio_container.size_flags_vertical = Control.SIZE_EXPAND_FILL\n\t\tvar node_index := node.get_index(true)\n\t\tshapes_container.remove_child(node)\n\t\taspect_ratio_container.add_child(node)\n\t\tshapes_container.add_child(aspect_ratio_container)\n\t\tshapes_container.move_child(aspect_ratio_container, node_index)\n\n\nfunc _hide_shape_controls() -> void:\n\tif is_instance_valid(hsv_wheel):\n\t\thsv_wheel.get_parent().visible = false\n\tif is_instance_valid(vhs_circle):\n\t\tvhs_circle.get_parent().visible = false\n\tif is_instance_valid(okhsl_circle):\n\t\tokhsl_circle.get_parent().visible = false\n\n\nfunc _on_left_color_button_toggled(toggled_on: bool) -> void:\n\tif toggled_on:\n\t\tTools.picking_color_for = MOUSE_BUTTON_LEFT\n\t\tcolor_picker.color = left_color_rect.color\n\telse:\n\t\tTools.picking_color_for = MOUSE_BUTTON_RIGHT\n\t\tcolor_picker.color = right_color_rect.color\n\t_average(left_color_rect.color, right_color_rect.color)\n\n\nfunc reset_options() -> void:\n\tcolor_picker.color_mode = ColorPicker.MODE_RGB\n\tcolor_picker.picker_shape = ColorPicker.SHAPE_HSV_RECTANGLE\n\texpand_button.button_pressed = false\n\n\nfunc update_color(color_info: Dictionary, button: int) -> void:\n\tvar color = color_info.get(\"color\", Color.WHITE)\n\tif Tools.picking_color_for == button and not _skip_color_picker_update:\n\t\tcolor_picker.color = color\n\tif button == MOUSE_BUTTON_RIGHT:\n\t\tright_color_rect.color = color\n\telse:\n\t\tleft_color_rect.color = color\n\t_average(left_color_rect.color, right_color_rect.color)\n\tGlobal.config_cache.set_value(\"color_picker\", \"color_mode\", color_picker.color_mode)\n\tGlobal.config_cache.set_value(\"color_picker\", \"picker_shape\", color_picker.picker_shape)\n\t_skip_color_picker_update = false\n\n\nfunc _on_ColorSwitch_pressed() -> void:\n\tTools.swap_color()\n\n\nfunc _on_ColorDefaults_pressed() -> void:\n\tTools.default_color()\n\n\nfunc _on_expand_button_toggled(toggled_on: bool) -> void:\n\tif toggled_on:\n\t\texpand_button.icon = VALUE_ARROW_EXPANDED\n\telse:\n\t\texpand_button.icon = VALUE_ARROW\n\tcolor_picker.color_modes_visible = toggled_on\n\tcolor_picker.sliders_visible = toggled_on\n\tcolor_picker.presets_visible = toggled_on\n\tif is_instance_valid(swatches_button):\n\t\tswatches_button.visible = false\n\tif is_instance_valid(color_sliders_grid):\n\t\tcolor_slider_types_hbox.visible = toggled_on\n\t\tcolor_sliders_grid.visible = toggled_on\n\tGlobal.config_cache.set_value(\"color_picker\", \"is_expanded\", toggled_on)\n\n\nfunc _average(color_1: Color, color_2: Color) -> void:\n\tvar average := (color_1 + color_2) / 2.0\n\tvar copy_button := average_color.get_parent() as Control\n\tcopy_button.tooltip_text = str(tr(\"Average Color:\"), \"\\n#\", average.to_html())\n\taverage_color.color = average\n\n\nfunc _on_CopyAverage_button_down() -> void:\n\taverage_color.visible = false\n\n\nfunc _on_CopyAverage_button_up() -> void:\n\taverage_color.visible = true\n\n\nfunc _on_copy_average_gui_input(event: InputEvent) -> void:\n\tif event.is_action_released(&\"left_mouse\"):\n\t\tTools.assign_color(average_color.color, MOUSE_BUTTON_LEFT)\n\telif event.is_action_released(&\"right_mouse\"):\n\t\tTools.assign_color(average_color.color, MOUSE_BUTTON_RIGHT)\n"
  },
  {
    "path": "src/UI/ColorPickers/ColorPicker.gd.uid",
    "content": "uid://y2yilvjc63c\n"
  },
  {
    "path": "src/UI/ColorPickers/ColorPicker.tscn",
    "content": "[gd_scene format=3 uid=\"uid://c3vcvhh4d8hd7\"]\n\n[ext_resource type=\"Script\" uid=\"uid://y2yilvjc63c\" path=\"res://src/UI/ColorPickers/ColorPicker.gd\" id=\"1_r8ot0\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://d0v821l01w7go\" path=\"res://assets/graphics/misc/color_switch.png\" id=\"2_ojj3i\"]\n[ext_resource type=\"Shader\" uid=\"uid://c50kmfvf635kb\" path=\"res://src/Shaders/TransparentChecker.gdshader\" id=\"3_u6ehu\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://3pmb60gpst7b\" path=\"res://src/UI/Nodes/TransparentChecker.tscn\" id=\"3_vjkb0\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://cefhafnbc8upf\" path=\"res://assets/graphics/misc/value_arrow_right.svg\" id=\"5_hhe4d\"]\n\n[sub_resource type=\"ButtonGroup\" id=\"ButtonGroup_02x7w\"]\n\n[sub_resource type=\"ShaderMaterial\" id=\"ShaderMaterial_vm84b\"]\nshader = ExtResource(\"3_u6ehu\")\nshader_parameter/size = 10.0\nshader_parameter/alpha = 1.0\nshader_parameter/color1 = Color(0.7, 0.7, 0.7, 1)\nshader_parameter/color2 = Color(1, 1, 1, 1)\nshader_parameter/offset = Vector2(0, 0)\nshader_parameter/scale = Vector2(0, 0)\nshader_parameter/rect_size = Vector2(38, 28)\nshader_parameter/follow_movement = false\nshader_parameter/follow_scale = false\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_5llr2\"]\naction = &\"switch_colors\"\n\n[sub_resource type=\"Shortcut\" id=\"19\"]\nevents = [SubResource(\"InputEventAction_5llr2\")]\n\n[sub_resource type=\"ShaderMaterial\" id=\"ShaderMaterial_a4xx1\"]\nshader = ExtResource(\"3_u6ehu\")\nshader_parameter/size = 10.0\nshader_parameter/alpha = 1.0\nshader_parameter/color1 = Color(0.7, 0.7, 0.7, 1)\nshader_parameter/color2 = Color(1, 1, 1, 1)\nshader_parameter/offset = Vector2(0, 0)\nshader_parameter/scale = Vector2(0, 0)\nshader_parameter/rect_size = Vector2(38, 28)\nshader_parameter/follow_movement = false\nshader_parameter/follow_scale = false\n\n[sub_resource type=\"ShaderMaterial\" id=\"ShaderMaterial_liu3n\"]\nshader = ExtResource(\"3_u6ehu\")\nshader_parameter/size = 10.0\nshader_parameter/alpha = 1.0\nshader_parameter/color1 = Color(0.7, 0.7, 0.7, 1)\nshader_parameter/color2 = Color(1, 1, 1, 1)\nshader_parameter/offset = Vector2(0, 0)\nshader_parameter/scale = Vector2(0, 0)\nshader_parameter/rect_size = Vector2(11, 11)\nshader_parameter/follow_movement = false\nshader_parameter/follow_scale = false\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_nptxe\"]\naction = &\"reset_colors_default\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_uay2n\"]\nevents = [SubResource(\"InputEventAction_nptxe\")]\n\n[node name=\"ColorPicker\" type=\"PanelContainer\" unique_id=1282553206]\ncustom_minimum_size = Vector2(32, 80)\noffset_right = 312.0\noffset_bottom = 358.0\nscript = ExtResource(\"1_r8ot0\")\n\n[node name=\"ScrollContainer\" type=\"ScrollContainer\" parent=\".\" unique_id=1272804798]\nlayout_mode = 2\n\n[node name=\"VerticalContainer\" type=\"VBoxContainer\" parent=\"ScrollContainer\" unique_id=21774123]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\ntheme_override_constants/separation = -6\nalignment = 1\n\n[node name=\"ColorPicker\" type=\"ColorPicker\" parent=\"ScrollContainer/VerticalContainer\" unique_id=1179466016]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\ntheme_override_constants/sv_width = 32\ntheme_override_constants/sv_height = 32\ncan_add_swatches = false\ncolor_modes_visible = false\nsliders_visible = false\nhex_visible = false\npresets_visible = false\n\n[node name=\"ColorButtons\" type=\"HBoxContainer\" parent=\"ScrollContainer/VerticalContainer\" unique_id=1503366675]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_vertical = 0\nalignment = 1\n\n[node name=\"LeftColorButton\" type=\"Button\" parent=\"ScrollContainer/VerticalContainer/ColorButtons\" unique_id=1839496259]\ncustom_minimum_size = Vector2(42, 32)\nlayout_mode = 2\nsize_flags_vertical = 4\ntooltip_text = \"Choose a color for the left tool\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_pressed = true\nbutton_group = SubResource(\"ButtonGroup_02x7w\")\n\n[node name=\"LeftColorRect\" type=\"ColorRect\" parent=\"ScrollContainer/VerticalContainer/ColorButtons/LeftColorButton\" unique_id=970441020]\nunique_name_in_owner = true\nlayout_mode = 0\noffset_left = 2.0\noffset_top = 2.0\noffset_right = 40.0\noffset_bottom = 30.0\nmouse_filter = 2\ncolor = Color(0, 0, 0, 1)\nmetadata/_edit_lock_ = true\n\n[node name=\"TransparentChecker\" parent=\"ScrollContainer/VerticalContainer/ColorButtons/LeftColorButton/LeftColorRect\" unique_id=507881423 instance=ExtResource(\"3_vjkb0\")]\nshow_behind_parent = true\nmaterial = SubResource(\"ShaderMaterial_vm84b\")\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\n\n[node name=\"ColorSwitch\" type=\"TextureButton\" parent=\"ScrollContainer/VerticalContainer/ColorButtons\" unique_id=1856183564 groups=[\"UIButtons\"]]\nlayout_mode = 2\nsize_flags_horizontal = 4\nsize_flags_vertical = 4\ntooltip_text = \"Switch left and right colors.\"\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"19\")\ntexture_normal = ExtResource(\"2_ojj3i\")\n\n[node name=\"RightColorButton\" type=\"Button\" parent=\"ScrollContainer/VerticalContainer/ColorButtons\" unique_id=241127658]\ncustom_minimum_size = Vector2(42, 32)\nlayout_mode = 2\nsize_flags_vertical = 4\ntooltip_text = \"Choose a color for the right tool\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_02x7w\")\n\n[node name=\"RightColorRect\" type=\"ColorRect\" parent=\"ScrollContainer/VerticalContainer/ColorButtons/RightColorButton\" unique_id=1925615162]\nunique_name_in_owner = true\nlayout_mode = 0\noffset_left = 2.0\noffset_top = 2.0\noffset_right = 40.0\noffset_bottom = 30.0\nmouse_filter = 2\nmetadata/_edit_lock_ = true\n\n[node name=\"TransparentChecker\" parent=\"ScrollContainer/VerticalContainer/ColorButtons/RightColorButton/RightColorRect\" unique_id=1638339017 instance=ExtResource(\"3_vjkb0\")]\nshow_behind_parent = true\nmaterial = SubResource(\"ShaderMaterial_a4xx1\")\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\n\n[node name=\"ColorButtonsVertical\" type=\"VBoxContainer\" parent=\"ScrollContainer/VerticalContainer/ColorButtons\" unique_id=814156762]\nlayout_mode = 2\ntheme_override_constants/separation = 2\nalignment = 1\n\n[node name=\"CopyAverage\" type=\"Button\" parent=\"ScrollContainer/VerticalContainer/ColorButtons/ColorButtonsVertical\" unique_id=465564245]\ncustom_minimum_size = Vector2(15, 15)\nlayout_mode = 2\nsize_flags_horizontal = 4\nmouse_default_cursor_shape = 2\nbutton_mask = 3\n\n[node name=\"AverageColor\" type=\"ColorRect\" parent=\"ScrollContainer/VerticalContainer/ColorButtons/ColorButtonsVertical/CopyAverage\" unique_id=1041707771]\nunique_name_in_owner = true\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -5.5\noffset_top = -5.5\noffset_right = 5.5\noffset_bottom = 5.5\nmouse_filter = 2\nmetadata/_edit_lock_ = true\n\n[node name=\"TransparentChecker\" parent=\"ScrollContainer/VerticalContainer/ColorButtons/ColorButtonsVertical/CopyAverage/AverageColor\" unique_id=1731616779 instance=ExtResource(\"3_vjkb0\")]\nunique_name_in_owner = true\nshow_behind_parent = true\nmaterial = SubResource(\"ShaderMaterial_liu3n\")\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nmetadata/_edit_lock_ = true\n\n[node name=\"ColorDefaults\" type=\"Button\" parent=\"ScrollContainer/VerticalContainer/ColorButtons/ColorButtonsVertical\" unique_id=1611779176]\ncustom_minimum_size = Vector2(15, 15)\nlayout_mode = 2\nsize_flags_horizontal = 4\ntooltip_text = \"Reset the colors to their default state (black for left, white for right)\"\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_uay2n\")\n\n[node name=\"ColorRectBlack\" type=\"ColorRect\" parent=\"ScrollContainer/VerticalContainer/ColorButtons/ColorButtonsVertical/ColorDefaults\" unique_id=1440781000]\nlayout_mode = 0\noffset_left = 2.0\noffset_top = 2.0\noffset_right = 7.0\noffset_bottom = 13.0\nmouse_filter = 2\ncolor = Color(0, 0, 0, 1)\n\n[node name=\"ColorRectWhite\" type=\"ColorRect\" parent=\"ScrollContainer/VerticalContainer/ColorButtons/ColorButtonsVertical/ColorDefaults\" unique_id=1570547092]\nlayout_mode = 0\noffset_left = 8.0\noffset_top = 2.0\noffset_right = 13.0\noffset_bottom = 13.0\nmouse_filter = 2\n\n[node name=\"ExpandButton\" type=\"Button\" parent=\"ScrollContainer/VerticalContainer\" unique_id=729249263]\nlayout_mode = 2\nfocus_mode = 0\nmouse_default_cursor_shape = 2\ntoggle_mode = true\ntext = \"Color options\"\nicon = ExtResource(\"5_hhe4d\")\nflat = true\nalignment = 0\n\n[connection signal=\"color_changed\" from=\"ScrollContainer/VerticalContainer/ColorPicker\" to=\".\" method=\"_on_color_picker_color_changed\"]\n[connection signal=\"toggled\" from=\"ScrollContainer/VerticalContainer/ColorButtons/LeftColorButton\" to=\".\" method=\"_on_left_color_button_toggled\"]\n[connection signal=\"pressed\" from=\"ScrollContainer/VerticalContainer/ColorButtons/ColorSwitch\" to=\".\" method=\"_on_ColorSwitch_pressed\"]\n[connection signal=\"button_down\" from=\"ScrollContainer/VerticalContainer/ColorButtons/ColorButtonsVertical/CopyAverage\" to=\".\" method=\"_on_CopyAverage_button_down\"]\n[connection signal=\"button_up\" from=\"ScrollContainer/VerticalContainer/ColorButtons/ColorButtonsVertical/CopyAverage\" to=\".\" method=\"_on_CopyAverage_button_up\"]\n[connection signal=\"gui_input\" from=\"ScrollContainer/VerticalContainer/ColorButtons/ColorButtonsVertical/CopyAverage\" to=\".\" method=\"_on_copy_average_gui_input\"]\n[connection signal=\"pressed\" from=\"ScrollContainer/VerticalContainer/ColorButtons/ColorButtonsVertical/ColorDefaults\" to=\".\" method=\"_on_ColorDefaults_pressed\"]\n[connection signal=\"toggled\" from=\"ScrollContainer/VerticalContainer/ExpandButton\" to=\".\" method=\"_on_expand_button_toggled\"]\n"
  },
  {
    "path": "src/UI/Dialogs/AboutDialog.gd",
    "content": "extends Window\n\nconst AUTHORS: PackedStringArray = [\n\t\"20kdc\",\n\t\"Aaron Franke (aaronfranke)\",\n\t\"AbhinavKDev (abhinav3967)\",\n\t\"Akane Angèle (AkaneAngele)\",\n\t\"alikin12\",\n\t\"AlphinAlbukhari\",\n\t\"AlRado\",\n\t\"Anaminus\",\n\t\"Andreev Andrei\",\n\t\"Arron Washington (radicaled)\",\n\t\"ArthyChaux\",\n\t\"azagaya\",\n\t\"Álex Román Núñez (EIREXE)\",\n\t\"ballerburg9005\",\n\t\"Bartkk\",\n\t\"BrotherShort\",\n\t\"CheetoHead (greusser)\",\n\t\"Christos Tsoychlakis (ChrisTs8920)\",\n\t\"Clara Hobbs (Ratfink)\",\n\t\"danielnaoexiste\",\n\t\"Darshan Phaldesai (luiq54)\",\n\t\"dasimonde\",\n\t\"Dávid Gábor BODOR (dragonfi)\",\n\t\"donte5405\",\n\t\"Fayez Akhtar (Variable)\",\n\t\"Gamespleasure\",\n\t\"GrantMoyer\",\n\t\"gschwind\",\n\t\"Hamster5295\",\n\t\"Haoyu Qiu (timothyqiu)\",\n\t\"Hugo Locurcio (Calinou)\",\n\t\"huskee\",\n\t\"Igor Santarek (jegor377)\",\n\t\"Ivan Kruger (haythamnikolaidis)\",\n\t\"Jeremy Behreandt (behreajj)\",\n\t\"João Vitor (dev-joaovitor)\",\n\t\"John Jerome Romero (Wishdream)\",\n\t\"JumpJetAvocado\",\n\t\"Kawan Weege (Dwahgon)\",\n\t\"kevinms\",\n\t\"Kiisu-Master\",\n\t\"Kinwailo\",\n\t\"kleonc\",\n\t\"Laurenz Reinthaler (Schweini07)\",\n\t\"Marco Galli (Gaarco)\",\n\t\"Mariano Semelman (msemelman)\",\n\t\"Marquis Kurt (alicerunsonfedora)\",\n\t\"Martin Novák (novhack)\",\n\t\"Martin Zabinski (Martin1991zab)\",\n\t\"Matheus Pesegoginski (MatheusPese)\",\n\t\"Matteo Piovanelli (MatteoPiovanelli-Laser)\",\n\t\"Matthew Paul (matthewpaul-us)\",\n\t\"Michael Alexsander (YeldhamDev)\",\n\t\"mrtripie\",\n\t\"nicejammer\",\n\t\"Olof Knight (InsaneAwesomeTony)\",\n\t\"PinyaColada\",\n\t\"Rémi Verschelde (akien-mga)\",\n\t\"rob-a-bolton\",\n\t\"RorotoSic\",\n\t\"sapient_cogbag\",\n\t\"Silent Orb (silentorb)\",\n\t\"Spencer Beckwith (spencerjbeckwith)\",\n\t\"Subhang Nanduri (SbNanduri)\",\n\t\"TheLsbt\",\n\t\"THWLF\",\n\t\"Vaibhav Kubre (kubre)\",\n\t\"Vance Palacio (vanceism7)\",\n\t\"VernalUmbrella\",\n\t\"Vriska Weaver (henlo-birb)\",\n\t\"zibetnu\",\n]\n\nconst TRANSLATORS_DICTIONARY := {\n\t\"Emmanouil Papadeas (Overloaded)\": [\"Greek\"],\n\t\"huskee\": [\"Greek\"],\n\t\"Lena Louloudaki (Soliscital)\": [\"Greek\"],\n\t\"Hugo Locurcio (Calinou)\": [\"French\"],\n\t\"blackjoker77777\": [\"French\"],\n\t\"Yoshiip (myoshipro)\": [\"French\"],\n\t\"Iorvethe\": [\"French\"],\n\t\"Paul Coral (lepaincestbon)\": [\"French\"],\n\t\"RED (REDOOO)\": [\"French\"],\n\t\"Aidan Olsen (PossiblyAShrub)\": [\"French\"],\n\t\"Jean-Loup Macarit (leyk973)\": [\"French\"],\n\t\"Lulullia (lulullia902)\": [\"French\"],\n\t\"Anne Onyme 017 (Anne17)\": [\"French\"],\n\t\"Nicolas.C (nico57c)\": [\"French\"],\n\t\"EGuillemot\": [\"French\"],\n\t\"Roroto Sic (Roroto_Sic)\": [\"French\"],\n\t\"ninjdai\": [\"French\"],\n\t\"celeste tollec (celeste73-t)\": [\"French\"],\n\t\"Nino Keravel (riioze)\": [\"French\"],\n\t\"Schweini07\": [\"German\"],\n\t\"Martin Zabinski (Martin1991zab)\": [\"German\"],\n\t\"Manuel (DrMoebyus)\": [\"German\"],\n\t\"Dominik K. (mezotv)\": [\"German\"],\n\t\"alikin12\": [\"German\"],\n\t\"Poolitzer\": [\"German\"],\n\t\"Michael (michi-onl)\": [\"German\"],\n\t\"Dawid Niedźwiedzki (tiritto)\": [\"Polish\"],\n\t\"Serhiy Dmytryshyn (dies)\": [\"Polish\"],\n\t\"Igor Santarek (jegor377)\": [\"Polish\"],\n\t\"RainbowP\": [\"Polish\"],\n\t\"Michał (molters.tv)\": [\"Polish\"],\n\t\"Dandailo\": [\"Polish\"],\n\t\"makabeus\": [\"Polish\"],\n\t\"Donda\": [\"Polish\"],\n\t\"Piotr Kostrzewski (piotrkostrzewski)\": [\"Polish\"],\n\t\"Krylan (Krylann)\": [\"Polish\"],\n\t\"Karol Haliński (HalinSky)\": [\"Polish\"],\n\t\"Tmpod\": [\"Portuguese\"],\n\t\"Pastel de N4ta (N4ta)\": [\"Portuguese\"],\n\t\"Michael Alexsander (YeldhamDev)\": [\"Brazilian Portuguese\"],\n\t\"Cedulio Cezar (ceduliocezar)\": [\"Brazilian Portuguese\"],\n\t\"Alexandre Oliveira (rockytvbr)\": [\"Brazilian Portuguese\"],\n\t\"IagoAndrade\": [\"Brazilian Portuguese\"],\n\t\"chacal_exodius\": [\"Brazilian Portuguese\"],\n\t\"Lucas Santiago (lu.santi.oli)\": [\"Brazilian Portuguese\"],\n\t\"TheNoobPro44\": [\"Brazilian Portuguese\"],\n\t\"DippoZz\": [\"Brazilian Portuguese\"],\n\t\"Luciano Salomoni (LucianoSalomoni)\": [\"Brazilian Portuguese\"],\n\t\"Carlos A. G. Silva (CarloSilva)\": [\"Brazilian Portuguese\"],\n\t\"Vitor Gabriel (Ranbut)\": [\"Brazilian Portuguese\"],\n\t\"Geraldo PMJ (geraldopmj)\": [\"Brazilian Portuguese\"],\n\t\"snorring_parrot\": [\"Brazilian Portuguese\"],\n\t\"iLeonardito (iLeoww)\": [\"Brazilian Portuguese\"],\n\t\"Heliana Moreira (helimoreira)\": [\"Brazilian Portuguese\"],\n\t\"Jhonatan Mello de Oliveira Milheiros (-Mello-)\": [\"Brazilian Portuguese\"],\n\t\"Waleson Melo (waleson-melo)\": [\"Brazilian Portuguese\"],\n\t\"Andreev Andrei\": [\"Russian\"],\n\t\"ax trifonov (ax34)\": [\"Russian\"],\n\t\"Artem (blinovartem)\": [\"Russian\"],\n\t\"Иван Соколов (SokoL1337)\": [\"Russian\"],\n\t\"Daniil Belyakov (ermegil)\": [\"Russian\"],\n\t\"Elijah Fronzak (pincetgore)\": [\"Russian\"],\n\t\"toxidcheckery\": [\"Russian\"],\n\t\"POCAT228\": [\"Russian\"],\n\t\"stomleny_cmok\": [\"Russian\", \"Ukrainian\"],\n\t\"Bohdan Matviiv (BodaMat)\": [\"Ukrainian\"],\n\t\"Ruslan Hryschuk (kifflow)\": [\"Ukrainian\"],\n\t\"Dmitry D (homecraft)\": [\"Ukrainian\"],\n\t\"Misha Dyshlenko (lony_official)\": [\"Ukrainian\"],\n\t\"Kinwailo\": [\"Chinese Traditional\"],\n\t\"曹恩逢 (SiderealArt)\": [\"Chinese Traditional\"],\n\t\"Aden Pun (adenpun2000)\": [\"Chinese Traditional\"],\n\t\"NoahsarkTaiwan\": [\"Chinese Traditional\"],\n\t\"EarthlyEric (EarthlyEric6)\": [\"Chinese Traditional\"],\n\t\"jy (jyIntrovert)\": [\"Chinese Traditional\"],\n\t\"Chenxu Wang\": [\"Chinese Simplified\"],\n\t\"Catherine Yang (qzcyyw13)\": [\"Chinese Simplified\"],\n\t\"王晨旭 (wcxu21)\": [\"Chinese Simplified\"],\n\t\"Haruka Kasugano (Kasugano_0)\": [\"Chinese Simplified\"],\n\t\"Peerin (Mrsjh)\": [\"Chinese Simplified\"],\n\t\"ppphp\": [\"Chinese Simplified\"],\n\t\"lxhzzy06\": [\"Chinese Simplified\"],\n\t\"Mozt\": [\"Chinese Simplified\"],\n\t\"OuO\": [\"Chinese Simplified\"],\n\t\"Marco Galli (Gaarco)\": [\"Italian\"],\n\t\"StarFang208\": [\"Italian\"],\n\t\"Damiano Guida (damiano.guida22)\": [\"Italian\"],\n\t\"albano battistella (albanobattistella)\": [\"Italian\"],\n\t\"Mattia Castorino (Mattness)\": [\"Italian\"],\n\t\"TM (-TM-)\": [\"Italian\"],\n\t\"Azagaya VJ (azagaya.games)\": [\"Spanish\"],\n\t\"Lilly And (KatieAnd)\": [\"Spanish\"],\n\t\"UncleFangs\": [\"Spanish\"],\n\t\"foralistico\": [\"Spanish\"],\n\t\"Jaime Arancibia Soto\": [\"Spanish\", \"Catalan\"],\n\t\"Jose Callejas (satorikeiko)\": [\"Spanish\"],\n\t\"Javier Ocampos (Leedeo)\": [\"Spanish\"],\n\t\"Art Leeman (artleeman)\": [\"Spanish\"],\n\t\"DevCentu\": [\"Spanish\"],\n\t\"Nunnito Nevermind (Nunnito)\": [\"Spanish\"],\n\t\"_LuJaimes (Hannd)\": [\"Spanish\"],\n\t\"Aleklons16 (Aleklons)\": [\"Spanish\"],\n\t\"linux_user_mx\": [\"Spanish\"],\n\t\"Quetzalcoutl (QuetzalcoutlDev)\": [\"Spanish\"],\n\t\"Santiago (Zhamty)\": [\"Spanish\"],\n\t\"Jesus Lavado (jess_lav)\": [\"Spanish\"],\n\t\"Alejandro Moctezuma (AlejandroMoc)\": [\"Spanish\"],\n\t\"Dereck Sempai (FinnRonan) \": [\"Spanish\"],\n\t\"Seifer23\": [\"Catalan\"],\n\t\"Joel García Cascalló (jocsencat)\": [\"Catalan\"],\n\t\"Dracks\": [\"Catalan\"],\n\t\"Agnis Aldiņš (NeZvers)\": [\"Latvian\"],\n\t\"Edgars Korns (Eddy11)\": [\"Latvian\"],\n\t\"Teashrock\": [\"Esperanto\"],\n\t\"Blend_Smile\": [\"Indonesian\"],\n\t\"NoahParaduck\": [\"Indonesian\"],\n\t\"Channeling\": [\"Indonesian\"],\n\t\"heydootdoot\": [\"Indonesian\"],\n\t\"elidelid\": [\"Indonesian\"],\n\t\"Martin Novák (novhack)\": [\"Czech\"],\n\t\"Lullius\": [\"Norwegian Bokmål\"],\n\t\"Aninus Partikler (aninuscsalas)\": [\"Hungarian\"],\n\t\"jaehyeon1090\": [\"Korean\"],\n\t\"sfun_G\": [\"Korean\"],\n\t\"랄이 (lalicraft)\": [\"Korean\"],\n\t\"KripC2160\": [\"Korean\", \"Japanese\"],\n\t\"daisuke osada (barlog)\": [\"Japanese\"],\n\t\"Motomo.exe\": [\"Japanese\"],\n\t\"hebekeg\": [\"Japanese\"],\n\t\"nihongo-helper0119\": [\"Japanese\"],\n\t\"M. Gabriel Lup\": [\"Romanian\"],\n\t\"Robert Banks (robert-banks)\": [\"Romanian\", \"Polish\"],\n\t\"ANormalKnife\": [\"Turkish\"],\n\t\"kmsecer\": [\"Turkish\"],\n\t\"Rıdvan SAYLAR\": [\"Turkish\"],\n\t\"latbat58\": [\"Turkish\"],\n\t\"M Buhari Horoz (Sorian01)\": [\"Turkish\"],\n\t\"br.bahrampour\": [\"Turkish\"],\n\t\"gegekyz\": [\"Turkish\"],\n\t\"Vancat\": [\"Turkish\"],\n\t\"Ferhat Geçdoğan (ferhatgec)\": [\"Turkish\"],\n\t\"designy\": [\"Turkish\"],\n\t\"libre ajans (libreajans)\": [\"Turkish\"],\n\t\"Sabri Ünal (yakushabb)\": [\"Turkish\"],\n\t\"Lucifer25x\": [\"Turkish\"],\n\t\"izan (i.zan)\": [\"Turkish\"],\n\t\"CaelusV\": [\"Danish\"],\n\t\"Jonas Vejlin (jonas.vejlin)\": [\"Danish\"],\n\t\"Cat (cultcats)\": [\"Danish\"],\n\t\"cat (catsnote)\": [\"Danish\"],\n\t\"SOS1\": [\"Thai\"],\n\t\"GGIEnrike\":\n\t[\n\t\t\"Romanian\",\n\t\t\"French\",\n\t\t\"German\",\n\t\t\"Italian\",\n\t\t\"Portuguese\",\n\t\t\"Serbian (Cyrillic)\",\n\t\t\"Brazilian Portuguese\"\n\t],\n}\n\nconst DONORS: PackedStringArray = [\n\t\"Astropulse\",\n\t\"Benedikt\",\n\t\"Hugo Locurcio\",\n\t\"Jérôme P.\",\n\t\"Jonas Rudlang\",\n\t\"Mike King\",\n]\n\n@export_multiline var licenses: PackedStringArray\nvar godot_licenses: PackedStringArray\n\n@onready var credits := $AboutUI/Credits as HSplitContainer\n@onready var groups := $AboutUI/Credits/Groups as Tree\n@onready var authors_container := $AboutUI/Credits/Authors as VBoxContainer\n@onready var donors_container := $AboutUI/Credits/Donors as VBoxContainer\n@onready var translators_container := $AboutUI/Credits/Translators as VBoxContainer\n@onready var license_container := %PixeloramaLicense as VBoxContainer\n@onready var godot_licenses_container := %GodotLicenses as VBoxContainer\n@onready var third_party_licenses_container := %ThirdPartyLicenses as VBoxContainer\n@onready var authors := $AboutUI/Credits/Authors/AuthorTree as Tree\n@onready var donors := $AboutUI/Credits/Donors/DonorTree as Tree\n@onready var translators := $AboutUI/Credits/Translators/TranslatorTree as Tree\n@onready var godot_license_tabs := %GodotLicenses/GodotLicenseTabs as TabBar\n@onready var godot_license_text := %GodotLicenses/GodotLicenseText as TextEdit\n@onready var third_party_license_tabs := %ThirdPartyLicenses/ThirdPartyLicenseTabs as TabBar\n@onready var third_party_license_text := %ThirdPartyLicenses/ThirdPartyLicenseText as TextEdit\n@onready var pixelorama_slogan := (\n\t$AboutUI/IconsButtons/SloganAndLinks/VBoxContainer/PixeloramaSlogan as Label\n)\n@onready var copyright_label := $AboutUI/Copyright as Label\n\n\nfunc _ready() -> void:\n\tpixelorama_slogan.label_settings.font_color = get_theme_color(&\"font_color\", &\"Label\")\n\tcopyright_label.label_settings.font_color = get_theme_color(&\"font_color\", &\"Label\")\n\tcreate_donors()\n\tfor godot_license in Engine.get_copyright_info():\n\t\tgodot_license_tabs.add_tab(godot_license.name)\n\t\tvar license_text: String = godot_license.name + \"\\n\\n\"\n\t\tfor part in godot_license.parts:\n\t\t\tlicense_text += \"Files:\\n\"\n\t\t\tfor file in part.files:\n\t\t\t\tlicense_text += \"\\t\" + file + \"\\n\"\n\t\t\tfor copyright in part.copyright:\n\t\t\t\tlicense_text += \"© \" + copyright + \"\\n\"\n\t\t\tvar license_name: String = part.get(\"license\", \"\")\n\t\t\tlicense_text += \"License: \" + license_name + \"\\n\\n\"\n\t\t\tfor license in Engine.get_license_info():\n\t\t\t\tif license in license_name:\n\t\t\t\t\tlicense_text += Engine.get_license_info()[license] + \"\\n\\n\"\n\t\tgodot_licenses.append(license_text)\n\tgodot_license_text.text = godot_licenses[0]\n\n\tthird_party_license_tabs.add_tab(\"Keychain\")\n\tthird_party_license_tabs.add_tab(\"Roboto font\")\n\tthird_party_license_tabs.add_tab(\"Dockable Container\")\n\tthird_party_license_tabs.add_tab(\"aimgio\")\n\tthird_party_license_tabs.add_tab(\"godot-gdgifexporter\")\n\tthird_party_license_tabs.add_tab(\"cleanEdge\")\n\tthird_party_license_tabs.add_tab(\"OmniScale\")\n\tthird_party_license_tabs.add_tab(\"Material Maker\")\n\tthird_party_license_tabs.add_tab(\"gd-obj\")\n\tthird_party_license_text.text = licenses[0]\n\n\nfunc _notification(what: int) -> void:\n\tif not is_instance_valid(pixelorama_slogan):\n\t\treturn\n\tif what == NOTIFICATION_THEME_CHANGED:\n\t\tpixelorama_slogan.label_settings.font_color = get_theme_color(&\"font_color\", &\"Label\")\n\t\tcopyright_label.label_settings.font_color = get_theme_color(&\"font_color\", &\"Label\")\n\n\nfunc _on_about_to_popup() -> void:\n\ttitle = tr(\"About Pixelorama\") + \" \" + Global.current_version\n\n\tvar groups_root := groups.create_item()\n\t#var developers_button := groups.create_item(groups_root)\n\tvar authors_button := groups.create_item(groups_root)\n\tvar donors_button := groups.create_item(groups_root)\n\tvar translators_button := groups.create_item(groups_root)\n\tvar license_button := groups.create_item(groups_root)\n\tvar godot_license_button := groups.create_item(groups_root)\n\tvar third_party_licenses_button := groups.create_item(groups_root)\n\tauthors_button.set_text(0, \"  \" + tr(\"Authors\"))\n\t# We use metadata to avoid being affected by translations\n\tauthors_button.set_metadata(0, \"Authors\")\n\tauthors_button.select(0)\n\tdonors_button.set_text(0, \"  \" + tr(\"Donors\"))\n\tdonors_button.set_metadata(0, \"Donors\")\n\ttranslators_button.set_text(0, \"  \" + tr(\"Translators\"))\n\ttranslators_button.set_metadata(0, \"Translators\")\n\tlicense_button.set_text(0, \"  \" + tr(\"License\"))\n\tlicense_button.set_metadata(0, \"License\")\n\tgodot_license_button.set_text(0, \"  \" + tr(\"Godot Licenses\"))\n\tgodot_license_button.set_metadata(0, \"Godot Licenses\")\n\tthird_party_licenses_button.set_text(0, \"  \" + tr(\"Third-party Licenses\"))\n\tthird_party_licenses_button.set_metadata(0, \"Third-party Licenses\")\n\n\tcreate_authors()\n\tcreate_translators()\n\n\nfunc _on_visibility_changed() -> void:\n\tif visible:\n\t\treturn\n\tgroups.clear()\n\tauthors.clear()\n\ttranslators.clear()\n\tGlobal.dialog_open(false)\n\n\nfunc _on_groups_item_selected() -> void:\n\tfor child in credits.get_children():\n\t\tif child != groups:\n\t\t\tchild.visible = false\n\n\tvar selected: String = groups.get_selected().get_metadata(0)\n\tif \"Authors\" in selected:\n\t\tauthors_container.visible = true\n\telif \"Donors\" in selected:\n\t\tdonors_container.visible = true\n\telif \"Translators\" in selected:\n\t\ttranslators_container.visible = true\n\telif \"Godot Licenses\" in selected:\n\t\tgodot_licenses_container.visible = true\n\telif \"Third-party Licenses\" in selected:\n\t\tthird_party_licenses_container.visible = true\n\telif \"License\" in selected:\n\t\tlicense_container.visible = true\n\n\nfunc _on_website_pressed() -> void:\n\tOS.shell_open(\"https://www.pixelorama.org/\")\n\n\nfunc _on_github_pressed() -> void:\n\tOS.shell_open(\"https://github.com/Orama-Interactive/Pixelorama\")\n\n\nfunc create_donors() -> void:\n\tvar donors_root := donors.create_item()\n\tfor donor in DONORS:\n\t\tdonors.create_item(donors_root).set_text(0, \"  \" + donor)\n\n\nfunc create_authors() -> void:\n\tvar author_root := authors.create_item()\n\tauthors.create_item(author_root).set_text(\n\t\t0, \"  Emmanouil Papadeas (Overloaded) - \" + tr(\"Lead Developer\")\n\t)\n\tauthors.create_item(author_root).set_text(0, \"  John Nikitakis (Erevos) - \" + tr(\"UI Designer\"))\n\tfor author in AUTHORS:\n\t\tauthors.create_item(author_root).set_text(0, \"  \" + author)\n\n\nfunc create_translators() -> void:\n\tvar translators_root := translators.create_item()\n\tvar translator_list := TRANSLATORS_DICTIONARY.keys()\n\tfor translator in translator_list:\n\t\tvar languages: Array = TRANSLATORS_DICTIONARY[translator]\n\t\tvar language_string: String = tr(languages[0])\n\t\tfor i in range(1, languages.size()):\n\t\t\tif i == languages.size() - 1:\n\t\t\t\tlanguage_string += \" %s %s\" % [tr(\"and\"), tr(languages[i])]\n\t\t\telse:\n\t\t\t\tlanguage_string += \", %s\" % [tr(languages[i])]\n\n\t\tvar text := \"  %s - %s\" % [translator, language_string]\n\t\ttranslators.create_item(translators_root).set_text(0, text)\n\n\nfunc _on_close_requested() -> void:\n\thide()\n\n\nfunc _on_godot_license_tabs_tab_changed(tab: int) -> void:\n\tif tab >= godot_licenses.size():\n\t\treturn\n\tgodot_license_text.text = godot_licenses[tab]\n\n\nfunc _on_third_party_license_tabs_tab_changed(tab: int) -> void:\n\tthird_party_license_text.text = licenses[tab]\n"
  },
  {
    "path": "src/UI/Dialogs/AboutDialog.gd.uid",
    "content": "uid://c7kfwvlkbvt2k\n"
  },
  {
    "path": "src/UI/Dialogs/AboutDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://w1v6plnv6ppt\"]\n\n[ext_resource type=\"Script\" uid=\"uid://c7kfwvlkbvt2k\" path=\"res://src/UI/Dialogs/AboutDialog.gd\" id=\"1\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://b47r0c6auaqk6\" path=\"res://assets/graphics/icons/icon.png\" id=\"2\"]\n[ext_resource type=\"FontFile\" uid=\"uid://cvc4lelf6hl7x\" path=\"res://assets/fonts/Roboto-Regular.ttf\" id=\"3_fj1id\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://s25pa611bpvj\" path=\"res://assets/graphics/splash_screen/orama_64x64.png\" id=\"4\"]\n\n[sub_resource type=\"FontVariation\" id=\"FontVariation_dy14o\"]\nbase_font = ExtResource(\"3_fj1id\")\nvariation_transform = Transform2D(1, 0.2, 0, 1, 0, 0)\nspacing_space = -1\n\n[sub_resource type=\"LabelSettings\" id=\"LabelSettings_bkh2e\"]\nfont = SubResource(\"FontVariation_dy14o\")\n\n[sub_resource type=\"LabelSettings\" id=\"LabelSettings_aewb6\"]\nfont_size = 12\n\n[node name=\"AboutDialog\" type=\"Popup\" unique_id=1396398563]\noversampling_override = 1.0\nposition = Vector2i(0, 36)\nsize = Vector2i(700, 470)\nunresizable = false\nborderless = false\nscript = ExtResource(\"1\")\nlicenses = PackedStringArray(\"MIT License\\n\\nCopyright (c) 2022-present Orama Interactive\\n\\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \\\"Software\\\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\", \"\\n                                 Apache License\\n                           Version 2.0, January 2004\\n                        http://www.apache.org/licenses/\\n\\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\\n\\n   1. Definitions.\\n\\n      \\\"License\\\" shall mean the terms and conditions for use, reproduction,\\n      and distribution as defined by Sections 1 through 9 of this document.\\n\\n      \\\"Licensor\\\" shall mean the copyright owner or entity authorized by\\n      the copyright owner that is granting the License.\\n\\n      \\\"Legal Entity\\\" shall mean the union of the acting entity and all\\n      other entities that control, are controlled by, or are under common\\n      control with that entity. For the purposes of this definition,\\n      \\\"control\\\" means (i) the power, direct or indirect, to cause the\\n      direction or management of such entity, whether by contract or\\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\\n      outstanding shares, or (iii) beneficial ownership of such entity.\\n\\n      \\\"You\\\" (or \\\"Your\\\") shall mean an individual or Legal Entity\\n      exercising permissions granted by this License.\\n\\n      \\\"Source\\\" form shall mean the preferred form for making modifications,\\n      including but not limited to software source code, documentation\\n      source, and configuration files.\\n\\n      \\\"Object\\\" form shall mean any form resulting from mechanical\\n      transformation or position of a Source form, including but\\n      not limited to compiled object code, generated documentation,\\n      and conversions to other media types.\\n\\n      \\\"Work\\\" shall mean the work of authorship, whether in Source or\\n      Object form, made available under the License, as indicated by a\\n      copyright notice that is included in or attached to the work\\n      (an example is provided in the Appendix below).\\n\\n      \\\"Derivative Works\\\" shall mean any work, whether in Source or Object\\n      form, that is based on (or derived from) the Work and for which the\\n      editorial revisions, annotations, elaborations, or other modifications\\n      represent, as a whole, an original work of authorship. For the purposes\\n      of this License, Derivative Works shall not include works that remain\\n      separable from, or merely link (or bind by name) to the interfaces of,\\n      the Work and Derivative Works thereof.\\n\\n      \\\"Contribution\\\" shall mean any work of authorship, including\\n      the original version of the Work and any modifications or additions\\n      to that Work or Derivative Works thereof, that is intentionally\\n      submitted to Licensor for inclusion in the Work by the copyright owner\\n      or by an individual or Legal Entity authorized to submit on behalf of\\n      the copyright owner. For the purposes of this definition, \\\"submitted\\\"\\n      means any form of electronic, verbal, or written communication sent\\n      to the Licensor or its representatives, including but not limited to\\n      communication on electronic mailing lists, source code control systems,\\n      and issue tracking systems that are managed by, or on behalf of, the\\n      Licensor for the purpose of discussing and improving the Work, but\\n      excluding communication that is conspicuously marked or otherwise\\n      designated in writing by the copyright owner as \\\"Not a Contribution.\\\"\\n\\n      \\\"Contributor\\\" shall mean Licensor and any individual or Legal Entity\\n      on behalf of whom a Contribution has been received by Licensor and\\n      subsequently incorporated within the Work.\\n\\n   2. Grant of Copyright License. Subject to the terms and conditions of\\n      this License, each Contributor hereby grants to You a perpetual,\\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\\n      copyright license to reproduce, prepare Derivative Works of,\\n      publicly display, publicly perform, sublicense, and distribute the\\n      Work and such Derivative Works in Source or Object form.\\n\\n   3. Grant of Patent License. Subject to the terms and conditions of\\n      this License, each Contributor hereby grants to You a perpetual,\\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\\n      (except as stated in this section) patent license to make, have made,\\n      use, offer to sell, sell, import, and otherwise transfer the Work,\\n      where such license applies only to those patent claims licensable\\n      by such Contributor that are necessarily infringed by their\\n      Contribution(s) alone or by combination of their Contribution(s)\\n      with the Work to which such Contribution(s) was submitted. If You\\n      institute patent litigation against any entity (including a\\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\\n      or a Contribution incorporated within the Work constitutes direct\\n      or contributory patent infringement, then any patent licenses\\n      granted to You under this License for that Work shall terminate\\n      as of the date such litigation is filed.\\n\\n   4. Redistribution. You may reproduce and distribute copies of the\\n      Work or Derivative Works thereof in any medium, with or without\\n      modifications, and in Source or Object form, provided that You\\n      meet the following conditions:\\n\\n      (a) You must give any other recipients of the Work or\\n          Derivative Works a copy of this License; and\\n\\n      (b) You must cause any modified files to carry prominent notices\\n          stating that You changed the files; and\\n\\n      (c) You must retain, in the Source form of any Derivative Works\\n          that You distribute, all copyright, patent, trademark, and\\n          attribution notices from the Source form of the Work,\\n          excluding those notices that do not pertain to any part of\\n          the Derivative Works; and\\n\\n      (d) If the Work includes a \\\"NOTICE\\\" text file as part of its\\n          distribution, then any Derivative Works that You distribute must\\n          include a readable copy of the attribution notices contained\\n          within such NOTICE file, excluding those notices that do not\\n          pertain to any part of the Derivative Works, in at least one\\n          of the following places: within a NOTICE text file distributed\\n          as part of the Derivative Works; within the Source form or\\n          documentation, if provided along with the Derivative Works; or,\\n          within a display generated by the Derivative Works, if and\\n          wherever such third-party notices normally appear. The contents\\n          of the NOTICE file are for informational purposes only and\\n          do not modify the License. You may add Your own attribution\\n          notices within Derivative Works that You distribute, alongside\\n          or as an addendum to the NOTICE text from the Work, provided\\n          that such additional attribution notices cannot be construed\\n          as modifying the License.\\n\\n      You may add Your own copyright statement to Your modifications and\\n      may provide additional or different license terms and conditions\\n      for use, reproduction, or distribution of Your modifications, or\\n      for any such Derivative Works as a whole, provided Your use,\\n      reproduction, and distribution of the Work otherwise complies with\\n      the conditions stated in this License.\\n\\n   5. Submission of Contributions. Unless You explicitly state otherwise,\\n      any Contribution intentionally submitted for inclusion in the Work\\n      by You to the Licensor shall be under the terms and conditions of\\n      this License, without any additional terms or conditions.\\n      Notwithstanding the above, nothing herein shall supersede or modify\\n      the terms of any separate license agreement you may have executed\\n      with Licensor regarding such Contributions.\\n\\n   6. Trademarks. This License does not grant permission to use the trade\\n      names, trademarks, service marks, or product names of the Licensor,\\n      except as required for reasonable and customary use in describing the\\n      origin of the Work and reproducing the content of the NOTICE file.\\n\\n   7. Disclaimer of Warranty. Unless required by applicable law or\\n      agreed to in writing, Licensor provides the Work (and each\\n      Contributor provides its Contributions) on an \\\"AS IS\\\" BASIS,\\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\\n      implied, including, without limitation, any warranties or conditions\\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\\n      PARTICULAR PURPOSE. You are solely responsible for determining the\\n      appropriateness of using or redistributing the Work and assume any\\n      risks associated with Your exercise of permissions under this License.\\n\\n   8. Limitation of Liability. In no event and under no legal theory,\\n      whether in tort (including negligence), contract, or otherwise,\\n      unless required by applicable law (such as deliberate and grossly\\n      negligent acts) or agreed to in writing, shall any Contributor be\\n      liable to You for damages, including any direct, indirect, special,\\n      incidental, or consequential damages of any character arising as a\\n      result of this License or out of the use or inability to use the\\n      Work (including but not limited to damages for loss of goodwill,\\n      work stoppage, computer failure or malfunction, or any and all\\n      other commercial damages or losses), even if such Contributor\\n      has been advised of the possibility of such damages.\\n\\n   9. Accepting Warranty or Additional Liability. While redistributing\\n      the Work or Derivative Works thereof, You may choose to offer,\\n      and charge a fee for, acceptance of support, warranty, indemnity,\\n      or other liability obligations and/or rights consistent with this\\n      License. However, in accepting such obligations, You may act only\\n      on Your own behalf and on Your sole responsibility, not on behalf\\n      of any other Contributor, and only if You agree to indemnify,\\n      defend, and hold each Contributor harmless for any liability\\n      incurred by, or claims asserted against, such Contributor by reason\\n      of your accepting any such warranty or additional liability.\\n\\n   END OF TERMS AND CONDITIONS\\n\\n   APPENDIX: How to apply the Apache License to your work.\\n\\n      To apply the Apache License to your work, attach the following\\n      boilerplate notice, with the fields enclosed by brackets \\\"[]\\\"\\n      replaced with your own identifying information. (Don\\'t include\\n      the brackets!)  The text should be enclosed in the appropriate\\n      comment syntax for the file format. We also recommend that a\\n      file or class name and description of purpose be included on the\\n      same \\\"printed page\\\" as the copyright notice for easier\\n      identification within third-party archives.\\n\\n   Copyright [yyyy] [name of copyright owner]\\n\\n   Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n   you may not use this file except in compliance with the License.\\n   You may obtain a copy of the License at\\n\\n       http://www.apache.org/licenses/LICENSE-2.0\\n\\n   Unless required by applicable law or agreed to in writing, software\\n   distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n   See the License for the specific language governing permissions and\\n   limitations under the License.\", \"Creative Commons Legal Code\\n\\nCC0 1.0 Universal\\n\\n    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE\\n    LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN\\n    ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS\\n    INFORMATION ON AN \\\"AS-IS\\\" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES\\n    REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS\\n    PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM\\n    THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED\\n    HEREUNDER.\\n\\nStatement of Purpose\\n\\nThe laws of most jurisdictions throughout the world automatically confer\\nexclusive Copyright and Related Rights (defined below) upon the creator\\nand subsequent owner(s) (each and all, an \\\"owner\\\") of an original work of\\nauthorship and/or a database (each, a \\\"Work\\\").\\n\\nCertain owners wish to permanently relinquish those rights to a Work for\\nthe purpose of contributing to a commons of creative, cultural and\\nscientific works (\\\"Commons\\\") that the public can reliably and without fear\\nof later claims of infringement build upon, modify, incorporate in other\\nworks, reuse and redistribute as freely as possible in any form whatsoever\\nand for any purposes, including without limitation commercial purposes.\\nThese owners may contribute to the Commons to promote the ideal of a free\\nculture and the further production of creative, cultural and scientific\\nworks, or to gain reputation or greater distribution for their Work in\\npart through the use and efforts of others.\\n\\nFor these and/or other purposes and motivations, and without any\\nexpectation of additional consideration or compensation, the person\\nassociating CC0 with a Work (the \\\"Affirmer\\\"), to the extent that he or she\\nis an owner of Copyright and Related Rights in the Work, voluntarily\\nelects to apply CC0 to the Work and publicly distribute the Work under its\\nterms, with knowledge of his or her Copyright and Related Rights in the\\nWork and the meaning and intended legal effect of CC0 on those rights.\\n\\n1. Copyright and Related Rights. A Work made available under CC0 may be\\nprotected by copyright and related or neighboring rights (\\\"Copyright and\\nRelated Rights\\\"). Copyright and Related Rights include, but are not\\nlimited to, the following:\\n\\n  i. the right to reproduce, adapt, distribute, perform, display,\\n     communicate, and translate a Work;\\n ii. moral rights retained by the original author(s) and/or performer(s);\\niii. publicity and privacy rights pertaining to a person\\'s image or\\n     likeness depicted in a Work;\\n iv. rights protecting against unfair competition in regards to a Work,\\n     subject to the limitations in paragraph 4(a), below;\\n  v. rights protecting the extraction, dissemination, use and reuse of data\\n     in a Work;\\n vi. database rights (such as those arising under Directive 96/9/EC of the\\n     European Parliament and of the Council of 11 March 1996 on the legal\\n     protection of databases, and under any national implementation\\n     thereof, including any amended or successor version of such\\n     directive); and\\nvii. other similar, equivalent or corresponding rights throughout the\\n     world based on applicable law or treaty, and any national\\n     implementations thereof.\\n\\n2. Waiver. To the greatest extent permitted by, but not in contravention\\nof, applicable law, Affirmer hereby overtly, fully, permanently,\\nirrevocably and unconditionally waives, abandons, and surrenders all of\\nAffirmer\\'s Copyright and Related Rights and associated claims and causes\\nof action, whether now known or unknown (including existing as well as\\nfuture claims and causes of action), in the Work (i) in all territories\\nworldwide, (ii) for the maximum duration provided by applicable law or\\ntreaty (including future time extensions), (iii) in any current or future\\nmedium and for any number of copies, and (iv) for any purpose whatsoever,\\nincluding without limitation commercial, advertising or promotional\\npurposes (the \\\"Waiver\\\"). Affirmer makes the Waiver for the benefit of each\\nmember of the public at large and to the detriment of Affirmer\\'s heirs and\\nsuccessors, fully intending that such Waiver shall not be subject to\\nrevocation, rescission, cancellation, termination, or any other legal or\\nequitable action to disrupt the quiet enjoyment of the Work by the public\\nas contemplated by Affirmer\\'s express Statement of Purpose.\\n\\n3. Public License Fallback. Should any part of the Waiver for any reason\\nbe judged legally invalid or ineffective under applicable law, then the\\nWaiver shall be preserved to the maximum extent permitted taking into\\naccount Affirmer\\'s express Statement of Purpose. In addition, to the\\nextent the Waiver is so judged Affirmer hereby grants to each affected\\nperson a royalty-free, non transferable, non sublicensable, non exclusive,\\nirrevocable and unconditional license to exercise Affirmer\\'s Copyright and\\nRelated Rights in the Work (i) in all territories worldwide, (ii) for the\\nmaximum duration provided by applicable law or treaty (including future\\ntime extensions), (iii) in any current or future medium and for any number\\nof copies, and (iv) for any purpose whatsoever, including without\\nlimitation commercial, advertising or promotional purposes (the\\n\\\"License\\\"). The License shall be deemed effective as of the date CC0 was\\napplied by Affirmer to the Work. Should any part of the License for any\\nreason be judged legally invalid or ineffective under applicable law, such\\npartial invalidity or ineffectiveness shall not invalidate the remainder\\nof the License, and in such case Affirmer hereby affirms that he or she\\nwill not (i) exercise any of his or her remaining Copyright and Related\\nRights in the Work or (ii) assert any associated claims and causes of\\naction with respect to the Work, in either case contrary to Affirmer\\'s\\nexpress Statement of Purpose.\\n\\n4. Limitations and Disclaimers.\\n\\n a. No trademark or patent rights held by Affirmer are waived, abandoned,\\n    surrendered, licensed or otherwise affected by this document.\\n b. Affirmer offers the Work as-is and makes no representations or\\n    warranties of any kind concerning the Work, express, implied,\\n    statutory or otherwise, including without limitation warranties of\\n    title, merchantability, fitness for a particular purpose, non\\n    infringement, or the absence of latent or other defects, accuracy, or\\n    the present or absence of errors, whether or not discoverable, all to\\n    the greatest extent permissible under applicable law.\\n c. Affirmer disclaims responsibility for clearing rights of other persons\\n    that may apply to the Work or any use thereof, including without\\n    limitation any person\\'s Copyright and Related Rights in the Work.\\n    Further, Affirmer disclaims responsibility for obtaining any necessary\\n    consents, permissions or other rights required for any use of the\\n    Work.\\n d. Affirmer understands and acknowledges that Creative Commons is not a\\n    party to this document and has no duty or obligation with respect to\\n    this CC0 or use of the Work.\\n\", \"This is free and unencumbered software released into the public domain.\\n\\nAnyone is free to copy, modify, publish, use, compile, sell, or\\ndistribute this software, either in source code form or as a compiled\\nbinary, for any purpose, commercial or non-commercial, and by any\\nmeans.\\n\\nIn jurisdictions that _recognize copyright laws, the author or authors\\nof this software dedicate any and all copyright interest in the\\nsoftware to the public domain. We make this dedication for the benefit\\nof the public at large and to the detriment of our heirs and\\nsuccessors. We intend this dedication to be an overt act of\\nrelinquishment in perpetuity of all present and future rights to this\\nsoftware under copyright law.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND,\\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\\nIN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR\\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\\nARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\\nOTHER DEALINGS IN THE SOFTWARE.\\n\\nFor more information, please refer to <http://unlicense.org>\", \"MIT License\\n\\nCopyright (c) 2020 Igor Santarek\\n\\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \\\"Software\\\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\", \"MIT License\\n\\nCopyright (c) 2022 torcado\\n\\nPermission is hereby granted, free of charge, to any person\\nobtaining a copy of this software and associated documentation\\nfiles (the \\\"Software\\\"), to deal in the Software without\\nrestriction, including without limitation the rights to use,\\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\\ncopies of the Software, and to permit persons to whom the\\nSoftware is furnished to do so, subject to the following\\nconditions:\\n\\nThe above copyright notice and this permission notice shall be\\nincluded in all copies or substantial portions of the Software.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND,\\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\\nOTHER DEALINGS IN THE SOFTWARE.\", \"MIT License\\n\\nCopyright (c) 2018 Nobuyuki\\n\\nPermission is hereby granted, free of charge, to any person obtaining a copy\\nof this software and associated documentation files (the \\\"Software\\\"), to deal\\nin the Software without restriction, including without limitation the rights\\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\\ncopies of the Software, and to permit persons to whom the Software is\\nfurnished to do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice shall be included in all\\ncopies or substantial portions of the Software.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\\nSOFTWARE.\", \"MIT License\\n\\nCopyright (c) 2018-2021 Rodolphe Suescun and contributors\\n\\nPermission is hereby granted, free of charge, to any person obtaining a copy\\nof this software and associated documentation files (the \\\"Software\\\"), to deal\\nin the Software without restriction, including without limitation the rights\\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\\ncopies of the Software, and to permit persons to whom the Software is\\nfurnished to do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice shall be included in all\\ncopies or substantial portions of the Software.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\\nSOFTWARE.\", \"MIT License\\n\\nCopyright (c) 2018-2019 Ezcha\\n\\nPermission is hereby granted, free of charge, to any person obtaining a copy\\nof this software and associated documentation files (the \\\"Software\\\"), to deal\\nin the Software without restriction, including without limitation the rights\\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\\ncopies of the Software, and to permit persons to whom the Software is\\nfurnished to do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice shall be included in all\\ncopies or substantial portions of the Software.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\\nSOFTWARE.\")\n\n[node name=\"AboutUI\" type=\"VBoxContainer\" parent=\".\" unique_id=267154315]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 12.0\noffset_top = 4.0\noffset_right = -12.0\noffset_bottom = -8.0\nalignment = 1\n\n[node name=\"IconsButtons\" type=\"HBoxContainer\" parent=\"AboutUI\" unique_id=1067071370]\nlayout_mode = 2\n\n[node name=\"PixeloramaLogo\" type=\"TextureRect\" parent=\"AboutUI/IconsButtons\" unique_id=1419515276]\ncustom_minimum_size = Vector2(64, 64)\nlayout_mode = 2\ntexture = ExtResource(\"2\")\nexpand_mode = 1\n\n[node name=\"SloganAndLinks\" type=\"CenterContainer\" parent=\"AboutUI/IconsButtons\" unique_id=1652993537]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"AboutUI/IconsButtons/SloganAndLinks\" unique_id=484300548]\nlayout_mode = 2\n\n[node name=\"PixeloramaSlogan\" type=\"Label\" parent=\"AboutUI/IconsButtons/SloganAndLinks/VBoxContainer\" unique_id=1005985297]\nlayout_mode = 2\ntext = \"Pixelorama - Pixelate your dreams!\"\nlabel_settings = SubResource(\"LabelSettings_bkh2e\")\n\n[node name=\"LinkButtons\" type=\"HBoxContainer\" parent=\"AboutUI/IconsButtons/SloganAndLinks/VBoxContainer\" unique_id=1020709967]\nlayout_mode = 2\n\n[node name=\"Website\" type=\"Button\" parent=\"AboutUI/IconsButtons/SloganAndLinks/VBoxContainer/LinkButtons\" unique_id=969908014]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"Website\"\n\n[node name=\"Github\" type=\"Button\" parent=\"AboutUI/IconsButtons/SloganAndLinks/VBoxContainer/LinkButtons\" unique_id=12132090]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"Source Code\"\n\n[node name=\"OramaLogo\" type=\"TextureRect\" parent=\"AboutUI/IconsButtons\" unique_id=676029382]\nlayout_mode = 2\ntexture = ExtResource(\"4\")\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"AboutUI\" unique_id=1658093981]\nlayout_mode = 2\n\n[node name=\"Credits\" type=\"HSplitContainer\" parent=\"AboutUI\" unique_id=329794615]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"Groups\" type=\"Tree\" parent=\"AboutUI/Credits\" unique_id=920698319]\ncustom_minimum_size = Vector2(120, 120)\nlayout_mode = 2\ntheme_override_constants/item_margin = -2\nhide_root = true\n\n[node name=\"Authors\" type=\"VBoxContainer\" parent=\"AboutUI/Credits\" unique_id=1516447235]\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"Label\" type=\"Label\" parent=\"AboutUI/Credits/Authors\" unique_id=1331462752]\nlayout_mode = 2\ntext = \"Authors\"\n\n[node name=\"AuthorTree\" type=\"Tree\" parent=\"AboutUI/Credits/Authors\" unique_id=352099334]\nlayout_mode = 2\nsize_flags_vertical = 3\ntheme_override_constants/item_margin = -2\nhide_root = true\n\n[node name=\"Donors\" type=\"VBoxContainer\" parent=\"AboutUI/Credits\" unique_id=64181341]\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"Label\" type=\"Label\" parent=\"AboutUI/Credits/Donors\" unique_id=751905909]\nlayout_mode = 2\ntext = \"Donors\"\n\n[node name=\"DonorTree\" type=\"Tree\" parent=\"AboutUI/Credits/Donors\" unique_id=978685847]\nlayout_mode = 2\nsize_flags_vertical = 3\ntheme_override_constants/item_margin = -2\nhide_root = true\n\n[node name=\"Translators\" type=\"VBoxContainer\" parent=\"AboutUI/Credits\" unique_id=1436069323]\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"Label\" type=\"Label\" parent=\"AboutUI/Credits/Translators\" unique_id=792692591]\nlayout_mode = 2\ntext = \"Translators\"\n\n[node name=\"TranslatorTree\" type=\"Tree\" parent=\"AboutUI/Credits/Translators\" unique_id=709376459]\nlayout_mode = 2\nsize_flags_vertical = 3\ntheme_override_constants/item_margin = -2\nhide_root = true\n\n[node name=\"PixeloramaLicense\" type=\"VBoxContainer\" parent=\"AboutUI/Credits\" unique_id=1373022950]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"LicenseText\" type=\"TextEdit\" parent=\"AboutUI/Credits/PixeloramaLicense\" unique_id=1772610877]\nlayout_mode = 2\nsize_flags_vertical = 3\ntext = \"MIT License\n\nCopyright (c) 2019-present Orama Interactive and contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \\\"Software\\\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\"\neditable = false\nwrap_mode = 1\n\n[node name=\"GodotLicenses\" type=\"VBoxContainer\" parent=\"AboutUI/Credits\" unique_id=529412609]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"GodotLicenseTabs\" type=\"TabBar\" parent=\"AboutUI/Credits/GodotLicenses\" unique_id=215965842]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\n\n[node name=\"GodotLicenseText\" type=\"TextEdit\" parent=\"AboutUI/Credits/GodotLicenses\" unique_id=1939333815]\nlayout_mode = 2\nsize_flags_vertical = 3\neditable = false\nwrap_mode = 1\n\n[node name=\"ThirdPartyLicenses\" type=\"VBoxContainer\" parent=\"AboutUI/Credits\" unique_id=948497519]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"ThirdPartyLicenseTabs\" type=\"TabBar\" parent=\"AboutUI/Credits/ThirdPartyLicenses\" unique_id=565341672]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\n\n[node name=\"ThirdPartyLicenseText\" type=\"TextEdit\" parent=\"AboutUI/Credits/ThirdPartyLicenses\" unique_id=1212865096]\nlayout_mode = 2\nsize_flags_vertical = 3\neditable = false\nwrap_mode = 1\n\n[node name=\"HSeparator2\" type=\"HSeparator\" parent=\"AboutUI\" unique_id=652202211]\nlayout_mode = 2\n\n[node name=\"MadeBy\" type=\"Label\" parent=\"AboutUI\" unique_id=954354376]\nlayout_mode = 2\ntext = \"Developed by Orama Interactive\"\n\n[node name=\"Copyright\" type=\"Label\" parent=\"AboutUI\" unique_id=1672260869]\nlayout_mode = 2\ntext = \"©2019-present by Orama Interactive and contributors\"\nlabel_settings = SubResource(\"LabelSettings_aewb6\")\n\n[connection signal=\"about_to_popup\" from=\".\" to=\".\" method=\"_on_about_to_popup\"]\n[connection signal=\"close_requested\" from=\".\" to=\".\" method=\"_on_close_requested\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_visibility_changed\"]\n[connection signal=\"pressed\" from=\"AboutUI/IconsButtons/SloganAndLinks/VBoxContainer/LinkButtons/Website\" to=\".\" method=\"_on_website_pressed\"]\n[connection signal=\"pressed\" from=\"AboutUI/IconsButtons/SloganAndLinks/VBoxContainer/LinkButtons/Github\" to=\".\" method=\"_on_github_pressed\"]\n[connection signal=\"item_selected\" from=\"AboutUI/Credits/Groups\" to=\".\" method=\"_on_groups_item_selected\"]\n[connection signal=\"tab_changed\" from=\"AboutUI/Credits/GodotLicenses/GodotLicenseTabs\" to=\".\" method=\"_on_godot_license_tabs_tab_changed\"]\n[connection signal=\"tab_changed\" from=\"AboutUI/Credits/ThirdPartyLicenses/ThirdPartyLicenseTabs\" to=\".\" method=\"_on_third_party_license_tabs_tab_changed\"]\n"
  },
  {
    "path": "src/UI/Dialogs/BackupRestoreDialog.gd",
    "content": "extends Window\n\nconst MONTHS := [\n\t\"JANUARY\",\n\t\"FEBRUARY\",\n\t\"MARCH\",\n\t\"APRIL\",\n\t\"MAY\",\n\t\"JUNE\",\n\t\"JULY\",\n\t\"AUGUST\",\n\t\"SEPTEMBER\",\n\t\"OCTOBER\",\n\t\"NOVEMBER\",\n\t\"DECEMBER\"\n]\n\nvar selected_session: String\nvar session_directories: Array\nvar session_project_files: Array\n\n@onready var sessions_list: ItemList = %sessions\n@onready var projects_list: ItemList = %projects\n\n\nfunc _on_about_to_popup() -> void:\n\tpopulate_info()\n\n\nfunc _on_visibility_changed() -> void:\n\tif visible:\n\t\treturn\n\tGlobal.dialog_open(false)\n\n\nfunc populate_info():\n\tsessions_list.clear()\n\tprojects_list.clear()\n\tprojects_visible(false)\n\tsession_directories = DirAccess.get_directories_at(OpenSave.BACKUPS_DIRECTORY)\n\tsession_directories.reverse()\n\n\tfor i in session_directories.size():\n\t\tif i == 0:\n\t\t\tsessions_list.add_item(\"(Current Session)\")\n\t\telse:\n\t\t\tsessions_list.add_item(humanize_session_name(session_directories[i]))\n\n\nfunc humanize_session_name(session_name: StringName) -> StringName:\n\tvar info_array = session_name.split(\"_\", false)\n\tvar year := int(info_array[0])\n\t# using clamp here just to make sure this doesn't cause any problems\n\tvar month_name: String = MONTHS[clamp(int(info_array[1]) - 1, 0, 11)]\n\tvar day := int(info_array[2])\n\tvar hour := int(info_array[3])\n\tvar minute := int(info_array[4])\n\tvar second := int(info_array[5])\n\n\tvar prefix = \"\"\n\tvar current_datetime := Time.get_datetime_dict_from_system()\n\tif (\n\t\tyear == current_datetime.year\n\t\tand int(info_array[1]) == current_datetime.month\n\t\tand day == current_datetime.day\n\t):\n\t\tvar lapse_prefix = \" hr ago\"\n\t\tvar diff = current_datetime.hour - hour\n\t\tif diff == 0:\n\t\t\tlapse_prefix = \" min ago\"\n\t\t\tdiff = current_datetime.minute - minute\n\t\t\tif diff == 0:\n\t\t\t\tlapse_prefix = \" sec ago\"\n\t\t\t\tdiff = current_datetime.second - second\n\t\tprefix = str(\"(\", diff, lapse_prefix, \")\")\n\n\treturn str(day, \" \", month_name.capitalize(), \" \", year, \"    \", prefix)\n\n\nfunc load_session(index: int) -> void:\n\tvar session_path = OpenSave.BACKUPS_DIRECTORY.path_join(session_directories[index])\n\tfor project_file in DirAccess.get_files_at(session_path):\n\t\t# Load the project\n\t\tOpenSave.open_pxo_file(session_path.path_join(project_file), false, false)\n\n\t\t# remove the project's save_path so that uses doesn't accidentally save IN the\n\t\t# backup folder\n\t\tvar added_project = Global.projects[-1]\n\t\tif added_project.name == project_file.get_basename():\n\t\t\tadded_project.save_path = \"\"\n\n\nfunc update_project_list(index: int) -> void:\n\tprojects_list.clear()\n\tselected_session = session_directories[index]\n\tsession_project_files = DirAccess.get_files_at(\n\t\tOpenSave.BACKUPS_DIRECTORY.path_join(selected_session)\n\t)\n\tfor project_file in session_project_files:\n\t\tprojects_list.add_item(project_file.get_basename())\n\tprojects_visible(true)\n\n\nfunc load_project(index: int) -> void:\n\t# Load the project\n\tvar p_path = OpenSave.BACKUPS_DIRECTORY.path_join(selected_session).path_join(\n\t\tsession_project_files[index]\n\t)\n\tOpenSave.open_pxo_file(p_path, false, false)\n\t# remove the project's save_path so that uses doesn't accidentally save IN the\n\t# backup folder\n\tvar added_project = Global.projects[-1]\n\tif added_project.name == session_project_files[index].get_basename():\n\t\tadded_project.save_path = \"\"\n\n\nfunc _on_close_requested() -> void:\n\thide()\n\n\nfunc projects_visible(value: bool):\n\t$PanelContainer/VBoxContainer/GridContainer/ProjectsLabel.visible = value\n\tprojects_list.visible = true\n\tvar grid := $PanelContainer/VBoxContainer/GridContainer as GridContainer\n\tif value:\n\t\tgrid.columns = 2\n\t\treturn\n\tgrid.columns = 1\n"
  },
  {
    "path": "src/UI/Dialogs/BackupRestoreDialog.gd.uid",
    "content": "uid://clahbctkpotb2\n"
  },
  {
    "path": "src/UI/Dialogs/BackupRestoreDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://dx25yonx40ehr\"]\n\n[ext_resource type=\"Script\" uid=\"uid://clahbctkpotb2\" path=\"res://src/UI/Dialogs/BackupRestoreDialog.gd\" id=\"1_5v3pd\"]\n\n[node name=\"BackupRestoreDialog\" type=\"Window\" unique_id=956526482]\noversampling_override = 1.0\ntitle = \"Past sessions\"\nposition = Vector2i(0, 36)\nsize = Vector2i(541, 321)\nwrap_controls = true\nexclusive = true\nscript = ExtResource(\"1_5v3pd\")\n\n[node name=\"PanelContainer\" type=\"PanelContainer\" parent=\".\" unique_id=1921965945]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"PanelContainer\" unique_id=355337583]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"PanelContainer/VBoxContainer\" unique_id=782182292]\nlayout_mode = 2\ntext = \"Double click to load an entire session, or a specific project.\"\nautowrap_mode = 2\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"PanelContainer/VBoxContainer\" unique_id=1840852437]\nlayout_mode = 2\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"PanelContainer/VBoxContainer\" unique_id=1688439097]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"SessionLabel\" type=\"Label\" parent=\"PanelContainer/VBoxContainer/GridContainer\" unique_id=1604292133]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Sessions\"\n\n[node name=\"ProjectsLabel\" type=\"Label\" parent=\"PanelContainer/VBoxContainer/GridContainer\" unique_id=367407123]\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Projects\"\n\n[node name=\"sessions\" type=\"ItemList\" parent=\"PanelContainer/VBoxContainer/GridContainer\" unique_id=1582321448]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"projects\" type=\"ItemList\" parent=\"PanelContainer/VBoxContainer/GridContainer\" unique_id=1258462066]\nunique_name_in_owner = true\nvisible = false\ncustom_minimum_size = Vector2(150, 0)\nlayout_mode = 2\n\n[connection signal=\"about_to_popup\" from=\".\" to=\".\" method=\"_on_about_to_popup\"]\n[connection signal=\"close_requested\" from=\".\" to=\".\" method=\"_on_close_requested\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_visibility_changed\"]\n[connection signal=\"item_activated\" from=\"PanelContainer/VBoxContainer/GridContainer/sessions\" to=\".\" method=\"load_session\"]\n[connection signal=\"item_selected\" from=\"PanelContainer/VBoxContainer/GridContainer/sessions\" to=\".\" method=\"update_project_list\"]\n[connection signal=\"item_activated\" from=\"PanelContainer/VBoxContainer/GridContainer/projects\" to=\".\" method=\"load_project\"]\n"
  },
  {
    "path": "src/UI/Dialogs/CreateNewImage.gd",
    "content": "extends ConfirmationDialog\n\nvar aspect_ratio := 1.0\nvar recent_sizes := []\nvar templates: Array[Template] = [\n\t# Basic\n\tTemplate.new(Vector2i(16, 16)),\n\tTemplate.new(Vector2i(32, 32)),\n\tTemplate.new(Vector2i(64, 64)),\n\tTemplate.new(Vector2i(128, 128)),\n\t# Nintendo\n\tTemplate.new(Vector2i(160, 144), \"GB\"),\n\tTemplate.new(Vector2i(240, 160), \"GBA\"),\n\tTemplate.new(Vector2i(256, 224), \"NES (NTSC)\"),\n\tTemplate.new(Vector2i(256, 240), \"NES (PAL)\"),\n\tTemplate.new(Vector2i(512, 448), \"SNES (NTSC)\"),\n\tTemplate.new(Vector2i(512, 480), \"SNES (PAL)\"),\n\tTemplate.new(Vector2i(646, 486), \"N64 (NTSC)\"),\n\tTemplate.new(Vector2i(786, 576), \"N64 (PAL)\"),\n\t# Sega\n\tTemplate.new(Vector2i(256, 192), \"SMS (NTSC)\"),\n\tTemplate.new(Vector2i(256, 224), \"SMS (PAL)\"),\n\tTemplate.new(Vector2i(160, 144), \"GG\"),\n\tTemplate.new(Vector2i(320, 224), \"MD (NTSC)\"),\n\tTemplate.new(Vector2i(320, 240), \"MD (PAL)\"),\n\t# NEC\n\tTemplate.new(Vector2i(256, 239), \"PC Engine\"),  #256×224 to 512×242 (mostly 256×239)\n\t# DOS\n\tTemplate.new(Vector2i(320, 200), \"DOS EGA\"),\n\tTemplate.new(Vector2i(320, 200), \"DOS VGA\"),\n\tTemplate.new(Vector2i(620, 480), \"DOS SVGA\"),\n\tTemplate.new(Vector2i(640, 200), \"DOS CGA (2-Colour)\"),\n\tTemplate.new(Vector2i(320, 200), \"DOS CGA (4-Colour)\"),\n\tTemplate.new(Vector2i(160, 240), \"DOS CGA (Composite)\"),\n\tTemplate.new(Vector2i(160, 240), \"Tandy\"),\n\t# Commodore\n\tTemplate.new(Vector2i(320, 200), \"Amiga OCS LowRes (NTSC)\"),\n\tTemplate.new(Vector2i(320, 256), \"Amiga OCS LowRes (PAL)\"),\n\tTemplate.new(Vector2i(640, 200), \"Amiga OCS HiRes  (NTSC)\"),\n\tTemplate.new(Vector2i(640, 256), \"Amiga OCS HiRes  (PAL)\"),\n\tTemplate.new(Vector2i(1280, 200), \"Amiga ECS Super-HiRes  (NTSC)\"),\n\tTemplate.new(Vector2i(1280, 256), \"Amiga ECS SuperHiRes  (PAL)\"),\n\tTemplate.new(Vector2i(640, 480), \"Amiga ECS Multiscan\"),\n\tTemplate.new(Vector2i(320, 200), \"C64\"),\n\t# Sinclair\n\tTemplate.new(Vector2i(256, 192), \"ZX Spectrum\"),\n\t# Tile Maps/1:1 Presets\n\tTemplate.new(Vector2i(8, 8), \"Tile Maps/1:1 Presets\"),\n\tTemplate.new(Vector2i(16, 16), \"Tile Maps/1:1 Presets\"),\n\tTemplate.new(Vector2i(32, 32), \"Tile Maps/1:1 Presets\"),\n\tTemplate.new(Vector2i(64, 64), \"Tile Maps/1:1 Presets\"),\n\tTemplate.new(Vector2i(48, 48), \"Tile Maps/1:1 Presets\"),\n\tTemplate.new(Vector2i(80, 80), \"Tile Maps/1:1 Presets\"),\n\tTemplate.new(Vector2i(144, 144), \"Tile Maps/1:1 Presets\"),\n\tTemplate.new(Vector2i(320, 320), \"Tile Maps/1:1 Presets\"),\n\t# 4:3 Presets\n\tTemplate.new(Vector2i(160, 120), \"4:3 Presets\"),\n\tTemplate.new(Vector2i(200, 150), \"4:3 Presets\"),\n\tTemplate.new(Vector2i(320, 240), \"4:3 Presets\"),\n\tTemplate.new(Vector2i(400, 300), \"4:3 Presets\"),\n\t# 16:9 Presets\n\tTemplate.new(Vector2i(192, 108), \"16:9 Presets\"),\n\tTemplate.new(Vector2i(240, 135), \"16:9 Presets\"),\n\tTemplate.new(Vector2i(320, 180), \"16:9 Presets\"),\n\tTemplate.new(Vector2i(480, 270), \"16:9 Presets\"),\n\t# Paper Presets\n\tTemplate.new(Vector2i(298, 421), \"A4 Portrait\"),\n\tTemplate.new(Vector2i(210, 297), \"A5 Portrait\"),\n]\n\n@onready var templates_options := %TemplatesOptions as OptionButton\n@onready var ratio_box := %AspectRatioButton as TextureButton\n@onready var width_value := %WidthValue as SpinBox\n@onready var height_value := %HeightValue as SpinBox\n@onready var portrait_button := %PortraitButton as Button\n@onready var landscape_button := %LandscapeButton as Button\n@onready var name_input := $VBoxContainer/FillColorContainer/NameInput as LineEdit\n@onready var fill_color_node := %FillColor as ColorPickerButton\n@onready var color_mode := $VBoxContainer/FillColorContainer/ColorMode as OptionButton\n@onready var recent_templates_list := %RecentTemplates as ItemList\n\n\nclass Template:\n\tvar resolution: Vector2i\n\tvar name: String\n\n\tfunc _init(_resolution: Vector2i, _name := \"\") -> void:\n\t\tresolution = _resolution\n\t\tname = _name\n\n\nfunc _ready() -> void:\n\twidth_value.value = Global.default_width\n\theight_value.value = Global.default_height\n\taspect_ratio = width_value.value / height_value.value\n\tfill_color_node.color = Global.default_fill_color\n\tfill_color_node.get_picker().presets_visible = false\n\n\t_create_option_list()\n\n\nfunc _on_CreateNewImage_about_to_show():\n\trecent_sizes = Global.config_cache.get_value(\"templates\", \"recent_sizes\", [])\n\t_create_recent_list()\n\n\nfunc _create_option_list() -> void:\n\tvar i := 1\n\tfor template in templates:\n\t\tif template.name != \"\":\n\t\t\ttemplates_options.add_item(\n\t\t\t\t\"{width}x{height} - {name}\".format(\n\t\t\t\t\t{\n\t\t\t\t\t\t\"width\": template.resolution.x,\n\t\t\t\t\t\t\"height\": template.resolution.y,\n\t\t\t\t\t\t\"name\": template.name\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\ti\n\t\t\t)\n\t\telse:\n\t\t\ttemplates_options.add_item(\n\t\t\t\t\"{width}x{height}\".format(\n\t\t\t\t\t{\"width\": template.resolution.x, \"height\": template.resolution.y}\n\t\t\t\t),\n\t\t\t\ti\n\t\t\t)\n\n\t\ti += 1\n\n\nfunc _create_recent_list() -> void:\n\trecent_templates_list.clear()\n\tfor recent_size in recent_sizes:\n\t\trecent_templates_list.add_item(\n\t\t\t\"{width}x{height}\".format({\"width\": recent_size.x, \"height\": recent_size.y})\n\t\t)\n\n\nfunc _on_CreateNewImage_confirmed() -> void:\n\tvar width: int = width_value.value\n\tvar height: int = height_value.value\n\tvar image_size := Vector2i(width, height)\n\tif image_size in recent_sizes:\n\t\trecent_sizes.erase(image_size)\n\trecent_sizes.insert(0, image_size)\n\tif recent_sizes.size() > 10:\n\t\trecent_sizes.resize(10)\n\tGlobal.config_cache.set_value(\"templates\", \"recent_sizes\", recent_sizes)\n\tvar fill_color := fill_color_node.color\n\tvar proj_name := name_input.text\n\tif !proj_name.is_valid_filename():\n\t\tproj_name = tr(\"untitled\")\n\n\tvar new_project := Project.new([], proj_name, image_size)\n\tif color_mode.selected == 1:\n\t\tnew_project.color_mode = Project.INDEXED_MODE\n\tnew_project.layers.append(PixelLayer.new(new_project))\n\tnew_project.fill_color = fill_color\n\tnew_project.frames.append(new_project.new_empty_frame())\n\tGlobal.projects.append(new_project)\n\tGlobal.tabs.current_tab = Global.tabs.get_tab_count() - 1\n\tGlobal.canvas.camera_zoom()\n\n\nfunc _on_AspectRatioButton_toggled(_button_pressed: bool) -> void:\n\taspect_ratio = width_value.value / height_value.value\n\n\nfunc _on_SizeValue_value_changed(value: float) -> void:\n\tif ratio_box.button_pressed:\n\t\tif width_value.value == value:\n\t\t\theight_value.value = width_value.value / aspect_ratio\n\t\tif height_value.value == value:\n\t\t\twidth_value.value = height_value.value * aspect_ratio\n\n\ttoggle_size_buttons()\n\n\nfunc toggle_size_buttons() -> void:\n\tportrait_button.toggled.disconnect(_on_PortraitButton_toggled)\n\tlandscape_button.toggled.disconnect(_on_LandscapeButton_toggled)\n\tportrait_button.button_pressed = width_value.value < height_value.value\n\tlandscape_button.button_pressed = width_value.value > height_value.value\n\n\tportrait_button.toggled.connect(_on_PortraitButton_toggled)\n\tlandscape_button.toggled.connect(_on_LandscapeButton_toggled)\n\n\nfunc _on_TemplatesOptions_item_selected(id: int) -> void:\n\t# If a template is chosen while \"ratio button\" is pressed then temporarily release it\n\tvar temporary_release := false\n\tif ratio_box.button_pressed:\n\t\tratio_box.button_pressed = false\n\t\ttemporary_release = true\n\n\tif id > 0:\n\t\twidth_value.value = templates[id - 1].resolution.x\n\t\theight_value.value = templates[id - 1].resolution.y\n\telse:\n\t\twidth_value.value = Global.default_width\n\t\theight_value.value = Global.default_height\n\n\tif temporary_release:\n\t\tratio_box.button_pressed = true\n\n\nfunc _on_RecentTemplates_item_selected(id):\n\t#if a template is chosen while \"ratio button\" is pressed then temporarily release it\n\tvar temporary_release = false\n\tif ratio_box.button_pressed:\n\t\tratio_box.button_pressed = false\n\t\ttemporary_release = true\n\n\twidth_value.value = recent_sizes[id].x\n\theight_value.value = recent_sizes[id].y\n\n\tif temporary_release:\n\t\tratio_box.button_pressed = true\n\n\nfunc _on_PortraitButton_toggled(button_pressed: bool) -> void:\n\tif !button_pressed or height_value.value > width_value.value:\n\t\ttoggle_size_buttons()\n\t\treturn\n\tswitch_width_height()\n\n\nfunc _on_LandscapeButton_toggled(button_pressed: bool) -> void:\n\tif !button_pressed or width_value.value > height_value.value:\n\t\ttoggle_size_buttons()\n\t\treturn\n\tswitch_width_height()\n\n\nfunc switch_width_height() -> void:\n\twidth_value.value_changed.disconnect(_on_SizeValue_value_changed)\n\theight_value.value_changed.disconnect(_on_SizeValue_value_changed)\n\n\tvar height := height_value.value\n\theight_value.value = width_value.value\n\twidth_value.value = height\n\ttoggle_size_buttons()\n\n\twidth_value.value_changed.connect(_on_SizeValue_value_changed)\n\theight_value.value_changed.connect(_on_SizeValue_value_changed)\n\n\nfunc _on_visibility_changed() -> void:\n\tif not visible:\n\t\tGlobal.dialog_open(false)\n"
  },
  {
    "path": "src/UI/Dialogs/CreateNewImage.gd.uid",
    "content": "uid://dyvc3b7dt1xdo\n"
  },
  {
    "path": "src/UI/Dialogs/CreateNewImage.tscn",
    "content": "[gd_scene format=3 uid=\"uid://btjf3lj873q1t\"]\n\n[ext_resource type=\"Script\" uid=\"uid://dyvc3b7dt1xdo\" path=\"res://src/UI/Dialogs/CreateNewImage.gd\" id=\"1\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://kj867tldofxi\" path=\"res://assets/graphics/misc/portrait.png\" id=\"2\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://0vc1pn1sn2ud\" path=\"res://assets/graphics/misc/landscape.png\" id=\"3\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://cancw70yw0pv7\" path=\"res://assets/graphics/misc/lock_aspect_2.png\" id=\"4\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://beqermx8s5q8y\" path=\"res://assets/graphics/misc/lock_aspect.png\" id=\"5\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://kd10jfc1dxf5\" path=\"res://assets/graphics/misc/lock_aspect_guides.png\" id=\"6\"]\n\n[node name=\"CreateNewImage\" type=\"ConfirmationDialog\" unique_id=1694280343]\ntitle = \"New...\"\nposition = Vector2i(0, 36)\nsize = Vector2i(434, 330)\nscript = ExtResource(\"1\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=354469239]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 8.0\noffset_top = 8.0\noffset_right = -8.0\noffset_bottom = -49.0\nsize_flags_horizontal = 0\n\n[node name=\"ImageSize\" type=\"Label\" parent=\"VBoxContainer\" unique_id=1213505276]\nlayout_mode = 2\ntext = \"Image Size\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"VBoxContainer\" unique_id=1697698153]\nlayout_mode = 2\n\n[node name=\"SizeContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer\" unique_id=1477493765]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"SizeOptions\" type=\"VBoxContainer\" parent=\"VBoxContainer/SizeContainer\" unique_id=1172135176]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"TemplatesContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer/SizeContainer/SizeOptions\" unique_id=1395521626]\nlayout_mode = 2\n\n[node name=\"TemplatesLabel\" type=\"Label\" parent=\"VBoxContainer/SizeContainer/SizeOptions/TemplatesContainer\" unique_id=519859473]\ncustom_minimum_size = Vector2(100, 0)\nlayout_mode = 2\ntext = \"Templates:\"\n\n[node name=\"TemplatesOptions\" type=\"OptionButton\" parent=\"VBoxContainer/SizeContainer/SizeOptions/TemplatesContainer\" unique_id=556511745]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntoggle_mode = false\nselected = 0\nitem_count = 1\npopup/item_0/text = \"Default\"\npopup/item_0/id = 0\n\n[node name=\"WidthHeightContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer/SizeContainer/SizeOptions\" unique_id=2117963120]\nlayout_mode = 2\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"VBoxContainer/SizeContainer/SizeOptions/WidthHeightContainer\" unique_id=870976107]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"WidthContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer/SizeContainer/SizeOptions/WidthHeightContainer/VBoxContainer\" unique_id=1992253137]\nlayout_mode = 2\n\n[node name=\"WidthLabel\" type=\"Label\" parent=\"VBoxContainer/SizeContainer/SizeOptions/WidthHeightContainer/VBoxContainer/WidthContainer\" unique_id=532569851]\ncustom_minimum_size = Vector2(100, 0)\nlayout_mode = 2\ntext = \"Width:\"\n\n[node name=\"WidthValue\" type=\"SpinBox\" parent=\"VBoxContainer/SizeContainer/SizeOptions/WidthHeightContainer/VBoxContainer/WidthContainer\" unique_id=730898689]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmin_value = 1.0\nmax_value = 16384.0\nvalue = 64.0\nsuffix = \"px\"\n\n[node name=\"HeightContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer/SizeContainer/SizeOptions/WidthHeightContainer/VBoxContainer\" unique_id=676739656]\nlayout_mode = 2\n\n[node name=\"HeightLabel\" type=\"Label\" parent=\"VBoxContainer/SizeContainer/SizeOptions/WidthHeightContainer/VBoxContainer/HeightContainer\" unique_id=1442112056]\ncustom_minimum_size = Vector2(100, 0)\nlayout_mode = 2\ntext = \"Height:\"\n\n[node name=\"HeightValue\" type=\"SpinBox\" parent=\"VBoxContainer/SizeContainer/SizeOptions/WidthHeightContainer/VBoxContainer/HeightContainer\" unique_id=1921126848]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmin_value = 1.0\nmax_value = 16384.0\nvalue = 64.0\nsuffix = \"px\"\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"VBoxContainer/SizeContainer/SizeOptions/WidthHeightContainer\" unique_id=1291480259 groups=[\"UIButtons\"]]\nlayout_mode = 2\ntexture = ExtResource(\"6\")\n\n[node name=\"AspectRatioButton\" type=\"TextureButton\" parent=\"VBoxContainer/SizeContainer/SizeOptions/WidthHeightContainer/TextureRect\" unique_id=139144517 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -4.5\noffset_top = -9.0\noffset_right = 11.5\noffset_bottom = 7.0\ntooltip_text = \"Lock aspect ratio\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\ntexture_normal = ExtResource(\"4\")\ntexture_pressed = ExtResource(\"5\")\n\n[node name=\"SizeButtonsContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer/SizeContainer/SizeOptions\" unique_id=791128996]\nlayout_mode = 2\n\n[node name=\"PortraitButton\" type=\"Button\" parent=\"VBoxContainer/SizeContainer/SizeOptions/SizeButtonsContainer\" unique_id=1497160393 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Portrait\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\ntoggle_mode = true\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"VBoxContainer/SizeContainer/SizeOptions/SizeButtonsContainer/PortraitButton\" unique_id=1397223178]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -8.0\noffset_top = -8.0\noffset_right = 8.0\noffset_bottom = 8.0\ntexture = ExtResource(\"2\")\n\n[node name=\"LandscapeButton\" type=\"Button\" parent=\"VBoxContainer/SizeContainer/SizeOptions/SizeButtonsContainer\" unique_id=1191847327 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Landscape\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\ntoggle_mode = true\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"VBoxContainer/SizeContainer/SizeOptions/SizeButtonsContainer/LandscapeButton\" unique_id=1280499014]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -8.0\noffset_top = -8.0\noffset_right = 8.0\noffset_bottom = 8.0\ntexture = ExtResource(\"3\")\n\n[node name=\"VSeparator\" type=\"VSeparator\" parent=\"VBoxContainer/SizeContainer\" unique_id=853128982]\nlayout_mode = 2\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"VBoxContainer/SizeContainer\" unique_id=1942216086]\nclip_contents = true\ncustom_minimum_size = Vector2(150, 0)\nlayout_mode = 2\nfocus_mode = 2\nmouse_filter = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"VBoxContainer/SizeContainer/VBoxContainer\" unique_id=1702747430]\nlayout_mode = 2\ntext = \"Recent:\"\n\n[node name=\"RecentTemplates\" type=\"ItemList\" parent=\"VBoxContainer/SizeContainer/VBoxContainer\" unique_id=975591109]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\nallow_reselect = true\n\n[node name=\"HSeparator2\" type=\"HSeparator\" parent=\"VBoxContainer\" unique_id=81322682]\nlayout_mode = 2\n\n[node name=\"FillColorContainer\" type=\"GridContainer\" parent=\"VBoxContainer\" unique_id=1571611729]\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"NameLabel\" type=\"Label\" parent=\"VBoxContainer/FillColorContainer\" unique_id=1022975619]\ncustom_minimum_size = Vector2(100, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Project Name:\"\n\n[node name=\"NameInput\" type=\"LineEdit\" parent=\"VBoxContainer/FillColorContainer\" unique_id=896854503]\nlayout_mode = 2\nsize_flags_horizontal = 3\nplaceholder_text = \"Enter name... (Default \\\"untitled\\\")\"\n\n[node name=\"FillColorLabel\" type=\"Label\" parent=\"VBoxContainer/FillColorContainer\" unique_id=1713063690]\ncustom_minimum_size = Vector2(100, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Fill with color:\"\n\n[node name=\"FillColor\" type=\"ColorPickerButton\" parent=\"VBoxContainer/FillColorContainer\" unique_id=1828571148]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(64, 20)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ncolor = Color(0, 0, 0, 0)\n\n[node name=\"ColorModeLabel\" type=\"Label\" parent=\"VBoxContainer/FillColorContainer\" unique_id=595400360]\ncustom_minimum_size = Vector2(100, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Color mode:\"\n\n[node name=\"ColorMode\" type=\"OptionButton\" parent=\"VBoxContainer/FillColorContainer\" unique_id=390074045]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 2\npopup/item_0/text = \"RGBA\"\npopup/item_0/id = 0\npopup/item_1/text = \"Indexed\"\npopup/item_1/id = 1\n\n[connection signal=\"about_to_popup\" from=\".\" to=\".\" method=\"_on_CreateNewImage_about_to_show\"]\n[connection signal=\"confirmed\" from=\".\" to=\".\" method=\"_on_CreateNewImage_confirmed\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_visibility_changed\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/SizeContainer/SizeOptions/TemplatesContainer/TemplatesOptions\" to=\".\" method=\"_on_TemplatesOptions_item_selected\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/SizeContainer/SizeOptions/WidthHeightContainer/VBoxContainer/WidthContainer/WidthValue\" to=\".\" method=\"_on_SizeValue_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/SizeContainer/SizeOptions/WidthHeightContainer/VBoxContainer/HeightContainer/HeightValue\" to=\".\" method=\"_on_SizeValue_value_changed\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/SizeContainer/SizeOptions/WidthHeightContainer/TextureRect/AspectRatioButton\" to=\".\" method=\"_on_AspectRatioButton_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/SizeContainer/SizeOptions/SizeButtonsContainer/PortraitButton\" to=\".\" method=\"_on_PortraitButton_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/SizeContainer/SizeOptions/SizeButtonsContainer/LandscapeButton\" to=\".\" method=\"_on_LandscapeButton_toggled\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/SizeContainer/VBoxContainer/RecentTemplates\" to=\".\" method=\"_on_RecentTemplates_item_selected\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ExportDialog.gd",
    "content": "extends ConfirmationDialog\n\n## Called when user resumes export after filename collision\nsignal resume_export_function\nsignal about_to_preview(dict: Dictionary)\n\nvar preview_current_frame := 0\nvar preview_frames: Array[Texture2D] = []\n\n# Allow custom exporters to be added\nvar image_exports: Array[Export.FileFormat] = [\n\tExport.FileFormat.PNG,\n\tExport.FileFormat.WEBP,\n\tExport.FileFormat.JPEG,\n\tExport.FileFormat.EXR,\n\tExport.FileFormat.GIF,\n\tExport.FileFormat.APNG,\n\tExport.FileFormat.MP4,\n\tExport.FileFormat.AVI,\n\tExport.FileFormat.OGV,\n\tExport.FileFormat.MKV,\n\tExport.FileFormat.WEBM,\n]\nvar spritesheet_exports: Array[Export.FileFormat] = [\n\tExport.FileFormat.PNG, Export.FileFormat.WEBP, Export.FileFormat.JPEG, Export.FileFormat.EXR\n]\n\nvar _preview_images: Array[Export.ProcessedImage]\n\n@onready var tabs: TabBar = $VBoxContainer/TabBar\n@onready var checker: ColorRect = $\"%TransparentChecker\"\n@onready var previews: GridContainer = $\"%Previews\"\n\n@onready var spritesheet_orientation: OptionButton = $\"%Orientation\"\n@onready var spritesheet_lines_count: SpinBox = $\"%LinesCount\"\n@onready var spritesheet_lines_count_label: Label = $\"%LinesCountLabel\"\n@onready var spritesheet_layers_as_separate_files: CheckBox = %LayersAsSeparateFiles\n\n@onready var frames_option_button: OptionButton = $\"%Frames\"\n@onready var layers_option_button: OptionButton = $\"%Layers\"\n@onready var options_resize: ValueSlider = $\"%Resize\"\n@onready var dimension_label: Label = $\"%DimensionLabel\"\n\n@onready var path_line_edit: LineEdit = $\"%PathLineEdit\"\n@onready var file_format_options: OptionButton = $\"%FileFormat\"\n@onready var options_interpolation: OptionButton = $\"%Interpolation\"\n\n@onready var file_exists_alert_popup: AcceptDialog = $FileExistsAlert\n@onready var path_validation_alert_popup: AcceptDialog = $PathValidationAlert\n@onready var path_dialog_popup: FileDialog = $PathDialog\n@onready var export_progress_popup: Window = $ExportProgressBar\n@onready var export_progress_bar := %ProgressBar as ProgressBar\n@onready var frame_timer: Timer = $FrameTimer\n\n\nfunc _ready() -> void:\n\tget_ok_button().size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\tget_cancel_button().size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\ttabs.add_tab(\"Image\")\n\ttabs.add_tab(\"Spritesheet\")\n\tif OS.get_name() == \"Windows\":\n\t\tfile_exists_alert_popup.add_button(\"Cancel Export\", true, \"cancel\")\n\telse:\n\t\tfile_exists_alert_popup.add_button(\"Cancel Export\", false, \"cancel\")\n\t\tif OS.get_name() == \"Web\" or OS.get_name() == \"Android\":\n\t\t\tfile_format_options.show()\n\n\t# TODO: Remove the loop when https://github.com/godotengine/godot/issues/92848 gets fixed.\n\tfor dialog_child in path_dialog_popup.find_children(\"\", \"Window\", true, false):\n\t\tif dialog_child is Window:\n\t\t\tdialog_child.always_on_top = path_dialog_popup.always_on_top\n\n\nfunc show_tab() -> void:\n\tget_tree().call_group(\"ExportImageOptions\", \"hide\")\n\tget_tree().call_group(\"ExportSpritesheetOptions\", \"hide\")\n\tset_file_format_selector()\n\tcreate_frame_tag_list()\n\tframes_option_button.select(Export.frame_current_tag)\n\tcreate_layer_list()\n\tlayers_option_button.select(Export.export_layers)\n\tmatch Export.current_tab:\n\t\tExport.ExportTab.IMAGE:\n\t\t\tExport.process_animation()\n\t\t\tget_tree().call_group(\"ExportImageOptions\", \"show\")\n\t\t\tget_tree().set_group(\n\t\t\t\t\"ExportMultipleFilesOptions\", \"disabled\", Export.is_single_file_format()\n\t\t\t)\n\t\t\tget_tree().set_group(\n\t\t\t\t\"ExportMultipleFilesEditableOptions\", \"editable\", !Export.is_single_file_format()\n\t\t\t)\n\t\tExport.ExportTab.SPRITESHEET:\n\t\t\tframe_timer.stop()\n\t\t\tExport.process_spritesheet()\n\t\t\tspritesheet_orientation.selected = Export.orientation\n\t\t\tspritesheet_lines_count.max_value = Export.number_of_frames\n\t\t\tspritesheet_lines_count.value = Export.lines_count\n\t\t\tspritesheet_layers_as_separate_files.disabled = !Export.split_layers\n\t\t\tget_tree().call_group(\"ExportSpritesheetOptions\", \"show\")\n\t\t\t_handle_orientation_ui()\n\tset_preview()\n\tupdate_dimensions_label()\n\ttabs.current_tab = Export.current_tab\n\tif OS.get_name() == \"Web\":\n\t\tget_tree().call_group(\"NotHTML5\", \"hide\")\n\telif OS.get_name() == \"Android\":\n\t\tget_tree().call_group(\"NotAndroid\", \"hide\")\n\n\nfunc set_preview() -> void:\n\t_preview_images = Export.processed_images\n\tvar preview_data := {\n\t\t\"exporter_id\": Global.current_project.file_format,\n\t\t\"export_tab\": Export.current_tab,\n\t\t\"preview_images\": _preview_images,\n\t}\n\tabout_to_preview.emit(preview_data)\n\tremove_previews()\n\tif _preview_images.size() == 1:\n\t\tpreviews.columns = 1\n\t\tadd_image_preview(_preview_images[0].image)\n\telse:\n\t\tif Export.is_single_file_format():\n\t\t\tpreviews.columns = 1\n\t\t\tadd_animated_preview()\n\t\telse:\n\t\t\tpreviews.columns = ceili(sqrt(_preview_images.size()))\n\t\t\tfor i in range(_preview_images.size()):\n\t\t\t\tadd_image_preview(_preview_images[i].image, i + 1)\n\n\nfunc add_image_preview(image: Image, canvas_number: int = -1) -> void:\n\tvar container := create_preview_container()\n\tvar preview := create_preview_rect()\n\tpreview.texture = ImageTexture.create_from_image(image)\n\tcontainer.add_child(preview)\n\n\tif canvas_number != -1:\n\t\tvar label := Label.new()\n\t\tlabel.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER\n\t\tlabel.text = str(canvas_number)\n\t\tcontainer.add_child(label)\n\n\tpreviews.add_child(container)\n\n\nfunc add_animated_preview() -> void:\n\tpreview_current_frame = 0\n\tpreview_frames = []\n\n\tfor processed_image in _preview_images:\n\t\tvar texture := ImageTexture.create_from_image(processed_image.image)\n\t\tpreview_frames.push_back(texture)\n\n\tvar container := create_preview_container()\n\tcontainer.name = \"PreviewContainer\"\n\tvar preview := create_preview_rect()\n\tpreview.name = \"Preview\"\n\tpreview.texture = preview_frames[preview_current_frame]\n\tcontainer.add_child(preview)\n\n\tpreviews.add_child(container)\n\tframe_timer.set_one_shot(true)  # wait_time can't change correctly if the timer is playing\n\tframe_timer.wait_time = _preview_images[preview_current_frame].duration\n\tframe_timer.start()\n\n\nfunc create_preview_container() -> VBoxContainer:\n\tvar container := VBoxContainer.new()\n\tcontainer.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\tcontainer.size_flags_vertical = Control.SIZE_EXPAND_FILL\n\tcontainer.custom_minimum_size = Vector2(0, 128)\n\treturn container\n\n\nfunc create_preview_rect() -> TextureRect:\n\tvar preview := TextureRect.new()\n\tpreview.expand_mode = TextureRect.EXPAND_IGNORE_SIZE\n\tpreview.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\tpreview.size_flags_vertical = Control.SIZE_EXPAND_FILL\n\tpreview.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_CENTERED\n\treturn preview\n\n\nfunc remove_previews() -> void:\n\tfor child in previews.get_children():\n\t\tchild.free()\n\n\nfunc set_file_format_selector() -> void:\n\tmatch Export.current_tab:\n\t\tExport.ExportTab.IMAGE:\n\t\t\t_set_file_format_selector_suitable_file_formats(image_exports)\n\t\tExport.ExportTab.SPRITESHEET:\n\t\t\t_set_file_format_selector_suitable_file_formats(spritesheet_exports)\n\n\n## Updates the suitable list of file formats. First is preferred.\n## Note that if the current format is in the list, it stays for consistency.\nfunc _set_file_format_selector_suitable_file_formats(formats: Array[Export.FileFormat]) -> void:\n\tvar project := Global.current_project\n\tfile_format_options.clear()\n\tpath_dialog_popup.clear_filters()\n\tvar ffmpeg_installed := Export.is_ffmpeg_installed()\n\tvar needs_update := true\n\tfor i in formats:\n\t\tif i == Export.FileFormat.EXR:\n\t\t\tif OS.get_name() == \"Android\" or OS.get_name() == \"Web\":\n\t\t\t\tcontinue\n\t\tif project.file_format == i:\n\t\t\tneeds_update = false\n\t\tif not ffmpeg_installed:\n\t\t\tif i in Export.ffmpeg_formats:\n\t\t\t\tcontinue\n\t\tvar label := Export.file_format_string(i) + \"; \" + Export.file_format_description(i)\n\t\tfile_format_options.add_item(label, i)\n\t\tif OS.get_name() != \"Android\":\n\t\t\tpath_dialog_popup.add_filter(\n\t\t\t\t\"*\" + Export.file_format_string(i), Export.file_format_description(i)\n\t\t\t)\n\tif needs_update:\n\t\tproject.file_format = formats[0]\n\tfile_format_options.selected = file_format_options.get_item_index(project.file_format)\n\tif OS.get_name() == \"Android\":\n\t\tvar file_ext_str := \"*\" + Export.file_format_string(project.file_format)\n\t\tvar file_format_description := Export.file_format_description(project.file_format)\n\t\tpath_dialog_popup.add_filter(file_ext_str, file_format_description)\n\n\nfunc create_frame_tag_list() -> void:\n\t# Clear existing tag list from entry if it exists\n\tframes_option_button.clear()\n\t# Re-add removed items\n\tframes_option_button.add_item(\"All frames\", 0)\n\tframes_option_button.add_item(\"Selected frames\", 1)\n\n\t# Repopulate list with current tag list\n\tfor item in Global.current_project.animation_tags:\n\t\tframes_option_button.add_item(item.name)\n\n\nfunc create_layer_list() -> void:\n\t# Clear existing tag list from entry if it exists\n\tlayers_option_button.clear()\n\t# Re-add removed items\n\tlayers_option_button.add_item(\"Visible layers\", 0)\n\tlayers_option_button.add_item(\"Selected layers\", 1)\n\n\t# Repopulate list with current tag list\n\tfor layer in Global.current_project.layers:\n\t\tvar layer_name := tr(\"Pixel layer:\")\n\t\tif layer is GroupLayer:\n\t\t\tlayer_name = tr(\"Group layer:\")\n\t\telif layer is Layer3D:\n\t\t\tlayer_name = tr(\"3D layer:\")\n\t\telif layer is LayerTileMap:\n\t\t\tlayer_name = tr(\"Tilemap layer:\")\n\t\tlayer_name += \" %s\" % layer.get_layer_path()\n\t\tlayers_option_button.add_item(layer_name)\n\n\nfunc update_dimensions_label() -> void:\n\tif _preview_images.size() > 0:\n\t\tvar new_size: Vector2i = _preview_images[0].image.get_size() * (Export.resize / 100.0)\n\t\tdimension_label.text = str(new_size.x, \"×\", new_size.y)\n\n\nfunc open_path_validation_alert_popup(path_or_name: int = -1) -> void:\n\t# 0 is invalid path, 1 is invalid name\n\tvar error_text := \"Directory path and file name are not valid!\"\n\tif path_or_name == 0:\n\t\terror_text = \"Directory path is not valid!\"\n\telif path_or_name == 1:\n\t\terror_text = \"File name is not valid!\"\n\n\tpath_validation_alert_popup.dialog_text = error_text\n\tprint(error_text)\n\tpath_validation_alert_popup.popup_centered_clamped()\n\n\nfunc open_file_exists_alert_popup(text: String) -> void:\n\tfile_exists_alert_popup.dialog_text = text\n\tfile_exists_alert_popup.popup_centered_clamped()\n\n\nfunc toggle_export_progress_popup(open: bool) -> void:\n\tif open:\n\t\texport_progress_popup.popup_centered_clamped()\n\telse:\n\t\texport_progress_popup.hide()\n\n\nfunc set_export_progress_bar(value: float) -> void:\n\texport_progress_bar.value = value\n\n\nfunc _on_about_to_popup() -> void:\n\tget_ok_button().text = \"Export\"\n\tGlobal.canvas.selection.transform_content_confirm()\n\tvar project := Global.current_project\n\t# If we're on Web, don't let the user change the directory path\n\tif OS.get_name() == \"Web\":\n\t\tproject.export_directory_path = \"user://\"\n\n\tif project.export_directory_path.is_empty():\n\t\tproject.export_directory_path = Global.config_cache.get_value(\n\t\t\t\"data\", \"current_dir\", OS.get_system_dir(OS.SYSTEM_DIR_DESKTOP)\n\t\t)\n\n\t# If export already occurred - sets GUI to show previous settings\n\toptions_resize.value = Export.resize\n\toptions_interpolation.selected = Export.interpolation\n\tvar file_ext := Export.file_format_string(project.file_format)\n\tif OS.get_name() == \"Web\":\n\t\tpath_line_edit.text = project.file_name + file_ext\n\telse:\n\t\tpath_line_edit.text = project.export_directory_path.path_join(project.file_name) + file_ext\n\tpath_dialog_popup.current_dir = project.export_directory_path\n\tExport.cache_blended_frames()\n\tExport.overwrite_asked = false\n\tshow_tab()\n\n\t# Set the size of the preview checker\n\tchecker.size = checker.get_parent().size\n\n\nfunc _on_tab_bar_tab_clicked(tab: Export.ExportTab) -> void:\n\tExport.current_tab = tab\n\tshow_tab()\n\n\nfunc _on_orientation_item_selected(id: Export.Orientation) -> void:\n\tExport.orientation = id\n\t_handle_orientation_ui()\n\tspritesheet_lines_count.value = Export.frames_divided_by_spritesheet_lines()\n\tExport.process_spritesheet()\n\tupdate_dimensions_label()\n\tset_preview()\n\n\nfunc _handle_orientation_ui() -> void:\n\tif Export.orientation == Export.Orientation.ROWS:\n\t\tspritesheet_lines_count_label.visible = true\n\t\tspritesheet_lines_count.visible = true\n\t\tspritesheet_lines_count_label.text = \"Columns:\"\n\telif Export.orientation == Export.Orientation.COLUMNS:\n\t\tspritesheet_lines_count_label.visible = true\n\t\tspritesheet_lines_count.visible = true\n\t\tspritesheet_lines_count_label.text = \"Rows:\"\n\telse:\n\t\tspritesheet_lines_count_label.visible = false\n\t\tspritesheet_lines_count.visible = false\n\n\nfunc _on_lines_count_value_changed(value: float) -> void:\n\tExport.lines_count = value\n\tExport.process_spritesheet()\n\tupdate_dimensions_label()\n\tset_preview()\n\n\nfunc _on_direction_item_selected(id: Export.AnimationDirection) -> void:\n\tExport.direction = id\n\tpreview_current_frame = 0\n\tExport.process_data()\n\tset_preview()\n\tupdate_dimensions_label()\n\n\nfunc _on_resize_value_changed(value: float) -> void:\n\tExport.resize = value\n\tupdate_dimensions_label()\n\n\nfunc _on_quality_value_changed(value: float) -> void:\n\tExport.save_quality = value / 100.0\n\n\nfunc _on_interpolation_item_selected(id: Image.Interpolation) -> void:\n\tExport.interpolation = id\n\n\nfunc _on_confirmed() -> void:\n\tif OS.get_name() == \"Android\":\n\t\tpath_dialog_popup.popup_centered_clamped()\n\t\treturn\n\texport()\n\n\nfunc export() -> void:\n\tGlobal.current_project.export_overwrite = false\n\tif await Export.export_processed_images(false, self, Global.current_project):\n\t\thide()\n\n\nfunc _on_path_button_pressed() -> void:\n\tpath_dialog_popup.popup_centered_clamped()\n\tpath_dialog_popup.current_file = path_line_edit.text.get_file()\n\n\nfunc _on_path_line_edit_text_changed(new_text: String) -> void:\n\tGlobal.current_project.export_directory_path = new_text.get_base_dir()\n\tGlobal.current_project.file_name = new_text.get_file().get_basename()\n\tvar file_format := Export.get_file_format_from_extension(new_text.get_extension())\n\tGlobal.current_project.file_format = file_format\n\tif not Export.is_single_file_format():\n\t\tget_tree().set_group(\"ExportMultipleFilesOptions\", \"disabled\", false)\n\t\tget_tree().set_group(\"ExportMultipleFilesEditableOptions\", \"editable\", true)\n\t\tframe_timer.stop()\n\telse:\n\t\tget_tree().set_group(\"ExportMultipleFilesOptions\", \"disabled\", true)\n\t\tget_tree().set_group(\"ExportMultipleFilesEditableOptions\", \"editable\", false)\n\n\tvar show_quality := file_format == Export.FileFormat.JPEG\n\t%QualityLabel.visible = show_quality\n\t%Quality.visible = show_quality\n\tExport.overwrite_asked = false\n\tset_preview()\n\n\nfunc _on_path_dialog_file_selected(path: String) -> void:\n\tpath_line_edit.text = path\n\t_on_path_line_edit_text_changed(path)\n\tExport.overwrite_asked = true\n\tif OS.get_name() == \"Android\":\n\t\texport()\n\t\treturn\n\t# Needed because if native file dialogs are enabled\n\t# the export dialog closes when the path dialog closes\n\tif not visible:\n\t\tshow()\n\n\nfunc _on_path_dialog_canceled() -> void:\n\t# Needed because if native file dialogs are enabled\n\t# the export dialog closes when the path dialog closes\n\tif not visible:\n\t\tshow()\n\n\nfunc _on_file_format_item_selected(index: int) -> void:\n\tvar id := file_format_options.get_item_id(index) as Export.FileFormat\n\tvar ext_string := Export.file_format_string(id)\n\tvar path := path_line_edit.text\n\tpath = path.replace(\".\" + path.get_extension(), ext_string)\n\tpath_line_edit.text = path\n\t_on_path_line_edit_text_changed(path)\n\tif OS.get_name() == \"Android\":\n\t\tpath_dialog_popup.clear_filters()\n\t\tvar file_format_description := Export.file_format_description(id)\n\t\tpath_dialog_popup.add_filter(\"*\" + ext_string, file_format_description)\n\n\n## Overwrite existing file\nfunc _on_file_exists_alert_confirmed() -> void:\n\tfile_exists_alert_popup.dialog_text = Export.file_exists_alert\n\tExport.stop_export = false\n\tresume_export_function.emit()\n\n\nfunc _on_file_exists_alert_custom_action(action: StringName) -> void:\n\tif action == &\"cancel\":\n\t\t# Cancel export\n\t\tfile_exists_alert_popup.dialog_text = Export.file_exists_alert\n\t\tExport.stop_export = true\n\t\tresume_export_function.emit()\n\t\tfile_exists_alert_popup.hide()\n\n\nfunc _on_frame_timer_timeout() -> void:\n\tvar preview_texture_rect: TextureRect = previews.get_node(\"PreviewContainer/Preview\")\n\tif not preview_texture_rect:\n\t\treturn\n\tpreview_texture_rect.texture = preview_frames[preview_current_frame]\n\n\tif preview_current_frame == preview_frames.size() - 1:\n\t\tpreview_current_frame = 0\n\telse:\n\t\tpreview_current_frame += 1\n\n\tframe_timer.wait_time = _preview_images[preview_current_frame - 1].duration\n\tframe_timer.start()\n\n\nfunc _on_ExportDialog_visibility_changed() -> void:\n\tif not visible:\n\t\tframe_timer.stop()\n\t\tExport.blended_frames.clear()\n\t\tExport.processed_images.clear()\n\n\nfunc _on_export_json_toggled(toggled_on: bool) -> void:\n\tExport.export_json = toggled_on\n\n\nfunc _on_split_layers_toggled(toggled_on: bool) -> void:\n\tExport.split_layers = toggled_on\n\tspritesheet_layers_as_separate_files.disabled = !Export.split_layers\n\tExport.process_data()\n\tset_preview()\n\n\nfunc _on_layers_as_separate_files_toggled(toggled_on: bool) -> void:\n\tExport.sheet_layers_as_separate_files = toggled_on\n\tExport.process_data()\n\tset_preview()\n\n\nfunc _on_include_tags_in_filename_toggled(button_pressed: bool) -> void:\n\tExport.include_tag_in_filename = button_pressed\n\n\nfunc _on_multiple_animations_directories_toggled(button_pressed: bool) -> void:\n\tExport.new_dir_for_each_frame_tag = button_pressed\n\n\nfunc _on_trim_images_toggled(toggled_on: bool) -> void:\n\tExport.trim_images = toggled_on\n\tExport.process_data()\n\tset_preview()\n\n\nfunc _on_clip_images_selection_toggled(toggled_on: bool) -> void:\n\tExport.erase_unselected_area = toggled_on\n\tExport.process_data()\n\tset_preview()\n\n\nfunc _on_frames_item_selected(id: int) -> void:\n\tExport.frame_current_tag = id\n\tExport.process_data()\n\tset_preview()\n\tspritesheet_lines_count.max_value = Export.number_of_frames\n\tspritesheet_lines_count.value = Export.lines_count\n\n\nfunc _on_layers_item_selected(id: int) -> void:\n\tExport.export_layers = id\n\tExport.cache_blended_frames()\n\tExport.process_data()\n\tset_preview()\n\n\nfunc _on_separator_character_text_changed(new_text: String) -> void:\n\tExport.separator_character = new_text\n"
  },
  {
    "path": "src/UI/Dialogs/ExportDialog.gd.uid",
    "content": "uid://cdgury33i7cuo\n"
  },
  {
    "path": "src/UI/Dialogs/ExportDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://clgu8wb5o6oup\"]\n\n[ext_resource type=\"Script\" uid=\"uid://cdgury33i7cuo\" path=\"res://src/UI/Dialogs/ExportDialog.gd\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://3pmb60gpst7b\" path=\"res://src/UI/Nodes/TransparentChecker.tscn\" id=\"2\"]\n[ext_resource type=\"Shader\" uid=\"uid://c50kmfvf635kb\" path=\"res://src/Shaders/TransparentChecker.gdshader\" id=\"3_lqo75\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"4\"]\n\n[sub_resource type=\"ShaderMaterial\" id=\"ShaderMaterial_10k1i\"]\nshader = ExtResource(\"3_lqo75\")\nshader_parameter/size = 10.0\nshader_parameter/alpha = 1.0\nshader_parameter/color1 = Color(0.7, 0.7, 0.7, 1)\nshader_parameter/color2 = Color(1, 1, 1, 1)\nshader_parameter/offset = Vector2(0, 0)\nshader_parameter/scale = Vector2(0, 0)\nshader_parameter/rect_size = Vector2(684, 261)\nshader_parameter/follow_movement = false\nshader_parameter/follow_scale = false\n\n[node name=\"ExportDialog\" type=\"ConfirmationDialog\" unique_id=1426064712]\ncanvas_item_default_texture_filter = 0\noversampling_override = 1.0\ntitle = \"Export...\"\nposition = Vector2i(0, 36)\nsize = Vector2i(700, 626)\ndialog_hide_on_ok = false\nscript = ExtResource(\"1\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=348001059]\ncustom_minimum_size = Vector2(330, 0)\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 692.0\noffset_bottom = 577.0\nsize_flags_vertical = 3\n\n[node name=\"TabBar\" type=\"TabBar\" parent=\"VBoxContainer\" unique_id=1836588413]\nlayout_mode = 2\nsize_flags_vertical = 0\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"VBoxContainer\" unique_id=473865758]\nlayout_mode = 2\n\n[node name=\"VSplitContainer\" type=\"VSplitContainer\" parent=\"VBoxContainer\" unique_id=782890775]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"PreviewPanel\" type=\"Panel\" parent=\"VBoxContainer/VSplitContainer\" unique_id=2043859950]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"TransparentChecker\" parent=\"VBoxContainer/VSplitContainer/PreviewPanel\" unique_id=519657495 instance=ExtResource(\"2\")]\nunique_name_in_owner = true\nmaterial = SubResource(\"ShaderMaterial_10k1i\")\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\n\n[node name=\"PreviewScroll\" type=\"ScrollContainer\" parent=\"VBoxContainer/VSplitContainer/PreviewPanel\" unique_id=2093796944]\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"Previews\" type=\"GridContainer\" parent=\"VBoxContainer/VSplitContainer/PreviewPanel/PreviewScroll\" unique_id=989808210]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\ncolumns = 3\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"VBoxContainer/VSplitContainer\" unique_id=1180691766]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer\" unique_id=628494534]\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"OrientationLabel\" type=\"Label\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer\" unique_id=1935804455 groups=[\"ExportSpritesheetOptions\"]]\nlayout_mode = 2\ntext = \"Orientation:\"\n\n[node name=\"Orientation\" type=\"OptionButton\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer\" unique_id=1755684015 groups=[\"ExportSpritesheetOptions\"]]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 4\npopup/item_0/text = \"Columns\"\npopup/item_0/id = 0\npopup/item_1/text = \"Rows\"\npopup/item_1/id = 1\npopup/item_2/text = \"Tags by row\"\npopup/item_2/id = 2\npopup/item_3/text = \"Tags by column\"\npopup/item_3/id = 3\n\n[node name=\"LinesCountLabel\" type=\"Label\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer\" unique_id=407514683 groups=[\"ExportSpritesheetOptions\"]]\nunique_name_in_owner = true\nlayout_mode = 2\ntext = \"Columns:\"\n\n[node name=\"LinesCount\" type=\"SpinBox\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer\" unique_id=1929384820 groups=[\"ExportSpritesheetOptions\"]]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmin_value = 1.0\nmax_value = 1000.0\nvalue = 1.0\n\n[node name=\"FramesLabel\" type=\"Label\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer\" unique_id=1494748304]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Frames:\"\n\n[node name=\"Frames\" type=\"OptionButton\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer\" unique_id=165858202]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nitem_count = 2\npopup/item_0/text = \"All frames\"\npopup/item_0/id = 0\npopup/item_1/text = \"Selected frames\"\npopup/item_1/id = 1\n\n[node name=\"LayersLabel\" type=\"Label\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer\" unique_id=391824330]\nlayout_mode = 2\ntext = \"Layers:\"\n\n[node name=\"LayersContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer\" unique_id=575154252]\nlayout_mode = 2\n\n[node name=\"Layers\" type=\"OptionButton\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer/LayersContainer\" unique_id=969264357]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nitem_count = 2\npopup/item_0/text = \"Visible layers\"\npopup/item_0/id = 0\npopup/item_1/text = \"Selected layers\"\npopup/item_1/id = 1\n\n[node name=\"SplitLayers\" type=\"CheckBox\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer/LayersContainer\" unique_id=287230239 groups=[\"ExportImageOptions\", \"ExportSpritesheetOptions\", \"NotAndroid\"]]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Split layers\"\n\n[node name=\"DirectionLabel\" type=\"Label\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer\" unique_id=952123787]\nlayout_mode = 2\ntext = \"Direction:\"\n\n[node name=\"Direction\" type=\"OptionButton\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer\" unique_id=72482042]\ncustom_minimum_size = Vector2(100, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 3\npopup/item_0/text = \"Forward\"\npopup/item_0/id = 0\npopup/item_1/text = \"Backwards\"\npopup/item_1/id = 1\npopup/item_2/text = \"Ping-Pong\"\npopup/item_2/id = 2\n\n[node name=\"ResizeLabel\" type=\"Label\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer\" unique_id=1328656377]\ncustom_minimum_size = Vector2(30, 0)\nlayout_mode = 2\ntext = \"Resize:\"\n\n[node name=\"ResizeContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer\" unique_id=1004267939]\nlayout_mode = 2\n\n[node name=\"Resize\" type=\"TextureProgressBar\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer/ResizeContainer\" unique_id=1687978601]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 50.0\nmax_value = 1000.0\nstep = 50.0\nvalue = 100.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"4\")\nsuffix = \"%\"\nsnap_step = 100.0\n\n[node name=\"DimensionLabel\" type=\"Label\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer/ResizeContainer\" unique_id=1184422769]\nunique_name_in_owner = true\nlayout_mode = 2\ntext = \"64×64\"\n\n[node name=\"QualityLabel\" type=\"Label\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer\" unique_id=850616859]\nunique_name_in_owner = true\nvisible = false\ncustom_minimum_size = Vector2(30, 0)\nlayout_mode = 2\ntext = \"Quality:\"\n\n[node name=\"Quality\" type=\"TextureProgressBar\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer\" unique_id=848759587]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nvalue = 75.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"4\")\n\n[node name=\"HSeparator2\" type=\"HSeparator\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer\" unique_id=857749939]\nlayout_mode = 2\n\n[node name=\"FilePath\" type=\"HBoxContainer\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer\" unique_id=799127972]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/FilePath\" unique_id=1118645622]\ncustom_minimum_size = Vector2(30, 0)\nlayout_mode = 2\ntext = \"Path:\"\n\n[node name=\"PathLineEdit\" type=\"LineEdit\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/FilePath\" unique_id=938649692 groups=[\"NotAndroid\"]]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\ncaret_blink = true\ncaret_blink_interval = 0.5\n\n[node name=\"PathButton\" type=\"Button\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/FilePath\" unique_id=1878336224 groups=[\"NotAndroid\", \"NotHTML5\"]]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Browse\"\n\n[node name=\"FileFormat\" type=\"OptionButton\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/FilePath\" unique_id=844726557]\nunique_name_in_owner = true\nvisible = false\ncustom_minimum_size = Vector2(130, 0)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\n\n[node name=\"HSeparator3\" type=\"HSeparator\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer\" unique_id=224516429]\nlayout_mode = 2\n\n[node name=\"AdvancedOptions\" type=\"FoldableContainer\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer\" unique_id=2057094974]\nlayout_mode = 2\nfolded = true\ntitle = \"Advanced options\"\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions\" unique_id=570447108]\nvisible = false\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"InterpolationLabel\" type=\"Label\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer\" unique_id=601796929]\ncustom_minimum_size = Vector2(30, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Interpolation:\"\n\n[node name=\"Interpolation\" type=\"OptionButton\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer\" unique_id=354925425]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 5\npopup/item_0/text = \"Nearest\"\npopup/item_0/id = 0\npopup/item_1/text = \"Bilinear\"\npopup/item_1/id = 1\npopup/item_2/text = \"Cubic\"\npopup/item_2/id = 2\npopup/item_3/text = \"Trilinear\"\npopup/item_3/id = 3\npopup/item_4/text = \"Lanczos\"\npopup/item_4/id = 4\n\n[node name=\"SeparatorCharacterLabel\" type=\"Label\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer\" unique_id=1144447347 groups=[\"ExportImageOptions\", \"ExportSpritesheetOptions\"]]\ncustom_minimum_size = Vector2(30, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Separator character(s):\"\n\n[node name=\"SeparatorCharacter\" type=\"LineEdit\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer\" unique_id=863531641 groups=[\"ExportImageOptions\", \"ExportMultipleFilesEditableOptions\", \"ExportSpritesheetOptions\"]]\nlayout_mode = 2\ntooltip_text = \"The character(s) that separate the file name and the frame number\"\ntext = \"_\"\n\n[node name=\"ExportJSON\" type=\"CheckBox\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer\" unique_id=459971663 groups=[\"NotAndroid\"]]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Export JSON data\"\n\n[node name=\"LayersAsSeparateFiles\" type=\"CheckBox\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer\" unique_id=671604133 groups=[\"ExportSpritesheetOptions\", \"NotAndroid\"]]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Layers as separate files\"\n\n[node name=\"IncludeTagsInFilename\" type=\"CheckBox\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer\" unique_id=64815569 groups=[\"ExportImageOptions\", \"ExportMultipleFilesOptions\", \"NotAndroid\"]]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Include frame tags in the file name\"\n\n[node name=\"MultipleAnimationsDirectories\" type=\"CheckBox\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer\" unique_id=2068197934 groups=[\"ExportImageOptions\", \"ExportMultipleFilesOptions\", \"NotAndroid\", \"NotHTML5\"]]\nvisible = false\nlayout_mode = 2\ntooltip_text = \"Creates multiple files but every file is stored in different folder that corresponds to its frame tag\"\nmouse_default_cursor_shape = 2\ntext = \"Create new folder for each frame tag\"\n\n[node name=\"TrimImages\" type=\"CheckBox\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer\" unique_id=1869114393 groups=[\"ExportImageOptions\", \"ExportMultipleFilesOptions\"]]\nlayout_mode = 2\ntooltip_text = \"Trims the exported images to their visible portion, considering each pixel with a non-zero alpha channel as visible.\"\nmouse_default_cursor_shape = 2\ntext = \"Trim images\"\n\n[node name=\"ClipSelection\" type=\"CheckBox\" parent=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer\" unique_id=1497115844 groups=[\"ExportImageOptions\"]]\nlayout_mode = 2\ntooltip_text = \"Only export content that is within the bounds of a selected area.\"\nmouse_default_cursor_shape = 2\ntext = \"Clip image content to selection\"\n\n[node name=\"PathDialog\" type=\"FileDialog\" parent=\".\" unique_id=746657325 groups=[\"FileDialogs\"]]\nmode = 2\nsize = Vector2i(675, 500)\nalways_on_top = true\nok_button_text = \"Select Current Folder\"\naccess = 2\n\n[node name=\"PathValidationAlert\" type=\"AcceptDialog\" parent=\".\" unique_id=355024950]\nalways_on_top = true\ndialog_text = \"DirAccess path and file name are not valid!\"\n\n[node name=\"FileExistsAlert\" type=\"AcceptDialog\" parent=\".\" unique_id=2050038451]\nalways_on_top = true\ndialog_text = \"File %s already exists. Overwrite?\"\n\n[node name=\"ExportProgressBar\" type=\"Window\" parent=\".\" unique_id=438204898]\ntitle = \"Export Progress\"\nsize = Vector2i(400, 100)\nvisible = false\nexclusive = true\nalways_on_top = true\n\n[node name=\"MarginContainer\" type=\"MarginContainer\" parent=\"ExportProgressBar\" unique_id=285398078]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 5.0\noffset_top = 5.0\noffset_right = -5.0\noffset_bottom = -5.0\n\n[node name=\"ProgressBar\" type=\"ProgressBar\" parent=\"ExportProgressBar/MarginContainer\" unique_id=1155984551]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"FrameTimer\" type=\"Timer\" parent=\".\" unique_id=772001475]\n\n[connection signal=\"about_to_popup\" from=\".\" to=\".\" method=\"_on_about_to_popup\"]\n[connection signal=\"confirmed\" from=\".\" to=\".\" method=\"_on_confirmed\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_ExportDialog_visibility_changed\"]\n[connection signal=\"tab_clicked\" from=\"VBoxContainer/TabBar\" to=\".\" method=\"_on_tab_bar_tab_clicked\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer/Orientation\" to=\".\" method=\"_on_orientation_item_selected\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer/LinesCount\" to=\".\" method=\"_on_lines_count_value_changed\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer/Frames\" to=\".\" method=\"_on_frames_item_selected\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer/LayersContainer/Layers\" to=\".\" method=\"_on_layers_item_selected\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer/LayersContainer/SplitLayers\" to=\".\" method=\"_on_split_layers_toggled\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer/Direction\" to=\".\" method=\"_on_direction_item_selected\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer/ResizeContainer/Resize\" to=\".\" method=\"_on_resize_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/GridContainer/Quality\" to=\".\" method=\"_on_quality_value_changed\"]\n[connection signal=\"text_changed\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/FilePath/PathLineEdit\" to=\".\" method=\"_on_path_line_edit_text_changed\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/FilePath/PathButton\" to=\".\" method=\"_on_path_button_pressed\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/FilePath/FileFormat\" to=\".\" method=\"_on_file_format_item_selected\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer/Interpolation\" to=\".\" method=\"_on_interpolation_item_selected\"]\n[connection signal=\"text_changed\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer/SeparatorCharacter\" to=\".\" method=\"_on_separator_character_text_changed\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer/ExportJSON\" to=\".\" method=\"_on_export_json_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer/LayersAsSeparateFiles\" to=\".\" method=\"_on_layers_as_separate_files_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer/IncludeTagsInFilename\" to=\".\" method=\"_on_include_tags_in_filename_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer/MultipleAnimationsDirectories\" to=\".\" method=\"_on_multiple_animations_directories_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer/TrimImages\" to=\".\" method=\"_on_trim_images_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/VSplitContainer/VBoxContainer/AdvancedOptions/GridContainer/ClipSelection\" to=\".\" method=\"_on_clip_images_selection_toggled\"]\n[connection signal=\"canceled\" from=\"PathDialog\" to=\".\" method=\"_on_path_dialog_canceled\"]\n[connection signal=\"file_selected\" from=\"PathDialog\" to=\".\" method=\"_on_path_dialog_file_selected\"]\n[connection signal=\"confirmed\" from=\"FileExistsAlert\" to=\".\" method=\"_on_file_exists_alert_confirmed\"]\n[connection signal=\"custom_action\" from=\"FileExistsAlert\" to=\".\" method=\"_on_file_exists_alert_custom_action\"]\n[connection signal=\"timeout\" from=\"FrameTimer\" to=\".\" method=\"_on_frame_timer_timeout\"]\n"
  },
  {
    "path": "src/UI/Dialogs/HelperScripts/RowColumnLines.gd",
    "content": "extends Control\n\nvar color := Color(\"6680ff\")  # Set this to a theme color later\nvar _spritesheet_vertical: int\nvar _spritesheet_horizontal: int\n\n\nfunc show_preview(spritesheet_vertical: int, spritesheet_horizontal: int) -> void:\n\t_spritesheet_vertical = spritesheet_vertical\n\t_spritesheet_horizontal = spritesheet_horizontal\n\tqueue_redraw()\n\n\nfunc _draw() -> void:\n\tvar texture_rect: TextureRect = get_parent()\n\tvar image := texture_rect.texture.get_image()\n\tvar image_size_y := texture_rect.size.y\n\tvar image_size_x := texture_rect.size.x\n\tif image.get_size().x > image.get_size().y:\n\t\tvar scale_ratio := image.get_size().x / image_size_x\n\t\timage_size_y = image.get_size().y / scale_ratio\n\telse:\n\t\tvar scale_ratio := image.get_size().y / image_size_y\n\t\timage_size_x = image.get_size().x / scale_ratio\n\n\tvar offset_x := (texture_rect.size.x - image_size_x) / 2\n\tvar offset_y := (texture_rect.size.y - image_size_y) / 2\n\n\tvar line_distance_vertical := image_size_y / _spritesheet_vertical\n\tvar line_distance_horizontal := image_size_x / _spritesheet_horizontal\n\n\tfor i in range(1, _spritesheet_vertical):\n\t\tvar from := Vector2(offset_x, i * line_distance_vertical + offset_y)\n\t\tvar to := Vector2(image_size_x + offset_x, i * line_distance_vertical + offset_y)\n\t\tdraw_line(from, to, color)\n\tfor i in range(1, _spritesheet_horizontal):\n\t\tvar from := Vector2(i * line_distance_horizontal + offset_x, offset_y)\n\t\tvar to := Vector2(i * line_distance_horizontal + offset_x, image_size_y + offset_y)\n\t\tdraw_line(from, to, color)\n"
  },
  {
    "path": "src/UI/Dialogs/HelperScripts/RowColumnLines.gd.uid",
    "content": "uid://bvn632m4s6crv\n"
  },
  {
    "path": "src/UI/Dialogs/HelperScripts/SmartSlicePreview.gd",
    "content": "extends Control\n\n## Add this as a child of the texturerect that contains the main spritesheet\nvar color := Color(\"6680ff\")  ## Set this to a theme color later\nvar _sliced_rects: Array[Rect2i]\nvar _stretch_amount: float\nvar _offset: Vector2\n\n\nfunc show_preview(sliced_rects: Array[Rect2i]) -> void:\n\tif not is_instance_valid(get_parent().texture):\n\t\treturn\n\tvar image: Image = get_parent().texture.get_image()\n\tif image.get_size().x > image.get_size().y:\n\t\t_stretch_amount = size.x / image.get_size().x\n\telse:\n\t\t_stretch_amount = size.y / image.get_size().y\n\t_sliced_rects = sliced_rects.duplicate()\n\t_offset = (0.5 * (size - (image.get_size() * _stretch_amount))).floor()\n\tqueue_redraw()\n\n\nfunc _draw() -> void:\n\tdraw_set_transform(_offset, 0, Vector2.ONE)\n\tfor i in _sliced_rects.size():\n\t\tvar rect := _sliced_rects[i]\n\t\tvar scaled_rect: Rect2 = rect\n\t\tscaled_rect.position = (scaled_rect.position * _stretch_amount)\n\t\tscaled_rect.size *= _stretch_amount\n\t\tdraw_rect(scaled_rect, color, false)\n\t\t# show number\n\t\tdraw_set_transform(_offset + scaled_rect.position, 0, Vector2.ONE)\n#\t\tvar font: Font = Control.new().get_font(\"font\")\n\t\t# replace with font used by pixelorama\n\t\tvar font := Themes.get_font()\n\t\tvar font_height := font.get_height()\n\t\tdraw_string(font, Vector2(1, font_height), str(i))\n\t\tdraw_set_transform(_offset, 0, Vector2.ONE)\n"
  },
  {
    "path": "src/UI/Dialogs/HelperScripts/SmartSlicePreview.gd.uid",
    "content": "uid://crtwdohribibe\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/BrightnessContrastDialog.gd",
    "content": "extends ImageEffect\n\nenum Animate { BRIGHTNESS, CONTRAST, SATURATION, RED, GREEN, BLUE, TINT_EFFECT_FACTOR }\n\nvar shader := preload(\"res://src/Shaders/Effects/BrightnessContrast.gdshader\")\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\tvar sm := ShaderMaterial.new()\n\tsm.shader = shader\n\tpreview.set_material(sm)\n\tanimate_panel.add_float_property(\"Brightness\", $VBoxContainer/BrightnessSlider)\n\tanimate_panel.add_float_property(\"Contrast\", $VBoxContainer/ContrastSlider)\n\tanimate_panel.add_float_property(\"Saturation\", $VBoxContainer/SaturationSlider)\n\tanimate_panel.add_float_property(\"Red\", $VBoxContainer/RedSlider)\n\tanimate_panel.add_float_property(\"Green\", $VBoxContainer/GreenSlider)\n\tanimate_panel.add_float_property(\"Blue\", $VBoxContainer/BlueSlider)\n\tanimate_panel.add_float_property(\"Tint effect factor\", $VBoxContainer/TintSlider)\n\n\nfunc commit_action(cel: Image, project := Global.current_project) -> void:\n\tvar brightness := animate_panel.get_animated_value(commit_idx, Animate.BRIGHTNESS) / 100.0\n\tvar contrast := animate_panel.get_animated_value(commit_idx, Animate.CONTRAST) / 100.0\n\tvar saturation := animate_panel.get_animated_value(commit_idx, Animate.SATURATION) / 100.0\n\tvar red := animate_panel.get_animated_value(commit_idx, Animate.RED) / 100.0\n\tvar green := animate_panel.get_animated_value(commit_idx, Animate.GREEN) / 100.0\n\tvar blue := animate_panel.get_animated_value(commit_idx, Animate.BLUE) / 100.0\n\tvar tint_color: Color = $VBoxContainer/TintColorContainer/TintColor.color\n\tvar tint_effect_factor := (\n\t\tanimate_panel.get_animated_value(commit_idx, Animate.TINT_EFFECT_FACTOR) / 100.0\n\t)\n\tvar selection_tex: ImageTexture\n\tif selection_checkbox.button_pressed and project.has_selection:\n\t\tvar selection := project.selection_map.return_cropped_copy(project, project.size)\n\t\tselection_tex = ImageTexture.create_from_image(selection)\n\n\tvar params := {\n\t\t\"brightness\": brightness,\n\t\t\"contrast\": contrast,\n\t\t\"saturation\": saturation,\n\t\t\"red_value\": red,\n\t\t\"blue_value\": blue,\n\t\t\"green_value\": green,\n\t\t\"tint_color\": tint_color,\n\t\t\"tint_effect_factor\": tint_effect_factor,\n\t\t\"selection\": selection_tex\n\t}\n\n\tif !has_been_confirmed:\n\t\tfor param in params:\n\t\t\tpreview.material.set_shader_parameter(param, params[param])\n\telse:\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(cel, shader, params, project.size)\n\n\nfunc _on_brightness_slider_value_changed(_value: float) -> void:\n\tupdate_preview()\n\n\nfunc _on_contrast_slider_value_changed(_value: float) -> void:\n\tupdate_preview()\n\n\nfunc _on_saturation_slider_value_changed(_value: float) -> void:\n\tupdate_preview()\n\n\nfunc _on_red_slider_value_changed(_value: float) -> void:\n\tupdate_preview()\n\n\nfunc _on_green_slider_value_changed(_value: float) -> void:\n\tupdate_preview()\n\n\nfunc _on_blue_slider_value_changed(_value: float) -> void:\n\tupdate_preview()\n\n\nfunc _on_tint_color_color_changed(_color: Color) -> void:\n\tupdate_preview()\n\n\nfunc _on_tint_slider_value_changed(_value: float) -> void:\n\tupdate_preview()\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/BrightnessContrastDialog.gd.uid",
    "content": "uid://c4ihv84e8wk1g\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/BrightnessContrastDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://7hslmewq0w4a\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bybqhhayl5ay5\" path=\"res://src/UI/Dialogs/ImageEffects/ImageEffectParent.tscn\" id=\"1_5wfra\"]\n[ext_resource type=\"Script\" uid=\"uid://c4ihv84e8wk1g\" path=\"res://src/UI/Dialogs/ImageEffects/BrightnessContrastDialog.gd\" id=\"2_msv0o\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"3_2epr4\"]\n\n[node name=\"BrightnessContrastDialog\" unique_id=954387416 instance=ExtResource(\"1_5wfra\")]\noversampling_override = 1.0\ntitle = \"Adjust Brightness/Contrast\"\nsize = Vector2i(362, 540)\nscript = ExtResource(\"2_msv0o\")\n\n[node name=\"VBoxContainer\" parent=\".\" index=\"2\" unique_id=1773123238]\noffset_bottom = 491.0\n\n[node name=\"BrightnessSlider\" type=\"TextureProgressBar\" parent=\"VBoxContainer\" index=\"2\" unique_id=738643021]\ncustom_minimum_size = Vector2(32, 24)\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = -100.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"3_2epr4\")\nprefix = \"Brightness:\"\n\n[node name=\"ContrastSlider\" type=\"TextureProgressBar\" parent=\"VBoxContainer\" index=\"3\" unique_id=719668350]\ncustom_minimum_size = Vector2(32, 24)\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 300.0\nvalue = 100.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"3_2epr4\")\nprefix = \"Contrast:\"\n\n[node name=\"SaturationSlider\" type=\"TextureProgressBar\" parent=\"VBoxContainer\" index=\"4\" unique_id=450016837]\ncustom_minimum_size = Vector2(32, 24)\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 300.0\nvalue = 100.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"3_2epr4\")\nprefix = \"Saturation:\"\n\n[node name=\"RedSlider\" type=\"TextureProgressBar\" parent=\"VBoxContainer\" index=\"5\" unique_id=1115794383]\ncustom_minimum_size = Vector2(32, 24)\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nvalue = 100.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"3_2epr4\")\nprefix = \"Red value:\"\n\n[node name=\"GreenSlider\" type=\"TextureProgressBar\" parent=\"VBoxContainer\" index=\"6\" unique_id=1456343987]\ncustom_minimum_size = Vector2(32, 24)\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nvalue = 100.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"3_2epr4\")\nprefix = \"Green value:\"\n\n[node name=\"BlueSlider\" type=\"TextureProgressBar\" parent=\"VBoxContainer\" index=\"7\" unique_id=2082911472]\ncustom_minimum_size = Vector2(32, 24)\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nvalue = 100.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"3_2epr4\")\nprefix = \"Blue value:\"\n\n[node name=\"TintColorContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer\" index=\"8\" unique_id=975945355]\nlayout_mode = 2\nalignment = 1\n\n[node name=\"Label\" type=\"Label\" parent=\"VBoxContainer/TintColorContainer\" index=\"0\" unique_id=1180119593]\nlayout_mode = 2\ntext = \"Tint color:\"\n\n[node name=\"TintColor\" type=\"ColorPickerButton\" parent=\"VBoxContainer/TintColorContainer\" index=\"1\" unique_id=1882223003]\ncustom_minimum_size = Vector2(32, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\ncolor = Color(1, 1, 1, 1)\n\n[node name=\"TintSlider\" type=\"TextureProgressBar\" parent=\"VBoxContainer\" index=\"9\" unique_id=1493212009]\ncustom_minimum_size = Vector2(32, 24)\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"3_2epr4\")\nprefix = \"Tint effect factor:\"\n\n[connection signal=\"value_changed\" from=\"VBoxContainer/BrightnessSlider\" to=\".\" method=\"_on_brightness_slider_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/ContrastSlider\" to=\".\" method=\"_on_contrast_slider_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/SaturationSlider\" to=\".\" method=\"_on_saturation_slider_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/RedSlider\" to=\".\" method=\"_on_red_slider_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/GreenSlider\" to=\".\" method=\"_on_green_slider_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/BlueSlider\" to=\".\" method=\"_on_blue_slider_value_changed\"]\n[connection signal=\"color_changed\" from=\"VBoxContainer/TintColorContainer/TintColor\" to=\".\" method=\"_on_tint_color_color_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/TintSlider\" to=\".\" method=\"_on_tint_slider_value_changed\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/ColorCurvesDialog.gd",
    "content": "extends ImageEffect\n\nenum Channel { RGB, RED, GREEN, BLUE, ALPHA, HUE, SATURATION, VALUE }\nconst SHADER := preload(\"res://src/Shaders/Effects/ColorCurves.gdshader\")\n\nvar curves: Array[Curve]\n@onready var channel_option_button := %ChannelOptionButton as OptionButton\n@onready var curve_edit := $VBoxContainer/CurveEdit as CurveEdit\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\tvar sm := ShaderMaterial.new()\n\tsm.shader = SHADER\n\tpreview.set_material(sm)\n\tfor i in channel_option_button.item_count:\n\t\tvar curve := Curve.new()\n\t\tcurve.add_point(Vector2.ZERO, 0, 1, Curve.TANGENT_LINEAR)\n\t\tcurve.add_point(Vector2.ONE, 1, 0, Curve.TANGENT_LINEAR)\n\t\tcurves.append(curve)\n\tcurve_edit.curve = curves[Channel.RGB]\n\n\nfunc commit_action(cel: Image, project := Global.current_project) -> void:\n\tvar selection_tex: ImageTexture\n\tif selection_checkbox.button_pressed and project.has_selection:\n\t\tvar selection := project.selection_map.return_cropped_copy(project, project.size)\n\t\tselection_tex = ImageTexture.create_from_image(selection)\n\n\tvar params := {\n\t\t\"curve_rgb\": CurveEdit.to_texture(curves[Channel.RGB]),\n\t\t\"curve_red\": CurveEdit.to_texture(curves[Channel.RED]),\n\t\t\"curve_green\": CurveEdit.to_texture(curves[Channel.GREEN]),\n\t\t\"curve_blue\": CurveEdit.to_texture(curves[Channel.BLUE]),\n\t\t\"curve_alpha\": CurveEdit.to_texture(curves[Channel.ALPHA]),\n\t\t\"curve_hue\": CurveEdit.to_texture(curves[Channel.HUE]),\n\t\t\"curve_sat\": CurveEdit.to_texture(curves[Channel.SATURATION]),\n\t\t\"curve_value\": CurveEdit.to_texture(curves[Channel.VALUE]),\n\t\t\"selection\": selection_tex\n\t}\n\tif !has_been_confirmed:\n\t\tfor param in params:\n\t\t\tpreview.material.set_shader_parameter(param, params[param])\n\telse:\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(cel, SHADER, params, project.size)\n\n\nfunc _on_channel_option_button_item_selected(index: int) -> void:\n\tcurve_edit.curve = curves[index]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/ColorCurvesDialog.gd.uid",
    "content": "uid://3trpt1yheuo1\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/ColorCurvesDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://cthknpr74lawl\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bybqhhayl5ay5\" path=\"res://src/UI/Dialogs/ImageEffects/ImageEffectParent.tscn\" id=\"1_4g7xo\"]\n[ext_resource type=\"Script\" uid=\"uid://3trpt1yheuo1\" path=\"res://src/UI/Dialogs/ImageEffects/ColorCurvesDialog.gd\" id=\"2_xkivc\"]\n[ext_resource type=\"Script\" uid=\"uid://cd0klfo0jdjni\" path=\"res://src/UI/Nodes/CurveEditor/CurveEdit.gd\" id=\"3_3yyhs\"]\n\n[sub_resource type=\"Curve\" id=\"Curve_gvi51\"]\n_data = [Vector2(0, 0), 0.0, 1.0, 0, 1, Vector2(1, 1), 1.0, 0.0, 1, 0]\npoint_count = 2\n\n[node name=\"ColorCurvesDialog\" unique_id=279970028 instance=ExtResource(\"1_4g7xo\")]\ntitle = \"Color Curves\"\nsize = Vector2i(362, 481)\nscript = ExtResource(\"2_xkivc\")\n\n[node name=\"VBoxContainer\" parent=\".\" index=\"2\" unique_id=1773123238]\noffset_bottom = 432.0\n\n[node name=\"ShowAnimate\" parent=\"VBoxContainer\" index=\"0\" unique_id=1452855547]\nvisible = false\n\n[node name=\"ColorOptions\" type=\"GridContainer\" parent=\"VBoxContainer\" index=\"3\" unique_id=64416315]\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"ChannelLabel\" type=\"Label\" parent=\"VBoxContainer/ColorOptions\" index=\"0\" unique_id=268323767]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Channel:\"\n\n[node name=\"ChannelOptionButton\" type=\"OptionButton\" parent=\"VBoxContainer/ColorOptions\" index=\"1\" unique_id=497885469]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 8\npopup/item_0/text = \"RGB\"\npopup/item_0/id = 0\npopup/item_1/text = \"Red\"\npopup/item_1/id = 1\npopup/item_2/text = \"Green\"\npopup/item_2/id = 2\npopup/item_3/text = \"Blue\"\npopup/item_3/id = 3\npopup/item_4/text = \"Alpha\"\npopup/item_4/id = 4\npopup/item_5/text = \"Hue\"\npopup/item_5/id = 5\npopup/item_6/text = \"Saturation\"\npopup/item_6/id = 6\npopup/item_7/text = \"Value\"\npopup/item_7/id = 7\n\n[node name=\"CurveEdit\" type=\"VBoxContainer\" parent=\"VBoxContainer\" index=\"4\" unique_id=760438900]\ncustom_minimum_size = Vector2(32, 150)\nlayout_mode = 2\nsize_flags_vertical = 3\nscript = ExtResource(\"3_3yyhs\")\ncurve = SubResource(\"Curve_gvi51\")\n\n[connection signal=\"item_selected\" from=\"VBoxContainer/ColorOptions/ChannelOptionButton\" to=\".\" method=\"_on_channel_option_button_item_selected\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/DesaturateDialog.gd",
    "content": "extends ImageEffect\n\nvar red := true\nvar green := true\nvar blue := true\nvar alpha := false\n\nvar shader := preload(\"res://src/Shaders/Effects/Desaturate.gdshader\")\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\tvar sm := ShaderMaterial.new()\n\tsm.shader = shader\n\tpreview.set_material(sm)\n\n\nfunc commit_action(cel: Image, project := Global.current_project) -> void:\n\tvar selection_tex: ImageTexture\n\tif selection_checkbox.button_pressed and project.has_selection:\n\t\tvar selection := project.selection_map.return_cropped_copy(project, project.size)\n\t\tselection_tex = ImageTexture.create_from_image(selection)\n\n\tvar params := {\n\t\t\"red\": red, \"blue\": blue, \"green\": green, \"alpha\": alpha, \"selection\": selection_tex\n\t}\n\tif !has_been_confirmed:\n\t\tfor param in params:\n\t\t\tpreview.material.set_shader_parameter(param, params[param])\n\telse:\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(cel, shader, params, project.size)\n\n\nfunc _on_RButton_toggled(button_pressed: bool) -> void:\n\tred = button_pressed\n\tupdate_preview()\n\n\nfunc _on_GButton_toggled(button_pressed: bool) -> void:\n\tgreen = button_pressed\n\tupdate_preview()\n\n\nfunc _on_BButton_toggled(button_pressed: bool) -> void:\n\tblue = button_pressed\n\tupdate_preview()\n\n\nfunc _on_AButton_toggled(button_pressed: bool) -> void:\n\talpha = button_pressed\n\tupdate_preview()\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/DesaturateDialog.gd.uid",
    "content": "uid://bvyf7ivv4hnot\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/DesaturateDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://5gqka7tkg17k\"]\n\n[ext_resource type=\"Script\" uid=\"uid://bvyf7ivv4hnot\" path=\"res://src/UI/Dialogs/ImageEffects/DesaturateDialog.gd\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bybqhhayl5ay5\" path=\"res://src/UI/Dialogs/ImageEffects/ImageEffectParent.tscn\" id=\"2\"]\n\n[node name=\"DesaturateDialog\" unique_id=2127105698 instance=ExtResource(\"2\")]\ntitle = \"Desaturation\"\nscript = ExtResource(\"1\")\n\n[node name=\"ShowAnimate\" parent=\"VBoxContainer\" parent_id_path=PackedInt32Array(1773123238) index=\"0\" unique_id=1452855547]\nvisible = false\n\n[node name=\"RGBAContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer\" parent_id_path=PackedInt32Array(1773123238) index=\"2\" unique_id=186373816]\nlayout_mode = 2\nalignment = 1\n\n[node name=\"RButton\" type=\"Button\" parent=\"VBoxContainer/RGBAContainer\" index=\"0\" unique_id=2030306282]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Modify Red Channel\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_pressed = true\ntext = \"R\"\n\n[node name=\"GButton\" type=\"Button\" parent=\"VBoxContainer/RGBAContainer\" index=\"1\" unique_id=2024268881]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Modify Green Channel\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_pressed = true\ntext = \"G\"\n\n[node name=\"BButton\" type=\"Button\" parent=\"VBoxContainer/RGBAContainer\" index=\"2\" unique_id=1877432133]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Modify Blue Channel\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_pressed = true\ntext = \"B\"\n\n[node name=\"AButton\" type=\"Button\" parent=\"VBoxContainer/RGBAContainer\" index=\"3\" unique_id=2118529859]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Modify Alpha Channel\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\ntext = \"A\"\n\n[connection signal=\"toggled\" from=\"VBoxContainer/RGBAContainer/RButton\" to=\".\" method=\"_on_RButton_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/RGBAContainer/GButton\" to=\".\" method=\"_on_GButton_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/RGBAContainer/BButton\" to=\".\" method=\"_on_BButton_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/RGBAContainer/AButton\" to=\".\" method=\"_on_AButton_toggled\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/DropShadowDialog.gd",
    "content": "extends ImageEffect\n\nenum Animate { OFFSET_X, OFFSET_Y }\nvar color := Color.BLACK\nvar shader := preload(\"res://src/Shaders/Effects/DropShadow.gdshader\")\n\n@onready var shadow_color := $VBoxContainer/ShadowOptions/ShadowColor as ColorPickerButton\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\tshadow_color.get_picker().presets_visible = false\n\tcolor = shadow_color.color\n\tvar sm := ShaderMaterial.new()\n\tsm.shader = shader\n\tpreview.set_material(sm)\n\n\t# set as in enum\n\tanimate_panel.add_float_property(\n\t\t\"Offset X\", $VBoxContainer/ShadowOptions/OffsetSliders.find_child(\"X\")\n\t)\n\tanimate_panel.add_float_property(\n\t\t\"Offset Y\", $VBoxContainer/ShadowOptions/OffsetSliders.find_child(\"Y\")\n\t)\n\n\nfunc commit_action(cel: Image, project := Global.current_project) -> void:\n\tvar offset_x := animate_panel.get_animated_value(commit_idx, Animate.OFFSET_X)\n\tvar offset_y := animate_panel.get_animated_value(commit_idx, Animate.OFFSET_Y)\n\tvar selection_tex: ImageTexture\n\tif selection_checkbox.button_pressed and project.has_selection:\n\t\tvar selection := project.selection_map.return_cropped_copy(project, project.size)\n\t\tselection_tex = ImageTexture.create_from_image(selection)\n\n\tvar params := {\n\t\t\"offset\": Vector2(offset_x, offset_y), \"shadow_color\": color, \"selection\": selection_tex\n\t}\n\tif !has_been_confirmed:\n\t\tfor param in params:\n\t\t\tpreview.material.set_shader_parameter(param, params[param])\n\telse:\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(cel, shader, params, project.size)\n\n\nfunc _on_OffsetSliders_value_changed(_value: Vector2) -> void:\n\tupdate_preview()\n\n\nfunc _on_ShadowColor_color_changed(value: Color) -> void:\n\tcolor = value\n\tupdate_preview()\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/DropShadowDialog.gd.uid",
    "content": "uid://dhfp3uc7ikgw3\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/DropShadowDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://duse1w3q7whmm\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bybqhhayl5ay5\" path=\"res://src/UI/Dialogs/ImageEffects/ImageEffectParent.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://dhfp3uc7ikgw3\" path=\"res://src/UI/Dialogs/ImageEffects/DropShadowDialog.gd\" id=\"2\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bbnqcxa20a5a5\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\" id=\"3\"]\n\n[node name=\"DropShadowDialog\" unique_id=250138760 instance=ExtResource(\"1\")]\ntitle = \"Drop Shadow\"\nsize = Vector2i(362, 413)\nscript = ExtResource(\"2\")\n\n[node name=\"VBoxContainer\" parent=\".\" index=\"2\" unique_id=1773123238]\noffset_bottom = 364.0\n\n[node name=\"TransparentChecker\" parent=\"VBoxContainer/AspectRatioContainer/Preview\" parent_id_path=PackedInt32Array(1653862649) index=\"0\" unique_id=770515729]\nlayout_mode = 1\nanchors_preset = 15\ngrow_horizontal = 2\ngrow_vertical = 2\n\n[node name=\"ShadowOptions\" type=\"GridContainer\" parent=\"VBoxContainer\" index=\"2\" unique_id=1110206776]\nlayout_mode = 2\ntheme_override_constants/h_separation = 4\ntheme_override_constants/v_separation = 4\ncolumns = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"VBoxContainer/ShadowOptions\" index=\"0\" unique_id=940057965]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Offset:\"\n\n[node name=\"OffsetSliders\" parent=\"VBoxContainer/ShadowOptions\" index=\"1\" unique_id=1917938954 instance=ExtResource(\"3\")]\nlayout_mode = 2\nvalue = Vector2(5, 5)\nmin_value = Vector2(-64, -64)\nmax_value = Vector2(64, 64)\nallow_greater = true\nallow_lesser = true\nshow_ratio = true\nsuffix_x = \"px\"\nsuffix_y = \"px\"\n\n[node name=\"ShadowColorLabel\" type=\"Label\" parent=\"VBoxContainer/ShadowOptions\" index=\"2\" unique_id=321114749]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Shadow color:\"\n\n[node name=\"ShadowColor\" type=\"ColorPickerButton\" parent=\"VBoxContainer/ShadowOptions\" index=\"3\" unique_id=1983034729]\ncustom_minimum_size = Vector2(64, 20)\nlayout_mode = 2\nsize_flags_horizontal = 3\ncolor = Color(0.0823529, 0.0823529, 0.0823529, 0.627451)\n\n[node name=\"AnimatePanel\" parent=\"AnimateDialog\" parent_id_path=PackedInt32Array(44308645) index=\"0\" unique_id=912775852]\ngrow_horizontal = 2\ngrow_vertical = 2\n\n[connection signal=\"value_changed\" from=\"VBoxContainer/ShadowOptions/OffsetSliders\" to=\".\" method=\"_on_OffsetSliders_value_changed\"]\n[connection signal=\"color_changed\" from=\"VBoxContainer/ShadowOptions/ShadowColor\" to=\".\" method=\"_on_ShadowColor_color_changed\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/FlipImageDialog.gd",
    "content": "extends ImageEffect\n\n@onready var flip_h := $VBoxContainer/FlipOptions/FlipHorizontal as CheckBox\n@onready var flip_v := $VBoxContainer/FlipOptions/FlipVertical as CheckBox\n\n\nfunc commit_action(cel: Image, project := Global.current_project) -> void:\n\t_flip_image(cel, selection_checkbox.button_pressed, project)\n\n\nfunc _on_FlipHorizontal_toggled(_button_pressed: bool) -> void:\n\tupdate_preview()\n\n\nfunc _on_FlipVertical_toggled(_button_pressed: bool) -> void:\n\tupdate_preview()\n\n\nfunc _flip_image(cel: Image, affect_selection: bool, project: Project) -> void:\n\tif !(affect_selection and project.has_selection):\n\t\tif flip_h.button_pressed:\n\t\t\tcel.flip_x()\n\t\tif flip_v.button_pressed:\n\t\t\tcel.flip_y()\n\telse:\n\t\tvar cel_rect := Rect2i(Vector2i.ZERO, cel.get_size())\n\t\t# Create a temporary image that only has the selected pixels in it\n\t\tvar selected := Image.create(cel.get_width(), cel.get_height(), false, cel.get_format())\n\t\tselected.blit_rect_mask(cel, project.selection_map, cel_rect, Vector2i.ZERO)\n\t\tvar clear_image := Image.create(cel.get_width(), cel.get_height(), false, cel.get_format())\n\t\tclear_image.fill(Color(0, 0, 0, 0))\n\t\tcel.blit_rect_mask(clear_image, project.selection_map, cel_rect, Vector2i.ZERO)\n\t\tvar rectangle := project.selection_map.get_selection_rect(project)\n\t\tif project != Global.current_project:\n\t\t\trectangle = project.selection_map.get_used_rect()\n\t\tselected = selected.get_region(rectangle)\n\n\t\tif flip_h.button_pressed:\n\t\t\tselected.flip_x()\n\t\tif flip_v.button_pressed:\n\t\t\tselected.flip_y()\n\t\tcel.blend_rect(selected, Rect2i(Vector2i.ZERO, selected.get_size()), rectangle.position)\n\tif cel is ImageExtended:\n\t\tcel.convert_rgb_to_indexed()\n\n\nfunc _commit_undo(action: String, undo_data: Dictionary, project: Project) -> void:\n\t_flip_selection(project)\n\tvar tile_editing_mode := TileSetPanel.tile_editing_mode\n\tif tile_editing_mode == TileSetPanel.TileEditingMode.MANUAL:\n\t\ttile_editing_mode = TileSetPanel.TileEditingMode.AUTO\n\tproject.update_tilemaps(undo_data, tile_editing_mode)\n\tvar redo_data := _get_undo_data(project)\n\tproject.undo_redo.create_action(action)\n\tproject.deserialize_cel_undo_data(redo_data, undo_data)\n\tif redo_data.has(\"outline_offset\"):\n\t\tproject.undo_redo.add_do_property(project, \"selection_offset\", redo_data[\"outline_offset\"])\n\t\tproject.undo_redo.add_undo_property(\n\t\t\tproject, \"selection_offset\", undo_data[\"outline_offset\"]\n\t\t)\n\t\tproject.undo_redo.add_do_method(project.selection_map_changed)\n\t\tproject.undo_redo.add_undo_method(project.selection_map_changed)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false, -1, -1, project))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true, -1, -1, project))\n\tproject.undo_redo.commit_action()\n\n\nfunc _get_undo_data(project: Project) -> Dictionary:\n\tvar affect_selection := selection_checkbox.button_pressed and project.has_selection\n\tvar data := super._get_undo_data(project)\n\tif affect_selection:\n\t\tdata[project.selection_map] = project.selection_map.data\n\t\tdata[\"outline_offset\"] = project.selection_offset\n\treturn data\n\n\nfunc _flip_selection(project := Global.current_project) -> void:\n\tif !(selection_checkbox.button_pressed and project.has_selection):\n\t\treturn\n\n\tvar selection_rect := project.selection_map.get_used_rect()\n\tvar smaller_bitmap_image := project.selection_map.get_region(selection_rect)\n\n\tif flip_h.button_pressed:\n\t\tsmaller_bitmap_image.flip_x()\n\tif flip_v.button_pressed:\n\t\tsmaller_bitmap_image.flip_y()\n\n\tproject.selection_map.fill(Color(0, 0, 0, 0))\n\tproject.selection_map.blend_rect(\n\t\tsmaller_bitmap_image,\n\t\tRect2i(Vector2i.ZERO, smaller_bitmap_image.get_size()),\n\t\tselection_rect.position\n\t)\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/FlipImageDialog.gd.uid",
    "content": "uid://b4btwmk6uad5b\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/FlipImageDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://c7hnynip21y6u\"]\n\n[ext_resource type=\"Script\" uid=\"uid://b4btwmk6uad5b\" path=\"res://src/UI/Dialogs/ImageEffects/FlipImageDialog.gd\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bybqhhayl5ay5\" path=\"res://src/UI/Dialogs/ImageEffects/ImageEffectParent.tscn\" id=\"2\"]\n\n[node name=\"FlipImageDialog\" unique_id=735855738 instance=ExtResource(\"2\")]\ntitle = \"Mirror Image\"\nscript = ExtResource(\"1\")\n\n[node name=\"VBoxContainer\" parent=\".\" index=\"2\" unique_id=1773123238]\noffset_bottom = 288.0\n\n[node name=\"ShowAnimate\" parent=\"VBoxContainer\" index=\"0\" unique_id=1452855547]\nvisible = false\n\n[node name=\"FlipOptions\" type=\"GridContainer\" parent=\"VBoxContainer\" index=\"2\" unique_id=588459611]\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"FlipHorizontal\" type=\"CheckBox\" parent=\"VBoxContainer/FlipOptions\" index=\"0\" unique_id=715877864]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"Horizontal\"\n\n[node name=\"FlipVertical\" type=\"CheckBox\" parent=\"VBoxContainer/FlipOptions\" index=\"1\" unique_id=1564867989]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"Vertical\"\n\n[connection signal=\"toggled\" from=\"VBoxContainer/FlipOptions/FlipHorizontal\" to=\".\" method=\"_on_FlipHorizontal_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/FlipOptions/FlipVertical\" to=\".\" method=\"_on_FlipVertical_toggled\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/GaussianBlur.gd",
    "content": "extends ImageEffect\n\nvar blur_type := 0\nvar blur_amount := 16\nvar blur_radius := 1.0\nvar blur_direction := Vector2.ONE\nvar shader := preload(\"res://src/Shaders/Effects/GaussianBlur.gdshader\")\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\tvar sm := ShaderMaterial.new()\n\tsm.shader = shader\n\tpreview.set_material(sm)\n\n\nfunc commit_action(cel: Image, project := Global.current_project) -> void:\n\tvar selection_tex: ImageTexture\n\tif selection_checkbox.button_pressed and project.has_selection:\n\t\tvar selection := project.selection_map.return_cropped_copy(project, project.size)\n\t\tselection_tex = ImageTexture.create_from_image(selection)\n\n\tvar params := {\n\t\t\"blur_type\": blur_type,\n\t\t\"blur_amount\": blur_amount,\n\t\t\"blur_radius\": blur_radius,\n\t\t\"blur_direction\": blur_direction,\n\t\t\"selection\": selection_tex\n\t}\n\tif !has_been_confirmed:\n\t\tfor param in params:\n\t\t\tpreview.material.set_shader_parameter(param, params[param])\n\telse:\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(cel, shader, params, project.size)\n\n\nfunc _on_blur_type_item_selected(index: int) -> void:\n\tblur_type = index\n\tupdate_preview()\n\n\nfunc _on_blur_amount_value_changed(value: float) -> void:\n\tblur_amount = value\n\tupdate_preview()\n\n\nfunc _on_blur_radius_value_changed(value: float) -> void:\n\tblur_radius = value\n\tupdate_preview()\n\n\nfunc _on_blur_direction_value_changed(value: Vector2) -> void:\n\tblur_direction = value\n\tupdate_preview()\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/GaussianBlur.gd.uid",
    "content": "uid://cxdxgy5xhcrcg\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/GaussianBlur.tscn",
    "content": "[gd_scene format=3 uid=\"uid://beile55gp1bc\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bybqhhayl5ay5\" path=\"res://src/UI/Dialogs/ImageEffects/ImageEffectParent.tscn\" id=\"1_cuu40\"]\n[ext_resource type=\"Script\" uid=\"uid://cxdxgy5xhcrcg\" path=\"res://src/UI/Dialogs/ImageEffects/GaussianBlur.gd\" id=\"2_37xhl\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"3_237k2\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bbnqcxa20a5a5\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\" id=\"4_yprgi\"]\n\n[node name=\"GaussianBlur\" unique_id=1069552875 instance=ExtResource(\"1_cuu40\")]\ntitle = \"Gaussian Blur\"\nsize = Vector2i(427, 437)\nscript = ExtResource(\"2_37xhl\")\n\n[node name=\"VBoxContainer\" parent=\".\" index=\"2\" unique_id=1773123238]\noffset_right = 419.0\noffset_bottom = 388.0\n\n[node name=\"ShowAnimate\" parent=\"VBoxContainer\" index=\"0\" unique_id=1452855547]\nvisible = false\n\n[node name=\"BlurOptions\" type=\"GridContainer\" parent=\"VBoxContainer\" index=\"2\" unique_id=104790035]\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"BlurTypeLabel\" type=\"Label\" parent=\"VBoxContainer/BlurOptions\" index=\"0\" unique_id=544826844]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Blur type:\"\n\n[node name=\"BlurType\" type=\"OptionButton\" parent=\"VBoxContainer/BlurOptions\" index=\"1\" unique_id=1318279768]\nlayout_mode = 2\nsize_flags_horizontal = 3\nselected = 0\nitem_count = 4\npopup/item_0/text = \"Xor's Gaussian Blur\"\npopup/item_0/id = 0\npopup/item_1/text = \"Monk's Multi-Pass Gaussian Blur\"\npopup/item_1/id = 1\npopup/item_2/text = \"NoDev's Single-Pass Gaussian Blur\"\npopup/item_2/id = 2\npopup/item_3/text = \"NoDev's Multi-Pass Gaussian Blur\"\npopup/item_3/id = 3\n\n[node name=\"BlurAmountLabel\" type=\"Label\" parent=\"VBoxContainer/BlurOptions\" index=\"2\" unique_id=362417502]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Blur amount:\"\n\n[node name=\"BlurAmount\" type=\"TextureProgressBar\" parent=\"VBoxContainer/BlurOptions\" index=\"3\" unique_id=2099666068]\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nvalue = 16.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"3_237k2\")\n\n[node name=\"BlurRadiusLabel\" type=\"Label\" parent=\"VBoxContainer/BlurOptions\" index=\"4\" unique_id=301480874]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Blur radius:\"\n\n[node name=\"BlurRadius\" type=\"TextureProgressBar\" parent=\"VBoxContainer/BlurOptions\" index=\"5\" unique_id=1950433215]\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nvalue = 1.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"3_237k2\")\n\n[node name=\"BlurDirectionLabel\" type=\"Label\" parent=\"VBoxContainer/BlurOptions\" index=\"6\" unique_id=1896444221]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Blur direction:\"\n\n[node name=\"BlurDirection\" parent=\"VBoxContainer/BlurOptions\" index=\"7\" unique_id=1190281163 instance=ExtResource(\"4_yprgi\")]\nlayout_mode = 2\nvalue = Vector2(1, 1)\n\n[connection signal=\"item_selected\" from=\"VBoxContainer/BlurOptions/BlurType\" to=\".\" method=\"_on_blur_type_item_selected\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/BlurOptions/BlurAmount\" to=\".\" method=\"_on_blur_amount_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/BlurOptions/BlurRadius\" to=\".\" method=\"_on_blur_radius_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/BlurOptions/BlurDirection\" to=\".\" method=\"_on_blur_direction_value_changed\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/GradientDialog.gd",
    "content": "extends ImageEffect\n\nenum { LINEAR, RADIAL, LINEAR_DITHERING, RADIAL_DITHERING }\nenum Animate { POSITION, SIZE, ANGLE, CENTER_X, CENTER_Y, RADIUS_X, RADIUS_Y }\n\nvar shader := preload(\"res://src/Shaders/Effects/Gradient.gdshader\")\nvar selected_dither_matrix := ShaderLoader.dither_matrices[0]\n\n@onready var options_cont: Container = $VBoxContainer/ScrollContainer/GradientOptions\n@onready var gradient_edit: GradientEditNode = $VBoxContainer/GradientEdit\n@onready var shape_option_button: OptionButton = $\"%ShapeOptionButton\"\n@onready var dithering_option_button: OptionButton = $\"%DitheringOptionButton\"\n@onready var repeat_option_button: OptionButton = $\"%RepeatOptionButton\"\n@onready var position_slider: ValueSlider = $\"%PositionSlider\"\n@onready var size_slider: ValueSlider = $\"%SizeSlider\"\n@onready var angle_slider: ValueSlider = $\"%AngleSlider\"\n@onready var center_slider := $\"%CenterSlider\" as ValueSliderV2\n@onready var radius_slider := $\"%RadiusSlider\" as ValueSliderV2\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\tvar sm := ShaderMaterial.new()\n\tsm.shader = shader\n\tpreview.set_material(sm)\n\n\tfor matrix in ShaderLoader.dither_matrices:\n\t\tdithering_option_button.add_item(matrix.name)\n\n\t# Set as in the Animate enum\n\tanimate_panel.add_float_property(\"Position\", position_slider)\n\tanimate_panel.add_float_property(\"Size\", size_slider)\n\tanimate_panel.add_float_property(\"Angle\", angle_slider)\n\tanimate_panel.add_float_property(\"Center X\", center_slider.get_sliders()[0])\n\tanimate_panel.add_float_property(\"Center Y\", center_slider.get_sliders()[1])\n\tanimate_panel.add_float_property(\"Radius X\", radius_slider.get_sliders()[0])\n\tanimate_panel.add_float_property(\"Radius Y\", radius_slider.get_sliders()[1])\n\n\nfunc commit_action(cel: Image, project := Global.current_project) -> void:\n\tvar selection_tex: ImageTexture\n\tif selection_checkbox.button_pressed and project.has_selection:\n\t\tvar selection := project.selection_map.return_cropped_copy(project, project.size)\n\t\tselection_tex = ImageTexture.create_from_image(selection)\n\n\tvar center := Vector2(\n\t\tanimate_panel.get_animated_value(commit_idx, Animate.CENTER_X),\n\t\tanimate_panel.get_animated_value(commit_idx, Animate.CENTER_Y)\n\t)\n\tvar radius := Vector2(\n\t\tanimate_panel.get_animated_value(commit_idx, Animate.RADIUS_X),\n\t\tanimate_panel.get_animated_value(commit_idx, Animate.RADIUS_Y)\n\t)\n\tvar params := {\n\t\t\"gradient_texture\": gradient_edit.texture,\n\t\t\"gradient_texture_no_interpolation\": gradient_edit.get_gradient_texture_no_interpolation(),\n\t\t\"gradient_offset_texture\": gradient_edit.get_gradient_offsets_texture(),\n\t\t\"use_dithering\": dithering_option_button.selected > 0,\n\t\t\"selection\": selection_tex,\n\t\t\"repeat\": repeat_option_button.selected,\n\t\t\"position\": (animate_panel.get_animated_value(commit_idx, Animate.POSITION) / 100.0) - 0.5,\n\t\t\"size\": animate_panel.get_animated_value(commit_idx, Animate.SIZE) / 100.0,\n\t\t\"angle\": animate_panel.get_animated_value(commit_idx, Animate.ANGLE),\n\t\t\"center\": center / 100.0,\n\t\t\"radius\": radius,\n\t\t\"dither_texture\": selected_dither_matrix.texture,\n\t\t\"shape\": shape_option_button.selected,\n\t}\n\n\tif !has_been_confirmed:\n\t\tpreview.material.shader = shader\n\t\tfor param in params:\n\t\t\tpreview.material.set_shader_parameter(param, params[param])\n\telse:\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(cel, shader, params, project.size)\n\n\nfunc _on_ShapeOptionButton_item_selected(index: int) -> void:\n\tfor child in options_cont.get_children():\n\t\tif not child.is_in_group(\"gradient_common\"):\n\t\t\tchild.visible = false\n\n\tmatch index:\n\t\tLINEAR:\n\t\t\tget_tree().set_group(\"gradient_linear\", \"visible\", true)\n\t\tRADIAL:\n\t\t\tget_tree().set_group(\"gradient_radial\", \"visible\", true)\n\tupdate_preview()\n\n\nfunc _value_changed(_value: float) -> void:\n\tupdate_preview()\n\n\nfunc _value_v2_changed(_value: Vector2) -> void:\n\tupdate_preview()\n\n\nfunc _on_DitheringOptionButton_item_selected(index: int) -> void:\n\tif index > 0:\n\t\tselected_dither_matrix = ShaderLoader.dither_matrices[index - 1]\n\tupdate_preview()\n\n\nfunc _on_GradientEdit_updated(_gradient, _cc) -> void:\n\tupdate_preview()\n\n\nfunc _on_RepeatOptionButton_item_selected(_index: int) -> void:\n\tupdate_preview()\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/GradientDialog.gd.uid",
    "content": "uid://dy53ltwruqn1k\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/GradientDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://u0y5xogg636e\"]\n\n[ext_resource type=\"Script\" uid=\"uid://dy53ltwruqn1k\" path=\"res://src/UI/Dialogs/ImageEffects/GradientDialog.gd\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bybqhhayl5ay5\" path=\"res://src/UI/Dialogs/ImageEffects/ImageEffectParent.tscn\" id=\"2\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bn4aw27dj7pwi\" path=\"res://src/UI/Nodes/GradientEdit.tscn\" id=\"3\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"4\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bbnqcxa20a5a5\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\" id=\"5\"]\n\n[node name=\"GradientDialog\" unique_id=1846401644 instance=ExtResource(\"2\")]\noversampling_override = 1.0\ntitle = \"Gradient\"\nsize = Vector2i(700, 603)\nscript = ExtResource(\"1\")\n\n[node name=\"VBoxContainer\" parent=\".\" index=\"2\" unique_id=1773123238]\noffset_right = 692.0\noffset_bottom = 554.0\n\n[node name=\"GradientEdit\" parent=\"VBoxContainer\" index=\"2\" unique_id=693755114 instance=ExtResource(\"3\")]\nlayout_mode = 2\n\n[node name=\"ScrollContainer\" type=\"ScrollContainer\" parent=\"VBoxContainer\" index=\"3\" unique_id=1285577362]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"GradientOptions\" type=\"GridContainer\" parent=\"VBoxContainer/ScrollContainer\" index=\"0\" unique_id=110303194]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\ncolumns = 2\n\n[node name=\"ShapeLabel\" type=\"Label\" parent=\"VBoxContainer/ScrollContainer/GradientOptions\" index=\"0\" unique_id=493779495 groups=[\"gradient_common\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Shape:\"\n\n[node name=\"ShapeOptionButton\" type=\"OptionButton\" parent=\"VBoxContainer/ScrollContainer/GradientOptions\" index=\"1\" unique_id=1725606346 groups=[\"gradient_common\"]]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 2\npopup/item_0/text = \"Linear\"\npopup/item_0/id = 0\npopup/item_1/text = \"Radial\"\npopup/item_1/id = 1\n\n[node name=\"DitheringLabel\" type=\"Label\" parent=\"VBoxContainer/ScrollContainer/GradientOptions\" index=\"2\" unique_id=1861779786 groups=[\"gradient_common\"]]\nlayout_mode = 2\ntext = \"Dithering pattern:\"\n\n[node name=\"DitheringOptionButton\" type=\"OptionButton\" parent=\"VBoxContainer/ScrollContainer/GradientOptions\" index=\"3\" unique_id=157723572 groups=[\"gradient_common\"]]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 1\npopup/item_0/text = \"None\"\npopup/item_0/id = 0\n\n[node name=\"RepeatLabel\" type=\"Label\" parent=\"VBoxContainer/ScrollContainer/GradientOptions\" index=\"4\" unique_id=306616169 groups=[\"gradient_common\"]]\nlayout_mode = 2\ntext = \"Repeat:\"\n\n[node name=\"RepeatOptionButton\" type=\"OptionButton\" parent=\"VBoxContainer/ScrollContainer/GradientOptions\" index=\"5\" unique_id=1099467612 groups=[\"gradient_common\"]]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 4\npopup/item_0/text = \"None\"\npopup/item_0/id = 0\npopup/item_1/text = \"Repeat\"\npopup/item_1/id = 1\npopup/item_2/text = \"Mirror\"\npopup/item_2/id = 2\npopup/item_3/text = \"Truncate\"\npopup/item_3/id = 3\n\n[node name=\"PositionLabel\" type=\"Label\" parent=\"VBoxContainer/ScrollContainer/GradientOptions\" index=\"6\" unique_id=182322067 groups=[\"gradient_linear\"]]\nlayout_mode = 2\ntext = \"Position:\"\n\n[node name=\"PositionSlider\" type=\"TextureProgressBar\" parent=\"VBoxContainer/ScrollContainer/GradientOptions\" index=\"7\" unique_id=878784383 groups=[\"gradient_linear\"]]\nunique_name_in_owner = true\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nvalue = 50.0\nallow_greater = true\nallow_lesser = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"4\")\nsuffix = \"%\"\nsnap_step = 10.0\n\n[node name=\"SizeLabel\" type=\"Label\" parent=\"VBoxContainer/ScrollContainer/GradientOptions\" index=\"8\" unique_id=37361564 groups=[\"gradient_linear\"]]\nlayout_mode = 2\ntext = \"Size:\"\n\n[node name=\"SizeSlider\" type=\"TextureProgressBar\" parent=\"VBoxContainer/ScrollContainer/GradientOptions\" index=\"9\" unique_id=346526022 groups=[\"gradient_linear\"]]\nunique_name_in_owner = true\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nmax_value = 200.0\nvalue = 100.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"4\")\nsuffix = \"%\"\nsnap_step = 10.0\n\n[node name=\"AngleLabel\" type=\"Label\" parent=\"VBoxContainer/ScrollContainer/GradientOptions\" index=\"10\" unique_id=369271067 groups=[\"gradient_linear\"]]\nlayout_mode = 2\ntext = \"Angle:\"\n\n[node name=\"AngleSlider\" type=\"TextureProgressBar\" parent=\"VBoxContainer/ScrollContainer/GradientOptions\" index=\"11\" unique_id=1754665369 groups=[\"gradient_linear\"]]\nunique_name_in_owner = true\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 360.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"4\")\nsuffix = \"°\"\nsnap_step = 45.0\n\n[node name=\"CenterLabel\" type=\"Label\" parent=\"VBoxContainer/ScrollContainer/GradientOptions\" index=\"12\" unique_id=304039532 groups=[\"gradient_radial\"]]\nvisible = false\nlayout_mode = 2\nsize_flags_vertical = 1\ntext = \"Center:\"\n\n[node name=\"CenterSlider\" parent=\"VBoxContainer/ScrollContainer/GradientOptions\" index=\"13\" unique_id=1720557349 groups=[\"gradient_radial\"] instance=ExtResource(\"5\")]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\nvalue = Vector2(50, 50)\nallow_greater = true\nallow_lesser = true\nsnap_step = 10.0\nsuffix_x = \"%\"\nsuffix_y = \"%\"\n\n[node name=\"RadiusLabel\" type=\"Label\" parent=\"VBoxContainer/ScrollContainer/GradientOptions\" index=\"14\" unique_id=654086141 groups=[\"gradient_radial\"]]\nvisible = false\nlayout_mode = 2\nsize_flags_vertical = 1\ntext = \"Radius:\"\n\n[node name=\"RadiusSlider\" parent=\"VBoxContainer/ScrollContainer/GradientOptions\" index=\"15\" unique_id=2023059871 groups=[\"gradient_radial\"] instance=ExtResource(\"5\")]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\nvalue = Vector2(1, 1)\nmin_value = Vector2(0.01, 0.01)\nmax_value = Vector2(10, 10)\nstep = 0.01\nallow_greater = true\nshow_ratio = true\n\n[connection signal=\"updated\" from=\"VBoxContainer/GradientEdit\" to=\".\" method=\"_on_GradientEdit_updated\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/ScrollContainer/GradientOptions/ShapeOptionButton\" to=\".\" method=\"_on_ShapeOptionButton_item_selected\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/ScrollContainer/GradientOptions/DitheringOptionButton\" to=\".\" method=\"_on_DitheringOptionButton_item_selected\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/ScrollContainer/GradientOptions/RepeatOptionButton\" to=\".\" method=\"_on_RepeatOptionButton_item_selected\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/ScrollContainer/GradientOptions/PositionSlider\" to=\".\" method=\"_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/ScrollContainer/GradientOptions/SizeSlider\" to=\".\" method=\"_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/ScrollContainer/GradientOptions/AngleSlider\" to=\".\" method=\"_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/ScrollContainer/GradientOptions/CenterSlider\" to=\".\" method=\"_value_v2_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/ScrollContainer/GradientOptions/RadiusSlider\" to=\".\" method=\"_value_v2_changed\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/GradientMapDialog.gd",
    "content": "extends ImageEffect\n\nvar shader := preload(\"res://src/Shaders/Effects/GradientMap.gdshader\")\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\tvar sm := ShaderMaterial.new()\n\tsm.shader = shader\n\tpreview.set_material(sm)\n\n\nfunc commit_action(cel: Image, project := Global.current_project) -> void:\n\tvar selection_tex: ImageTexture\n\tif selection_checkbox.button_pressed and project.has_selection:\n\t\tvar selection := project.selection_map.return_cropped_copy(project, project.size)\n\t\tselection_tex = ImageTexture.create_from_image(selection)\n\n\tvar params := {\"selection\": selection_tex, \"gradient_map\": $VBoxContainer/GradientEdit.texture}\n\n\tif !has_been_confirmed:\n\t\tfor param in params:\n\t\t\tpreview.material.set_shader_parameter(param, params[param])\n\telse:\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(cel, shader, params, project.size)\n\n\nfunc _on_GradientEdit_updated(_gradient: Gradient, _cc: bool) -> void:\n\tupdate_preview()\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/GradientMapDialog.gd.uid",
    "content": "uid://duasprybsl7b2\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/GradientMapDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://cjd5sjemyea4a\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bybqhhayl5ay5\" path=\"res://src/UI/Dialogs/ImageEffects/ImageEffectParent.tscn\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bn4aw27dj7pwi\" path=\"res://src/UI/Nodes/GradientEdit.tscn\" id=\"2\"]\n[ext_resource type=\"Script\" uid=\"uid://duasprybsl7b2\" path=\"res://src/UI/Dialogs/ImageEffects/GradientMapDialog.gd\" id=\"3\"]\n\n[node name=\"GradientMapDialog\" unique_id=1676743834 instance=ExtResource(\"1\")]\ntitle = \"Gradient Map\"\nscript = ExtResource(\"3\")\n\n[node name=\"VBoxContainer\" parent=\".\" index=\"2\" unique_id=1773123238]\noffset_bottom = 342.0\n\n[node name=\"ShowAnimate\" parent=\"VBoxContainer\" index=\"0\" unique_id=1452855547]\nvisible = false\n\n[node name=\"GradientEdit\" parent=\"VBoxContainer\" index=\"2\" unique_id=1789971382 instance=ExtResource(\"2\")]\nlayout_mode = 2\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/HSVDialog.gd",
    "content": "extends ImageEffect\n\nenum Animate { HUE, SATURATION, VALUE }\nvar shader := preload(\"res://src/Shaders/Effects/HSV.gdshader\")\n\n@onready var hue_slider := $VBoxContainer/HueSlider as ValueSlider\n@onready var sat_slider := $VBoxContainer/SaturationSlider as ValueSlider\n@onready var val_slider := $VBoxContainer/ValueSlider as ValueSlider\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\tvar sm := ShaderMaterial.new()\n\tsm.shader = shader\n\tpreview.set_material(sm)\n\t# set as in enum\n\tanimate_panel.add_float_property(\"Hue\", hue_slider)\n\tanimate_panel.add_float_property(\"Saturation\", sat_slider)\n\tanimate_panel.add_float_property(\"Value\", val_slider)\n\n\nfunc _about_to_popup() -> void:\n\t_reset()\n\tsuper._about_to_popup()\n\n\nfunc commit_action(cel: Image, project := Global.current_project) -> void:\n\tvar hue = animate_panel.get_animated_value(commit_idx, Animate.HUE) / 360\n\tvar sat = animate_panel.get_animated_value(commit_idx, Animate.SATURATION) / 100\n\tvar val = animate_panel.get_animated_value(commit_idx, Animate.VALUE) / 100\n\tvar selection_tex: ImageTexture\n\tif selection_checkbox.button_pressed and project.has_selection:\n\t\tvar selection := project.selection_map.return_cropped_copy(project, project.size)\n\t\tselection_tex = ImageTexture.create_from_image(selection)\n\n\tvar params := {\"hue\": hue, \"saturation\": sat, \"value\": val, \"selection\": selection_tex}\n\tif !has_been_confirmed:\n\t\tfor param in params:\n\t\t\tpreview.material.set_shader_parameter(param, params[param])\n\telse:\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(cel, shader, params, project.size)\n\n\nfunc _reset() -> void:\n\thue_slider.value = 0\n\tsat_slider.value = 0\n\tval_slider.value = 0\n\thas_been_confirmed = false\n\n\nfunc _on_HueSlider_value_changed(_value: float) -> void:\n\tupdate_preview()\n\n\nfunc _on_SaturationSlider_value_changed(_value: float) -> void:\n\tupdate_preview()\n\n\nfunc _on_ValueSlider_value_changed(_value: float) -> void:\n\tupdate_preview()\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/HSVDialog.gd.uid",
    "content": "uid://drpaiclu2fcj7\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/HSVDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://oq036vr10yvk\"]\n\n[ext_resource type=\"Script\" uid=\"uid://drpaiclu2fcj7\" path=\"res://src/UI/Dialogs/ImageEffects/HSVDialog.gd\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bybqhhayl5ay5\" path=\"res://src/UI/Dialogs/ImageEffects/ImageEffectParent.tscn\" id=\"2\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"3\"]\n\n[node name=\"HSVDialog\" unique_id=1520656639 instance=ExtResource(\"2\")]\ntitle = \"Adjust Hue/Saturation/Value\"\nscript = ExtResource(\"1\")\n\n[node name=\"VBoxContainer\" parent=\".\" index=\"2\" unique_id=1773123238]\noffset_bottom = 344.0\n\n[node name=\"HueSlider\" parent=\"VBoxContainer\" index=\"2\" unique_id=161711944 instance=ExtResource(\"3\")]\nlayout_mode = 2\nmin_value = -180.0\nmax_value = 180.0\nprefix = \"Hue:\"\n\n[node name=\"SaturationSlider\" parent=\"VBoxContainer\" index=\"3\" unique_id=312017953 instance=ExtResource(\"3\")]\nlayout_mode = 2\nmin_value = -100.0\nprefix = \"Saturation:\"\n\n[node name=\"ValueSlider\" parent=\"VBoxContainer\" index=\"4\" unique_id=1533100203 instance=ExtResource(\"3\")]\nlayout_mode = 2\nmin_value = -100.0\nprefix = \"Value:\"\n\n[connection signal=\"value_changed\" from=\"VBoxContainer/HueSlider\" to=\".\" method=\"_on_HueSlider_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/SaturationSlider\" to=\".\" method=\"_on_SaturationSlider_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/ValueSlider\" to=\".\" method=\"_on_ValueSlider_value_changed\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/ImageEffectParent.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bybqhhayl5ay5\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://dmlgx1jgau8a5\" path=\"res://src/UI/Nodes/AnimatePanel.tscn\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://3pmb60gpst7b\" path=\"res://src/UI/Nodes/TransparentChecker.tscn\" id=\"2\"]\n[ext_resource type=\"Script\" uid=\"uid://cix6kinxmv8q2\" path=\"res://src/Classes/ImageEffect.gd\" id=\"3\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://blrd4x0ma7b3h\" path=\"res://assets/graphics/misc/animate.png\" id=\"4\"]\n[ext_resource type=\"Shader\" uid=\"uid://c50kmfvf635kb\" path=\"res://src/Shaders/TransparentChecker.gdshader\" id=\"4_irxkv\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"4_whox6\"]\n\n[sub_resource type=\"ShaderMaterial\" id=\"ShaderMaterial_p71nj\"]\nshader = ExtResource(\"4_irxkv\")\nshader_parameter/size = 10.0\nshader_parameter/alpha = 1.0\nshader_parameter/color1 = Color(0.7, 0.7, 0.7, 1)\nshader_parameter/color2 = Color(1, 1, 1, 1)\nshader_parameter/offset = Vector2(0, 0)\nshader_parameter/scale = Vector2(0, 0)\nshader_parameter/rect_size = Vector2(200, 200)\nshader_parameter/follow_movement = false\nshader_parameter/follow_scale = false\n\n[node name=\"ImageEffectParent\" type=\"ConfirmationDialog\" unique_id=829570751]\ncanvas_item_default_texture_filter = 0\nposition = Vector2i(0, 36)\nsize = Vector2i(362, 379)\nscript = ExtResource(\"3\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=1773123238]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 354.0\noffset_bottom = 330.0\n\n[node name=\"ShowAnimate\" type=\"Button\" parent=\"VBoxContainer\" unique_id=1452855547]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(20, 20)\nlayout_mode = 2\nsize_flags_horizontal = 8\nmouse_default_cursor_shape = 2\ntoggle_mode = true\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"VBoxContainer/ShowAnimate\" unique_id=1396582359]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"4\")\nexpand_mode = 1\nstretch_mode = 5\n\n[node name=\"AspectRatioContainer\" type=\"AspectRatioContainer\" parent=\"VBoxContainer\" unique_id=370669710]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"Preview\" type=\"TextureRect\" parent=\"VBoxContainer/AspectRatioContainer\" unique_id=1653862649]\ncustom_minimum_size = Vector2(200, 200)\nlayout_mode = 2\nexpand_mode = 1\nstretch_mode = 4\n\n[node name=\"TransparentChecker\" parent=\"VBoxContainer/AspectRatioContainer/Preview\" unique_id=770515729 instance=ExtResource(\"2\")]\nshow_behind_parent = true\nmaterial = SubResource(\"ShaderMaterial_p71nj\")\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\n\n[node name=\"LiveSettings\" type=\"VBoxContainer\" parent=\"VBoxContainer\" unique_id=2099258780]\nvisible = false\nlayout_mode = 2\nalignment = 1\n\n[node name=\"LiveCheckbox\" type=\"CheckBox\" parent=\"VBoxContainer/LiveSettings\" unique_id=987338507]\nlayout_mode = 2\nsize_flags_horizontal = 4\nmouse_default_cursor_shape = 2\ntext = \"Live Preview\"\n\n[node name=\"WaitTime\" parent=\"VBoxContainer/LiveSettings\" unique_id=2022496090 instance=ExtResource(\"4_whox6\")]\nvisible = false\nlayout_mode = 2\nmin_value = 1.0\nmax_value = 1000.0\nvalue = 200.0\neditable = false\nprefix = \"Preview delay:\"\nsuffix = \"ms\"\n\n[node name=\"WaitApply\" type=\"Timer\" parent=\"VBoxContainer/LiveSettings\" unique_id=984927759]\n\n[node name=\"OptionsContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer\" unique_id=1370462275]\nlayout_mode = 2\n\n[node name=\"SelectionCheckBox\" type=\"CheckBox\" parent=\"VBoxContainer/OptionsContainer\" unique_id=1698253230]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"Only affect selection\"\n\n[node name=\"AffectOptionButton\" type=\"OptionButton\" parent=\"VBoxContainer/OptionsContainer\" unique_id=1493894217]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 4\npopup/item_0/text = \"Selected cels\"\npopup/item_0/id = 0\npopup/item_1/text = \"Current frame\"\npopup/item_1/id = 1\npopup/item_2/text = \"All frames\"\npopup/item_2/id = 2\npopup/item_3/text = \"All projects\"\npopup/item_3/id = 3\n\n[node name=\"AnimateDialog\" type=\"Popup\" parent=\".\" unique_id=44308645]\nsize = Vector2i(350, 200)\nunresizable = false\n\n[node name=\"AnimatePanel\" parent=\"AnimateDialog\" unique_id=912775852 instance=ExtResource(\"1\")]\nunique_name_in_owner = true\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_right = 0.0\noffset_bottom = 0.0\n\n[connection signal=\"toggled\" from=\"VBoxContainer/LiveSettings/LiveCheckbox\" to=\".\" method=\"_on_live_checkbox_toggled\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/LiveSettings/WaitTime\" to=\".\" method=\"_on_wait_time_value_changed\"]\n[connection signal=\"timeout\" from=\"VBoxContainer/LiveSettings/WaitApply\" to=\".\" method=\"_on_wait_apply_timeout\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/InvertColorsDialog.gd",
    "content": "extends ImageEffect\n\nvar red := true\nvar green := true\nvar blue := true\nvar alpha := false\n\nvar shader := preload(\"res://src/Shaders/Effects/Invert.gdshader\")\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\tvar sm := ShaderMaterial.new()\n\tsm.shader = shader\n\tpreview.set_material(sm)\n\n\nfunc commit_action(cel: Image, project := Global.current_project) -> void:\n\tvar selection_tex: ImageTexture\n\tif selection_checkbox.button_pressed and project.has_selection:\n\t\tvar selection := project.selection_map.return_cropped_copy(project, project.size)\n\t\tselection_tex = ImageTexture.create_from_image(selection)\n\n\tvar params := {\n\t\t\"red\": red, \"blue\": blue, \"green\": green, \"alpha\": alpha, \"selection\": selection_tex\n\t}\n\n\tif !has_been_confirmed:\n\t\tfor param in params:\n\t\t\tpreview.material.set_shader_parameter(param, params[param])\n\telse:\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(cel, shader, params, project.size)\n\n\nfunc _on_RButton_toggled(button_pressed: bool) -> void:\n\tred = button_pressed\n\tupdate_preview()\n\n\nfunc _on_GButton_toggled(button_pressed: bool) -> void:\n\tgreen = button_pressed\n\tupdate_preview()\n\n\nfunc _on_BButton_toggled(button_pressed: bool) -> void:\n\tblue = button_pressed\n\tupdate_preview()\n\n\nfunc _on_AButton_toggled(button_pressed: bool) -> void:\n\talpha = button_pressed\n\tupdate_preview()\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/InvertColorsDialog.gd.uid",
    "content": "uid://dc24ku5nqmwuv\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/InvertColorsDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bl1t33abu7kl8\"]\n\n[ext_resource type=\"Script\" uid=\"uid://dc24ku5nqmwuv\" path=\"res://src/UI/Dialogs/ImageEffects/InvertColorsDialog.gd\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bybqhhayl5ay5\" path=\"res://src/UI/Dialogs/ImageEffects/ImageEffectParent.tscn\" id=\"2\"]\n\n[node name=\"InvertColorsDialog\" unique_id=459728526 instance=ExtResource(\"2\")]\ntitle = \"Invert Colors\"\nscript = ExtResource(\"1\")\n\n[node name=\"ShowAnimate\" parent=\"VBoxContainer\" parent_id_path=PackedInt32Array(1773123238) index=\"0\" unique_id=1452855547]\nvisible = false\n\n[node name=\"RGBAContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer\" parent_id_path=PackedInt32Array(1773123238) index=\"2\" unique_id=1606532664]\nlayout_mode = 2\nalignment = 1\n\n[node name=\"RButton\" type=\"Button\" parent=\"VBoxContainer/RGBAContainer\" index=\"0\" unique_id=879008436]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Modify Red Channel\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_pressed = true\ntext = \"R\"\n\n[node name=\"GButton\" type=\"Button\" parent=\"VBoxContainer/RGBAContainer\" index=\"1\" unique_id=1580829035]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Modify Green Channel\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_pressed = true\ntext = \"G\"\n\n[node name=\"BButton\" type=\"Button\" parent=\"VBoxContainer/RGBAContainer\" index=\"2\" unique_id=335003459]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Modify Blue Channel\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_pressed = true\ntext = \"B\"\n\n[node name=\"AButton\" type=\"Button\" parent=\"VBoxContainer/RGBAContainer\" index=\"3\" unique_id=923108766]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Modify Alpha Channel\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\ntext = \"A\"\n\n[connection signal=\"toggled\" from=\"VBoxContainer/RGBAContainer/RButton\" to=\".\" method=\"_on_RButton_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/RGBAContainer/GButton\" to=\".\" method=\"_on_GButton_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/RGBAContainer/BButton\" to=\".\" method=\"_on_BButton_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/RGBAContainer/AButton\" to=\".\" method=\"_on_AButton_toggled\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/OffsetScaleImage.gd",
    "content": "extends ImageEffect\n\nenum Animate { OFFSET_X, OFFSET_Y, ZOOM }\n\nvar shader := preload(\"res://src/Shaders/Effects/OffsetPixels.gdshader\")\nvar wrap_around := false\n\n@onready var offset_sliders := $VBoxContainer/OffsetOptions/OffsetSliders as ValueSliderV2\n@onready var scale_value := $VBoxContainer/OffsetOptions/ScaleValueSlider as ValueSlider\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\t# Set in the order of the Animate enum\n\tanimate_panel.add_float_property(\"Offset X\", offset_sliders.get_sliders()[0])\n\tanimate_panel.add_float_property(\"Offset Y\", offset_sliders.get_sliders()[1])\n\tanimate_panel.add_float_property(\"Scale\", scale_value)\n\n\nfunc _about_to_popup() -> void:\n\toffset_sliders.min_value = -Global.current_project.size\n\toffset_sliders.max_value = Global.current_project.size\n\tsuper._about_to_popup()\n\n\nfunc commit_action(cel: Image, project := Global.current_project) -> void:\n\tvar offset_x := animate_panel.get_animated_value(commit_idx, Animate.OFFSET_X)\n\tvar offset_y := animate_panel.get_animated_value(commit_idx, Animate.OFFSET_Y)\n\tvar scale_amount := animate_panel.get_animated_value(commit_idx, Animate.ZOOM) / 100.0\n\tvar offset := Vector2(offset_x, offset_y)\n\tvar selection_tex: ImageTexture\n\tif selection_checkbox.button_pressed and project.has_selection:\n\t\tvar selection := project.selection_map.return_cropped_copy(project, project.size)\n\t\tselection_tex = ImageTexture.create_from_image(selection)\n\n\tvar params := {\n\t\t\"offset\": offset,\n\t\t\"scale_amount\": scale_amount,\n\t\t\"wrap_around\": wrap_around,\n\t\t\"selection\": selection_tex\n\t}\n\tif !has_been_confirmed:\n\t\trecalculate_preview(params)\n\telse:\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(cel, shader, params, project.size)\n\n\nfunc _on_OffsetSliders_value_changed(_value: Vector2) -> void:\n\tupdate_preview()  # (from here, commit_action will be called, and then recalculate_preview)\n\n\nfunc _on_ZoomValueSlider_value_changed(_value: float) -> void:\n\toffset_sliders.min_value = (-Global.current_project.size * _value / 100).floor()\n\toffset_sliders.max_value = (Global.current_project.size * _value / 100).floor()\n\tupdate_preview()  # (from here, commit_action will be called, and then recalculate_preview)\n\n\nfunc _on_WrapCheckBox_toggled(button_pressed: bool) -> void:\n\twrap_around = button_pressed\n\tupdate_preview()  # (from here, commit_action will be called, and then recalculate_preview)\n\n\nfunc recalculate_preview(params: Dictionary) -> void:\n\tvar frame := Global.current_project.frames[_preview_idx]\n\tcommit_idx = _preview_idx\n\tmatch affect:\n\t\tSELECTED_CELS:\n\t\t\tselected_cels.fill(Color(0, 0, 0, 0))\n\t\t\tblend_layers(selected_cels, frame, params, true)\n\t\t\tpreview_image.copy_from(selected_cels)\n\t\t_:\n\t\t\tcurrent_frame.fill(Color(0, 0, 0, 0))\n\t\t\tblend_layers(current_frame, frame, params)\n\t\t\tpreview_image.copy_from(current_frame)\n\n\n## Altered version of blend_layers() located in DrawingAlgos.gd\n## This function is REQUIRED in order for offset effect to work correctly with clipping masks\nfunc blend_layers(\n\timage: Image,\n\tframe: Frame,\n\teffect_params := {},\n\tonly_selected_cels := false,\n\tonly_selected_layers := false,\n) -> void:\n\tvar project := Global.current_project\n\tvar frame_index := project.frames.find(frame)\n\tvar previous_ordered_layers: Array[int] = project.ordered_layers\n\tproject.order_layers(frame_index)\n\tvar textures: Array[Image] = []\n\tvar gen := ShaderImageEffect.new()\n\t# Nx4 texture, where N is the number of layers and the first row are the blend modes,\n\t# the second are the opacities, the third are the origins and the fourth are the\n\t# clipping mask booleans.\n\tvar metadata_image := Image.create(project.layers.size(), 4, false, Image.FORMAT_R8)\n\tfor i in project.layers.size():\n\t\tvar ordered_index := project.ordered_layers[i]\n\t\tvar layer := project.layers[ordered_index]\n\t\tvar include := true if layer.is_visible_in_hierarchy() else false\n\t\tif only_selected_cels and include:\n\t\t\tvar test_array := [frame_index, i]\n\t\t\tif not test_array in project.selected_cels:\n\t\t\t\tinclude = false\n\t\tif only_selected_layers and include:\n\t\t\tvar layer_is_selected := false\n\t\t\tfor selected_cel in project.selected_cels:\n\t\t\t\tif i == selected_cel[1]:\n\t\t\t\t\tlayer_is_selected = true\n\t\t\t\t\tbreak\n\t\t\tif not layer_is_selected:\n\t\t\t\tinclude = false\n\t\tvar cel := frame.cels[ordered_index]\n\t\tvar cel_image: Image\n\t\tif layer.is_blender():\n\t\t\tcel_image = (layer as GroupLayer).blend_children(frame)\n\t\telse:\n\t\t\tcel_image = layer.display_effects(cel)\n\t\tif layer.is_blended_by_ancestor() and not only_selected_cels and not only_selected_layers:\n\t\t\tinclude = false\n\t\tif include:  # Apply offset effect to it\n\t\t\tgen.generate_image(cel_image, shader, effect_params, project.size)\n\t\ttextures.append(cel_image)\n\t\tDrawingAlgos.set_layer_metadata_image(layer, cel, metadata_image, ordered_index, include)\n\tvar texture_array := Texture2DArray.new()\n\ttexture_array.create_from_images(textures)\n\tvar params := {\n\t\t\"layers\": texture_array,\n\t\t\"metadata\": ImageTexture.create_from_image(metadata_image),\n\t}\n\tvar blended := Image.create(project.size.x, project.size.y, false, image.get_format())\n\tvar blend_layers_shader = DrawingAlgos.blend_layers_shader\n\tgen.generate_image(blended, blend_layers_shader, params, project.size)\n\timage.blend_rect(blended, Rect2i(Vector2i.ZERO, project.size), Vector2i.ZERO)\n\t# Re-order the layers again to ensure correct canvas drawing\n\tproject.ordered_layers = previous_ordered_layers\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/OffsetScaleImage.gd.uid",
    "content": "uid://cxs0b83pxx3j8\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/OffsetScaleImage.tscn",
    "content": "[gd_scene format=3 uid=\"uid://q355qqjvuajs\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bybqhhayl5ay5\" path=\"res://src/UI/Dialogs/ImageEffects/ImageEffectParent.tscn\" id=\"1_7hdx0\"]\n[ext_resource type=\"Script\" uid=\"uid://cxs0b83pxx3j8\" path=\"res://src/UI/Dialogs/ImageEffects/OffsetScaleImage.gd\" id=\"2_wtcan\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bbnqcxa20a5a5\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\" id=\"3_nls83\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"4_30qvy\"]\n\n[node name=\"OffsetScaleImage\" unique_id=1104561061 instance=ExtResource(\"1_7hdx0\")]\ntitle = \"Offset & Scale Image\"\nsize = Vector2i(362, 491)\nscript = ExtResource(\"2_wtcan\")\n\n[node name=\"VBoxContainer\" parent=\".\" index=\"2\" unique_id=1773123238]\noffset_bottom = 442.0\n\n[node name=\"OffsetOptions\" type=\"GridContainer\" parent=\"VBoxContainer\" index=\"2\" unique_id=283181723]\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"OffsetLabel\" type=\"Label\" parent=\"VBoxContainer/OffsetOptions\" index=\"0\" unique_id=1818331786]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Offset:\"\n\n[node name=\"OffsetSliders\" parent=\"VBoxContainer/OffsetOptions\" index=\"1\" unique_id=492803524 instance=ExtResource(\"3_nls83\")]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmin_value = Vector2(-64, -64)\nmax_value = Vector2(64, 64)\nallow_greater = true\nallow_lesser = true\nshow_ratio = true\nsuffix_x = \"px\"\nsuffix_y = \"px\"\n\n[node name=\"ScaleLabel\" type=\"Label\" parent=\"VBoxContainer/OffsetOptions\" index=\"2\" unique_id=36083011]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Scale:\"\n\n[node name=\"ScaleValueSlider\" parent=\"VBoxContainer/OffsetOptions\" index=\"3\" unique_id=24022254 instance=ExtResource(\"4_30qvy\")]\nlayout_mode = 2\nmin_value = 1.0\nmax_value = 5000.0\nvalue = 100.0\nallow_greater = true\nsuffix = \"%\"\n\n[node name=\"WrapLabel\" type=\"Label\" parent=\"VBoxContainer/OffsetOptions\" index=\"4\" unique_id=76156915]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Wrap around:\"\n\n[node name=\"WrapCheckBox\" type=\"CheckBox\" parent=\"VBoxContainer/OffsetOptions\" index=\"5\" unique_id=243611518]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[connection signal=\"value_changed\" from=\"VBoxContainer/OffsetOptions/OffsetSliders\" to=\".\" method=\"_on_OffsetSliders_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/OffsetOptions/ScaleValueSlider\" to=\".\" method=\"_on_ZoomValueSlider_value_changed\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/OffsetOptions/WrapCheckBox\" to=\".\" method=\"_on_WrapCheckBox_toggled\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/OutlineDialog.gd",
    "content": "extends ImageEffect\n\nenum Animate { THICKNESS }\nvar color := Color.BLACK\nvar thickness := 1\nvar pattern := 0\nvar inside_image := false\nvar shader := preload(\"res://src/Shaders/Effects/OutlineInline.gdshader\")\n\n@onready var outline_color := $VBoxContainer/OutlineOptions/OutlineColor as ColorPickerButton\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\tvar sm := ShaderMaterial.new()\n\tsm.shader = shader\n\tpreview.set_material(sm)\n\toutline_color.get_picker().presets_visible = false\n\tcolor = outline_color.color\n\t# Set in the order of the Animate enum\n\tanimate_panel.add_float_property(\"Thickness\", $VBoxContainer/OutlineOptions/ThickValue)\n\n\nfunc commit_action(cel: Image, project := Global.current_project) -> void:\n\tvar anim_thickness := animate_panel.get_animated_value(commit_idx, Animate.THICKNESS)\n\tvar selection_tex: ImageTexture\n\tif selection_checkbox.button_pressed and project.has_selection:\n\t\tvar selection := project.selection_map.return_cropped_copy(project, project.size)\n\t\tselection_tex = ImageTexture.create_from_image(selection)\n\n\tvar params := {\n\t\t\"color\": color,\n\t\t\"width\": anim_thickness,\n\t\t\"brush\": pattern,\n\t\t\"inside\": inside_image,\n\t\t\"selection\": selection_tex\n\t}\n\tif !has_been_confirmed:\n\t\tfor param in params:\n\t\t\tpreview.material.set_shader_parameter(param, params[param])\n\telse:\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(cel, shader, params, project.size)\n\n\nfunc _on_ThickValue_value_changed(value: int) -> void:\n\tthickness = value\n\tupdate_preview()\n\n\nfunc _on_OutlineColor_color_changed(_color: Color) -> void:\n\tcolor = _color\n\tupdate_preview()\n\n\nfunc _on_InsideImageCheckBox_toggled(button_pressed: bool) -> void:\n\tinside_image = button_pressed\n\tupdate_preview()\n\n\nfunc _on_PatternOptionButton_item_selected(index: int) -> void:\n\tpattern = index\n\tupdate_preview()\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/OutlineDialog.gd.uid",
    "content": "uid://besbv80621ao5\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/OutlineDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://ci2qpf6t3dyyr\"]\n\n[ext_resource type=\"Script\" uid=\"uid://besbv80621ao5\" path=\"res://src/UI/Dialogs/ImageEffects/OutlineDialog.gd\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"2\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bybqhhayl5ay5\" path=\"res://src/UI/Dialogs/ImageEffects/ImageEffectParent.tscn\" id=\"3\"]\n\n[node name=\"OutlineDialog\" unique_id=2140525660 instance=ExtResource(\"3\")]\ntitle = \"Outline\"\nscript = ExtResource(\"1\")\n\n[node name=\"VBoxContainer\" parent=\".\" index=\"2\" unique_id=1773123238]\noffset_bottom = 354.0\n\n[node name=\"OutlineOptions\" type=\"GridContainer\" parent=\"VBoxContainer\" index=\"2\" unique_id=957543995]\nlayout_mode = 2\ntheme_override_constants/h_separation = 4\ntheme_override_constants/v_separation = 4\ncolumns = 2\n\n[node name=\"ThickLabel\" type=\"Label\" parent=\"VBoxContainer/OutlineOptions\" index=\"0\" unique_id=238969786]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Thickness:\"\n\n[node name=\"ThickValue\" type=\"TextureProgressBar\" parent=\"VBoxContainer/OutlineOptions\" index=\"1\" unique_id=1898165399]\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nvalue = 1.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"2\")\nsuffix = \"px\"\n\n[node name=\"OutlineColorLabel\" type=\"Label\" parent=\"VBoxContainer/OutlineOptions\" index=\"2\" unique_id=557197261]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Fill with color:\"\n\n[node name=\"OutlineColor\" type=\"ColorPickerButton\" parent=\"VBoxContainer/OutlineOptions\" index=\"3\" unique_id=1687721955]\ncustom_minimum_size = Vector2(64, 20)\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"PatternLabel\" type=\"Label\" parent=\"VBoxContainer/OutlineOptions\" index=\"4\" unique_id=1323857316]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Brush:\"\n\n[node name=\"PatternOptionButton\" type=\"OptionButton\" parent=\"VBoxContainer/OutlineOptions\" index=\"5\" unique_id=300895786]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 3\npopup/item_0/text = \"Diamond\"\npopup/item_0/id = 0\npopup/item_1/text = \"Circle\"\npopup/item_1/id = 1\npopup/item_2/text = \"Square\"\npopup/item_2/id = 2\n\n[node name=\"InsideImageLabel\" type=\"Label\" parent=\"VBoxContainer/OutlineOptions\" index=\"6\" unique_id=1901092960]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Place inside image\"\n\n[node name=\"InsideImageCheckBox\" type=\"CheckBox\" parent=\"VBoxContainer/OutlineOptions\" index=\"7\" unique_id=267779864]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[connection signal=\"value_changed\" from=\"VBoxContainer/OutlineOptions/ThickValue\" to=\".\" method=\"_on_ThickValue_value_changed\"]\n[connection signal=\"color_changed\" from=\"VBoxContainer/OutlineOptions/OutlineColor\" to=\".\" method=\"_on_OutlineColor_color_changed\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/OutlineOptions/PatternOptionButton\" to=\".\" method=\"_on_PatternOptionButton_item_selected\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/OutlineOptions/InsideImageCheckBox\" to=\".\" method=\"_on_InsideImageCheckBox_toggled\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/PalettizeDialog.gd",
    "content": "extends ImageEffect\n\nvar shader := preload(\"res://src/Shaders/Effects/Palettize.gdshader\")\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\tvar sm := ShaderMaterial.new()\n\tsm.shader = shader\n\tpreview.set_material(sm)\n\n\nfunc commit_action(cel: Image, project := Global.current_project) -> void:\n\tvar selection_tex: ImageTexture\n\tif selection_checkbox.button_pressed and project.has_selection:\n\t\tvar selection := project.selection_map.return_cropped_copy(project, project.size)\n\t\tselection_tex = ImageTexture.create_from_image(selection)\n\n\tif not is_instance_valid(Palettes.current_palette):\n\t\treturn\n\tvar palette_image := Palettes.current_palette.convert_to_image()\n\tvar palette_texture := ImageTexture.create_from_image(palette_image)\n\n\tvar params := {\"palette_texture\": palette_texture, \"selection\": selection_tex}\n\tif !has_been_confirmed:\n\t\tfor param in params:\n\t\t\tpreview.material.set_shader_parameter(param, params[param])\n\telse:\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(cel, shader, params, project.size)\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/PalettizeDialog.gd.uid",
    "content": "uid://j42mc8alwnlf\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/PalettizeDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://d4gbo50bjenut\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bybqhhayl5ay5\" path=\"res://src/UI/Dialogs/ImageEffects/ImageEffectParent.tscn\" id=\"1_cux3a\"]\n[ext_resource type=\"Script\" uid=\"uid://j42mc8alwnlf\" path=\"res://src/UI/Dialogs/ImageEffects/PalettizeDialog.gd\" id=\"2_4517g\"]\n\n[node name=\"PalettizeDialog\" unique_id=5934067 instance=ExtResource(\"1_cux3a\")]\ntitle = \"Palettize\"\nscript = ExtResource(\"2_4517g\")\n\n[node name=\"ShowAnimate\" parent=\"VBoxContainer\" parent_id_path=PackedInt32Array(1773123238) index=\"0\" unique_id=1452855547]\nvisible = false\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/PixelizeDialog.gd",
    "content": "extends ImageEffect\n\nvar shader := preload(\"res://src/Shaders/Effects/Pixelize.gdshader\")\nvar pixel_size := Vector2i.ONE\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\tvar sm := ShaderMaterial.new()\n\tsm.shader = shader\n\tpreview.set_material(sm)\n\n\nfunc commit_action(cel: Image, project := Global.current_project) -> void:\n\tvar selection_tex: ImageTexture\n\tif selection_checkbox.button_pressed and project.has_selection:\n\t\tvar selection := project.selection_map.return_cropped_copy(project, project.size)\n\t\tselection_tex = ImageTexture.create_from_image(selection)\n\n\tvar params := {\"pixel_size\": pixel_size, \"selection\": selection_tex}\n\tif !has_been_confirmed:\n\t\tfor param in params:\n\t\t\tpreview.material.set_shader_parameter(param, params[param])\n\telse:\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(cel, shader, params, project.size)\n\n\nfunc _on_pixel_size_value_changed(value: Vector2) -> void:\n\tpixel_size = value\n\tupdate_preview()\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/PixelizeDialog.gd.uid",
    "content": "uid://j8t7fu4hxhrm\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/PixelizeDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://ts831nyvn6y7\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bybqhhayl5ay5\" path=\"res://src/UI/Dialogs/ImageEffects/ImageEffectParent.tscn\" id=\"1_eiotn\"]\n[ext_resource type=\"Script\" uid=\"uid://j8t7fu4hxhrm\" path=\"res://src/UI/Dialogs/ImageEffects/PixelizeDialog.gd\" id=\"2_x5pd6\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bbnqcxa20a5a5\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\" id=\"3_s7ey1\"]\n\n[node name=\"PixelizeDialog\" unique_id=487000211 instance=ExtResource(\"1_eiotn\")]\ntitle = \"Pixelize\"\nscript = ExtResource(\"2_x5pd6\")\n\n[node name=\"ShowAnimate\" parent=\"VBoxContainer\" parent_id_path=PackedInt32Array(1773123238) index=\"0\" unique_id=1452855547]\nvisible = false\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer\" parent_id_path=PackedInt32Array(1773123238) index=\"2\" unique_id=866473369]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"VBoxContainer/HBoxContainer\" index=\"0\" unique_id=702272864]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Pixel size:\"\n\n[node name=\"PixelSize\" parent=\"VBoxContainer/HBoxContainer\" index=\"1\" unique_id=230166917 instance=ExtResource(\"3_s7ey1\")]\nlayout_mode = 2\nsize_flags_horizontal = 3\nvalue = Vector2(1, 1)\nmin_value = Vector2(1, 1)\nmax_value = Vector2(255, 255)\nallow_greater = true\nshow_ratio = true\n\n[connection signal=\"value_changed\" from=\"VBoxContainer/HBoxContainer/PixelSize\" to=\".\" method=\"_on_pixel_size_value_changed\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/Posterize.gd",
    "content": "extends ImageEffect\n\nvar shader := preload(\"res://src/Shaders/Effects/Posterize.gdshader\")\nvar levels := 2.0\nvar dither := 0.0\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\tvar sm := ShaderMaterial.new()\n\tsm.shader = shader\n\tpreview.set_material(sm)\n\n\nfunc commit_action(cel: Image, project := Global.current_project) -> void:\n\tvar selection_tex: ImageTexture\n\tif selection_checkbox.button_pressed and project.has_selection:\n\t\tvar selection := project.selection_map.return_cropped_copy(project, project.size)\n\t\tselection_tex = ImageTexture.create_from_image(selection)\n\n\tvar params := {\"colors\": levels, \"dither_intensity\": dither, \"selection\": selection_tex}\n\n\tif !has_been_confirmed:\n\t\tfor param in params:\n\t\t\tpreview.material.set_shader_parameter(param, params[param])\n\telse:\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(cel, shader, params, project.size)\n\n\nfunc _on_LevelsSlider_value_changed(value: float) -> void:\n\tlevels = value - 1.0\n\tupdate_preview()\n\n\nfunc _on_DitherSlider_value_changed(value: float) -> void:\n\tdither = value\n\tupdate_preview()\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/Posterize.gd.uid",
    "content": "uid://bexcvmnwffd4e\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/Posterize.tscn",
    "content": "[gd_scene format=3 uid=\"uid://cnryslyvxv4ye\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bybqhhayl5ay5\" path=\"res://src/UI/Dialogs/ImageEffects/ImageEffectParent.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"2\"]\n[ext_resource type=\"Script\" uid=\"uid://bexcvmnwffd4e\" path=\"res://src/UI/Dialogs/ImageEffects/Posterize.gd\" id=\"3\"]\n\n[node name=\"Posterize\" unique_id=589852486 instance=ExtResource(\"1\")]\ntitle = \"Posterize\"\nsize = Vector2i(360, 348)\nscript = ExtResource(\"3\")\n\n[node name=\"VBoxContainer\" parent=\".\" index=\"2\" unique_id=1773123238]\noffset_bottom = 299.0\n\n[node name=\"ShowAnimate\" parent=\"VBoxContainer\" index=\"0\" unique_id=1452855547]\nvisible = false\n\n[node name=\"LevelsSlider\" type=\"TextureProgressBar\" parent=\"VBoxContainer\" index=\"2\" unique_id=774982548]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 2.0\nmax_value = 256.0\nstep = 0.01\nvalue = 3.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"2\")\nprefix = \"Posterize levels:\"\nsnap_by_default = true\n\n[node name=\"DitherSlider\" type=\"TextureProgressBar\" parent=\"VBoxContainer\" index=\"3\" unique_id=734547818]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 0.5\nstep = 0.01\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"2\")\nprefix = \"Dither intensity:\"\nsnap_step = 0.1\n\n[connection signal=\"value_changed\" from=\"VBoxContainer/LevelsSlider\" to=\".\" method=\"_on_LevelsSlider_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/DitherSlider\" to=\".\" method=\"_on_DitherSlider_value_changed\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/ResizeCanvas.gd",
    "content": "extends ConfirmationDialog\n\nvar width := 64\nvar height := 64\nvar offset_x := 0\nvar offset_y := 0\nvar image := Image.create(1, 1, false, Image.FORMAT_RGBA8)\n\n@onready var width_spinbox: SpinBox = $VBoxContainer/OptionsContainer/WidthValue\n@onready var height_spinbox: SpinBox = $VBoxContainer/OptionsContainer/HeightValue\n@onready var x_offset_spinbox: SpinBox = $VBoxContainer/OptionsContainer/XOffsetSpinBox\n@onready var y_offset_spinbox: SpinBox = $VBoxContainer/OptionsContainer/YOffsetSpinBox\n@onready var aspect_ratio_container: AspectRatioContainer = $VBoxContainer/AspectRatioContainer\n@onready var preview_rect: TextureRect = $VBoxContainer/AspectRatioContainer/Preview\n\n\nfunc _on_about_to_popup() -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\timage.resize(Global.current_project.size.x, Global.current_project.size.y)\n\timage.fill(Color(0.0, 0.0, 0.0, 0.0))\n\tvar frame := Global.current_project.frames[Global.current_project.current_frame]\n\tDrawingAlgos.blend_layers(image, frame)\n\tif width_spinbox.value == Global.current_project.size.x:\n\t\t_on_width_value_changed(width_spinbox.value)\n\telse:\n\t\twidth_spinbox.value = Global.current_project.size.x\n\tif height_spinbox.value == Global.current_project.size.y:\n\t\t_on_height_value_changed(height_spinbox.value)\n\telse:\n\t\theight_spinbox.value = Global.current_project.size.y\n\tupdate_preview()\n\n\nfunc _on_confirmed() -> void:\n\tDrawingAlgos.resize_canvas(width, height, offset_x, offset_y)\n\n\nfunc _on_width_value_changed(value: int) -> void:\n\twidth = value\n\tx_offset_spinbox.min_value = mini(width - Global.current_project.size.x, 0)\n\tx_offset_spinbox.max_value = maxi(width - Global.current_project.size.x, 0)\n\tx_offset_spinbox.value = clampi(\n\t\tx_offset_spinbox.value, x_offset_spinbox.min_value, x_offset_spinbox.max_value\n\t)\n\tupdate_preview()\n\n\nfunc _on_height_value_changed(value: int) -> void:\n\theight = value\n\ty_offset_spinbox.min_value = mini(height - Global.current_project.size.y, 0)\n\ty_offset_spinbox.max_value = maxi(height - Global.current_project.size.y, 0)\n\ty_offset_spinbox.value = clampi(\n\t\ty_offset_spinbox.value, y_offset_spinbox.min_value, y_offset_spinbox.max_value\n\t)\n\tupdate_preview()\n\n\nfunc _on_x_offset_spin_box_value_changed(value: int) -> void:\n\toffset_x = value\n\tupdate_preview()\n\n\nfunc _on_y_offset_spin_box_value_changed(value: int) -> void:\n\toffset_y = value\n\tupdate_preview()\n\n\nfunc _on_center_button_pressed() -> void:\n\tx_offset_spinbox.value = (x_offset_spinbox.min_value + x_offset_spinbox.max_value) / 2\n\ty_offset_spinbox.value = (y_offset_spinbox.min_value + y_offset_spinbox.max_value) / 2\n\n\nfunc update_preview() -> void:\n\t# preview_image is the same as image but offsetted\n\tvar preview_image := Image.create(width, height, false, Image.FORMAT_RGBA8)\n\tpreview_image.blend_rect(\n\t\timage, Rect2i(Vector2i.ZERO, Global.current_project.size), Vector2i(offset_x, offset_y)\n\t)\n\tpreview_rect.texture = ImageTexture.create_from_image(preview_image)\n\taspect_ratio_container.ratio = float(preview_image.get_width()) / preview_image.get_height()\n\n\nfunc _on_visibility_changed() -> void:\n\tif visible:\n\t\treturn\n\tGlobal.dialog_open(false)\n\t# Resize the image to (1, 1) so it does not waste unneeded RAM\n\timage.resize(1, 1)\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/ResizeCanvas.gd.uid",
    "content": "uid://dskbcqwcf40j2\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/ResizeCanvas.tscn",
    "content": "[gd_scene format=3 uid=\"uid://birggxam3fjnb\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://3pmb60gpst7b\" path=\"res://src/UI/Nodes/TransparentChecker.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://dskbcqwcf40j2\" path=\"res://src/UI/Dialogs/ImageEffects/ResizeCanvas.gd\" id=\"2\"]\n[ext_resource type=\"Shader\" uid=\"uid://c50kmfvf635kb\" path=\"res://src/Shaders/TransparentChecker.gdshader\" id=\"3_5y14m\"]\n\n[sub_resource type=\"ShaderMaterial\" id=\"ShaderMaterial_el557\"]\nshader = ExtResource(\"3_5y14m\")\nshader_parameter/size = 10.0\nshader_parameter/alpha = 1.0\nshader_parameter/color1 = Color(0.7, 0.7, 0.7, 1)\nshader_parameter/color2 = Color(1, 1, 1, 1)\nshader_parameter/offset = Vector2(0, 0)\nshader_parameter/scale = Vector2(0, 0)\nshader_parameter/rect_size = Vector2(0, 0)\nshader_parameter/follow_movement = false\nshader_parameter/follow_scale = false\n\n[node name=\"ResizeCanvas\" type=\"ConfirmationDialog\" unique_id=744546933]\ncanvas_item_default_texture_filter = 0\ntitle = \"Resize Canvas\"\nsize = Vector2i(216, 486)\nscript = ExtResource(\"2\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=1775589053]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 208.0\noffset_bottom = 437.0\n\n[node name=\"ImageSize\" type=\"Label\" parent=\"VBoxContainer\" unique_id=832656328]\nlayout_mode = 2\ntext = \"Canvas Size\"\n\n[node name=\"OptionsContainer\" type=\"GridContainer\" parent=\"VBoxContainer\" unique_id=838596377]\nlayout_mode = 2\ntheme_override_constants/h_separation = 2\ntheme_override_constants/v_separation = 4\ncolumns = 2\n\n[node name=\"WidthLabel\" type=\"Label\" parent=\"VBoxContainer/OptionsContainer\" unique_id=1731344640]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Width:\"\n\n[node name=\"WidthValue\" type=\"SpinBox\" parent=\"VBoxContainer/OptionsContainer\" unique_id=1508872667]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmin_value = 1.0\nmax_value = 16384.0\nvalue = 64.0\nsuffix = \"px\"\n\n[node name=\"Height\" type=\"Label\" parent=\"VBoxContainer/OptionsContainer\" unique_id=1801209190]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Height:\"\n\n[node name=\"HeightValue\" type=\"SpinBox\" parent=\"VBoxContainer/OptionsContainer\" unique_id=2036015117]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmin_value = 1.0\nmax_value = 16384.0\nvalue = 64.0\nsuffix = \"px\"\n\n[node name=\"OffsetLabel\" type=\"Label\" parent=\"VBoxContainer/OptionsContainer\" unique_id=1174524760]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Offset\"\n\n[node name=\"EmptySpacer\" type=\"Control\" parent=\"VBoxContainer/OptionsContainer\" unique_id=217898141]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"XOffsetLabel\" type=\"Label\" parent=\"VBoxContainer/OptionsContainer\" unique_id=1518583650]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"X:\"\n\n[node name=\"XOffsetSpinBox\" type=\"SpinBox\" parent=\"VBoxContainer/OptionsContainer\" unique_id=1127752719]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmax_value = 0.0\nsuffix = \"px\"\n\n[node name=\"YOffsetLabel\" type=\"Label\" parent=\"VBoxContainer/OptionsContainer\" unique_id=137262253]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Y:\"\n\n[node name=\"YOffsetSpinBox\" type=\"SpinBox\" parent=\"VBoxContainer/OptionsContainer\" unique_id=1874578643]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmax_value = 0.0\nsuffix = \"px\"\n\n[node name=\"CenterButton\" type=\"Button\" parent=\"VBoxContainer/OptionsContainer\" unique_id=756794357]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"Center\"\n\n[node name=\"AspectRatioContainer\" type=\"AspectRatioContainer\" parent=\"VBoxContainer\" unique_id=1089018391]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"Preview\" type=\"TextureRect\" parent=\"VBoxContainer/AspectRatioContainer\" unique_id=1945203690]\ncustom_minimum_size = Vector2(200, 200)\nlayout_mode = 2\nexpand_mode = 1\nstretch_mode = 5\n\n[node name=\"TransparentChecker\" parent=\"VBoxContainer/AspectRatioContainer\" unique_id=1834552944 instance=ExtResource(\"1\")]\nshow_behind_parent = true\nmaterial = SubResource(\"ShaderMaterial_el557\")\nlayout_mode = 2\n\n[connection signal=\"about_to_popup\" from=\".\" to=\".\" method=\"_on_about_to_popup\"]\n[connection signal=\"confirmed\" from=\".\" to=\".\" method=\"_on_confirmed\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_visibility_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/OptionsContainer/WidthValue\" to=\".\" method=\"_on_width_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/OptionsContainer/HeightValue\" to=\".\" method=\"_on_height_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/OptionsContainer/XOffsetSpinBox\" to=\".\" method=\"_on_x_offset_spin_box_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/OptionsContainer/YOffsetSpinBox\" to=\".\" method=\"_on_y_offset_spin_box_value_changed\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/OptionsContainer/CenterButton\" to=\".\" method=\"_on_center_button_pressed\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/RotateImage.gd",
    "content": "extends ImageEffect\n\nenum { ROTXEL_SMEAR, CLEANEDGE, OMNISCALE, NNS, NN, ROTXEL, URD }\nenum Animate { ANGLE, INIT_ANGLE }\n\nvar rotxel_shader := preload(\"res://src/Shaders/Effects/Rotation/SmearRotxel.gdshader\")\nvar nn_shader := preload(\"res://src/Shaders/Effects/Rotation/NearestNeighbour.gdshader\")\nvar pivot := Vector2.INF\nvar drag_pivot := false\n\n@onready var type_option_button: OptionButton = $VBoxContainer/HBoxContainer2/TypeOptionButton\n@onready var pivot_indicator: Control = $VBoxContainer/AspectRatioContainer/Indicator\n@onready var pivot_sliders := $VBoxContainer/PivotOptions/Pivot as ValueSliderV2\n@onready var angle_slider: ValueSlider = $VBoxContainer/AngleSlider\n@onready var smear_options: Container = $VBoxContainer/SmearOptions\n@onready var init_angle_slider: ValueSlider = smear_options.get_node(\"InitialAngleSlider\")\n@onready var tolerance_slider: ValueSlider = smear_options.get_node(\"ToleranceSlider\")\n\n\nfunc _ready() -> void:\n\tsuper._ready()\n\t# Set as in the Animate enum\n\tanimate_panel.add_float_property(\"Angle\", angle_slider)\n\tanimate_panel.add_float_property(\"Initial Angle\", init_angle_slider)\n\ttype_option_button.add_item(\"Rotxel with Smear\", ROTXEL_SMEAR)\n\ttype_option_button.add_item(\"cleanEdge\", CLEANEDGE)\n\ttype_option_button.add_item(\"OmniScale\", OMNISCALE)\n\ttype_option_button.add_item(\"Nearest neighbour (Shader)\", NNS)\n\ttype_option_button.add_item(\"Nearest neighbour\", NN)\n\ttype_option_button.add_item(\"Rotxel\", ROTXEL)\n\ttype_option_button.add_item(\"Upscale, Rotate and Downscale\", URD)\n\ttype_option_button.item_selected.emit(0)\n\n\nfunc _about_to_popup() -> void:\n\tdrag_pivot = false\n\tif pivot == Vector2.INF:\n\t\t_calculate_pivot()\n\thas_been_confirmed = false\n\tsuper._about_to_popup()\n\twait_apply_timer.wait_time = wait_time_slider.value / 1000.0\n\n\nfunc _calculate_pivot() -> void:\n\tvar project_size := Global.current_project.size\n\tpivot = project_size / 2.0\n\n\t# Pivot correction in case of even size\n\tif (\n\t\ttype_option_button.get_selected_id() != NNS\n\t\tand type_option_button.get_selected_id() != CLEANEDGE\n\t\tand type_option_button.get_selected_id() != OMNISCALE\n\t):\n\t\tif project_size.x % 2 == 0:\n\t\t\tpivot.x -= 0.5\n\t\tif project_size.y % 2 == 0:\n\t\t\tpivot.y -= 0.5\n\n\tif Global.current_project.has_selection and selection_checkbox.button_pressed:\n\t\tvar selection_rectangle := Global.current_project.selection_map.get_used_rect()\n\t\tpivot = (\n\t\t\tselection_rectangle.position\n\t\t\t+ ((selection_rectangle.end - selection_rectangle.position) / 2)\n\t\t)\n\t\tif (\n\t\t\ttype_option_button.get_selected_id() != NNS\n\t\t\tand type_option_button.get_selected_id() != CLEANEDGE\n\t\t\tand type_option_button.get_selected_id() != OMNISCALE\n\t\t):\n\t\t\t# Pivot correction in case of even size\n\t\t\tif (selection_rectangle.end.x - selection_rectangle.position.x) % 2 == 0:\n\t\t\t\tpivot.x -= 0.5\n\t\t\tif (selection_rectangle.end.y - selection_rectangle.position.y) % 2 == 0:\n\t\t\t\tpivot.y -= 0.5\n\n\tpivot_sliders.value = pivot\n\t_on_Pivot_value_changed(pivot)\n\n\nfunc commit_action(cel: Image, project := Global.current_project) -> void:\n\tvar angle := deg_to_rad(animate_panel.get_animated_value(commit_idx, Animate.ANGLE))\n\tvar init_angle := deg_to_rad(animate_panel.get_animated_value(commit_idx, Animate.INIT_ANGLE))\n\tvar rotation_algorithm := type_option_button.get_selected_id()\n\tvar selection_tex: ImageTexture\n\tvar image := Image.new()\n\timage.copy_from(cel)\n\tif project.has_selection and selection_checkbox.button_pressed:\n\t\tvar selection := project.selection_map.return_cropped_copy(project, project.size)\n\t\tselection_tex = ImageTexture.create_from_image(selection)\n\n\t\tif not DrawingAlgos.type_is_shader(rotation_algorithm):\n\t\t\tvar blank := project.new_empty_image()\n\t\t\tcel.blit_rect_mask(\n\t\t\t\tblank, selection, Rect2i(Vector2i.ZERO, cel.get_size()), Vector2i.ZERO\n\t\t\t)\n\t\t\tselection.invert()\n\t\t\timage.blit_rect_mask(\n\t\t\t\tblank, selection, Rect2i(Vector2i.ZERO, image.get_size()), Vector2i.ZERO\n\t\t\t)\n\tvar transformation_matrix := Transform2D(angle, Vector2.ZERO)\n\tvar params := {\n\t\t\"transformation_matrix\": transformation_matrix.affine_inverse(),\n\t\t\"pivot\": pivot,\n\t\t\"selection_tex\": selection_tex,\n\t\t\"initial_angle\": init_angle,\n\t\t\"ending_angle\": angle,\n\t\t\"tolerance\": tolerance_slider.value,\n\t\t\"preview\": true\n\t}\n\tif DrawingAlgos.type_is_shader(rotation_algorithm):\n\t\tif !has_been_confirmed:\n\t\t\tparams[\"pivot\"] /= Vector2(cel.get_size())\n\t\t\tfor param in params:\n\t\t\t\tpreview.material.set_shader_parameter(param, params[param])\n\t\telse:\n\t\t\tparams[\"preview\"] = false\n\t\t\tDrawingAlgos.transform_image_with_algorithm(cel, params, rotation_algorithm)\n\telse:\n\t\tDrawingAlgos.transform_image_with_algorithm(image, params, rotation_algorithm)\n\t\tif project.has_selection and selection_checkbox.button_pressed:\n\t\t\tcel.blend_rect(image, Rect2i(Vector2i.ZERO, image.get_size()), Vector2i.ZERO)\n\t\telse:\n\t\t\tcel.blit_rect(image, Rect2i(Vector2i.ZERO, image.get_size()), Vector2i.ZERO)\n\t\tif cel is ImageExtended:\n\t\t\tcel.convert_rgb_to_indexed()\n\n\nfunc _on_TypeOptionButton_item_selected(_id: int) -> void:\n\tmatch type_option_button.get_selected_id():\n\t\tROTXEL_SMEAR:\n\t\t\tvar sm := ShaderMaterial.new()\n\t\t\tsm.shader = rotxel_shader\n\t\t\tpreview.set_material(sm)\n\t\t\tsmear_options.visible = true\n\t\tCLEANEDGE:\n\t\t\tvar sm := ShaderMaterial.new()\n\t\t\tsm.shader = DrawingAlgos.clean_edge_shader\n\t\t\tpreview.set_material(sm)\n\t\t\tsmear_options.visible = false\n\t\tOMNISCALE:\n\t\t\tvar sm := ShaderMaterial.new()\n\t\t\tsm.shader = DrawingAlgos.omniscale_shader\n\t\t\tpreview.set_material(sm)\n\t\t\tsmear_options.visible = false\n\t\tNNS:\n\t\t\tvar sm := ShaderMaterial.new()\n\t\t\tsm.shader = nn_shader\n\t\t\tpreview.set_material(sm)\n\t\t\tsmear_options.visible = false\n\t\t_:\n\t\t\tpreview.set_material(null)\n\t\t\tsmear_options.visible = false\n\tupdate_preview()\n\n\nfunc _on_AngleSlider_value_changed(_value: float) -> void:\n\tupdate_preview()\n\n\nfunc _on_InitialAngleSlider_value_changed(_value: float) -> void:\n\tupdate_preview()\n\n\nfunc _on_ToleranceSlider_value_changed(_value: float) -> void:\n\tupdate_preview()\n\n\nfunc _on_quick_change_angle_pressed(angle_value: int) -> void:\n\tvar current_angle := angle_slider.value\n\tvar new_angle := current_angle + angle_value\n\tif angle_value == 0:\n\t\tnew_angle = 0\n\n\tif new_angle < 0:\n\t\tnew_angle = new_angle + 360\n\telif new_angle >= 360:\n\t\tnew_angle = new_angle - 360\n\tangle_slider.value = new_angle\n\n\nfunc _on_Centre_pressed() -> void:\n\t_calculate_pivot()\n\n\nfunc _on_Pivot_value_changed(value: Vector2) -> void:\n\tpivot = value\n\t# Refresh the indicator\n\tpivot_indicator.queue_redraw()\n\tif angle_slider.value != 0:\n\t\tupdate_preview()\n\n\nfunc _on_Indicator_draw() -> void:\n\tvar img_size := preview_image.get_size()\n\t# find the scale using the larger measurement\n\tvar ratio := pivot_indicator.size / Vector2(img_size)\n\t# we need to set the scale according to the larger side\n\tvar conversion_scale: float\n\tif img_size.x > img_size.y:\n\t\tconversion_scale = ratio.x\n\telse:\n\t\tconversion_scale = ratio.y\n\tvar pivot_position := pivot * conversion_scale\n\tpivot_indicator.draw_arc(pivot_position, 2, 0, 360, 360, Color.YELLOW)\n\tpivot_indicator.draw_arc(pivot_position, 6, 0, 360, 360, Color.WHITE)\n\tpivot_indicator.draw_line(\n\t\tpivot_position - Vector2.UP * 10, pivot_position - Vector2.DOWN * 10, Color.WHITE\n\t)\n\tpivot_indicator.draw_line(\n\t\tpivot_position - Vector2.RIGHT * 10, pivot_position - Vector2.LEFT * 10, Color.WHITE\n\t)\n\n\nfunc _on_Indicator_gui_input(event: InputEvent) -> void:\n\tif event.is_action_pressed(\"left_mouse\"):\n\t\tdrag_pivot = true\n\tif event.is_action_released(\"left_mouse\"):\n\t\tdrag_pivot = false\n\tif drag_pivot:\n\t\tvar img_size := preview_image.get_size()\n\t\tvar mouse_pos := pivot_indicator.get_local_mouse_position()\n\t\tvar ratio := Vector2(img_size) / pivot_indicator.size\n\t\t# we need to set the scale according to the larger side\n\t\tvar conversion_scale: float\n\t\tif img_size.x > img_size.y:\n\t\t\tconversion_scale = ratio.x\n\t\telse:\n\t\t\tconversion_scale = ratio.y\n\t\tvar new_pos := mouse_pos * conversion_scale\n\t\tpivot_sliders.value = new_pos\n\t\t_on_Pivot_value_changed(new_pos)\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/RotateImage.gd.uid",
    "content": "uid://bdgixc0fpy66f\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/RotateImage.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bvr6j8sohxob3\"]\n\n[ext_resource type=\"Script\" uid=\"uid://bdgixc0fpy66f\" path=\"res://src/UI/Dialogs/ImageEffects/RotateImage.gd\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bybqhhayl5ay5\" path=\"res://src/UI/Dialogs/ImageEffects/ImageEffectParent.tscn\" id=\"2\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"3\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bbnqcxa20a5a5\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\" id=\"4\"]\n\n[node name=\"RotateImage\" unique_id=1593018906 instance=ExtResource(\"2\")]\ntitle = \"Rotate Image\"\nsize = Vector2i(362, 535)\nscript = ExtResource(\"1\")\n\n[node name=\"VBoxContainer\" parent=\".\" index=\"2\" unique_id=1773123238]\noffset_bottom = 486.0\n\n[node name=\"Indicator\" type=\"Control\" parent=\"VBoxContainer/AspectRatioContainer\" parent_id_path=PackedInt32Array(370669710) index=\"1\" unique_id=643288853]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\n\n[node name=\"LiveSettings\" parent=\"VBoxContainer\" index=\"2\" unique_id=2099258780]\nvisible = true\n\n[node name=\"HBoxContainer2\" type=\"HBoxContainer\" parent=\"VBoxContainer\" index=\"3\" unique_id=909437778]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"VBoxContainer/HBoxContainer2\" index=\"0\" unique_id=838322794]\nlayout_mode = 2\ntext = \"Type:\"\n\n[node name=\"TypeOptionButton\" type=\"OptionButton\" parent=\"VBoxContainer/HBoxContainer2\" index=\"1\" unique_id=602054086]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\nmouse_default_cursor_shape = 2\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"VBoxContainer\" index=\"4\" unique_id=2011523910]\nlayout_mode = 2\n\n[node name=\"PivotOptions\" type=\"HBoxContainer\" parent=\"VBoxContainer\" index=\"5\" unique_id=1913954814]\nlayout_mode = 2\n\n[node name=\"Pivot\" parent=\"VBoxContainer/PivotOptions\" index=\"0\" unique_id=100844535 instance=ExtResource(\"4\")]\nlayout_mode = 2\nsize_flags_horizontal = 3\nstep = 0.5\nallow_greater = true\nallow_lesser = true\ngrid_columns = 2\nprefix_x = \"Pivot x:\"\nprefix_y = \"Pivot y:\"\n\n[node name=\"Centre\" type=\"Button\" parent=\"VBoxContainer/PivotOptions\" index=\"1\" unique_id=1413246239]\nlayout_mode = 2\ntooltip_text = \"Places the pivot at the center of the image, or at the center of the selection, if it is present.\"\nmouse_default_cursor_shape = 2\ntext = \"Center\"\n\n[node name=\"HSeparator2\" type=\"HSeparator\" parent=\"VBoxContainer\" index=\"6\" unique_id=1056076966]\nlayout_mode = 2\n\n[node name=\"AngleSlider\" parent=\"VBoxContainer\" index=\"7\" unique_id=1217211706 instance=ExtResource(\"3\")]\nlayout_mode = 2\nmax_value = 359.0\nprefix = \"Angle:\"\nsuffix = \"°\"\nsnap_step = 45.0\n\n[node name=\"QuickRotations\" type=\"HBoxContainer\" parent=\"VBoxContainer\" index=\"8\" unique_id=1813377076]\nlayout_mode = 2\nalignment = 1\n\n[node name=\"Deduct90\" type=\"Button\" parent=\"VBoxContainer/QuickRotations\" index=\"0\" unique_id=1480244106]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"-90\"\n\n[node name=\"Deduct45\" type=\"Button\" parent=\"VBoxContainer/QuickRotations\" index=\"1\" unique_id=196832450]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"-45\"\n\n[node name=\"Zero\" type=\"Button\" parent=\"VBoxContainer/QuickRotations\" index=\"2\" unique_id=2018794978]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"0\"\n\n[node name=\"Add45\" type=\"Button\" parent=\"VBoxContainer/QuickRotations\" index=\"3\" unique_id=2109237226]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"+45\"\n\n[node name=\"Add90\" type=\"Button\" parent=\"VBoxContainer/QuickRotations\" index=\"4\" unique_id=383994964]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"+90\"\n\n[node name=\"SmearOptions\" type=\"VBoxContainer\" parent=\"VBoxContainer\" index=\"9\" unique_id=1635541587]\nvisible = false\nlayout_mode = 2\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"VBoxContainer/SmearOptions\" index=\"0\" unique_id=104607265]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"VBoxContainer/SmearOptions\" index=\"1\" unique_id=822159134]\nlayout_mode = 2\ntext = \"Smear options:\"\n\n[node name=\"ToleranceSlider\" parent=\"VBoxContainer/SmearOptions\" index=\"2\" unique_id=958208090 instance=ExtResource(\"3\")]\nlayout_mode = 2\nmax_value = 255.0\nvalue = 100.0\nprefix = \"Tolerance:\"\n\n[node name=\"InitialAngleSlider\" parent=\"VBoxContainer/SmearOptions\" index=\"3\" unique_id=1191393342 instance=ExtResource(\"3\")]\nlayout_mode = 2\nmax_value = 359.0\nvalue = 359.0\nprefix = \"Initial angle:\"\nsuffix = \"°\"\nsnap_step = 45.0\n\n[node name=\"HSeparator3\" type=\"HSeparator\" parent=\"VBoxContainer\" index=\"10\" unique_id=1669692737]\nlayout_mode = 2\n\n[connection signal=\"draw\" from=\"VBoxContainer/AspectRatioContainer/Indicator\" to=\".\" method=\"_on_Indicator_draw\"]\n[connection signal=\"gui_input\" from=\"VBoxContainer/AspectRatioContainer/Indicator\" to=\".\" method=\"_on_Indicator_gui_input\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/HBoxContainer2/TypeOptionButton\" to=\".\" method=\"_on_TypeOptionButton_item_selected\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/PivotOptions/Pivot\" to=\".\" method=\"_on_Pivot_value_changed\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/PivotOptions/Centre\" to=\".\" method=\"_on_Centre_pressed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/AngleSlider\" to=\".\" method=\"_on_AngleSlider_value_changed\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/QuickRotations/Deduct90\" to=\".\" method=\"_on_quick_change_angle_pressed\" binds= [-90]]\n[connection signal=\"pressed\" from=\"VBoxContainer/QuickRotations/Deduct45\" to=\".\" method=\"_on_quick_change_angle_pressed\" binds= [-45]]\n[connection signal=\"pressed\" from=\"VBoxContainer/QuickRotations/Zero\" to=\".\" method=\"_on_quick_change_angle_pressed\" binds= [0]]\n[connection signal=\"pressed\" from=\"VBoxContainer/QuickRotations/Add45\" to=\".\" method=\"_on_quick_change_angle_pressed\" binds= [45]]\n[connection signal=\"pressed\" from=\"VBoxContainer/QuickRotations/Add90\" to=\".\" method=\"_on_quick_change_angle_pressed\" binds= [90]]\n[connection signal=\"value_changed\" from=\"VBoxContainer/SmearOptions/ToleranceSlider\" to=\".\" method=\"_on_ToleranceSlider_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/SmearOptions/InitialAngleSlider\" to=\".\" method=\"_on_InitialAngleSlider_value_changed\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/ScaleImage.gd",
    "content": "extends ConfirmationDialog\n\nvar aspect_ratio := 1.0\n\n@onready var width_value: SpinBox = find_child(\"WidthValue\")\n@onready var height_value: SpinBox = find_child(\"HeightValue\")\n@onready var width_value_perc: SpinBox = find_child(\"WidthValuePerc\")\n@onready var height_value_perc: SpinBox = find_child(\"HeightValuePerc\")\n@onready var interpolation_type: OptionButton = find_child(\"InterpolationType\")\n@onready var ratio_box: BaseButton = find_child(\"AspectRatioButton\")\n\n\nfunc _ready() -> void:\n\tinterpolation_type.add_item(\"Nearest\", Image.INTERPOLATE_NEAREST)\n\tinterpolation_type.add_item(\"Bilinear\", Image.INTERPOLATE_BILINEAR)\n\tinterpolation_type.add_item(\"Cubic\", Image.INTERPOLATE_CUBIC)\n\tinterpolation_type.add_item(\"Trilinear\", Image.INTERPOLATE_TRILINEAR)\n\tinterpolation_type.add_item(\"Lanczos\", Image.INTERPOLATE_LANCZOS)\n\tinterpolation_type.add_item(\"Scale3X\", DrawingAlgos.Interpolation.SCALE3X)\n\tinterpolation_type.add_item(\"cleanEdge\", DrawingAlgos.Interpolation.CLEANEDGE)\n\tinterpolation_type.add_item(\"OmniScale\", DrawingAlgos.Interpolation.OMNISCALE)\n\n\nfunc _on_ScaleImage_about_to_show() -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\taspect_ratio = float(Global.current_project.size.x) / float(Global.current_project.size.y)\n\twidth_value.value = Global.current_project.size.x\n\theight_value.value = Global.current_project.size.y\n\twidth_value_perc.value = 100\n\theight_value_perc.value = 100\n\n\nfunc _on_ScaleImage_confirmed() -> void:\n\tvar width: int = width_value.value\n\tvar height: int = height_value.value\n\tvar interpolation: int = interpolation_type.selected\n\tDrawingAlgos.scale_project(width, height, interpolation)\n\n\nfunc _on_visibility_changed() -> void:\n\tGlobal.dialog_open(false)\n\n\nfunc _on_WidthValue_value_changed(value: float) -> void:\n\tif ratio_box.button_pressed:\n\t\theight_value.value = width_value.value / aspect_ratio\n\twidth_value_perc.value = (value * 100) / Global.current_project.size.x\n\n\nfunc _on_HeightValue_value_changed(value: float) -> void:\n\tif ratio_box.button_pressed:\n\t\twidth_value.value = height_value.value * aspect_ratio\n\theight_value_perc.value = (value * 100) / Global.current_project.size.y\n\n\nfunc _on_WidthValuePerc_value_changed(value: float) -> void:\n\twidth_value.value = (Global.current_project.size.x * value) / 100\n\n\nfunc _on_HeightValuePerc_value_changed(value: float) -> void:\n\theight_value.value = (Global.current_project.size.y * value) / 100\n\n\nfunc _on_AspectRatioButton_toggled(button_pressed: bool) -> void:\n\tif button_pressed:\n\t\taspect_ratio = width_value.value / height_value.value\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/ScaleImage.gd.uid",
    "content": "uid://cavkfeuobk4b7\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/ScaleImage.tscn",
    "content": "[gd_scene format=3 uid=\"uid://omm7xmtf5kbj\"]\n\n[ext_resource type=\"Script\" uid=\"uid://cavkfeuobk4b7\" path=\"res://src/UI/Dialogs/ImageEffects/ScaleImage.gd\" id=\"1\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://kd10jfc1dxf5\" path=\"res://assets/graphics/misc/lock_aspect_guides.png\" id=\"2\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://cancw70yw0pv7\" path=\"res://assets/graphics/misc/lock_aspect_2.png\" id=\"3\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://beqermx8s5q8y\" path=\"res://assets/graphics/misc/lock_aspect.png\" id=\"4\"]\n\n[node name=\"ScaleImage\" type=\"ConfirmationDialog\" unique_id=983457645]\ntitle = \"Scale Image\"\nsize = Vector2i(206, 325)\nscript = ExtResource(\"1\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=1226169504]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 198.0\noffset_bottom = 276.0\nsize_flags_horizontal = 3\n\n[node name=\"ImageSize\" type=\"Label\" parent=\"VBoxContainer\" unique_id=1801109776]\nlayout_mode = 2\ntext = \"Image Size\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"VBoxContainer\" unique_id=968276569]\nlayout_mode = 2\n\n[node name=\"PixelsLabel\" type=\"Label\" parent=\"VBoxContainer\" unique_id=188274872]\nlayout_mode = 2\ntext = \"Pixels\"\n\n[node name=\"SizeContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer\" unique_id=931815317]\nlayout_mode = 2\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"VBoxContainer/SizeContainer\" unique_id=403878218]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"WidthContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer/SizeContainer/VBoxContainer\" unique_id=1826763412]\nlayout_mode = 2\n\n[node name=\"WidthLabel\" type=\"Label\" parent=\"VBoxContainer/SizeContainer/VBoxContainer/WidthContainer\" unique_id=2115578316]\ncustom_minimum_size = Vector2(90, 0)\nlayout_mode = 2\ntext = \"Width:\"\n\n[node name=\"WidthValue\" type=\"SpinBox\" parent=\"VBoxContainer/SizeContainer/VBoxContainer/WidthContainer\" unique_id=1873781887]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmin_value = 1.0\nmax_value = 16384.0\nvalue = 64.0\nsuffix = \"px\"\n\n[node name=\"HeightContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer/SizeContainer/VBoxContainer\" unique_id=1764596553]\nlayout_mode = 2\n\n[node name=\"Height\" type=\"Label\" parent=\"VBoxContainer/SizeContainer/VBoxContainer/HeightContainer\" unique_id=1214204881]\ncustom_minimum_size = Vector2(90, 0)\nlayout_mode = 2\ntext = \"Height:\"\n\n[node name=\"HeightValue\" type=\"SpinBox\" parent=\"VBoxContainer/SizeContainer/VBoxContainer/HeightContainer\" unique_id=1802030194]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmin_value = 1.0\nmax_value = 16384.0\nvalue = 64.0\nsuffix = \"px\"\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"VBoxContainer/SizeContainer\" unique_id=297045059 groups=[\"UIButtons\"]]\nlayout_mode = 2\ntexture = ExtResource(\"2\")\n\n[node name=\"AspectRatioButton\" type=\"TextureButton\" parent=\"VBoxContainer/SizeContainer/TextureRect\" unique_id=1797838591 groups=[\"UIButtons\"]]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -4.5\noffset_top = -9.0\noffset_right = 11.5\noffset_bottom = 7.0\ntooltip_text = \"Lock aspect ratio\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_pressed = true\ntexture_normal = ExtResource(\"3\")\ntexture_pressed = ExtResource(\"4\")\n\n[node name=\"HSeparator2\" type=\"HSeparator\" parent=\"VBoxContainer\" unique_id=1775205099]\nlayout_mode = 2\n\n[node name=\"PercentageLabel\" type=\"Label\" parent=\"VBoxContainer\" unique_id=1204991671]\nlayout_mode = 2\ntext = \"Percentage\"\n\n[node name=\"PercentageContainer\" type=\"VBoxContainer\" parent=\"VBoxContainer\" unique_id=282221354]\nlayout_mode = 2\n\n[node name=\"WidthContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer/PercentageContainer\" unique_id=1712516213]\nlayout_mode = 2\n\n[node name=\"WidthLabel\" type=\"Label\" parent=\"VBoxContainer/PercentageContainer/WidthContainer\" unique_id=1997179104]\ncustom_minimum_size = Vector2(90, 0)\nlayout_mode = 2\ntext = \"Width:\"\n\n[node name=\"WidthValuePerc\" type=\"SpinBox\" parent=\"VBoxContainer/PercentageContainer/WidthContainer\" unique_id=309043972]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmin_value = 1.0\nmax_value = 16384.0\nstep = 0.01\nvalue = 100.0\nsuffix = \"%\"\n\n[node name=\"HeightContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer/PercentageContainer\" unique_id=1728934209]\nlayout_mode = 2\n\n[node name=\"Height\" type=\"Label\" parent=\"VBoxContainer/PercentageContainer/HeightContainer\" unique_id=134684570]\ncustom_minimum_size = Vector2(90, 0)\nlayout_mode = 2\ntext = \"Height:\"\n\n[node name=\"HeightValuePerc\" type=\"SpinBox\" parent=\"VBoxContainer/PercentageContainer/HeightContainer\" unique_id=1927454536]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmin_value = 1.0\nmax_value = 16384.0\nstep = 0.01\nvalue = 100.0\nsuffix = \"%\"\n\n[node name=\"HSeparator3\" type=\"HSeparator\" parent=\"VBoxContainer\" unique_id=930064252]\nlayout_mode = 2\n\n[node name=\"InterpolationContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer\" unique_id=1823024469]\nlayout_mode = 2\n\n[node name=\"InterpolationLabel\" type=\"Label\" parent=\"VBoxContainer/InterpolationContainer\" unique_id=1574638875]\ncustom_minimum_size = Vector2(90, 0)\nlayout_mode = 2\ntext = \"Interpolation:\"\n\n[node name=\"InterpolationType\" type=\"OptionButton\" parent=\"VBoxContainer/InterpolationContainer\" unique_id=1839689815]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\n\n[connection signal=\"about_to_popup\" from=\".\" to=\".\" method=\"_on_ScaleImage_about_to_show\"]\n[connection signal=\"confirmed\" from=\".\" to=\".\" method=\"_on_ScaleImage_confirmed\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_visibility_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/SizeContainer/VBoxContainer/WidthContainer/WidthValue\" to=\".\" method=\"_on_WidthValue_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/SizeContainer/VBoxContainer/HeightContainer/HeightValue\" to=\".\" method=\"_on_HeightValue_value_changed\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/SizeContainer/TextureRect/AspectRatioButton\" to=\".\" method=\"_on_AspectRatioButton_toggled\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/PercentageContainer/WidthContainer/WidthValuePerc\" to=\".\" method=\"_on_WidthValuePerc_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/PercentageContainer/HeightContainer/HeightValuePerc\" to=\".\" method=\"_on_HeightValuePerc_value_changed\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/ShaderEffect.gd",
    "content": "extends ImageEffect\n\nvar shader: Shader\nvar params := {}\n\n@onready var shader_params := $VBoxContainer/ShaderParams as VBoxContainer\n\n\nfunc _about_to_popup() -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tvar frame := Global.current_project.frames[Global.current_project.current_frame]\n\tDrawingAlgos.blend_layers(selected_cels, frame, Vector2i.ZERO, Global.current_project, true)\n\n\tpreview_image.copy_from(selected_cels)\n\tpreview.texture = ImageTexture.create_from_image(preview_image)\n\tsuper._about_to_popup()\n\n\nfunc set_nodes() -> void:\n\taspect_ratio_container = $VBoxContainer/AspectRatioContainer\n\tpreview = $VBoxContainer/AspectRatioContainer/Preview\n\n\nfunc commit_action(cel: Image, project := Global.current_project) -> void:\n\tif not is_instance_valid(shader):\n\t\treturn\n\tvar gen := ShaderImageEffect.new()\n\tgen.generate_image(cel, shader, params, project.size)\n\n\nfunc change_shader(shader_tmp: Shader, shader_name: String) -> void:\n\tshader = shader_tmp\n\tpreview.material.shader = shader_tmp\n\ttitle = shader_name\n\tparams.clear()\n\tfor child in shader_params.get_children():\n\t\tchild.queue_free()\n\n\tShaderLoader.create_ui_for_shader_uniforms(\n\t\tshader_tmp, params, shader_params, _set_shader_parameter, _load_texture\n\t)\n\n\nfunc _set_shader_parameter(value, param: String) -> void:\n\tvar mat: ShaderMaterial = preview.material\n\tmat.set_shader_parameter(param, value)\n\tparams[param] = value\n\n\nfunc _load_texture(path: String, param: String) -> void:\n\tvar image := Image.new()\n\timage.load(path)\n\tif !image:\n\t\tprint(\"Error loading texture\")\n\t\treturn\n\tvar image_tex := ImageTexture.create_from_image(image)\n\t_set_shader_parameter(image_tex, param)\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/ShaderEffect.gd.uid",
    "content": "uid://cmnrn7suyggk\n"
  },
  {
    "path": "src/UI/Dialogs/ImageEffects/ShaderEffect.tscn",
    "content": "[gd_scene format=3 uid=\"uid://b1ola6loro5m7\"]\n\n[ext_resource type=\"Script\" uid=\"uid://cmnrn7suyggk\" path=\"res://src/UI/Dialogs/ImageEffects/ShaderEffect.gd\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://3pmb60gpst7b\" path=\"res://src/UI/Nodes/TransparentChecker.tscn\" id=\"2\"]\n[ext_resource type=\"Shader\" uid=\"uid://c50kmfvf635kb\" path=\"res://src/Shaders/TransparentChecker.gdshader\" id=\"3_crm4f\"]\n\n[sub_resource type=\"ShaderMaterial\" id=\"1\"]\n\n[sub_resource type=\"ShaderMaterial\" id=\"ShaderMaterial_li6cs\"]\nshader = ExtResource(\"3_crm4f\")\nshader_parameter/size = 10.0\nshader_parameter/alpha = 1.0\nshader_parameter/color1 = Color(0.7, 0.7, 0.7, 1)\nshader_parameter/color2 = Color(1, 1, 1, 1)\nshader_parameter/offset = Vector2(0, 0)\nshader_parameter/scale = Vector2(0, 0)\nshader_parameter/rect_size = Vector2(200, 200)\nshader_parameter/follow_movement = false\nshader_parameter/follow_scale = false\n\n[node name=\"ShaderEffect\" type=\"ConfirmationDialog\" unique_id=1720281941]\nposition = Vector2i(0, 36)\nsize = Vector2i(612, 350)\nscript = ExtResource(\"1\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=870786102]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 8.0\noffset_top = 8.0\noffset_right = -8.0\noffset_bottom = -49.0\n\n[node name=\"AspectRatioContainer\" type=\"AspectRatioContainer\" parent=\"VBoxContainer\" unique_id=72448014]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"Preview\" type=\"TextureRect\" parent=\"VBoxContainer/AspectRatioContainer\" unique_id=2023376438]\ntexture_filter = 1\nmaterial = SubResource(\"1\")\ncustom_minimum_size = Vector2(200, 200)\nlayout_mode = 2\nexpand_mode = 1\nstretch_mode = 4\n\n[node name=\"TransparentChecker\" parent=\"VBoxContainer/AspectRatioContainer/Preview\" unique_id=381978268 instance=ExtResource(\"2\")]\nshow_behind_parent = true\nmaterial = SubResource(\"ShaderMaterial_li6cs\")\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\n\n[node name=\"ShaderParams\" type=\"VBoxContainer\" parent=\"VBoxContainer\" unique_id=436443220]\nlayout_mode = 2\n"
  },
  {
    "path": "src/UI/Dialogs/ImportPreviewDialog.gd",
    "content": "class_name ImportPreviewDialog\nextends ConfirmationDialog\n\nenum ImageImportOptions {\n\tNEW_TAB,\n\tSPRITESHEET_TAB,\n\tSPRITESHEET_LAYER,\n\tNEW_FRAME,\n\tREPLACE_CEL,\n\tNEW_LAYER,\n\tNEW_REFERENCE_IMAGE,\n\tPALETTE,\n\tBRUSH,\n\tPATTERN,\n\tTILESET\n}\nenum BrushTypes { FILE, PROJECT, RANDOM }\n\nvar path: String\nvar image: Image\nvar current_import_option := ImageImportOptions.NEW_TAB\nvar smart_slice := false\nvar recycle_last_slice_result := false  # Should we recycle the current sliced_rects\nvar sliced_rects: RegionUnpacker.RectData\nvar spritesheet_horizontal := 1\nvar spritesheet_vertical := 1\nvar tile_shape := TileSet.TILE_SHAPE_SQUARE\nvar tile_offset_axis := TileSet.TILE_OFFSET_AXIS_HORIZONTAL\nvar brush_type := BrushTypes.FILE\nvar opened_once := false\nvar is_main := false\nvar hiding := false\n\n## keeps track of which custom export to show when it's import option is selected\n## Contains ids as keys and custion import option scenes as values\nvar custom_importers := {}\n\n## A [TextureRect] containing the preview image\n@onready var texture_rect := %TextureRect as TextureRect\n@onready var aspect_ratio_container := texture_rect.get_parent() as AspectRatioContainer\n## The [OptionButton] containing import options\n@onready var import_option_button := %ImportOption as OptionButton\n## A [CheckBox] for enabling apply all system.\n@onready var apply_all := $VBoxContainer/VBoxContainer/ApplyAll as CheckBox\n\n## Label showing size of original image.\n@onready var image_size_label := $VBoxContainer/VBoxContainer/SizeContainer/ImageSizeLabel as Label\n## Label for showing size of image after import.\n@onready var frame_size_label := $VBoxContainer/VBoxContainer/SizeContainer/FrameSizeLabel as Label\n## Container for all types of advanced settings like [member spritesheet_options],\n## [member new_brush_options] etc...\n@onready var import_options := %ImportOptions as VBoxContainer\n\n# Below are some common settings grouped into categories and are made visible/invisible\n# depending on what your import option requires.\n## container of spritesheet related import options\n@onready var spritesheet_options := %ImportOptions/SpritesheetOptions as VBoxContainer\n# Spritesheet option. decides the horizontal and vertical frames that divide the spritesheet.\n@onready var frames_divider := %FramesDivider as ValueSliderV2\n# Spritesheet option. Contains likely candidates for the tile size assuming a square tile.\n@onready var frame_size_preset := %FrameSizeOptionButton as OptionButton\n@onready var include_empty := %IncludeEmptyArea as CheckBox\n@onready var tileset_options: GridContainer = %ImportOptions/TilesetOptions\n## container of frame related import options\n@onready var at_frame_option := %ImportOptions/AtFrame as HBoxContainer\n## container of layer related import options\n@onready var at_layer_option := %ImportOptions/AtLayer as GridContainer\n## container of brush related import options\n@onready var new_brush_options := %ImportOptions/NewBrushOptions as HBoxContainer\n\n\nfunc _on_ImportPreviewDialog_about_to_show() -> void:\n\tif opened_once:\n\t\treturn\n\topened_once = true\n\t# # order as in ImageImportOptions enum\n\timport_option_button.add_item(\"New project\")\n\timport_option_button.add_item(\"Spritesheet (new project)\")\n\timport_option_button.add_item(\"Spritesheet (new layer)\")\n\timport_option_button.add_item(\"New frame\")\n\timport_option_button.add_item(\"Replace cel\")\n\timport_option_button.add_item(\"New layer\")\n\timport_option_button.add_item(\"New reference image\")\n\timport_option_button.add_item(\"New palette\")\n\timport_option_button.add_item(\"New brush\")\n\timport_option_button.add_item(\"New pattern\")\n\timport_option_button.add_item(\"Tileset\")\n\n\t# adding custom importers\n\tfor id in custom_importers.keys():\n\t\tvar scene = custom_importers[id]\n\t\tvar import_name = OpenSave.custom_import_names.find_key(id)\n\t\tscene.set(\"import_preview_dialog\", self)\n\t\timport_options.add_child(scene)\n\t\timport_option_button.add_item(import_name, id)\n\t# Select the option that the preview dialog before it had selected\n\timport_option_button.select(OpenSave.last_dialog_option)\n\timport_option_button.item_selected.emit(import_option_button.selected)\n\n\tvar img_texture := ImageTexture.create_from_image(image)\n\ttexture_rect.texture = img_texture\n\taspect_ratio_container.ratio = float(image.get_width()) / image.get_height()\n\t# set max values of spritesheet options\n\tframes_divider.max_value.x = mini(frames_divider.max_value.x, image.get_width())\n\tframes_divider.max_value.y = mini(frames_divider.max_value.y, image.get_height())\n\n\t# Make a list of likely tile sizes\n\tvar min_dimentions := int(ceilf(minf(image.get_width(), image.get_height()) / 2) + 1)\n\tframe_size_preset.add_item(tr(\"Custom\"), 0)\n\tfor i: int in range(3, min_dimentions, 1):\n\t\tif image.get_width() % i == 0 and image.get_height() % i == 0:\n\t\t\tvar label := \"%dpx X %dpx\" % [i, i]\n\t\t\tframe_size_preset.add_item(label, i)\n\n\t# set labels\n\timage_size_label.text = (\n\t\ttr(\"Image Size\") + \": \" + str(image.get_size().x) + \"×\" + str(image.get_size().y)\n\t)\n\tframe_size_label.text = (\n\t\ttr(\"Frame Size\") + \": \" + str(image.get_size().x) + \"×\" + str(image.get_size().y)\n\t)\n\tif OpenSave.preview_dialogs.size() > 1:\n\t\tapply_all.visible = true\n\n\nfunc _on_visibility_changed() -> void:\n\tif visible:\n\t\treturn\n\tif hiding:  # if the popup is hiding because of main\n\t\treturn\n\telif is_main:  # if the main dialog is closed then close others too\n\t\tfor child in get_parent().get_children():\n\t\t\tif child is ImportPreviewDialog:\n\t\t\t\tOpenSave.preview_dialogs.erase(child)\n\t\t\t\tchild.queue_free()\n\telse:  # dialogs being closed separately\n\t\tOpenSave.preview_dialogs.erase(self)\n\t\tqueue_free()\n\t# Call Global.dialog_open() only if it's the only preview dialog opened\n\tif OpenSave.preview_dialogs.size() != 0:\n\t\treturn\n\tGlobal.dialog_open(false)\n\n\nfunc _on_ImportPreviewDialog_confirmed() -> void:\n\tif is_main:  # if the main dialog is confirmed then confirm others too\n\t\tis_main = false\n\t\tsynchronize()\n\t\tfor child in get_parent().get_children():\n\t\t\tif child is ImportPreviewDialog:\n\t\t\t\tchild.confirmed.emit()\n\telse:\n\t\tif current_import_option == ImageImportOptions.NEW_TAB:\n\t\t\tOpenSave.open_image_as_new_tab(path, image)\n\n\t\telif current_import_option == ImageImportOptions.SPRITESHEET_TAB:\n\t\t\tif smart_slice:\n\t\t\t\tif !recycle_last_slice_result:\n\t\t\t\t\tobtain_sliced_data()\n\t\t\t\tOpenSave.open_image_as_spritesheet_tab_smart(\n\t\t\t\t\tpath, image, sliced_rects.rects, sliced_rects.frame_size\n\t\t\t\t)\n\t\t\telse:\n\t\t\t\tOpenSave.open_image_as_spritesheet_tab(\n\t\t\t\t\tpath,\n\t\t\t\t\timage,\n\t\t\t\t\tspritesheet_horizontal,\n\t\t\t\t\tspritesheet_vertical,\n\t\t\t\t\tinclude_empty.button_pressed\n\t\t\t\t)\n\n\t\telif current_import_option == ImageImportOptions.SPRITESHEET_LAYER:\n\t\t\tvar frame_index: int = at_frame_option.get_node(\"AtFrameSpinbox\").value - 1\n\t\t\tif smart_slice:\n\t\t\t\tif !recycle_last_slice_result:\n\t\t\t\t\tobtain_sliced_data()\n\t\t\t\tOpenSave.open_image_as_spritesheet_layer_smart(\n\t\t\t\t\tpath,\n\t\t\t\t\timage,\n\t\t\t\t\tpath.get_basename().get_file(),\n\t\t\t\t\tsliced_rects[\"rects\"],\n\t\t\t\t\tframe_index,\n\t\t\t\t\tsliced_rects[\"frame_size\"]\n\t\t\t\t)\n\t\t\telse:\n\t\t\t\tOpenSave.open_image_as_spritesheet_layer(\n\t\t\t\t\tpath,\n\t\t\t\t\timage,\n\t\t\t\t\tpath.get_basename().get_file(),\n\t\t\t\t\tspritesheet_horizontal,\n\t\t\t\t\tspritesheet_vertical,\n\t\t\t\t\tframe_index,\n\t\t\t\t\tinclude_empty.button_pressed\n\t\t\t\t)\n\n\t\telif current_import_option == ImageImportOptions.NEW_FRAME:\n\t\t\tvar layer_index: int = at_layer_option.get_node(\"AtLayerOption\").get_selected_id()\n\t\t\tOpenSave.open_image_as_new_frame(image, layer_index)\n\n\t\telif current_import_option == ImageImportOptions.REPLACE_CEL:\n\t\t\tvar layer_index: int = at_layer_option.get_node(\"AtLayerOption\").get_selected_id()\n\t\t\tvar frame_index: int = at_frame_option.get_node(\"AtFrameSpinbox\").value - 1\n\t\t\tOpenSave.open_image_at_cel(image, layer_index, frame_index)\n\n\t\telif current_import_option == ImageImportOptions.NEW_LAYER:\n\t\t\tvar frame_index: int = at_frame_option.get_node(\"AtFrameSpinbox\").value - 1\n\t\t\tOpenSave.open_image_as_new_layer(image, path.get_basename().get_file(), frame_index)\n\n\t\telif current_import_option == ImageImportOptions.NEW_REFERENCE_IMAGE:\n\t\t\tif OS.get_name() == \"Web\":\n\t\t\t\tOpenSave.import_reference_image_from_image(image)\n\t\t\telse:\n\t\t\t\tOpenSave.import_reference_image_from_path(path)\n\n\t\telif current_import_option == ImageImportOptions.PALETTE:\n\t\t\tPalettes.import_palette_from_path(path, true)\n\n\t\telif current_import_option == ImageImportOptions.BRUSH:\n\t\t\tadd_brush()\n\n\t\telif current_import_option == ImageImportOptions.PATTERN:\n\t\t\tvar file_name_ext: String = path.get_file()\n\t\t\tfile_name_ext = file_name_replace(file_name_ext, \"Patterns\")\n\t\t\tvar file_name: String = file_name_ext.get_basename()\n\t\t\timage.convert(Image.FORMAT_RGBA8)\n\t\t\tGlobal.patterns_popup.add(image, file_name)\n\n\t\t\t# Copy the image file into the \"pixelorama/Patterns\" directory\n\t\t\tvar location := \"Patterns\".path_join(file_name_ext)\n\t\t\tvar dir := DirAccess.open(path.get_base_dir())\n\t\t\tdir.copy(path, Global.home_data_directory.path_join(location))\n\t\telif current_import_option == ImageImportOptions.TILESET:\n\t\t\tif smart_slice:\n\t\t\t\tif !recycle_last_slice_result:\n\t\t\t\t\tobtain_sliced_data()\n\t\t\t\tOpenSave.open_image_as_tileset_smart(\n\t\t\t\t\tpath,\n\t\t\t\t\timage,\n\t\t\t\t\tsliced_rects.rects,\n\t\t\t\t\tsliced_rects.frame_size,\n\t\t\t\t\ttile_shape,\n\t\t\t\t\ttile_offset_axis\n\t\t\t\t)\n\t\t\telse:\n\t\t\t\tOpenSave.open_image_as_tileset(\n\t\t\t\t\tpath,\n\t\t\t\t\timage,\n\t\t\t\t\tspritesheet_horizontal,\n\t\t\t\t\tspritesheet_vertical,\n\t\t\t\t\ttile_shape,\n\t\t\t\t\ttile_offset_axis,\n\t\t\t\t\tGlobal.current_project,\n\t\t\t\t\tinclude_empty.button_pressed\n\t\t\t\t)\n\n\t\telse:\n\t\t\tif current_import_option in custom_importers.keys():\n\t\t\t\tvar importer = custom_importers[current_import_option]\n\t\t\t\tif importer.has_method(\"initiate_import\"):\n\t\t\t\t\timporter.call(\"initiate_import\", path, image)\n\n\nfunc _on_ApplyAll_toggled(pressed: bool) -> void:\n\tis_main = pressed\n\t# below 4 (and the last) line is needed for correct popup placement\n\tvar old_rect := Rect2i(position, size)\n\tvisibility_changed.disconnect(_on_visibility_changed)\n\thide()\n\tvisibility_changed.connect(_on_visibility_changed)\n\tfor child in get_parent().get_children():\n\t\tif child != self and child is ImportPreviewDialog:\n\t\t\tchild.hiding = pressed\n\t\t\tif pressed:\n\t\t\t\tchild.hide()\n\t\t\telse:\n\t\t\t\tchild.popup_centered_clamped()\n\tif pressed:\n\t\tsynchronize()\n\tpopup(old_rect)  # needed for correct popup_order\n\n\nfunc synchronize() -> void:\n\tvar at_frame_spinbox := at_frame_option.get_node(\"AtFrameSpinbox\") as SpinBox\n\tvar at_layer_option_button := at_layer_option.get_node(\"AtLayerOption\") as OptionButton\n\tfor child in get_parent().get_children():\n\t\tif child == self or not child is ImportPreviewDialog:\n\t\t\tcontinue\n\t\tvar dialog := child as ImportPreviewDialog\n\t\t# Sync modes\n\t\tvar id := current_import_option\n\t\tdialog.import_option_button.select(id)\n\t\tdialog.import_option_button.item_selected.emit(id)\n\t\t# Nodes\n\t\tvar d_at_frame_spinbox := dialog.at_frame_option.get_node(\"AtFrameSpinbox\") as SpinBox\n\t\tvar d_at_layer_option_button := (\n\t\t\tdialog.at_layer_option.get_node(\"AtLayerOption\") as OptionButton\n\t\t)\n\t\t# Sync properties (if any)\n\t\tif (\n\t\t\tid == ImageImportOptions.SPRITESHEET_TAB\n\t\t\tor id == ImageImportOptions.SPRITESHEET_LAYER\n\t\t\tor id == ImageImportOptions.TILESET\n\t\t):\n\t\t\tvar d_frames_divider := dialog.frames_divider\n\t\t\tvar d_include_empty := dialog.include_empty\n\t\t\td_frames_divider.value.x = mini(d_frames_divider.value.x, image.get_size().x)\n\t\t\td_frames_divider.value.y = mini(d_frames_divider.value.y, image.get_size().y)\n\t\t\tif id == ImageImportOptions.SPRITESHEET_LAYER:\n\t\t\t\td_at_frame_spinbox.value = at_frame_spinbox.value\n\t\t\td_include_empty.button_pressed = include_empty.button_pressed\n\n\t\telif id == ImageImportOptions.NEW_FRAME:\n\t\t\td_at_layer_option_button.selected = at_layer_option_button.selected\n\n\t\telif id == ImageImportOptions.REPLACE_CEL:\n\t\t\td_at_layer_option_button.selected = at_layer_option_button.selected\n\t\t\td_at_frame_spinbox.value = at_frame_spinbox.value\n\n\t\telif id == ImageImportOptions.NEW_LAYER:\n\t\t\td_at_frame_spinbox.value = at_frame_spinbox.value\n\n\t\telif id == ImageImportOptions.BRUSH:\n\t\t\tvar brush_type_option := new_brush_options.get_node(\"BrushTypeOption\") as OptionButton\n\t\t\tvar d_brush_type_option := (\n\t\t\t\tdialog.new_brush_options.get_node(\"BrushTypeOption\") as OptionButton\n\t\t\t)\n\t\t\tvar type := brush_type_option.selected\n\t\t\td_brush_type_option.select(type)\n\t\t\td_brush_type_option.item_selected.emit(type)\n\n\n## Reset some options\nfunc _hide_all_options() -> void:\n\tsmart_slice = false\n\tapply_all.disabled = false\n\t%SmartSliceToggle.button_pressed = false\n\tat_frame_option.get_node(\"AtFrameSpinbox\").allow_greater = false\n\ttexture_rect.get_child(0).visible = false\n\ttexture_rect.get_child(1).visible = false\n\tfor child in import_options.get_children():\n\t\tchild.visible = false\n\n\nfunc _on_ImportOption_item_selected(id: ImageImportOptions) -> void:\n\tcurrent_import_option = id\n\tOpenSave.last_dialog_option = current_import_option\n\t_hide_all_options()\n\timport_options.get_parent().visible = true\n\n\tif id == ImageImportOptions.SPRITESHEET_TAB or id == ImageImportOptions.TILESET:\n\t\tframe_size_label.visible = true\n\t\tspritesheet_options.visible = true\n\t\ttexture_rect.get_child(0).visible = true\n\t\ttexture_rect.get_child(1).visible = true\n\t\tif id == ImageImportOptions.TILESET:\n\t\t\ttileset_options.visible = true\n\n\telif id == ImageImportOptions.SPRITESHEET_LAYER:\n\t\tframe_size_label.visible = true\n\t\tat_frame_option.visible = true\n\t\tspritesheet_options.visible = true\n\t\ttexture_rect.get_child(0).visible = true\n\t\ttexture_rect.get_child(1).visible = true\n\t\tat_frame_option.get_node(\"AtFrameSpinbox\").allow_greater = true\n\n\telif id == ImageImportOptions.NEW_FRAME:\n\t\tat_layer_option.visible = true\n\t\t# Fill the at layer option button:\n\t\tvar at_layer_option_button: OptionButton = at_layer_option.get_node(\"AtLayerOption\")\n\t\tat_layer_option_button.clear()\n\t\tvar layers := Global.current_project.layers.duplicate()\n\t\tlayers.reverse()\n\t\tvar i := 0\n\t\tfor l in layers:\n\t\t\tif not l is PixelLayer:\n\t\t\t\tcontinue\n\t\t\tat_layer_option_button.add_item(l.name, l.index)\n\t\t\tat_layer_option_button.set_item_tooltip(i, l.get_layer_path())\n\t\t\tif l.index == Global.current_project.current_layer:\n\t\t\t\tat_layer_option_button.selected = i\n\t\t\ti += 1\n\n\telif id == ImageImportOptions.REPLACE_CEL:\n\t\tat_frame_option.visible = true\n\t\tat_layer_option.visible = true\n\t\t# Fill the at layer option button:\n\t\tvar at_layer_option_button: OptionButton = at_layer_option.get_node(\"AtLayerOption\")\n\t\tat_layer_option_button.clear()\n\t\tvar layers := Global.current_project.layers.duplicate()\n\t\tlayers.reverse()\n\t\tvar i := 0\n\t\tfor l: BaseLayer in layers:\n\t\t\tif not l is PixelLayer:\n\t\t\t\tcontinue\n\t\t\tat_layer_option_button.add_item(l.name, l.index)\n\t\t\tat_layer_option_button.set_item_tooltip(i, l.get_layer_path())\n\t\t\tif l.index == Global.current_project.current_layer:\n\t\t\t\tat_layer_option_button.selected = i\n\t\t\ti += 1\n\t\tvar at_frame_spinbox: SpinBox = at_frame_option.get_node(\"AtFrameSpinbox\")\n\t\tat_frame_spinbox.max_value = Global.current_project.frames.size()\n\t\tat_frame_spinbox.value = Global.current_project.current_frame + 1\n\n\telif id == ImageImportOptions.NEW_LAYER:\n\t\tat_frame_option.visible = true\n\t\tvar at_frame_spinbox: SpinBox = at_frame_option.get_node(\"AtFrameSpinbox\")\n\t\tat_frame_spinbox.max_value = Global.current_project.frames.size()\n\t\tat_frame_spinbox.value = Global.current_project.current_frame + 1\n\n\telif id == ImageImportOptions.BRUSH:\n\t\tnew_brush_options.visible = true\n\n\telse:\n\t\tif id in ImageImportOptions.values():\n\t\t\timport_options.get_parent().visible = false\n\t\telse:\n\t\t\tif is_main:  # Disable apply all (for import options added by extension)\n\t\t\t\tapply_all.button_pressed = false\n\t\t\tapply_all.disabled = true\n\t\t\tif id in custom_importers.keys():\n\t\t\t\tcustom_importers[id].visible = true\n\t_call_queue_redraw()\n\n\nfunc _on_smart_slice_toggled(button_pressed: bool) -> void:\n\tinclude_empty.visible = !button_pressed\n\tsetup_smart_slice(button_pressed)\n\n\nfunc setup_smart_slice(enabled: bool) -> void:\n\tspritesheet_options.get_node(\"Manual\").visible = !enabled\n\tspritesheet_options.get_node(\"Smart\").visible = enabled\n\tif is_main:  # Disable apply all (the algorithm is not fast enough for this)\n\t\tapply_all.button_pressed = false\n\tapply_all.disabled = enabled\n\tsmart_slice = enabled\n\tif !recycle_last_slice_result and enabled:\n\t\tslice_preview()\n\t_call_queue_redraw()\n\n\nfunc obtain_sliced_data() -> void:\n\tvar merge_threshold := spritesheet_options.find_child(\"Threshold\") as ValueSlider\n\tvar merge_dist := spritesheet_options.find_child(\"MergeDist\") as ValueSlider\n\tvar unpak := RegionUnpacker.new(merge_threshold.value, merge_dist.value)\n\tsliced_rects = unpak.get_used_rects(texture_rect.texture.get_image())\n\n\nfunc slice_preview() -> void:\n\tsliced_rects = null\n\tobtain_sliced_data()\n\trecycle_last_slice_result = true\n\tvar frame_size := sliced_rects.frame_size\n\tframe_size_label.text = tr(\"Frame Size\") + \": \" + str(frame_size.x) + \"×\" + str(frame_size.y)\n\n\nfunc _on_threshold_value_changed(_value: float) -> void:\n\trecycle_last_slice_result = false\n\n\nfunc _on_merge_dist_value_changed(_value: float) -> void:\n\trecycle_last_slice_result = false\n\n\nfunc _on_slice_pressed() -> void:\n\tif !recycle_last_slice_result:\n\t\tslice_preview()\n\t_call_queue_redraw()\n\n\nfunc _on_FramesDivider_value_changed(value: Vector2i) -> void:\n\tspritesheet_horizontal = value.x\n\tspritesheet_vertical = value.y\n\tif frame_size_preset.item_count > 0:\n\t\tframe_size_preset.select(0)\n\tspritesheet_frame_value_changed()\n\n\nfunc _on_frame_size_preset_item_selected(index: int):\n\tvar id = frame_size_preset.get_item_id(index)\n\t@warning_ignore(\"integer_division\")\n\tvar h_v := Vector2i(image.get_width() / id, image.get_height() / id)\n\tframes_divider.set_value_no_signal(h_v)\n\tspritesheet_horizontal = h_v.x\n\tspritesheet_vertical = h_v.y\n\tspritesheet_frame_value_changed()\n\n\n## Updates the frame size label and redraws preview\nfunc spritesheet_frame_value_changed() -> void:\n\t@warning_ignore(\"integer_division\")\n\tvar frame_width := floori(image.get_size().x / spritesheet_horizontal)\n\t@warning_ignore(\"integer_division\")\n\tvar frame_height := floori(image.get_size().y / spritesheet_vertical)\n\tframe_size_label.text = tr(\"Frame Size\") + \": \" + str(frame_width) + \"×\" + str(frame_height)\n\t_call_queue_redraw()\n\n\nfunc _on_tile_shape_option_button_item_selected(index: int) -> void:\n\tvar tile_shape_option_button := tileset_options.get_node(\"TileShapeOptionButton\")\n\ttile_shape = tile_shape_option_button.get_item_id(index)\n\t_call_queue_redraw()\n\n\nfunc _on_tile_offset_axis_button_item_selected(index: int) -> void:\n\tvar tile_offset_axis_button := tileset_options.get_node(\"TileOffsetAxisButton\")\n\ttile_offset_axis = tile_offset_axis_button.get_item_id(index)\n\t_call_queue_redraw()\n\n\nfunc _on_BrushTypeOption_item_selected(index: BrushTypes) -> void:\n\tbrush_type = index\n\tnew_brush_options.get_node(\"BrushName\").visible = false\n\tif brush_type == BrushTypes.RANDOM:\n\t\tnew_brush_options.get_node(\"BrushName\").visible = true\n\n\nfunc add_brush() -> void:\n\timage.convert(Image.FORMAT_RGBA8)\n\tif brush_type == BrushTypes.FILE:\n\t\tvar file_name_ext := path.get_file()\n\t\tfile_name_ext = file_name_replace(file_name_ext, \"Brushes\")\n\t\tvar file_name := file_name_ext.get_basename()\n\n\t\tBrushes.add_file_brush([image], file_name)\n\n\t\t# Copy the image file into the \"pixelorama/Brushes\" directory\n\t\tvar location := \"Brushes\".path_join(file_name_ext)\n\t\tvar dir := DirAccess.open(path.get_base_dir())\n\t\tdir.copy(path, Global.home_data_directory.path_join(location))\n\n\telif brush_type == BrushTypes.PROJECT:\n\t\tvar file_name := path.get_file().get_basename()\n\t\tGlobal.current_project.brushes.append(image)\n\t\tBrushes.add_project_brush(image, file_name)\n\n\telif brush_type == BrushTypes.RANDOM:\n\t\tvar brush_name_edit := new_brush_options.get_node(\"BrushName/BrushNameLineEdit\") as LineEdit\n\t\tvar brush_name := brush_name_edit.text.to_lower()\n\t\tif !brush_name.is_valid_filename():\n\t\t\treturn\n\t\tvar dir := DirAccess.open(Global.home_data_directory.path_join(\"Brushes\"))\n\t\tif !dir.dir_exists(brush_name):\n\t\t\tdir.make_dir(brush_name)\n\n\t\tdir = DirAccess.open(Global.home_data_directory.path_join(\"Brushes\").path_join(brush_name))\n\t\tvar random_brushes := []\n\t\tdir.list_dir_begin()\n\t\tvar curr_file := dir.get_next()\n\t\twhile curr_file != \"\":\n\t\t\tif curr_file.begins_with(\"~\") and brush_name in curr_file:\n\t\t\t\trandom_brushes.append(curr_file)\n\t\t\tcurr_file = dir.get_next()\n\t\tdir.list_dir_end()\n\n\t\tvar file_ext := path.get_file().get_extension()\n\t\tvar index := random_brushes.size() + 1\n\t\tvar file_name := \"~\" + brush_name + str(index) + \".\" + file_ext\n\t\tvar location := \"Brushes\".path_join(brush_name).path_join(file_name)\n\t\tdir.copy(path, Global.home_data_directory.path_join(location))\n\n\n## Checks if the file already exists\n## If it does, add a number to its name, for example\n## \"Brush_Name\" will become \"Brush_Name (2)\", \"Brush_Name (3)\", etc.\nfunc file_name_replace(file_name: String, folder: String) -> String:\n\tvar i := 1\n\tvar file_ext := file_name.get_extension()\n\tvar temp_name := file_name\n\twhile FileAccess.file_exists(Global.home_data_directory.path_join(folder).path_join(temp_name)):\n\t\ti += 1\n\t\ttemp_name = file_name.get_basename() + \" (%s)\" % i\n\t\ttemp_name += \".\" + file_ext\n\tfile_name = temp_name\n\treturn file_name\n\n\nfunc _call_queue_redraw() -> void:\n\tvar empty_array: Array[Rect2i] = []\n\t$\"%SmartSlice\".show_preview(empty_array)\n\t$\"%RowColumnLines\".show_preview(1, 1)\n\tawait get_tree().process_frame\n\tif (\n\t\tcurrent_import_option == ImageImportOptions.SPRITESHEET_TAB\n\t\tor current_import_option == ImageImportOptions.SPRITESHEET_LAYER\n\t\tor current_import_option == ImageImportOptions.TILESET\n\t):\n\t\tif smart_slice:\n\t\t\tif is_instance_valid(sliced_rects) and not sliced_rects.rects.is_empty():\n\t\t\t\t$\"%SmartSlice\".show_preview(sliced_rects.rects)\n\t\telse:\n\t\t\t$\"%RowColumnLines\".show_preview(spritesheet_vertical, spritesheet_horizontal)\n\n\nfunc _on_preview_container_size_changed() -> void:\n\t_call_queue_redraw()\n"
  },
  {
    "path": "src/UI/Dialogs/ImportPreviewDialog.gd.uid",
    "content": "uid://brtcr6mrev52o\n"
  },
  {
    "path": "src/UI/Dialogs/ImportPreviewDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://nba3nryom3ud\"]\n\n[ext_resource type=\"Script\" uid=\"uid://brtcr6mrev52o\" path=\"res://src/UI/Dialogs/ImportPreviewDialog.gd\" id=\"1_r16hn\"]\n[ext_resource type=\"Script\" uid=\"uid://bvn632m4s6crv\" path=\"res://src/UI/Dialogs/HelperScripts/RowColumnLines.gd\" id=\"2_yokw4\"]\n[ext_resource type=\"Script\" uid=\"uid://crtwdohribibe\" path=\"res://src/UI/Dialogs/HelperScripts/SmartSlicePreview.gd\" id=\"3_aeccv\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bbnqcxa20a5a5\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\" id=\"4_6umjk\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"4_nmo33\"]\n\n[node name=\"ImportPreviewDialog\" type=\"ConfirmationDialog\" unique_id=1808919118]\ncanvas_item_default_texture_filter = 0\nposition = Vector2i(0, 36)\nsize = Vector2i(316, 516)\nscript = ExtResource(\"1_r16hn\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=2089418098]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 8.0\noffset_top = 8.0\noffset_right = -8.0\noffset_bottom = -49.0\ngrow_horizontal = 2\ngrow_vertical = 2\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"VBoxContainer\" unique_id=1453704658]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"AspectRatioContainer\" type=\"AspectRatioContainer\" parent=\"VBoxContainer/VBoxContainer\" unique_id=394050770]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"VBoxContainer/VBoxContainer/AspectRatioContainer\" unique_id=766226089]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(300, 300)\nlayout_mode = 2\nexpand_mode = 1\nstretch_mode = 5\n\n[node name=\"RowColumnLines\" type=\"Control\" parent=\"VBoxContainer/VBoxContainer/AspectRatioContainer/TextureRect\" unique_id=283613391]\nunique_name_in_owner = true\nanchors_preset = 0\noffset_right = 40.0\noffset_bottom = 40.0\nscript = ExtResource(\"2_yokw4\")\n\n[node name=\"SmartSlice\" type=\"Control\" parent=\"VBoxContainer/VBoxContainer/AspectRatioContainer/TextureRect\" unique_id=1718060734]\nunique_name_in_owner = true\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nscript = ExtResource(\"3_aeccv\")\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"VBoxContainer/VBoxContainer\" unique_id=1744510561]\nlayout_mode = 2\n\n[node name=\"ApplyAll\" type=\"CheckBox\" parent=\"VBoxContainer/VBoxContainer\" unique_id=1939816526]\nvisible = false\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Apply to all\"\n\n[node name=\"SizeContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer/VBoxContainer\" unique_id=987445479]\nlayout_mode = 2\ntheme_override_constants/separation = 32\n\n[node name=\"ImageSizeLabel\" type=\"Label\" parent=\"VBoxContainer/VBoxContainer/SizeContainer\" unique_id=1124962955]\nlayout_mode = 2\ntext = \"Image Size: 64×64\"\n\n[node name=\"FrameSizeLabel\" type=\"Label\" parent=\"VBoxContainer/VBoxContainer/SizeContainer\" unique_id=1107103823]\nvisible = false\nlayout_mode = 2\ntext = \"Frame size: 64×64\"\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer/VBoxContainer\" unique_id=1303661883]\nlayout_mode = 2\n\n[node name=\"ImportAsLabel\" type=\"Label\" parent=\"VBoxContainer/VBoxContainer/HBoxContainer\" unique_id=511277511]\nlayout_mode = 2\nsize_flags_vertical = 0\ntext = \"Import as:\"\n\n[node name=\"ImportOption\" type=\"OptionButton\" parent=\"VBoxContainer/VBoxContainer/HBoxContainer\" unique_id=1219338380]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 0\nmouse_default_cursor_shape = 2\n\n[node name=\"ImportOptionsContainer\" type=\"FoldableContainer\" parent=\"VBoxContainer\" unique_id=1323475885]\nlayout_mode = 2\ntheme_type_variation = &\"CollapsibleContainer\"\nfolded = true\ntitle = \"Import Options\"\n\n[node name=\"ImportOptions\" type=\"VBoxContainer\" parent=\"VBoxContainer/ImportOptionsContainer\" unique_id=131675547]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\n\n[node name=\"SpritesheetOptions\" type=\"VBoxContainer\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions\" unique_id=1791237799]\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"Manual\" type=\"HBoxContainer\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions\" unique_id=709132492]\nlayout_mode = 2\n\n[node name=\"SplitOptions\" type=\"VBoxContainer\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions/Manual\" unique_id=751097073]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"FramesDivider\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions/Manual/SplitOptions\" unique_id=966361385 instance=ExtResource(\"4_6umjk\")]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nvalue = Vector2(1, 1)\nmin_value = Vector2(1, 1)\nshow_ratio = true\nprefix_x = \"Horizontal frames:\"\nprefix_y = \"Vertical frames:\"\n\n[node name=\"VSeparator\" type=\"VSeparator\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions/Manual\" unique_id=1584502570]\nlayout_mode = 2\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions/Manual\" unique_id=795936199]\nlayout_mode = 2\n\n[node name=\"FrameSizePresetLabel\" type=\"Label\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions/Manual/VBoxContainer\" unique_id=985738062]\nlayout_mode = 2\ntext = \"Presets:\"\n\n[node name=\"FrameSizeOptionButton\" type=\"OptionButton\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions/Manual/VBoxContainer\" unique_id=1464071297]\nunique_name_in_owner = true\nlayout_mode = 2\n\n[node name=\"Smart\" type=\"HBoxContainer\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions\" unique_id=1536328544]\nvisible = false\nlayout_mode = 2\n\n[node name=\"Threshold\" type=\"TextureProgressBar\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions/Smart\" unique_id=973364193]\ncustom_minimum_size = Vector2(0, 30)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Images that have any one side smaller than this value will cross the threshold\"\nfocus_mode = 2\ntheme_type_variation = &\"ValueSlider\"\nvalue = 10.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"4_nmo33\")\nprefix = \"Threshold:\"\nsuffix = \"px\"\n\n[node name=\"MergeDist\" type=\"TextureProgressBar\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions/Smart\" unique_id=1656745988]\ncustom_minimum_size = Vector2(0, 30)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Images which crossed the threshold will get merged into a larger image, if they are within this distance\"\nfocus_mode = 2\ntheme_type_variation = &\"ValueSlider\"\nvalue = 3.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"4_nmo33\")\nprefix = \"Merge distance:\"\nsuffix = \"px\"\n\n[node name=\"Slice\" type=\"Button\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions/Smart\" unique_id=2092311525]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Refresh\"\n\n[node name=\"FlagToggles\" type=\"HBoxContainer\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions\" unique_id=679779349]\nlayout_mode = 2\n\n[node name=\"SmartSliceToggle\" type=\"CheckBox\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions/FlagToggles\" unique_id=1022515303]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Smart Slice\"\n\n[node name=\"IncludeEmptyArea\" type=\"CheckBox\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions/FlagToggles\" unique_id=463414402]\nunique_name_in_owner = true\nlayout_mode = 2\ntext = \"Include empty tiles\"\n\n[node name=\"TilesetOptions\" type=\"GridContainer\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions\" unique_id=1522614112]\nvisible = false\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"TileShapeLabel\" type=\"Label\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/TilesetOptions\" unique_id=931044385]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Tile shape:\"\n\n[node name=\"TileShapeOptionButton\" type=\"OptionButton\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/TilesetOptions\" unique_id=1574807088]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 3\npopup/item_0/text = \"Rectangular\"\npopup/item_0/id = 0\npopup/item_1/text = \"Isometric\"\npopup/item_1/id = 1\npopup/item_2/text = \"Hexagonal\"\npopup/item_2/id = 3\n\n[node name=\"TileOffsetAxisLabel\" type=\"Label\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/TilesetOptions\" unique_id=2123473254]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Tile offset axis:\"\n\n[node name=\"TileOffsetAxisButton\" type=\"OptionButton\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/TilesetOptions\" unique_id=1966077061]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 2\npopup/item_0/text = \"Horizontal\"\npopup/item_0/id = 0\npopup/item_1/text = \"Vertical\"\npopup/item_1/id = 1\n\n[node name=\"AtFrame\" type=\"HBoxContainer\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions\" unique_id=208558396]\nvisible = false\nlayout_mode = 2\n\n[node name=\"Label3\" type=\"Label\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/AtFrame\" unique_id=1423330608]\nlayout_mode = 2\ntext = \"At frame:\"\n\n[node name=\"AtFrameSpinbox\" type=\"SpinBox\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/AtFrame\" unique_id=644885241]\nlayout_mode = 2\nsize_flags_vertical = 0\nmin_value = 1.0\nvalue = 1.0\n\n[node name=\"AtLayer\" type=\"GridContainer\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions\" unique_id=666387797]\nvisible = false\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/AtLayer\" unique_id=234488903]\nlayout_mode = 2\ntext = \"At layer:\"\n\n[node name=\"AtLayerOption\" type=\"OptionButton\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/AtLayer\" unique_id=1264555406]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\n\n[node name=\"NewBrushOptions\" type=\"HBoxContainer\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions\" unique_id=509158821]\nvisible = false\nlayout_mode = 2\n\n[node name=\"Type\" type=\"HBoxContainer\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/NewBrushOptions\" unique_id=315598981]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/NewBrushOptions/Type\" unique_id=1298068084]\nlayout_mode = 2\ntext = \"Brush type:\"\n\n[node name=\"BrushTypeOption\" type=\"OptionButton\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/NewBrushOptions/Type\" unique_id=1510951311]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 3\npopup/item_0/text = \"File brush\"\npopup/item_0/id = 0\npopup/item_1/text = \"Project brush\"\npopup/item_1/id = 1\npopup/item_2/text = \"Random brush\"\npopup/item_2/id = 2\n\n[node name=\"BrushName\" type=\"HBoxContainer\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/NewBrushOptions\" unique_id=2137388976]\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"Label\" type=\"Label\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/NewBrushOptions/BrushName\" unique_id=680989693]\nlayout_mode = 2\ntext = \"Brush name:\"\n\n[node name=\"BrushNameLineEdit\" type=\"LineEdit\" parent=\"VBoxContainer/ImportOptionsContainer/ImportOptions/NewBrushOptions/BrushName\" unique_id=1639309611]\nlayout_mode = 2\n\n[connection signal=\"about_to_popup\" from=\".\" to=\".\" method=\"_on_ImportPreviewDialog_about_to_show\"]\n[connection signal=\"confirmed\" from=\".\" to=\".\" method=\"_on_ImportPreviewDialog_confirmed\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_visibility_changed\"]\n[connection signal=\"resized\" from=\"VBoxContainer/VBoxContainer\" to=\".\" method=\"_on_preview_container_size_changed\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/VBoxContainer/ApplyAll\" to=\".\" method=\"_on_ApplyAll_toggled\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/VBoxContainer/HBoxContainer/ImportOption\" to=\".\" method=\"_on_ImportOption_item_selected\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions/Manual/SplitOptions/FramesDivider\" to=\".\" method=\"_on_FramesDivider_value_changed\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions/Manual/VBoxContainer/FrameSizeOptionButton\" to=\".\" method=\"_on_frame_size_preset_item_selected\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions/Smart/Threshold\" to=\".\" method=\"_on_threshold_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions/Smart/MergeDist\" to=\".\" method=\"_on_merge_dist_value_changed\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions/Smart/Slice\" to=\".\" method=\"_on_slice_pressed\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/ImportOptionsContainer/ImportOptions/SpritesheetOptions/FlagToggles/SmartSliceToggle\" to=\".\" method=\"_on_smart_slice_toggled\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/ImportOptionsContainer/ImportOptions/TilesetOptions/TileShapeOptionButton\" to=\".\" method=\"_on_tile_shape_option_button_item_selected\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/ImportOptionsContainer/ImportOptions/TilesetOptions/TileOffsetAxisButton\" to=\".\" method=\"_on_tile_offset_axis_button_item_selected\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/ImportOptionsContainer/ImportOptions/NewBrushOptions/Type/BrushTypeOption\" to=\".\" method=\"_on_BrushTypeOption_item_selected\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ImportTagDialog.gd",
    "content": "extends AcceptDialog\n\nvar from_project: Project\nvar create_new_tags := false\nvar frame: int\nvar tag_id: int\n\n@onready var from_project_list: OptionButton = %ProjectList\n@onready var create_tags: CheckButton = %CreateTags\n@onready var animation_tags_list: ItemList = %TagList\n\n\nfunc _ready() -> void:\n\t# connect signals\n\tfrom_project_list.item_selected.connect(_on_FromProject_changed)\n\tanimation_tags_list.item_selected.connect(_on_TagList_id_pressed)\n\tanimation_tags_list.empty_clicked.connect(_on_TagList_empty_clicked)\n\tcreate_tags.toggled.connect(_on_CreateTags_toggled)\n\n\nfunc refresh_list() -> void:\n\tanimation_tags_list.clear()\n\tget_ok_button().disabled = true\n\tfor tag: AnimationTag in from_project.animation_tags:\n\t\tvar img := from_project.new_empty_image()\n\t\tDrawingAlgos.blend_layers(\n\t\t\timg, from_project.frames[tag.from - 1], Vector2i.ZERO, from_project\n\t\t)\n\t\tvar tex := ImageTexture.create_from_image(img)\n\t\tvar tag_title := tag.name\n\t\tif tag_title == \"\":\n\t\t\ttag_title = \"(Untitled)\"\n\t\tvar idx = animation_tags_list.add_item(tag_title, tex)\n\t\tanimation_tags_list.set_item_custom_fg_color(idx, tag.color)\n\n\nfunc _on_CreateTags_toggled(pressed: bool) -> void:\n\tcreate_new_tags = pressed\n\n\nfunc prepare_and_show(frame_no: int) -> void:\n\t# Reset UI\n\tframe = frame_no\n\tfrom_project_list.clear()\n\tif Global.projects.find(from_project) < 0:\n\t\tfrom_project = Global.current_project\n\t# Populate project list\n\tfor project in Global.projects:\n\t\tfrom_project_list.add_item(project.name)\n\tfrom_project_list.select(Global.projects.find(from_project))\n\t# Populate tag list\n\trefresh_list()\n\ttitle = str(\"Import Tag (After Frame \", frame + 1, \")\")\n\tpopup_centered_clamped()\n\n\nfunc _on_FromProject_changed(id: int) -> void:\n\tfrom_project = Global.projects[id]\n\trefresh_list()\n\n\nfunc _on_confirmed() -> void:\n\tvar tag: AnimationTag = from_project.animation_tags[tag_id]\n\tvar frames := []\n\tfor i in range(tag.from - 1, tag.to):\n\t\tframes.append(i)\n\tif create_new_tags:\n\t\tadd_animation(frames, frame, tag)\n\telse:\n\t\tadd_animation(frames, frame)\n\n\nfunc _on_TagList_id_pressed(id: int) -> void:\n\tget_ok_button().disabled = false\n\ttag_id = id\n\n\nfunc _on_TagList_empty_clicked(_at_position: Vector2, _mouse_button_index: int) -> void:\n\tanimation_tags_list.deselect_all()\n\tget_ok_button().disabled = true\n\n\n## Gets frame indices of [member from_project] and dumps it in the current project.\nfunc add_animation(indices: Array, destination: int, from_tag: AnimationTag = null) -> void:\n\tvar project: Project = Global.current_project\n\tif from_project == project:  ## If we are copying tags within project\n\t\tGlobal.animation_timeline.copy_frames(indices, destination, true, from_tag)\n\t\treturn\n\tvar new_animation_tags := project.animation_tags.duplicate()\n\t# Loop through the tags to create new classes for them, so that they won't be the same\n\t# as project.animation_tags's classes. Needed for undo/redo to work properly.\n\tfor i in new_animation_tags.size():\n\t\tnew_animation_tags[i] = AnimationTag.new(\n\t\t\tnew_animation_tags[i].name,\n\t\t\tnew_animation_tags[i].color,\n\t\t\tnew_animation_tags[i].from,\n\t\t\tnew_animation_tags[i].to\n\t\t)\n\tvar imported_frames: Array[Frame] = []  # The copied frames\n\t# the indices of newly copied frames\n\tvar copied_indices: PackedInt32Array = range(\n\t\tdestination + 1, (destination + 1) + indices.size()\n\t)\n\tproject.undo_redo.create_action(\"Import Tag\")\n\t# Step 1: calculate layers to generate\n\tvar layer_to_names := PackedStringArray()  # names of currently existing layers\n\tfor l in project.layers:\n\t\tlayer_to_names.append(l.name)\n\n\t# the goal of this section is to mark existing layers with their indices else with -1\n\tvar layer_from_to := {}  # indices of layers from and to\n\tfor from in from_project.layers.size():\n\t\tvar to := -1\n\t\tvar pos := 0\n\t\tfor i in layer_to_names.count(from_project.layers[from].name):\n\t\t\tpos = layer_to_names.find(from_project.layers[from].name, pos)\n\t\t\t# if layer types don't match, the destination is invalid.\n\t\t\tif project.layers[pos].get_layer_type() != from_project.layers[from].get_layer_type():\n\t\t\t\t# Don't give up if there is another layer with the same name, check that one as well\n\t\t\t\tpos += 1\n\t\t\t\tcontinue\n\t\t\t# if destination is already assigned to another layer, then don't use it here.\n\t\t\tif pos in layer_from_to.values():\n\t\t\t\t# Don't give up if there is another layer with the same name, check that one as well\n\t\t\t\tpos += 1\n\t\t\t\tcontinue\n\t\t\tto = pos\n\t\t\tbreak\n\t\tlayer_from_to[from] = to\n\n\t# Step 2: generate required layers\n\tvar combined_copy := Array()  # Makes calculations easy (contains preview of final layer order).\n\tcombined_copy.append_array(project.layers)\n\tvar added_layers := Array()  # Array of layers\n\t# Array of indices to add the respective layers (in added_layers) to\n\tvar added_idx := PackedInt32Array()\n\tvar added_cels := Array()  # Array of an Array of cels (added in same order as their layer)\n\n\t# Create destinations for layers that don't have one yet\n\tif layer_from_to.values().count(-1) > 0:\n\t\t# As it is extracted from a dictionary, so i assume the keys aren't sorted\n\t\tvar from_layers_size = layer_from_to.keys().duplicate(true)\n\t\tfrom_layers_size.sort()  # it's values should now be from (layer size - 1) to zero\n\t\tfor i in from_layers_size:\n\t\t\tif layer_from_to[i] == -1:\n\t\t\t\tvar from_layer := from_project.layers[i]\n\t\t\t\tvar type = from_layer.get_layer_type()\n\t\t\t\tvar l: BaseLayer\n\t\t\t\tmatch type:\n\t\t\t\t\tGlobal.LayerTypes.PIXEL:\n\t\t\t\t\t\tl = PixelLayer.new(project)\n\t\t\t\t\tGlobal.LayerTypes.GROUP:\n\t\t\t\t\t\tl = GroupLayer.new(project)\n\t\t\t\t\tGlobal.LayerTypes.THREE_D:\n\t\t\t\t\t\tl = Layer3D.new(project)\n\t\t\t\t\tGlobal.LayerTypes.TILEMAP:\n\t\t\t\t\t\tl = LayerTileMap.new(project, from_layer.tileset)\n\t\t\t\t\t\tl.place_only_mode = from_layer.place_only_mode\n\t\t\t\t\t\tl.tile_size = from_layer.tile_size\n\t\t\t\t\t\tl.tile_shape = from_layer.tile_shape\n\t\t\t\t\t\tl.tile_layout = from_layer.tile_layout\n\t\t\t\t\t\tl.tile_offset_axis = from_layer.tile_offset_axis\n\t\t\t\t\tGlobal.LayerTypes.AUDIO:\n\t\t\t\t\t\tl = AudioLayer.new(project)\n\t\t\t\t\t\tl.audio = from_layer.audio\n\t\t\t\tif l == null:  # Ignore copying this layer if it isn't supported\n\t\t\t\t\tcontinue\n\t\t\t\tvar cels := []\n\t\t\t\tfor f in project.frames:\n\t\t\t\t\tcels.append(l.new_empty_cel())\n\t\t\t\tl.name = from_project.layers[i].name  # this will set it to the required layer name\n\n\t\t\t\t# Set an appropriate parent\n\t\t\t\tvar new_layer_idx = combined_copy.size()\n\t\t\t\tlayer_from_to[i] = new_layer_idx\n\t\t\t\tvar from_children = from_project.layers[i].get_children(false)\n\t\t\t\tfor from_child in from_children:  # If this layer had children\n\t\t\t\t\tvar child_to_idx = layer_from_to[from_project.layers.find(from_child)]\n\t\t\t\t\tvar to_child = combined_copy[child_to_idx]\n\t\t\t\t\tif to_child in added_layers:  # if child was added recently\n\t\t\t\t\t\tto_child.parent = l\n\n\t\t\t\tcombined_copy.insert(new_layer_idx, l)\n\t\t\t\tadded_layers.append(l)  # layer is now added\n\t\t\t\tadded_idx.append(new_layer_idx)  # at index new_layer_idx\n\t\t\t\tadded_cels.append(cels)  # with cels\n\n\t# Now initiate import\n\tfor f in indices:\n\t\tvar src_frame: Frame = from_project.frames[f]\n\t\tvar new_frame := Frame.new()\n\t\timported_frames.append(new_frame)\n\t\tnew_frame.duration = src_frame.duration\n\t\tfor to in combined_copy.size():\n\t\t\tvar new_cel: BaseCel\n\t\t\tif to in layer_from_to.values():  # We have data to Import to this layer index\n\t\t\t\tvar from = layer_from_to.find_key(to)\n\t\t\t\t# Cel we're copying from, the source\n\t\t\t\tvar src_cel: BaseCel = from_project.frames[f].cels[from]\n\t\t\t\tnew_cel = src_cel.duplicate_cel()\n\t\t\t\tif src_cel is Cel3D:\n\t\t\t\t\tnew_cel.size_changed(project.size)\n\t\t\t\telif src_cel is CelTileMap:\n\t\t\t\t\tvar copied_content := src_cel.copy_content() as Array\n\t\t\t\t\tvar src_img: ImageExtended = copied_content[0]\n\t\t\t\t\tvar empty := project.new_empty_image()\n\t\t\t\t\tvar copy := ImageExtended.new()\n\t\t\t\t\tcopy.copy_from_custom(empty, project.is_indexed())\n\t\t\t\t\tcopy.blit_rect(src_img, Rect2(Vector2.ZERO, src_img.get_size()), Vector2.ZERO)\n\t\t\t\t\tnew_cel.set_content([copy, copied_content[1]])\n\t\t\t\t\tnew_cel.set_indexed_mode(project.is_indexed())\n\t\t\t\telse:\n\t\t\t\t\t# Add more types here if they have a copy_content() method.\n\t\t\t\t\tif src_cel is PixelCel:\n\t\t\t\t\t\tvar src_img: ImageExtended = src_cel.copy_content()\n\t\t\t\t\t\tvar empty := project.new_empty_image()\n\t\t\t\t\t\tvar copy := ImageExtended.new()\n\t\t\t\t\t\tcopy.copy_from_custom(empty, project.is_indexed())\n\t\t\t\t\t\tcopy.blit_rect(\n\t\t\t\t\t\t\tsrc_img, Rect2(Vector2.ZERO, src_img.get_size()), Vector2.ZERO\n\t\t\t\t\t\t)\n\t\t\t\t\t\tnew_cel.set_content(copy)\n\t\t\t\t\t\tnew_cel.set_indexed_mode(project.is_indexed())\n\n\t\t\telse:\n\t\t\t\tnew_cel = combined_copy[to].new_empty_cel()\n\t\t\tnew_frame.cels.append(new_cel)\n\n\t\tfor tag in new_animation_tags:  # Loop through the tags to see if the frame is in one\n\t\t\tif copied_indices[0] >= tag.from && copied_indices[0] <= tag.to:\n\t\t\t\ttag.to += 1\n\t\t\telif copied_indices[0] < tag.from:\n\t\t\t\ttag.from += 1\n\t\t\t\ttag.to += 1\n\tif from_tag:\n\t\tnew_animation_tags.append(\n\t\t\tAnimationTag.new(\n\t\t\t\tfrom_tag.name, from_tag.color, copied_indices[0] + 1, copied_indices[-1] + 1\n\t\t\t)\n\t\t)\n\tproject.undo_redo.add_undo_method(project.remove_frames.bind(copied_indices))\n\tproject.undo_redo.add_do_method(project.add_layers.bind(added_layers, added_idx, added_cels))\n\tproject.undo_redo.add_do_method(project.add_frames.bind(imported_frames, copied_indices))\n\tproject.undo_redo.add_undo_method(project.remove_layers.bind(added_idx))\n\t# Note: temporarily set the selected cels to an empty array (needed for undo/redo)\n\tproject.undo_redo.add_do_property(Global.current_project, \"selected_cels\", [])\n\tproject.undo_redo.add_undo_property(Global.current_project, \"selected_cels\", [])\n\n\tvar all_new_cels := []\n\t# Select all the new frames so that it is easier to move/offset collectively if user wants\n\t# To ease animation workflow, new current frame is the first copied frame instead of the last\n\tvar range_start: int = copied_indices[-1]\n\tvar range_end: int = copied_indices[0]\n\tvar frame_diff_sign := signi(range_end - range_start)\n\tif frame_diff_sign == 0:\n\t\tframe_diff_sign = 1\n\tfor i in range(range_start, range_end + frame_diff_sign, frame_diff_sign):\n\t\tfor j in range(0, combined_copy.size()):\n\t\t\tvar frame_layer := [i, j]\n\t\t\tif !all_new_cels.has(frame_layer):\n\t\t\t\tall_new_cels.append(frame_layer)\n\tproject.undo_redo.add_do_property(Global.current_project, \"selected_cels\", all_new_cels)\n\tproject.undo_redo.add_undo_method(\n\t\tproject.change_cel.bind(project.current_frame, project.current_layer)\n\t)\n\tproject.undo_redo.add_do_method(project.change_cel.bind(range_end))\n\tproject.undo_redo.add_do_property(project, \"animation_tags\", new_animation_tags)\n\tproject.undo_redo.add_undo_property(project, \"animation_tags\", project.animation_tags)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_close_requested() -> void:\n\thide()\n"
  },
  {
    "path": "src/UI/Dialogs/ImportTagDialog.gd.uid",
    "content": "uid://d4aa2j1wururl\n"
  },
  {
    "path": "src/UI/Dialogs/ImportTagDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://clsp16gq4sng3\"]\n\n[ext_resource type=\"Script\" uid=\"uid://d4aa2j1wururl\" path=\"res://src/UI/Dialogs/ImportTagDialog.gd\" id=\"1_5fb6k\"]\n\n[node name=\"ImportTagDialog\" type=\"ConfirmationDialog\" unique_id=360810277]\ntitle = \"Import Tag\"\nsize = Vector2i(270, 300)\nmin_size = Vector2i(250, 0)\nok_button_text = \"Import\"\nscript = ExtResource(\"1_5fb6k\")\n\n[node name=\"PanelContainer\" type=\"PanelContainer\" parent=\".\" unique_id=26459724]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 8.0\noffset_top = 8.0\noffset_right = -8.0\noffset_bottom = -49.0\ngrow_horizontal = 2\ngrow_vertical = 2\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"PanelContainer\" unique_id=767431895]\nlayout_mode = 2\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"PanelContainer/VBoxContainer\" unique_id=862173018]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"PanelContainer/VBoxContainer/HBoxContainer\" unique_id=987476694]\nlayout_mode = 2\ntext = \"From: \"\n\n[node name=\"ProjectList\" type=\"OptionButton\" parent=\"PanelContainer/VBoxContainer/HBoxContainer\" unique_id=828506384]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nalignment = 1\n\n[node name=\"CreateTags\" type=\"CheckButton\" parent=\"PanelContainer/VBoxContainer\" unique_id=87237535]\nunique_name_in_owner = true\nlayout_mode = 2\ntext = \"Create new tags\"\n\n[node name=\"Instructions\" type=\"Label\" parent=\"PanelContainer/VBoxContainer\" unique_id=1365658655]\ncustom_minimum_size = Vector2(250, 23)\nlayout_mode = 2\ntext = \"Available tags:\"\nautowrap_mode = 3\n\n[node name=\"TagList\" type=\"ItemList\" parent=\"PanelContainer/VBoxContainer\" unique_id=2070936022]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(0, 150)\nlayout_mode = 2\nsize_flags_vertical = 3\nfixed_icon_size = Vector2i(32, 32)\n\n[connection signal=\"close_requested\" from=\".\" to=\".\" method=\"_on_close_requested\"]\n[connection signal=\"confirmed\" from=\".\" to=\".\" method=\"_on_confirmed\"]\n"
  },
  {
    "path": "src/UI/Dialogs/ModifySelection.gd",
    "content": "extends ConfirmationDialog\n\nenum Types { EXPAND, SHRINK, BORDER, CENTER }\n\n@export var type := Types.EXPAND:\n\tset(value):\n\t\ttype = value\n\t\tif type == Types.EXPAND:\n\t\t\ttitle = \"Expand Selection\"\n\t\telif type == Types.SHRINK:\n\t\t\ttitle = \"Shrink Selection\"\n\t\telif type == Types.BORDER:\n\t\t\ttitle = \"Border Selection\"\n\t\telse:\n\t\t\ttitle = \"Center Selection\"\n\n@onready var width_slider: ValueSlider = $Options/ExpandShrinkBorder/WidthSlider\n@onready var brush_option_button: OptionButton = $Options/ExpandShrinkBorder/BrushOptionButton\n@onready var with_content_node := $Options/HBoxContainer/WithContent\n@onready var relative_checkbox := $Options/CenterContent/RelativeCheckbox\n@onready var selection_node := Global.canvas.selection\n\n\nfunc _on_about_to_popup() -> void:\n\tawait get_tree().process_frame\n\t$Options/HBoxContainer.visible = type != Types.BORDER\n\t$Options/ExpandShrinkBorder.visible = type != Types.CENTER\n\t$Options/CenterContent.visible = type == Types.CENTER and with_content_node.button_pressed\n\tif not with_content_node.is_visible_in_tree():\n\t\twith_content_node.button_pressed = false\n\n\nfunc _on_visibility_changed() -> void:\n\tif not visible:\n\t\tGlobal.dialog_open(false)\n\n\nfunc _on_confirmed() -> void:\n\tvar project := Global.current_project\n\tif !project.has_selection:\n\t\treturn\n\tvar width: int = width_slider.value\n\tif with_content_node.button_pressed:\n\t\tif !selection_node.transformation_handles.currently_transforming:\n\t\t\tselection_node.transformation_handles.begin_transform()\n\t\tvar image_size := selection_node.preview_selection_map.get_used_rect().size\n\t\tvar delta := Vector2i(width, width)\n\t\tmatch type:\n\t\t\tTypes.EXPAND:\n\t\t\t\tselection_node.transformation_handles.resize_transform(delta)\n\t\t\tTypes.SHRINK:\n\t\t\t\tselection_node.transformation_handles.resize_transform(-delta)\n\t\t\tTypes.CENTER:\n\t\t\t\tvar old_pos = selection_node.transformation_handles.preview_transform.origin\n\t\t\t\tvar used_rect := Rect2i(\n\t\t\t\t\told_pos, project.selection_map.get_selection_rect(project).size\n\t\t\t\t)\n\t\t\t\tif relative_checkbox.button_pressed:\n\t\t\t\t\tvar transformed_image = selection_node.transformation_handles.transformed_image\n\t\t\t\t\tif is_instance_valid(transformed_image):\n\t\t\t\t\t\tused_rect = transformed_image.get_used_rect()\n\t\t\t\t\t\tused_rect.position += Vector2i(old_pos)\n\t\t\t\tif not used_rect.has_area():\n\t\t\t\t\treturn\n\t\t\t\tvar offset: Vector2i = (0.5 * (project.size - used_rect.size)).floor()\n\t\t\t\tselection_node.transformation_handles.move_transform(offset - used_rect.position)\n\t\treturn\n\tselection_node.transform_content_confirm()\n\tvar undo_data_tmp := selection_node.get_undo_data(false)\n\tvar brush := brush_option_button.selected\n\tproject.selection_map.crop(project.size.x, project.size.y)\n\tif type == Types.EXPAND:\n\t\tproject.selection_map.expand(width, brush)\n\telif type == Types.SHRINK:\n\t\tproject.selection_map.shrink(width, brush)\n\telif type == Types.BORDER:\n\t\tproject.selection_map.border(width, brush)\n\telse:\n\t\tproject.selection_map.center()\n\tproject.selection_offset = Vector2.ZERO\n\tselection_node.commit_undo(\"Modify Selection\", undo_data_tmp)\n\tselection_node.queue_redraw()\n\n\nfunc _on_with_content_toggled(toggled_on: bool) -> void:\n\tif toggled_on:\n\t\tbrush_option_button.select(2)  # Square\n\tbrush_option_button.set_item_disabled(0, toggled_on)  # Diamond\n\tbrush_option_button.set_item_disabled(1, toggled_on)  # Circle\n\t$Options/CenterContent.visible = type == Types.CENTER and with_content_node.button_pressed\n"
  },
  {
    "path": "src/UI/Dialogs/ModifySelection.gd.uid",
    "content": "uid://csbfkgg4y0vxc\n"
  },
  {
    "path": "src/UI/Dialogs/ModifySelection.tscn",
    "content": "[gd_scene format=3 uid=\"uid://wcbpnsm7gptu\"]\n\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"1_3jelw\"]\n[ext_resource type=\"Script\" uid=\"uid://csbfkgg4y0vxc\" path=\"res://src/UI/Dialogs/ModifySelection.gd\" id=\"1_w6rs7\"]\n\n[node name=\"ModifySelection\" type=\"ConfirmationDialog\" unique_id=983472115]\noversampling_override = 1.0\ntitle = \"Expand selection\"\nposition = Vector2i(0, 36)\nsize = Vector2i(266, 152)\nvisible = true\nscript = ExtResource(\"1_w6rs7\")\n\n[node name=\"Options\" type=\"VBoxContainer\" parent=\".\" unique_id=2119590573]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 258.0\noffset_bottom = 103.0\n\n[node name=\"CenterContent\" type=\"HBoxContainer\" parent=\"Options\" unique_id=1429926721]\nvisible = false\nlayout_mode = 2\n\n[node name=\"Label2\" type=\"Label\" parent=\"Options/CenterContent\" unique_id=1767379214]\nlayout_mode = 2\ntext = \"Center relative to content:\"\n\n[node name=\"RelativeCheckbox\" type=\"CheckBox\" parent=\"Options/CenterContent\" unique_id=821537662]\nlayout_mode = 2\n\n[node name=\"ExpandShrinkBorder\" type=\"GridContainer\" parent=\"Options\" unique_id=1928153237]\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"WidthLabel\" type=\"Label\" parent=\"Options/ExpandShrinkBorder\" unique_id=1305189528]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Width:\"\n\n[node name=\"WidthSlider\" type=\"TextureProgressBar\" parent=\"Options/ExpandShrinkBorder\" unique_id=2860332]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nmax_value = 25.0\nvalue = 1.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1_3jelw\")\n\n[node name=\"BrushLabel\" type=\"Label\" parent=\"Options/ExpandShrinkBorder\" unique_id=1965631495]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Brush:\"\n\n[node name=\"BrushOptionButton\" type=\"OptionButton\" parent=\"Options/ExpandShrinkBorder\" unique_id=159978937]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 3\npopup/item_0/text = \"Diamond\"\npopup/item_0/id = 0\npopup/item_1/text = \"Circle\"\npopup/item_1/id = 1\npopup/item_2/text = \"Square\"\npopup/item_2/id = 2\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"Options\" unique_id=43760856]\nlayout_mode = 2\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"Options\" unique_id=720656191]\nlayout_mode = 2\n\n[node name=\"ContentLabel\" type=\"Label\" parent=\"Options/HBoxContainer\" unique_id=1931323741]\nlayout_mode = 2\ntext = \"Transform content\"\n\n[node name=\"WithContent\" type=\"CheckBox\" parent=\"Options/HBoxContainer\" unique_id=337864889]\nlayout_mode = 2\n\n[connection signal=\"about_to_popup\" from=\".\" to=\".\" method=\"_on_about_to_popup\"]\n[connection signal=\"confirmed\" from=\".\" to=\".\" method=\"_on_confirmed\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_visibility_changed\"]\n[connection signal=\"toggled\" from=\"Options/HBoxContainer/WithContent\" to=\".\" method=\"_on_with_content_toggled\"]\n"
  },
  {
    "path": "src/UI/Dialogs/OpenSprite.tscn",
    "content": "[gd_scene format=3 uid=\"uid://b3aeqj2k58wdk\"]\n\n[node name=\"OpenSprite\" type=\"FileDialog\" unique_id=1911336135 groups=[\"FileDialogs\"]]\ntitle = \"Open File(s)\"\nsize = Vector2i(558, 400)\nok_button_text = \"Open\"\nfile_mode = 1\naccess = 2\nfilters = PackedStringArray(\"*.pxo ; Pixelorama Project\", \"*.png ; PNG Image\", \"*.bmp ; BMP Image\", \"*.hdr ; Radiance HDR Image\", \"*.jpg,*.jpeg ; JPEG Image\", \"*.svg ; SVG Image\", \"*.tga ; TGA Image\", \"*.webp ; WebP Image\", \"*exr; EXR Image\", \"*ora; OpenRaster Project\", \"*ase, *aseprite; Aseprite Project\", \"*kra; Krita Project\", \"*piskel; Piskel Project\", \"*psd; Photoshop Project\", \"*.json; Pixelorama palette\", \"*.gpl; GIMP palette\", \"*pal; Palette\")\n"
  },
  {
    "path": "src/UI/Dialogs/ProjectProperties.gd",
    "content": "extends AcceptDialog\n\nconst SAVE_TEXTURE := preload(\"uid://cvc120a27s57m\")\nconst DUPLICATE_TEXTURE := preload(\"res://assets/graphics/timeline/copy_frame.png\")\nconst REMOVE_TEXTURE := preload(\"res://assets/graphics/misc/close.png\")\n\nvar export_tileset_rows := 1\nvar _selected_tileset: TileSetCustom\nvar _current_tileset_name_filter: String\n\n@onready var size_value_label := $VBoxContainer/GridContainer/SizeValueLabel as Label\n@onready var color_mode_value_label := $VBoxContainer/GridContainer/ColorModeValueLabel as Label\n@onready var frames_value_label := $VBoxContainer/GridContainer/FramesValueLabel as Label\n@onready var layers_value_label := $VBoxContainer/GridContainer/LayersValueLabel as Label\n@onready var name_line_edit := $VBoxContainer/GridContainer/NameLineEdit as LineEdit\n@onready var user_data_text_edit := $VBoxContainer/GridContainer/UserDataTextEdit as TextEdit\n@onready var tilesets_container := $VBoxContainer/TilesetsContainer as VBoxContainer\n@onready var tilesets_list := %TilesetsList as Tree\n@onready var filter_by_name_edit := %FilterByNameEdit as LineEdit\n@onready\nvar export_tileset_confirmation_dialog: ConfirmationDialog = $ExportTilesetConfirmationDialog\n@onready var export_tileset_file_dialog: FileDialog = $ExportTilesetFileDialog\n\n\nfunc _ready() -> void:\n\texport_tileset_file_dialog.use_native_dialog = Global.use_native_file_dialogs\n\n\nfunc _on_visibility_changed() -> void:\n\tGlobal.dialog_open(visible)\n\tsize_value_label.text = str(Global.current_project.size)\n\tif Global.current_project.get_image_format() == Image.FORMAT_RGBA8:\n\t\tcolor_mode_value_label.text = \"RGBA8\"\n\telse:\n\t\tcolor_mode_value_label.text = str(Global.current_project.get_image_format())\n\tif Global.current_project.is_indexed():\n\t\tcolor_mode_value_label.text += \" (%s)\" % tr(\"Indexed\")\n\tframes_value_label.text = str(Global.current_project.frames.size())\n\tlayers_value_label.text = str(Global.current_project.layers.size())\n\tname_line_edit.text = Global.current_project.name\n\tuser_data_text_edit.text = Global.current_project.user_data\n\ttilesets_container.visible = Global.current_project.tilesets.size() > 0\n\tfilter_by_name_edit.text = \"\"\n\ttilesets_list.clear()\n\tvar root_item := tilesets_list.create_item()\n\tfor i in Global.current_project.tilesets.size():\n\t\t_create_tileset_tree_item(i, root_item)\n\n\nfunc _on_filter_by_name_line_edit_text_changed(new_text: String) -> void:\n\t_current_tileset_name_filter = new_text.strip_edges()\n\tapply_search_filters()\n\n\nfunc apply_search_filters() -> void:\n\tvar tree_item: TreeItem = tilesets_list.get_root().get_first_child()\n\tvar results: Array[TreeItem] = []\n\tvar should_reset := _current_tileset_name_filter.is_empty()\n\twhile tree_item != null:  # Loop through Tree's TreeItems.\n\t\tif not _current_tileset_name_filter.is_empty():\n\t\t\tif _current_tileset_name_filter.is_subsequence_ofn(tree_item.get_text(0)):\n\t\t\t\tresults.append(tree_item)\n\t\tif should_reset:\n\t\t\ttree_item.visible = true\n\t\telse:\n\t\t\ttree_item.collapsed = true\n\t\t\ttree_item.visible = false\n\t\ttree_item = tree_item.get_next_in_tree()\n\tvar expanded: Array[TreeItem] = []\n\tfor result in results:\n\t\tvar item: TreeItem = result\n\t\twhile item.get_parent():\n\t\t\tif expanded.has(item):\n\t\t\t\tbreak\n\t\t\titem.collapsed = false\n\t\t\titem.visible = true\n\t\t\texpanded.append(item)\n\t\t\titem = item.get_parent()\n\tif not results.is_empty():\n\t\ttilesets_list.scroll_to_item(results[0])\n\n\nfunc _create_tileset_tree_item(i: int, root_item: TreeItem) -> void:\n\tvar tileset := Global.current_project.tilesets[i]\n\tvar tree_item := tilesets_list.create_item(root_item)\n\tvar item_text := tileset.get_text_info(i)\n\tvar using_layers := tileset.find_using_layers(Global.current_project)\n\tfor tile: TileSetCustom.Tile in tileset.tiles:\n\t\tvar preview: Image = tile.image\n\t\tif not preview.get_used_rect().size == Vector2i.ZERO:\n\t\t\tvar icon := Image.create_from_data(\n\t\t\t\tpreview.get_width(),\n\t\t\t\tpreview.get_height(),\n\t\t\t\tpreview.has_mipmaps(),\n\t\t\t\tpreview.get_format(),\n\t\t\t\tpreview.get_data()\n\t\t\t)\n\t\t\tvar tex := ImageTexture.create_from_image(icon)\n\t\t\ttex.set_size_override(Vector2i(32, 32))\n\t\t\ttree_item.set_icon(0, tex)\n\t\t\tbreak\n\tfor j in using_layers.size():\n\t\tif j == 0:\n\t\t\titem_text += \"\\n┖╴ Used by: \"\n\t\titem_text += using_layers[j].name\n\t\tif j != using_layers.size() - 1:\n\t\t\titem_text += \", \"\n\ttree_item.set_text(0, item_text)\n\ttree_item.set_metadata(0, i)\n\ttree_item.add_button(0, SAVE_TEXTURE, -1, false, \"Export\")\n\ttree_item.add_button(0, DUPLICATE_TEXTURE, -1, false, \"Duplicate\")\n\ttree_item.add_button(0, REMOVE_TEXTURE, -1, using_layers.size() > 0, \"Delete\")\n\n\nfunc _on_tilesets_list_item_activated() -> void:\n\tvar item := tilesets_list.get_selected()\n\tif item:\n\t\t# Setting it to editable here shows line edit only on double click\n\t\titem.set_editable(0, true)\n\t\tvar tileset_index: int = item.get_metadata(0)\n\t\tvar tileset: TileSetCustom = Global.current_project.tilesets.get(tileset_index)\n\t\tif tileset:\n\t\t\t# track old name for undo\n\t\t\titem.set_text(0, tileset.name)\n\t\ttilesets_list.edit_selected()\n\n\nfunc _on_tilesets_list_item_edited() -> void:\n\tvar item := tilesets_list.get_edited()\n\tif item:\n\t\tvar tileset_index: int = item.get_metadata(0)\n\t\tvar tileset: TileSetCustom = Global.current_project.tilesets.get(tileset_index)\n\t\tif tileset:\n\t\t\tvar project := Global.current_project\n\t\t\tvar old_name := tileset.name\n\t\t\tvar new_name = item.get_text(0).strip_edges()\n\t\t\tif new_name.is_empty():\n\t\t\t\tnew_name = old_name\n\t\t\titem.set_editable(0, false)\n\t\t\tproject.undo_redo.create_action(\"Rename tileset\")\n\t\t\tproject.undo_redo.add_do_property(tileset, \"name\", new_name)\n\t\t\tproject.undo_redo.add_undo_property(tileset, \"name\", old_name)\n\t\t\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\t\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\t\t\tproject.undo_redo.commit_action()\n\n\t\t\t# Update the entry in the list\n\t\t\tvar item_text := tileset.get_text_info(tileset_index)\n\t\t\tvar using_layers := tileset.find_using_layers(Global.current_project)\n\t\t\tfor j in using_layers.size():\n\t\t\t\tif j == 0:\n\t\t\t\t\titem_text += \"\\n┖╴ Used by: \"\n\t\t\t\titem_text += using_layers[j].name\n\t\t\t\tif j != using_layers.size() - 1:\n\t\t\t\t\titem_text += \", \"\n\t\t\titem.set_text(0, item_text)\n\n\nfunc _on_name_line_edit_text_changed(new_text: String) -> void:\n\tnew_text = new_text.strip_edges()\n\tif new_text.is_empty() or !new_text.is_valid_filename():\n\t\tnew_text = tr(\"untitled\")\n\tGlobal.current_project.name = new_text\n\n\nfunc _on_user_data_text_edit_text_changed() -> void:\n\tGlobal.current_project.user_data = user_data_text_edit.text\n\n\nfunc _on_tilesets_list_button_clicked(item: TreeItem, column: int, id: int, _mbi: int) -> void:\n\tvar tileset_index: int = item.get_metadata(column)\n\tvar project := Global.current_project\n\tvar tileset: TileSetCustom\n\tif tileset_index < project.tilesets.size():\n\t\ttileset = project.tilesets[tileset_index]\n\telse:\n\t\ttileset = project.tilesets[-1]\n\t_selected_tileset = tileset\n\tif id == 0:  # Export\n\t\texport_tileset_confirmation_dialog.popup_centered_clamped()\n\telif id == 1:  # Duplicate\n\t\tvar new_tileset := tileset.duplicate()\n\t\tfor i in range(1, tileset.tiles.size()):\n\t\t\tvar tile := tileset.tiles[i]\n\t\t\tvar new_image := Image.new()\n\t\t\tnew_image.copy_from(tile.image)\n\t\t\tnew_tileset.add_tile(new_image, null)\n\t\tproject.undo_redo.create_action(\"Duplicate tileset\")\n\t\tproject.undo_redo.add_do_method(func(): project.tilesets.append(new_tileset))\n\t\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\tproject.undo_redo.add_undo_method(func(): project.tilesets.erase(new_tileset))\n\t\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\t\tproject.undo_redo.commit_action()\n\t\t_create_tileset_tree_item(item.get_parent().get_child_count(), item.get_parent())\n\telif id == 2:  # Delete\n\t\tif tileset.find_using_layers(project).size() > 0:\n\t\t\treturn\n\t\tproject.undo_redo.create_action(\"Delete tileset\")\n\t\tproject.undo_redo.add_do_method(func(): project.tilesets.erase(tileset))\n\t\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\tproject.undo_redo.add_undo_method(func(): project.tilesets.insert(tileset_index, tileset))\n\t\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\t\tproject.undo_redo.commit_action()\n\t\titem.free()\n\n\nfunc _on_rows_value_slider_value_changed(value: float) -> void:\n\texport_tileset_rows = value\n\n\nfunc _on_export_tileset_confirmation_dialog_confirmed() -> void:\n\texport_tileset_file_dialog.popup_centered_clamped()\n\n\nfunc _on_export_tileset_file_dialog_file_selected(path: String) -> void:\n\tif not is_instance_valid(_selected_tileset):\n\t\treturn\n\tmatch path.get_extension().to_lower():\n\t\t\"png\":\n\t\t\tvar image := _selected_tileset.create_image_atlas(export_tileset_rows)\n\t\t\tif is_instance_valid(image) and not image.is_empty():\n\t\t\t\timage.save_png(path)\n\t\t\"tres\":\n\t\t\tvar godot_tileset := _selected_tileset.create_godot_tileset(export_tileset_rows)\n\t\t\tResourceSaver.save(godot_tileset, path)\n"
  },
  {
    "path": "src/UI/Dialogs/ProjectProperties.gd.uid",
    "content": "uid://dy4j3c4fws8m\n"
  },
  {
    "path": "src/UI/Dialogs/ProjectProperties.tscn",
    "content": "[gd_scene format=3 uid=\"uid://dnjcs2l1ri38n\"]\n\n[ext_resource type=\"Script\" uid=\"uid://dy4j3c4fws8m\" path=\"res://src/UI/Dialogs/ProjectProperties.gd\" id=\"1_0n4uc\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://fvgl2kl81v0h\" path=\"res://assets/graphics/misc/search.svg\" id=\"2_h0qhi\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"3_70jg7\"]\n\n[node name=\"ProjectProperties\" type=\"AcceptDialog\" unique_id=1726090796]\noversampling_override = 1.0\ntitle = \"Project Properties\"\nposition = Vector2i(0, 36)\nsize = Vector2i(300, 360)\nscript = ExtResource(\"1_0n4uc\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=1487218891]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 292.0\noffset_bottom = 280.0\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"VBoxContainer\" unique_id=208381282]\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"SizeLabel\" type=\"Label\" parent=\"VBoxContainer/GridContainer\" unique_id=1304371628]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Size:\"\n\n[node name=\"SizeValueLabel\" type=\"Label\" parent=\"VBoxContainer/GridContainer\" unique_id=1983908098]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"64x64\"\n\n[node name=\"ColorModeLabel\" type=\"Label\" parent=\"VBoxContainer/GridContainer\" unique_id=4576633]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Color mode:\"\n\n[node name=\"ColorModeValueLabel\" type=\"Label\" parent=\"VBoxContainer/GridContainer\" unique_id=26883061]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"RGBA8\"\n\n[node name=\"FramesLabel\" type=\"Label\" parent=\"VBoxContainer/GridContainer\" unique_id=1641278413]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Frames:\"\n\n[node name=\"FramesValueLabel\" type=\"Label\" parent=\"VBoxContainer/GridContainer\" unique_id=787909465]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"1\"\n\n[node name=\"LayersLabel\" type=\"Label\" parent=\"VBoxContainer/GridContainer\" unique_id=534638043]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Layers:\"\n\n[node name=\"LayersValueLabel\" type=\"Label\" parent=\"VBoxContainer/GridContainer\" unique_id=1187052610]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"1\"\n\n[node name=\"NameLabel\" type=\"Label\" parent=\"VBoxContainer/GridContainer\" unique_id=342871802]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Name:\"\n\n[node name=\"NameLineEdit\" type=\"LineEdit\" parent=\"VBoxContainer/GridContainer\" unique_id=792931128]\nlayout_mode = 2\nplaceholder_text = \"Enter name... (Default \\\"untitled\\\")\"\n\n[node name=\"UserDataLabel\" type=\"Label\" parent=\"VBoxContainer/GridContainer\" unique_id=844849061]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 0\ntext = \"User data:\"\n\n[node name=\"UserDataTextEdit\" type=\"TextEdit\" parent=\"VBoxContainer/GridContainer\" unique_id=371155840]\nlayout_mode = 2\nsize_flags_horizontal = 3\nscroll_fit_content_height = true\n\n[node name=\"TilesetsContainer\" type=\"VBoxContainer\" parent=\"VBoxContainer\" unique_id=2103412727]\nvisible = false\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"TilesetsHeader\" type=\"HBoxContainer\" parent=\"VBoxContainer/TilesetsContainer\" unique_id=321783819]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"VBoxContainer/TilesetsContainer/TilesetsHeader\" unique_id=503743780]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Tilesets\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"VBoxContainer/TilesetsContainer/TilesetsHeader\" unique_id=1646335172]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"FilterByNameEdit\" type=\"LineEdit\" parent=\"VBoxContainer/TilesetsContainer\" unique_id=190896135]\nunique_name_in_owner = true\nlayout_mode = 2\nplaceholder_text = \"Filter by name\"\nright_icon = ExtResource(\"2_h0qhi\")\n\n[node name=\"PanelContainer\" type=\"PanelContainer\" parent=\"VBoxContainer/TilesetsContainer\" unique_id=105788820]\nself_modulate = Color(0.6, 0.6, 0.6, 1)\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"TilesetsList\" type=\"Tree\" parent=\"VBoxContainer/TilesetsContainer/PanelContainer\" unique_id=493988161]\nunique_name_in_owner = true\ntexture_filter = 1\nlayout_mode = 2\nsize_flags_vertical = 3\nhide_root = true\n\n[node name=\"ExportTilesetConfirmationDialog\" type=\"ConfirmationDialog\" parent=\".\" unique_id=92423122]\noversampling_override = 1.0\nok_button_text = \"Export\"\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"ExportTilesetConfirmationDialog\" unique_id=1820814272]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 192.0\noffset_bottom = 51.0\ncolumns = 2\n\n[node name=\"RowsLabel\" type=\"Label\" parent=\"ExportTilesetConfirmationDialog/GridContainer\" unique_id=1596238876]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Rows:\"\n\n[node name=\"RowsValueSlider\" type=\"TextureProgressBar\" parent=\"ExportTilesetConfirmationDialog/GridContainer\" unique_id=1034217444]\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nmax_value = 16.0\nvalue = 1.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"3_70jg7\")\nmetadata/_custom_type_script = \"uid://tfdhqto6j5j0\"\n\n[node name=\"ExportTilesetFileDialog\" type=\"FileDialog\" parent=\".\" unique_id=720414622 groups=[\"FileDialogs\"]]\naccess = 2\nfilters = PackedStringArray(\"*.png ; PNG Image\", \"*.tres ; Godot TileSet Resource File\")\n\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_visibility_changed\"]\n[connection signal=\"text_changed\" from=\"VBoxContainer/GridContainer/NameLineEdit\" to=\".\" method=\"_on_name_line_edit_text_changed\"]\n[connection signal=\"text_changed\" from=\"VBoxContainer/GridContainer/UserDataTextEdit\" to=\".\" method=\"_on_user_data_text_edit_text_changed\"]\n[connection signal=\"text_changed\" from=\"VBoxContainer/TilesetsContainer/FilterByNameEdit\" to=\".\" method=\"_on_filter_by_name_line_edit_text_changed\"]\n[connection signal=\"button_clicked\" from=\"VBoxContainer/TilesetsContainer/PanelContainer/TilesetsList\" to=\".\" method=\"_on_tilesets_list_button_clicked\"]\n[connection signal=\"item_activated\" from=\"VBoxContainer/TilesetsContainer/PanelContainer/TilesetsList\" to=\".\" method=\"_on_tilesets_list_item_activated\"]\n[connection signal=\"item_edited\" from=\"VBoxContainer/TilesetsContainer/PanelContainer/TilesetsList\" to=\".\" method=\"_on_tilesets_list_item_edited\"]\n[connection signal=\"confirmed\" from=\"ExportTilesetConfirmationDialog\" to=\".\" method=\"_on_export_tileset_confirmation_dialog_confirmed\"]\n[connection signal=\"value_changed\" from=\"ExportTilesetConfirmationDialog/GridContainer/RowsValueSlider\" to=\".\" method=\"_on_rows_value_slider_value_changed\"]\n[connection signal=\"file_selected\" from=\"ExportTilesetFileDialog\" to=\".\" method=\"_on_export_tileset_file_dialog_file_selected\"]\n"
  },
  {
    "path": "src/UI/Dialogs/SaveSprite.tscn",
    "content": "[gd_scene format=3 uid=\"uid://d4euwo633u33b\"]\n\n[node name=\"SaveSprite\" type=\"FileDialog\" unique_id=1047877696 groups=[\"FileDialogs\"]]\nsize = Vector2i(675, 400)\nok_button_text = \"Save\"\naccess = 2\nfilters = PackedStringArray(\"*.pxo ; Pixelorama Project\")\noption_count = 1\noption_0/name = \"Include blended images\"\n"
  },
  {
    "path": "src/UI/Dialogs/SaveSpriteHTML5.tscn",
    "content": "[gd_scene format=3 uid=\"uid://cltlo2whtiejd\"]\n\n[node name=\"SaveSpriteHTML5\" type=\"ConfirmationDialog\" unique_id=12184517]\nsize = Vector2i(205, 111)\nok_button_text = \"Save\"\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=1470543369]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 197.0\noffset_bottom = 66.0\n\n[node name=\"FileNameContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer\" unique_id=1777114866]\nlayout_mode = 2\n\n[node name=\"FileNameLabel\" type=\"Label\" parent=\"VBoxContainer/FileNameContainer\" unique_id=331032616]\nlayout_mode = 2\ntext = \"File Name:\"\n\n[node name=\"FileNameLineEdit\" type=\"LineEdit\" parent=\"VBoxContainer/FileNameContainer\" unique_id=1069527347]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 4\ntext = \"untitled\"\n\n[node name=\"IncludeBlended\" type=\"CheckBox\" parent=\"VBoxContainer\" unique_id=681212419]\nunique_name_in_owner = true\nlayout_mode = 2\ntooltip_text = \"If enabled, the final blended images are also being stored in the pxo, for each frame.\nThis makes the pxo file larger and is useful for importing by third-party software\nor CLI exporting. Loading pxo files in Pixelorama does not need this option to be enabled.\"\nmouse_default_cursor_shape = 2\ntext = \"Include blended images\"\n"
  },
  {
    "path": "src/UI/Dialogs/SplashDialog.gd",
    "content": "extends AcceptDialog\n\nvar artworks: Array[Artwork] = [\n\tArtwork.new(\n\t\tpreload(\"res://assets/graphics/splash_screen/artworks/roroto.png\"),\n\t\t\"Roroto Sic\",\n\t\t\"https://linktr.ee/Roroto_Sic\",\n\t\tColor.WHITE,\n\t\t\"Licensed under CC-BY-NC-ND, https://creativecommons.org/licenses/by-nc-nd/4.0/\"\n\t),\n\tArtwork.new(\n\t\tpreload(\"res://assets/graphics/splash_screen/artworks/bearsaidno.png\"),\n\t\t\"BearSaidNo\",\n\t\t\"https://bearsaidno.neocities.org/\",\n\t\tColor.WHITE,\n\t\t\"Licensed under MIT\"\n\t),\n]\n\nvar chosen_artwork: int\n@onready var open_last_btn := %OpenLastBtn as Button\n@onready var art_by_label := %ArtistName as Button\n@onready var splash_art_texturerect := %SplashArt as TextureRect\n@onready var version_text := %VersionText as TextureRect\n@onready var show_on_startup := %ShowOnStartup as CheckBox\n\n\nclass Artwork:\n\tvar artwork: Texture2D\n\tvar artist_name := \"\"\n\tvar artist_link := \"\"\n\tvar text_modulation: Color\n\tvar license_information := \"\"\n\n\tfunc _init(\n\t\t_artwork: Texture2D,\n\t\t_artist_name := \"\",\n\t\t_artist_link := \"\",\n\t\t_text_modulation := Color.WHITE,\n\t\t_license_information := \"\"\n\t) -> void:\n\t\tartwork = _artwork\n\t\tartist_name = _artist_name\n\t\tartist_link = _artist_link\n\t\ttext_modulation = _text_modulation\n\t\tlicense_information = _license_information\n\n\nfunc _ready() -> void:\n\tget_ok_button().visible = false\n\tif OS.get_name() == \"Web\":\n\t\topen_last_btn.visible = false\n\n\nfunc _process(_delta: float) -> void:\n\tsplash_art_texturerect.queue_redraw()\n\n\nfunc _on_SplashDialog_about_to_show() -> void:\n\tif Global.config_cache.has_section_key(\"preferences\", \"startup\"):\n\t\tshow_on_startup.button_pressed = not Global.config_cache.get_value(\"preferences\", \"startup\")\n\ttitle = \"Pixelorama\" + \" \" + Global.current_version\n\n\tif not artworks.is_empty():\n\t\tchosen_artwork = randi() % artworks.size()\n\t\tchange_artwork(0)\n\telse:\n\t\t$Contents/SplashArt/ChangeArtBtnLeft.visible = false\n\t\t$Contents/SplashArt/ChangeArtBtnRight.visible = false\n\n\nfunc change_artwork(direction: int) -> void:\n\tchosen_artwork = wrapi(chosen_artwork + direction, 0, artworks.size())\n\tsplash_art_texturerect.texture = artworks[chosen_artwork].artwork\n\tset_process(artworks[chosen_artwork].artwork is AnimatedTexture)\n\tart_by_label.text = tr(\"Art by: %s\") % artworks[chosen_artwork].artist_name\n\tart_by_label.tooltip_text = artworks[chosen_artwork].artist_link\n\tversion_text.modulate = artworks[chosen_artwork].text_modulation\n\t# Set an ambient\n\tvar ambient = GradientTexture2D.new()\n\tambient.gradient = Gradient.new()\n\tambient.width = 100\n\tambient.height = 100\n\tvar col_a = splash_art_texturerect.texture.get_image().get_pixel(0, 0)\n\tvar col_b = Color(col_a.r, col_a.g, col_a.b, 0.5)\n\tambient.gradient.set_color(0, col_a)\n\tambient.gradient.set_color(1, col_b)\n\tambient.fill_from = Vector2(0.5, 0.5)\n\tambient.fill = GradientTexture2D.FILL_RADIAL\n\t%Ambient.texture = ambient\n\n\nfunc _on_ArtCredits_pressed() -> void:\n\tif not artworks[chosen_artwork].artist_link.is_empty():\n\t\tOS.shell_open(artworks[chosen_artwork].artist_link)\n\n\nfunc _on_ShowOnStartup_toggled(pressed: bool) -> void:\n\tGlobal.config_cache.set_value(\"preferences\", \"startup\", not pressed)\n\tGlobal.config_cache.save(Global.CONFIG_PATH)\n\n\nfunc _on_PatreonButton_pressed() -> void:\n\tOS.shell_open(\"https://www.patreon.com/OramaInteractive\")\n\n\nfunc _on_GithubButton_pressed() -> void:\n\tOS.shell_open(\"https://github.com/Orama-Interactive/Pixelorama\")\n\n\nfunc _on_DiscordButton_pressed() -> void:\n\tOS.shell_open(\"https://discord.gg/GTMtr8s\")\n\n\nfunc _on_NewBtn_pressed() -> void:\n\tvisible = false\n\tGlobal.top_menu_container.file_menu_id_pressed(0)\n\n\nfunc _on_OpenBtn_pressed() -> void:\n\tvisible = false\n\tGlobal.top_menu_container.file_menu_id_pressed(1)\n\n\nfunc _on_OpenLastBtn_pressed() -> void:\n\tvisible = false\n\tGlobal.top_menu_container.file_menu_id_pressed(2)\n\n\nfunc _on_ChangeArtBtnLeft_pressed() -> void:\n\tchange_artwork(-1)\n\n\nfunc _on_ChangeArtBtnRight_pressed() -> void:\n\tchange_artwork(1)\n\n\nfunc _on_visibility_changed() -> void:\n\tif not visible:\n\t\tGlobal.dialog_open(false)\n\t\tset_process(false)\n"
  },
  {
    "path": "src/UI/Dialogs/SplashDialog.gd.uid",
    "content": "uid://qtjfdid13awe\n"
  },
  {
    "path": "src/UI/Dialogs/SplashDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bnpb1aip3wdvw\"]\n\n[ext_resource type=\"Script\" uid=\"uid://qtjfdid13awe\" path=\"res://src/UI/Dialogs/SplashDialog.gd\" id=\"1\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://d1oxrkwndy5fi\" path=\"res://assets/graphics/timeline/move_arrow.png\" id=\"3\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://b47r0c6auaqk6\" path=\"res://assets/graphics/icons/icon.png\" id=\"4\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dywk5yd41twch\" path=\"res://assets/graphics/splash_screen/version.png\" id=\"5\"]\n[ext_resource type=\"FontFile\" uid=\"uid://cvc4lelf6hl7x\" path=\"res://assets/fonts/Roboto-Regular.ttf\" id=\"5_rbw0r\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://du0tqirgve32c\" path=\"res://assets/graphics/splash_screen/discord.png\" id=\"9\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bnhuqq1ucdlw2\" path=\"res://assets/graphics/splash_screen/github_32px.png\" id=\"10\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://c587jfnyu84ro\" path=\"res://assets/graphics/splash_screen/patreon_mark_white.png\" id=\"11\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"2\"]\nbg_color = Color(1, 1, 1, 0)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"5\"]\nbg_color = Color(0.6, 0.6, 0.6, 0)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"4\"]\nbg_color = Color(0.6, 0.6, 0.6, 0)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"3\"]\nbg_color = Color(0.6, 0.6, 0.6, 0)\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"StyleBoxEmpty_rbw0r\"]\n\n[sub_resource type=\"FontVariation\" id=\"FontVariation_jexkq\"]\nbase_font = ExtResource(\"5_rbw0r\")\nvariation_embolden = 0.6\n\n[sub_resource type=\"LabelSettings\" id=\"LabelSettings_ehexy\"]\nfont = SubResource(\"FontVariation_jexkq\")\nfont_size = 20\n\n[sub_resource type=\"LabelSettings\" id=\"LabelSettings_rbw0r\"]\nline_spacing = 0.0\nfont_size = 20\n\n[sub_resource type=\"LabelSettings\" id=\"LabelSettings_uckow\"]\nline_spacing = 0.0\nfont = SubResource(\"FontVariation_jexkq\")\n\n[sub_resource type=\"LabelSettings\" id=\"LabelSettings_32icc\"]\nfont_size = 12\n\n[node name=\"SplashDialog\" type=\"AcceptDialog\" unique_id=2039648546]\ncanvas_item_default_texture_filter = 0\noversampling_override = 1.0\nposition = Vector2i(0, 36)\nsize = Vector2i(758, 650)\nscript = ExtResource(\"1\")\n\n[node name=\"Contents\" type=\"VBoxContainer\" parent=\".\" unique_id=770203629]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 8.0\noffset_top = 8.0\noffset_right = -8.0\noffset_bottom = -49.0\ntheme_override_constants/separation = 8\n\n[node name=\"SplashArt\" type=\"TextureRect\" parent=\"Contents\" unique_id=847139683]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_vertical = 3\nexpand_mode = 1\nstretch_mode = 5\n\n[node name=\"ChangeArtBtnLeft\" type=\"Button\" parent=\"Contents/SplashArt\" unique_id=1616739246 groups=[\"UIButtons\"]]\nlayout_direction = 2\nlayout_mode = 0\nanchor_top = 0.5\nanchor_bottom = 0.5\noffset_left = 5.0\noffset_top = -10.0\noffset_right = 30.0\noffset_bottom = 10.0\nmouse_default_cursor_shape = 2\ntheme_override_styles/normal = SubResource(\"2\")\ntheme_override_styles/pressed = SubResource(\"5\")\ntheme_override_styles/hover = SubResource(\"4\")\ntheme_override_styles/focus = SubResource(\"5\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"Contents/SplashArt/ChangeArtBtnLeft\" unique_id=624534181]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -10.0\noffset_top = -7.0\noffset_right = 10.0\noffset_bottom = 7.0\ntexture = ExtResource(\"3\")\nexpand_mode = 1\nflip_h = true\n\n[node name=\"ChangeArtBtnRight\" type=\"Button\" parent=\"Contents/SplashArt\" unique_id=1637809233 groups=[\"UIButtons\"]]\nlayout_direction = 2\nlayout_mode = 0\nanchor_left = 1.0\nanchor_top = 0.5\nanchor_right = 1.0\nanchor_bottom = 0.5\noffset_left = -30.0\noffset_top = -10.0\noffset_right = -5.0\noffset_bottom = 10.0\nmouse_default_cursor_shape = 2\ntheme_override_styles/normal = SubResource(\"3\")\ntheme_override_styles/pressed = SubResource(\"5\")\ntheme_override_styles/hover = SubResource(\"5\")\ntheme_override_styles/focus = SubResource(\"5\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"Contents/SplashArt/ChangeArtBtnRight\" unique_id=1965713160]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -10.0\noffset_top = -7.0\noffset_right = 10.0\noffset_bottom = 7.0\ntexture = ExtResource(\"3\")\nexpand_mode = 1\n\n[node name=\"Overlay\" type=\"HBoxContainer\" parent=\"Contents/SplashArt\" unique_id=156260189]\nlayout_mode = 0\noffset_left = 16.0\noffset_top = 16.0\noffset_right = 128.0\noffset_bottom = 40.0\n\n[node name=\"PixeloramaIcon\" type=\"TextureRect\" parent=\"Contents/SplashArt/Overlay\" unique_id=769467738]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"4\")\nexpand_mode = 1\n\n[node name=\"VersionText\" type=\"TextureRect\" parent=\"Contents/SplashArt/Overlay\" unique_id=56130030]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(84, 12)\nlayout_mode = 2\nsize_flags_vertical = 4\ntexture = ExtResource(\"5\")\nstretch_mode = 4\n\n[node name=\"Ambient\" type=\"TextureRect\" parent=\"Contents/SplashArt\" unique_id=308070042]\nunique_name_in_owner = true\nshow_behind_parent = true\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nmouse_filter = 2\n\n[node name=\"ArtBy\" type=\"HBoxContainer\" parent=\"Contents\" unique_id=165411725]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"SpacerControl\" type=\"Control\" parent=\"Contents/ArtBy\" unique_id=539103603]\ncustom_minimum_size = Vector2(4, 0)\nlayout_mode = 2\n\n[node name=\"ArtistName\" type=\"Button\" parent=\"Contents/ArtBy\" unique_id=1270407984]\nunique_name_in_owner = true\nlayout_mode = 2\ntooltip_text = \"https://twitter.com/WishdreamStar\"\nmouse_default_cursor_shape = 2\ntext = \"Art by: %s\"\nflat = true\n\n[node name=\"MarginContainer\" type=\"MarginContainer\" parent=\"Contents\" unique_id=27154966]\nlayout_mode = 2\ntheme_override_constants/margin_left = 4\ntheme_override_constants/margin_right = 4\n\n[node name=\"ButtonsPatronsLogos\" type=\"HBoxContainer\" parent=\"Contents/MarginContainer\" unique_id=122713185]\nlayout_mode = 2\n\n[node name=\"Buttons\" type=\"VBoxContainer\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos\" unique_id=637432920]\ncustom_minimum_size = Vector2(290, 0)\nlayout_mode = 2\nsize_flags_vertical = 0\ntheme_override_constants/separation = 10\n\n[node name=\"NewBtn\" type=\"Button\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos/Buttons\" unique_id=1308783991]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"New\"\n\n[node name=\"OpenBtn\" type=\"Button\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos/Buttons\" unique_id=129651851]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Open\"\n\n[node name=\"OpenLastBtn\" type=\"Button\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos/Buttons\" unique_id=740398061]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Open Last Project\"\n\n[node name=\"VSeparator\" type=\"VSeparator\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos\" unique_id=853318799]\nlayout_mode = 2\n\n[node name=\"Info\" type=\"HBoxContainer\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos\" unique_id=1674992536]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"SpacerControl\" type=\"Control\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos/Info\" unique_id=2037059274]\ncustom_minimum_size = Vector2(6, 0)\nlayout_mode = 2\n\n[node name=\"PatronContainer\" type=\"VBoxContainer\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos/Info\" unique_id=693078769]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"PlatinumSponsor\" type=\"Label\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos/Info/PatronContainer\" unique_id=1305732871]\ncustom_minimum_size = Vector2(230, 0)\nlayout_mode = 2\ntheme_override_styles/normal = SubResource(\"StyleBoxEmpty_rbw0r\")\ntext = \"Platinum Sponsor:\"\nlabel_settings = SubResource(\"LabelSettings_ehexy\")\n\n[node name=\"PlatinumSponsor2\" type=\"Label\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos/Info/PatronContainer\" unique_id=1248665888]\ncustom_minimum_size = Vector2(230, 0)\nlayout_mode = 2\ntheme_override_styles/normal = SubResource(\"StyleBoxEmpty_rbw0r\")\ntext = \"Astropulse\n\"\nlabel_settings = SubResource(\"LabelSettings_rbw0r\")\n\n[node name=\"PatronsLabel\" type=\"Label\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos/Info/PatronContainer\" unique_id=1956038801]\ncustom_minimum_size = Vector2(230, 0)\nlayout_mode = 2\ntheme_override_styles/normal = SubResource(\"StyleBoxEmpty_rbw0r\")\ntext = \"Patrons:\"\nlabel_settings = SubResource(\"LabelSettings_uckow\")\n\n[node name=\"PatronsLabel2\" type=\"Label\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos/Info/PatronContainer\" unique_id=225994837]\ncustom_minimum_size = Vector2(230, 0)\nlayout_mode = 2\ntheme_override_styles/normal = SubResource(\"StyleBoxEmpty_rbw0r\")\ntext = \"Hugo Locurcio\"\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos/Info\" unique_id=908129450]\nlayout_mode = 2\nsize_flags_vertical = 3\ntheme_override_constants/separation = 5\nalignment = 2\n\n[node name=\"Branding\" type=\"HBoxContainer\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos/Info/VBoxContainer\" unique_id=170192114]\nlayout_mode = 2\nsize_flags_vertical = 3\nalignment = 2\n\n[node name=\"Links\" type=\"VBoxContainer\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos/Info/VBoxContainer/Branding\" unique_id=526362078]\nlayout_mode = 2\n\n[node name=\"GithubButton\" type=\"TextureButton\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos/Info/VBoxContainer/Branding/Links\" unique_id=1962599931]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntexture_normal = ExtResource(\"10\")\n\n[node name=\"DiscordButton\" type=\"TextureButton\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos/Info/VBoxContainer/Branding/Links\" unique_id=1042177320]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntexture_normal = ExtResource(\"9\")\n\n[node name=\"PatreonButton\" type=\"TextureButton\" parent=\"Contents/MarginContainer/ButtonsPatronsLogos/Info/VBoxContainer/Branding/Links\" unique_id=3672648]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntexture_normal = ExtResource(\"11\")\n\n[node name=\"CopyrightLabel\" type=\"Label\" parent=\"Contents\" unique_id=104128794]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"©2019-present by Orama Interactive and contributors\"\nlabel_settings = SubResource(\"LabelSettings_32icc\")\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"Contents/CopyrightLabel\" unique_id=458300439]\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_top = -6.0\noffset_right = -2.0\noffset_bottom = 5.0\nsize_flags_vertical = 0\ntheme_override_constants/separation = 0\nalignment = 2\n\n[node name=\"ShowOnStartup\" type=\"CheckBox\" parent=\"Contents/CopyrightLabel/HBoxContainer\" unique_id=1058130992]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_vertical = 0\nmouse_default_cursor_shape = 2\ntext = \"Don't show again\"\n\n[connection signal=\"about_to_popup\" from=\".\" to=\".\" method=\"_on_SplashDialog_about_to_show\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_visibility_changed\"]\n[connection signal=\"pressed\" from=\"Contents/SplashArt/ChangeArtBtnLeft\" to=\".\" method=\"_on_ChangeArtBtnLeft_pressed\"]\n[connection signal=\"pressed\" from=\"Contents/SplashArt/ChangeArtBtnRight\" to=\".\" method=\"_on_ChangeArtBtnRight_pressed\"]\n[connection signal=\"pressed\" from=\"Contents/ArtBy/ArtistName\" to=\".\" method=\"_on_ArtCredits_pressed\"]\n[connection signal=\"pressed\" from=\"Contents/MarginContainer/ButtonsPatronsLogos/Buttons/NewBtn\" to=\".\" method=\"_on_NewBtn_pressed\"]\n[connection signal=\"pressed\" from=\"Contents/MarginContainer/ButtonsPatronsLogos/Buttons/OpenBtn\" to=\".\" method=\"_on_OpenBtn_pressed\"]\n[connection signal=\"pressed\" from=\"Contents/MarginContainer/ButtonsPatronsLogos/Buttons/OpenLastBtn\" to=\".\" method=\"_on_OpenLastBtn_pressed\"]\n[connection signal=\"pressed\" from=\"Contents/MarginContainer/ButtonsPatronsLogos/Info/VBoxContainer/Branding/Links/GithubButton\" to=\".\" method=\"_on_GithubButton_pressed\"]\n[connection signal=\"pressed\" from=\"Contents/MarginContainer/ButtonsPatronsLogos/Info/VBoxContainer/Branding/Links/DiscordButton\" to=\".\" method=\"_on_DiscordButton_pressed\"]\n[connection signal=\"pressed\" from=\"Contents/MarginContainer/ButtonsPatronsLogos/Info/VBoxContainer/Branding/Links/PatreonButton\" to=\".\" method=\"_on_PatreonButton_pressed\"]\n[connection signal=\"toggled\" from=\"Contents/CopyrightLabel/HBoxContainer/ShowOnStartup\" to=\".\" method=\"_on_ShowOnStartup_toggled\"]\n"
  },
  {
    "path": "src/UI/Dialogs/TileModeOffsetsDialog.gd",
    "content": "extends ConfirmationDialog\n\n@onready var x_basis_label: Label = $VBoxContainer/OptionsContainer/XBasisLabel\n@onready var x_basis: ValueSliderV2 = $VBoxContainer/OptionsContainer/XBasis\n@onready var y_basis_label: Label = $VBoxContainer/OptionsContainer/YBasisLabel\n@onready var y_basis: ValueSliderV2 = $VBoxContainer/OptionsContainer/YBasis\n@onready var preview_rect: Control = $VBoxContainer/AspectRatioContainer/Preview\n@onready var tile_mode: Node2D = $VBoxContainer/AspectRatioContainer/Preview/TileMode\n@onready var masking: CheckButton = $VBoxContainer/OptionsContainer/Masking\n\n\nfunc _ready() -> void:\n\tGlobal.project_about_to_switch.connect(_project_about_to_switch)\n\tGlobal.project_switched.connect(_project_switched)\n\tGlobal.project_switched.connect(change_mask)\n\tGlobal.cel_switched.connect(change_mask)\n\tawait get_tree().process_frame\n\tchange_mask()\n\n\nfunc _project_about_to_switch() -> void:\n\tif Global.current_project.resized.is_connected(change_mask):\n\t\tGlobal.current_project.resized.disconnect(change_mask)\n\n\nfunc _project_switched() -> void:\n\tif not Global.current_project.resized.is_connected(change_mask):\n\t\tGlobal.current_project.resized.connect(change_mask)\n\n\nfunc _on_TileModeOffsetsDialog_about_to_show() -> void:\n\ttile_mode.draw_center = true\n\ttile_mode.tiles = Tiles.new(Global.current_project.size)\n\ttile_mode.tiles.mode = Tiles.MODE.BOTH\n\tif Global.current_project.tiles.mode != Tiles.MODE.NONE:\n\t\ttile_mode.tiles.mode = Global.current_project.tiles.mode\n\tif Global.current_project.tiles.mode != Tiles.MODE.NONE:\n\t\ttile_mode.tiles.mode = Global.current_project.tiles.mode\n\ttile_mode.tiles.x_basis = Global.current_project.tiles.x_basis\n\ttile_mode.tiles.y_basis = Global.current_project.tiles.y_basis\n\tx_basis.value = tile_mode.tiles.x_basis\n\ty_basis.value = tile_mode.tiles.y_basis\n\n\t_show_options()\n\tif Global.current_project.tiles.mode == Tiles.MODE.X_AXIS:\n\t\ty_basis.visible = false\n\t\ty_basis_label.visible = false\n\telif Global.current_project.tiles.mode == Tiles.MODE.Y_AXIS:\n\t\tx_basis.visible = false\n\t\tx_basis_label.visible = false\n\n\tupdate_preview()\n\n\nfunc _show_options() -> void:\n\tx_basis.visible = true\n\ty_basis.visible = true\n\tx_basis_label.visible = true\n\ty_basis_label.visible = true\n\n\nfunc _on_TileModeOffsetsDialog_confirmed() -> void:\n\tGlobal.current_project.tiles.x_basis = tile_mode.tiles.x_basis\n\tGlobal.current_project.tiles.y_basis = tile_mode.tiles.y_basis\n\tGlobal.canvas.tile_mode.queue_redraw()\n\tGlobal.transparent_checker.update_rect()\n\n\nfunc _on_x_basis_value_changed(value: Vector2) -> void:\n\ttile_mode.tiles.x_basis = value\n\tupdate_preview()\n\n\nfunc _on_y_basis_value_changed(value: Vector2) -> void:\n\ttile_mode.tiles.y_basis = value\n\tupdate_preview()\n\n\nfunc update_preview() -> void:\n\tvar bounding_rect: Rect2 = tile_mode.tiles.get_bounding_rect()\n\tvar offset := -bounding_rect.position\n\tvar axis_scale := preview_rect.size / bounding_rect.size\n\tvar min_scale: Vector2 = preview_rect.size / (tile_mode.tiles.tile_size * 3.0)\n\tvar scale: float = [axis_scale.x, axis_scale.y, min_scale.x, min_scale.y].min()\n\tvar t := Transform2D.IDENTITY.translated(offset).scaled(Vector2(scale, scale))\n\tvar transformed_bounding_rect: Rect2 = t * (bounding_rect)\n\tvar centering_offset := (preview_rect.size - transformed_bounding_rect.size) / 2.0\n\tt = t.translated(centering_offset / scale)\n\ttile_mode.transform = t\n\ttile_mode.queue_redraw()\n\tpreview_rect.get_node(\"TransparentChecker\").size = preview_rect.size\n\n\nfunc _on_TileModeOffsetsDialog_visibility_changed() -> void:\n\tGlobal.dialog_open(false)\n\n\nfunc _on_TileModeOffsetsDialog_size_changed() -> void:\n\tif tile_mode:\n\t\tupdate_preview()\n\n\nfunc _on_reset_pressed() -> void:\n\ttile_mode.tiles.x_basis = Vector2i(Global.current_project.size.x, 0)\n\ttile_mode.tiles.y_basis = Vector2i(0, Global.current_project.size.y)\n\tx_basis.value = tile_mode.tiles.x_basis\n\ty_basis.value = tile_mode.tiles.y_basis\n\tupdate_preview()\n\n\nfunc _on_isometric_pressed() -> void:\n\ttile_mode.tiles.x_basis = Global.current_project.size / 2\n\ttile_mode.tiles.x_basis.y *= -1\n\ttile_mode.tiles.y_basis = Global.current_project.size / 2\n\tx_basis.value = tile_mode.tiles.x_basis\n\ty_basis.value = tile_mode.tiles.y_basis\n\tupdate_preview()\n\n\nfunc _on_hexagonal_pointy_top_pressed() -> void:\n\tvar half := Global.current_project.size / 2\n\ttile_mode.tiles.x_basis.x = half.x\n\t@warning_ignore(\"integer_division\")\n\ttile_mode.tiles.x_basis.y = (Global.current_project.size.y + half.y) / 2\n\ttile_mode.tiles.y_basis = tile_mode.tiles.x_basis\n\ttile_mode.tiles.y_basis.y *= -1\n\tx_basis.value = tile_mode.tiles.x_basis\n\ty_basis.value = tile_mode.tiles.y_basis\n\tupdate_preview()\n\n\nfunc _on_hexagonal_flat_top_pressed() -> void:\n\tvar half := Global.current_project.size / 2\n\t@warning_ignore(\"integer_division\")\n\ttile_mode.tiles.x_basis.x = (Global.current_project.size.x + half.x) / 2\n\ttile_mode.tiles.x_basis.y = half.y\n\ttile_mode.tiles.y_basis = tile_mode.tiles.x_basis\n\ttile_mode.tiles.y_basis.y *= -1\n\tx_basis.value = tile_mode.tiles.x_basis\n\ty_basis.value = tile_mode.tiles.y_basis\n\tupdate_preview()\n\n\nfunc change_mask() -> void:\n\tif Global.current_project.tiles.mode == Tiles.MODE.NONE:\n\t\treturn\n\tvar frame_idx := Global.current_project.current_frame\n\tvar current_frame := Global.current_project.frames[frame_idx]\n\tvar tiles := Global.current_project.tiles\n\tvar tiles_size := tiles.tile_size\n\tvar image := Image.create(tiles_size.x, tiles_size.y, false, Image.FORMAT_RGBA8)\n\tDrawingAlgos.blend_layers(image, current_frame)\n\tif image.get_used_rect().size == Vector2i.ZERO or not masking.button_pressed:\n\t\ttiles.reset_mask()\n\telse:\n\t\tload_mask(image)\n\n\nfunc load_mask(image: Image) -> void:\n\tGlobal.current_project.tiles.tile_mask = image\n\tGlobal.current_project.tiles.has_mask = true\n\n\nfunc _on_Masking_toggled(_button_pressed: bool) -> void:\n\tchange_mask()\n"
  },
  {
    "path": "src/UI/Dialogs/TileModeOffsetsDialog.gd.uid",
    "content": "uid://cwchdmm147r0e\n"
  },
  {
    "path": "src/UI/Dialogs/TileModeOffsetsDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://c0nuukjakmai2\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://3pmb60gpst7b\" path=\"res://src/UI/Nodes/TransparentChecker.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://c6o3x53fp0qcj\" path=\"res://src/UI/Canvas/TileMode.gd\" id=\"2\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bbnqcxa20a5a5\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\" id=\"2_ul2eq\"]\n[ext_resource type=\"Script\" uid=\"uid://cwchdmm147r0e\" path=\"res://src/UI/Dialogs/TileModeOffsetsDialog.gd\" id=\"3\"]\n[ext_resource type=\"Shader\" uid=\"uid://c50kmfvf635kb\" path=\"res://src/Shaders/TransparentChecker.gdshader\" id=\"5_kas5s\"]\n\n[sub_resource type=\"CanvasItemMaterial\" id=\"1\"]\nblend_mode = 4\n\n[sub_resource type=\"ShaderMaterial\" id=\"ShaderMaterial_fojx5\"]\nshader = ExtResource(\"5_kas5s\")\nshader_parameter/size = 10.0\nshader_parameter/alpha = 1.0\nshader_parameter/color1 = Color(0.7, 0.7, 0.7, 1)\nshader_parameter/color2 = Color(1, 1, 1, 1)\nshader_parameter/offset = Vector2(0, 0)\nshader_parameter/scale = Vector2(0, 0)\nshader_parameter/rect_size = Vector2(200, 200)\nshader_parameter/follow_movement = false\nshader_parameter/follow_scale = false\n\n[node name=\"TileModeOffsetsDialog\" type=\"ConfirmationDialog\" unique_id=1946085161]\ncanvas_item_default_texture_filter = 0\ntitle = \"Tile Mode Offsets\"\nposition = Vector2i(0, 36)\nsize = Vector2i(600, 536)\nscript = ExtResource(\"3\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=1384051848]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 592.0\noffset_bottom = 487.0\n\n[node name=\"TileModeOffsets\" type=\"Label\" parent=\"VBoxContainer\" unique_id=573880438]\nlayout_mode = 2\ntext = \"Tile Mode Offsets\"\n\n[node name=\"OptionsContainer\" type=\"GridContainer\" parent=\"VBoxContainer\" unique_id=791997678]\nlayout_mode = 2\ntheme_override_constants/h_separation = 2\ntheme_override_constants/v_separation = 4\ncolumns = 2\n\n[node name=\"XBasisLabel\" type=\"Label\" parent=\"VBoxContainer/OptionsContainer\" unique_id=1915692134]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"X-basis:\"\n\n[node name=\"XBasis\" parent=\"VBoxContainer/OptionsContainer\" unique_id=599009842 instance=ExtResource(\"2_ul2eq\")]\nlayout_mode = 2\nsize_flags_horizontal = 3\nallow_greater = true\nallow_lesser = true\nsuffix_x = \"px\"\nsuffix_y = \"px\"\n\n[node name=\"YBasisLabel\" type=\"Label\" parent=\"VBoxContainer/OptionsContainer\" unique_id=1001606608]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Y-basis:\"\n\n[node name=\"YBasis\" parent=\"VBoxContainer/OptionsContainer\" unique_id=1156313384 instance=ExtResource(\"2_ul2eq\")]\nlayout_mode = 2\nsize_flags_horizontal = 3\nallow_greater = true\nallow_lesser = true\nsuffix_x = \"px\"\nsuffix_y = \"px\"\n\n[node name=\"MaskingLabel\" type=\"Label\" parent=\"VBoxContainer/OptionsContainer\" unique_id=1731481801]\nlayout_mode = 2\ntext = \"Masking:\"\n\n[node name=\"Masking\" type=\"CheckButton\" parent=\"VBoxContainer/OptionsContainer\" unique_id=1570770726]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 0\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer\" unique_id=1063873817]\nlayout_mode = 2\n\n[node name=\"Reset\" type=\"Button\" parent=\"VBoxContainer/HBoxContainer\" unique_id=1276991834]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"Default\"\n\n[node name=\"Isometric\" type=\"Button\" parent=\"VBoxContainer/HBoxContainer\" unique_id=947693603]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"Isometric\"\n\n[node name=\"HexagonalPointyTop\" type=\"Button\" parent=\"VBoxContainer/HBoxContainer\" unique_id=605272800]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"Hexagonal (pointy-top)\"\n\n[node name=\"HexagonalFlatTop\" type=\"Button\" parent=\"VBoxContainer/HBoxContainer\" unique_id=506195176]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"Hexagonal (flat-top)\"\n\n[node name=\"AspectRatioContainer\" type=\"AspectRatioContainer\" parent=\"VBoxContainer\" unique_id=2041981438]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"Preview\" type=\"Control\" parent=\"VBoxContainer/AspectRatioContainer\" unique_id=36828862]\ncustom_minimum_size = Vector2(200, 200)\nlayout_mode = 2\n\n[node name=\"TileMode\" type=\"Node2D\" parent=\"VBoxContainer/AspectRatioContainer/Preview\" unique_id=30894503]\nmaterial = SubResource(\"1\")\nscript = ExtResource(\"2\")\n\n[node name=\"TransparentChecker\" parent=\"VBoxContainer/AspectRatioContainer/Preview\" unique_id=1641053658 instance=ExtResource(\"1\")]\nshow_behind_parent = true\nmaterial = SubResource(\"ShaderMaterial_fojx5\")\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\n\n[connection signal=\"about_to_popup\" from=\".\" to=\".\" method=\"_on_TileModeOffsetsDialog_about_to_show\"]\n[connection signal=\"confirmed\" from=\".\" to=\".\" method=\"_on_TileModeOffsetsDialog_confirmed\"]\n[connection signal=\"size_changed\" from=\".\" to=\".\" method=\"_on_TileModeOffsetsDialog_size_changed\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_TileModeOffsetsDialog_visibility_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/OptionsContainer/XBasis\" to=\".\" method=\"_on_x_basis_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/OptionsContainer/YBasis\" to=\".\" method=\"_on_y_basis_value_changed\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/OptionsContainer/Masking\" to=\".\" method=\"_on_Masking_toggled\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/HBoxContainer/Reset\" to=\".\" method=\"_on_reset_pressed\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/HBoxContainer/Isometric\" to=\".\" method=\"_on_isometric_pressed\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/HBoxContainer/HexagonalPointyTop\" to=\".\" method=\"_on_hexagonal_pointy_top_pressed\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/HBoxContainer/HexagonalFlatTop\" to=\".\" method=\"_on_hexagonal_flat_top_pressed\"]\n"
  },
  {
    "path": "src/UI/Dialogs/WindowOpacityDialog.gd",
    "content": "extends AcceptDialog\n\nvar main_canvas := Global.control.find_child(\"Main Canvas\", true, false)\n\n@onready var slider := $VBoxContainer/ValueSlider as ValueSlider\n@onready var fullscreen_warning := $VBoxContainer/FullscreenWarning as Label\n\n\nfunc _ready() -> void:\n\tif main_canvas is FloatingWindow:  # If it's shifted to a window then get the content.\n\t\tmain_canvas = main_canvas.window_content\n\tawait get_tree().process_frame\n\tGlobal.control.main_ui.sort_children.connect(_recalculate_opacity)\n\n\nfunc _on_WindowOpacityDialog_about_to_show() -> void:\n\tvar canvas_window = main_canvas.get_window()\n\tcanvas_window.transparent = true\n\tcanvas_window.transparent_bg = true\n\tslider.editable = not is_fullscreen()\n\tfullscreen_warning.visible = not slider.editable\n\n\nfunc _recalculate_opacity() -> void:\n\tset_window_opacity(slider.value)\n\n\nfunc set_window_opacity(value: float) -> void:\n\tif is_fullscreen():\n\t\tvalue = 100.0\n\t\tslider.value = value\n\tvalue = value / 100.0\n\t# Find the TabContainer that has the Main Canvas panel.\n\tfor container: Control in Global.control.main_ui._panel_container.get_children():\n\t\tif container is TabContainer:\n\t\t\tvar center := container.get_rect().get_center()\n\t\t\tif main_canvas.get_rect().has_point(center):\n\t\t\t\tif main_canvas.get_window() != get_tree().root:\n\t\t\t\t\t# In case we converted to window while trransparency was active.\n\t\t\t\t\tcontainer.self_modulate.a = 1.0\n\t\t\t\telse:\n\t\t\t\t\tcontainer.self_modulate.a = value\n\tGlobal.transparent_checker.update_transparency(value)\n\n\nfunc _on_visibility_changed() -> void:\n\tGlobal.dialog_open(false)\n\n\nfunc is_fullscreen() -> bool:\n\treturn (\n\t\t(get_parent().get_window().mode == Window.MODE_EXCLUSIVE_FULLSCREEN)\n\t\tor (get_parent().get_window().mode == Window.MODE_FULLSCREEN)\n\t)\n"
  },
  {
    "path": "src/UI/Dialogs/WindowOpacityDialog.gd.uid",
    "content": "uid://deh1wh1vs8haa\n"
  },
  {
    "path": "src/UI/Dialogs/WindowOpacityDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bcdt0pa7rojy5\"]\n\n[ext_resource type=\"Script\" uid=\"uid://deh1wh1vs8haa\" path=\"res://src/UI/Dialogs/WindowOpacityDialog.gd\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"2\"]\n\n[node name=\"WindowOpacityDialog\" type=\"AcceptDialog\" unique_id=1916827298]\ntitle = \"Window Opacity\"\nscript = ExtResource(\"1\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=869750404]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 8.0\noffset_top = 8.0\noffset_right = -8.0\noffset_bottom = -36.0\n\n[node name=\"ValueSlider\" parent=\"VBoxContainer\" unique_id=861080601 instance=ExtResource(\"2\")]\nlayout_mode = 2\nvalue = 100.0\n\n[node name=\"FullscreenWarning\" type=\"Label\" parent=\"VBoxContainer\" unique_id=1907242302]\nlayout_mode = 2\ntheme_override_colors/font_color = Color(1, 0.364706, 0.364706, 1)\ntext = \"Window opacity does not work on fullscreen mode.\"\n\n[connection signal=\"about_to_popup\" from=\".\" to=\".\" method=\"_on_WindowOpacityDialog_about_to_show\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_visibility_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/ValueSlider\" to=\".\" method=\"set_window_opacity\"]\n"
  },
  {
    "path": "src/UI/ExtensionExplorer/Entry/ExtensionEntry.gd",
    "content": "class_name ExtensionEntry\nextends PanelContainer\n\nvar sha256 := \"\"\nvar thumbnail := \"\"\nvar download_link := \"\"\nvar readme_link := \"\"\nvar download_path := \"\"\nvar tags := PackedStringArray()\nvar is_update := false  ## An update instead of download\n\n# node references used in this script\n@onready var extensions := Global.control.get_node(\"Extensions\") as Extensions\n@onready var ext_name := %ExtensionName as Label\n@onready var ext_discription := %ExtensionDescription as TextEdit\n@onready var small_picture := %Picture as TextureButton\n@onready var enlarged_picture := %Enlarged as TextureRect\n@onready var request_delay := %RequestDelay as Timer\n@onready var thumbnail_request := %ImageRequest as HTTPRequest\n@onready var extension_downloader := %DownloadRequest as HTTPRequest\n@onready var down_button := %DownloadButton as Button\n@onready var readme_button := %ReadmeButton as Button\n@onready var progress_bar := %ProgressBar as ProgressBar\n@onready var done_label := %Done as Label\n@onready var alert_dialog := %Alert as AcceptDialog\n\n\nfunc set_info(info: Dictionary, extension_path: String) -> void:\n\tif \"name\" in info.keys() and \"version\" in info.keys():\n\t\text_name.text = str(info[\"name\"], \"-v\", info[\"version\"])\n\t\t# check for updates\n\t\tif typeof(info[\"version\"]) == TYPE_STRING:\n\t\t\tinfo[\"version\"] = str_to_var(info[\"version\"])\n\t\tchange_button_if_updatable(info[\"name\"], info[\"version\"])\n\t\t# Setting a path extension will be \"temporarily\" downloaded to before install\n\t\tvar temp_dir = extension_path.path_join(\"Download\")\n\t\tif not DirAccess.dir_exists_absolute(temp_dir):\n\t\t\tDirAccess.make_dir_recursive_absolute(temp_dir)\n\t\tdownload_path = temp_dir.path_join(info[\"name\"] + \".pck\")\n\tif \"sha256\" in info.keys():\n\t\tsha256 = info[\"sha256\"]\n\tif \"description\" in info.keys():\n\t\text_discription.text = info[\"description\"]\n\t\text_discription.tooltip_text = ext_discription.text\n\tif \"readme\" in info.keys():\n\t\treadme_link = info[\"readme\"]\n\t\treadme_link = readme_link.strip_edges()\n\t\tif readme_link != \"\":\n\t\t\treadme_button.visible = true\n\t\t\treadme_button.tooltip_text = readme_link\n\tif \"thumbnail\" in info.keys():\n\t\tthumbnail = info[\"thumbnail\"]\n\tif \"download_link\" in info.keys():\n\t\tdownload_link = info[\"download_link\"]\n\tif \"tags\" in info.keys():\n\t\ttags.append_array(info[\"tags\"])\n\n\t# Adding a tiny delay to prevent sending bulk requests\n\trequest_delay.wait_time = randf() * 2\n\trequest_delay.start()\n\n\nfunc _on_RequestDelay_timeout() -> void:\n\trequest_delay.queue_free()  # node no longer needed\n\tif not thumbnail.is_empty():\n\t\tthumbnail_request.request(thumbnail)  # image\n\n\nfunc _on_ImageRequest_request_completed(\n\t_result: int, _response_code: int, _headers: PackedStringArray, body: PackedByteArray\n) -> void:\n\t# Update the received image\n\tthumbnail_request.queue_free()\n\tvar image := OpenSave.load_image_from_buffer(body)\n\tif image.is_empty():\n\t\treturn\n\tvar texture := ImageTexture.create_from_image(image)\n\tsmall_picture.texture_normal = texture\n\tsmall_picture.pressed.connect(enlarge_thumbnail.bind(texture))\n\n\nfunc _on_readme_button_pressed() -> void:\n\tOS.shell_open(readme_link)\n\n\nfunc _on_Download_pressed() -> void:\n\tdown_button.disabled = true\n\textension_downloader.download_file = download_path\n\textension_downloader.request(download_link)\n\tprepare_progress()\n\n\n## Called after the extension downloader has finished its job\nfunc _on_DownloadRequest_request_completed(\n\tresult: int, _response_code: int, _headers: PackedStringArray, _body: PackedByteArray\n) -> void:\n\tif result == HTTPRequest.RESULT_SUCCESS:\n\t\tif FileAccess.get_sha256(download_path) == sha256:\n\t\t\t# Add extension\n\t\t\textensions.install_extension(download_path)\n\t\t\tif is_update:\n\t\t\t\tis_update = false\n\t\t\tannounce_done(true)\n\t\telse:\n\t\t\t_show_error_message(\"Unable to download extension.\\nSHA256 mismatch\")\n\telse:\n\t\t_show_error_message(\n\t\t\tstr(\n\t\t\t\t\"Unable to download extension.\\nHttp Code: \",\n\t\t\t\tresult,\n\t\t\t\t\" (\",\n\t\t\t\terror_string(result),\n\t\t\t\t\")\"\n\t\t\t)\n\t\t)\n\tDirAccess.remove_absolute(download_path)\n\n\nfunc _show_error_message(message: String) -> void:\n\talert_dialog.get_node(\"Text\").text = message.c_unescape()\n\talert_dialog.popup_centered_clamped()\n\tannounce_done(false)\n\n\n## Updates the entry node's UI\nfunc announce_done(success: bool) -> void:\n\tclose_progress()\n\tdown_button.disabled = false\n\tif success:\n\t\tdone_label.visible = true\n\t\tdown_button.text = \"Redownload\"\n\t\tdone_label.get_node(\"DoneDelay\").start()\n\n\n## Returns true if entry contains ALL tags in tag_array\nfunc tags_match(tag_array: PackedStringArray) -> bool:\n\tif tags.size() > 0:\n\t\tfor tag: String in tag_array:\n\t\t\tif !tag in tags:\n\t\t\t\treturn false\n\t\treturn true\n\telse:\n\t\tif tag_array.size() > 0:\n\t\t\treturn false\n\t\treturn true\n\n\n## Updates the entry node's UI if it has an update available\nfunc change_button_if_updatable(extension_name: String, new_version: float) -> void:\n\tfor extension in extensions.extensions.keys():\n\t\tif extensions.extensions[extension].file_name == extension_name:\n\t\t\tvar old_version = str_to_var(extensions.extensions[extension].version)\n\t\t\tif typeof(old_version) == TYPE_FLOAT:\n\t\t\t\tif new_version > old_version:\n\t\t\t\t\tdown_button.text = \"Update\"\n\t\t\t\t\tis_update = true\n\t\t\t\telif new_version == old_version:\n\t\t\t\t\tdown_button.text = \"Redownload\"\n\n\n## Show an enlarged version of the thumbnail\nfunc enlarge_thumbnail(texture: ImageTexture) -> void:\n\tenlarged_picture.texture = texture\n\tenlarged_picture.get_parent().popup_centered_clamped()\n\n\n## A beautification function that hides the \"Done\" label bar after some time\nfunc _on_DoneDelay_timeout() -> void:\n\tdone_label.visible = false\n\n\n## Progress bar method\nfunc prepare_progress() -> void:\n\tprogress_bar.visible = true\n\tprogress_bar.value = 0\n\tprogress_bar.get_node(\"ProgressTimer\").start()\n\n\n## Progress bar method\nfunc update_progress() -> void:\n\tvar down := extension_downloader.get_downloaded_bytes()\n\tvar total := extension_downloader.get_body_size()\n\tprogress_bar.value = (float(down) / float(total)) * 100.0\n\n\n## Progress bar method\nfunc close_progress() -> void:\n\tprogress_bar.visible = false\n\tprogress_bar.get_node(\"ProgressTimer\").stop()\n\n\n## Progress bar method\nfunc _on_ProgressTimer_timeout() -> void:\n\tupdate_progress()\n\n\nfunc _manage_enlarged_thumbnail_close() -> void:\n\tenlarged_picture.get_parent().hide()\n\n\nfunc _manage_alert_close() -> void:\n\talert_dialog.hide()\n"
  },
  {
    "path": "src/UI/ExtensionExplorer/Entry/ExtensionEntry.gd.uid",
    "content": "uid://h7jyiytmkdki\n"
  },
  {
    "path": "src/UI/ExtensionExplorer/Entry/ExtensionEntry.tscn",
    "content": "[gd_scene format=3 uid=\"uid://dnjpemuehkxsn\"]\n\n[ext_resource type=\"Script\" uid=\"uid://h7jyiytmkdki\" path=\"res://src/UI/ExtensionExplorer/Entry/ExtensionEntry.gd\" id=\"1_3no3v\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://b47r0c6auaqk6\" path=\"res://assets/graphics/icons/icon.png\" id=\"2_qhsve\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://3v78ojo0pkfg\" path=\"res://assets/graphics/misc/external_link.svg\" id=\"3_ujt8o\"]\n\n[node name=\"ExtensionEntry\" type=\"PanelContainer\" unique_id=1881106896]\nself_modulate = Color(0.411765, 0.411765, 0.411765, 1)\ncustom_minimum_size = Vector2(300, 150)\noffset_right = 310.0\noffset_bottom = 150.0\nsize_flags_horizontal = 3\nmouse_filter = 1\nscript = ExtResource(\"1_3no3v\")\n\n[node name=\"MarginContainer\" type=\"MarginContainer\" parent=\".\" unique_id=1094394058]\nlayout_mode = 2\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"MarginContainer\" unique_id=96990676]\nlayout_mode = 2\n\n[node name=\"Picture\" type=\"TextureButton\" parent=\"MarginContainer/HBoxContainer\" unique_id=1476296285]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(120, 120)\nlayout_mode = 2\nmouse_filter = 1\nmouse_default_cursor_shape = 2\ntexture_normal = ExtResource(\"2_qhsve\")\nignore_texture_size = true\nstretch_mode = 5\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"MarginContainer/HBoxContainer\" unique_id=432585963]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"ExtensionName\" type=\"Label\" parent=\"MarginContainer/HBoxContainer/VBoxContainer\" unique_id=132603146]\nunique_name_in_owner = true\nlayout_mode = 2\ntext = \"Extension Name...\"\n\n[node name=\"ExtensionDescription\" type=\"TextEdit\" parent=\"MarginContainer/HBoxContainer/VBoxContainer\" unique_id=13459591]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_vertical = 3\nplaceholder_text = \"Description\"\neditable = false\nwrap_mode = 1\n\n[node name=\"Done\" type=\"Label\" parent=\"MarginContainer/HBoxContainer/VBoxContainer\" unique_id=879906378]\nunique_name_in_owner = true\nvisible = false\nself_modulate = Color(0.337255, 1, 0, 1)\nlayout_mode = 2\ntext = \"Downloaded successfully\"\n\n[node name=\"DoneDelay\" type=\"Timer\" parent=\"MarginContainer/HBoxContainer/VBoxContainer/Done\" unique_id=1972090002]\nwait_time = 2.0\n\n[node name=\"ProgressBar\" type=\"ProgressBar\" parent=\"MarginContainer/HBoxContainer/VBoxContainer\" unique_id=2136145404]\nunique_name_in_owner = true\nvisible = false\ncustom_minimum_size = Vector2(0, 20)\nlayout_mode = 2\n\n[node name=\"ProgressTimer\" type=\"Timer\" parent=\"MarginContainer/HBoxContainer/VBoxContainer/ProgressBar\" unique_id=3333731]\nwait_time = 0.1\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"MarginContainer/HBoxContainer/VBoxContainer\" unique_id=140065226]\nlayout_mode = 2\n\n[node name=\"DownloadButton\" type=\"Button\" parent=\"MarginContainer/HBoxContainer/VBoxContainer/HBoxContainer\" unique_id=199732654]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Download\"\n\n[node name=\"ReadmeButton\" type=\"Button\" parent=\"MarginContainer/HBoxContainer/VBoxContainer/HBoxContainer\" unique_id=1249978397]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\ntext = \"README\"\nicon = ExtResource(\"3_ujt8o\")\n\n[node name=\"RequestDelay\" type=\"Timer\" parent=\".\" unique_id=1930770207]\nunique_name_in_owner = true\none_shot = true\nautostart = true\n\n[node name=\"ImageRequest\" type=\"HTTPRequest\" parent=\".\" unique_id=2139344464]\nunique_name_in_owner = true\n\n[node name=\"DownloadRequest\" type=\"HTTPRequest\" parent=\".\" unique_id=775601248]\nunique_name_in_owner = true\n\n[node name=\"Alert\" type=\"AcceptDialog\" parent=\".\" unique_id=458474820]\nunique_name_in_owner = true\nsize = Vector2i(421, 106)\nalways_on_top = true\n\n[node name=\"Text\" type=\"Label\" parent=\"Alert\" unique_id=1527818396]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 8.0\noffset_top = 8.0\noffset_right = -8.0\noffset_bottom = -49.0\nhorizontal_alignment = 1\n\n[node name=\"EnlargedThumbnail\" type=\"Window\" parent=\".\" unique_id=834764916]\ntitle = \"Image\"\nposition = Vector2i(0, 36)\nsize = Vector2i(440, 360)\nvisible = false\ntransient = true\nexclusive = true\nalways_on_top = true\n\n[node name=\"Enlarged\" type=\"TextureRect\" parent=\"EnlargedThumbnail\" unique_id=946380148]\nunique_name_in_owner = true\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nexpand_mode = 1\nstretch_mode = 5\n\n[connection signal=\"timeout\" from=\"MarginContainer/HBoxContainer/VBoxContainer/Done/DoneDelay\" to=\".\" method=\"_on_DoneDelay_timeout\"]\n[connection signal=\"timeout\" from=\"MarginContainer/HBoxContainer/VBoxContainer/ProgressBar/ProgressTimer\" to=\".\" method=\"_on_ProgressTimer_timeout\"]\n[connection signal=\"pressed\" from=\"MarginContainer/HBoxContainer/VBoxContainer/HBoxContainer/DownloadButton\" to=\".\" method=\"_on_Download_pressed\"]\n[connection signal=\"pressed\" from=\"MarginContainer/HBoxContainer/VBoxContainer/HBoxContainer/ReadmeButton\" to=\".\" method=\"_on_readme_button_pressed\"]\n[connection signal=\"timeout\" from=\"RequestDelay\" to=\".\" method=\"_on_RequestDelay_timeout\"]\n[connection signal=\"request_completed\" from=\"ImageRequest\" to=\".\" method=\"_on_ImageRequest_request_completed\"]\n[connection signal=\"request_completed\" from=\"DownloadRequest\" to=\".\" method=\"_on_DownloadRequest_request_completed\"]\n[connection signal=\"close_requested\" from=\"Alert\" to=\".\" method=\"_manage_alert_close\"]\n[connection signal=\"focus_exited\" from=\"Alert\" to=\".\" method=\"_manage_alert_close\"]\n[connection signal=\"close_requested\" from=\"EnlargedThumbnail\" to=\".\" method=\"_manage_enlarged_thumbnail_close\"]\n[connection signal=\"focus_exited\" from=\"EnlargedThumbnail\" to=\".\" method=\"_manage_enlarged_thumbnail_close\"]\n"
  },
  {
    "path": "src/UI/ExtensionExplorer/ExtensionExplorer.gd",
    "content": "extends Window\n\n## Usage:\n## Change the \"STORE_NAME\" and \"STORE_LINK\"\n## Don't touch anything else\n\nconst STORE_NAME := \"Extension Explorer\"\n# gdlint: ignore=max-line-length\nconst STORE_LINK := \"https://raw.githubusercontent.com/Orama-Interactive/PixeloramaExtensionRepository/main/extension_repository.md\"\n## File that will contain information about extensions available for download\nconst STORE_INFORMATION_FILE := STORE_NAME + \".md\"\nconst EXTENSION_ENTRY_TSCN := preload(\"res://src/UI/ExtensionExplorer/Entry/ExtensionEntry.tscn\")\n\n# Variables placed here due to their frequent use\nvar _extension_path := ProjectSettings.globalize_path(Extensions.EXTENSIONS_PATH)\nvar _custom_links_remaining: int  ## Remaining custom links to be processed\nvar _redirects: Array[String]\nvar _faulty_custom_links: Array[String]\nvar _extension_name_sorter: PackedStringArray\n\n# node references used in this script\n@onready var content: VBoxContainer = $\"%Content\"\n@onready var store_info_downloader: HTTPRequest = %StoreInformationDownloader\n@onready var main_store_link: LineEdit = %MainStoreLink\n@onready var custom_store_links: VBoxContainer = %CustomStoreLinks\n@onready var search_manager: LineEdit = %SearchManager\n@onready var tab_container: TabContainer = %TabContainer\n@onready var progress_bar: ProgressBar = %ProgressBar\n@onready var update_timer: Timer = %UpdateTimer\n@onready var faulty_links_label: Label = %FaultyLinks\n@onready var custom_link_error: AcceptDialog = %ErrorCustom\n@onready var error_get_info: AcceptDialog = %Error\n\n\nfunc _ready() -> void:\n\t# Basic setup\n\tmain_store_link.text = STORE_LINK\n\t# tell the downloader where to download the repository information\n\tstore_info_downloader.download_file = _extension_path.path_join(STORE_INFORMATION_FILE)\n\n\nfunc _on_Store_about_to_show() -> void:\n\tfetch_repositories()\n\n\nfunc fetch_repositories() -> void:\n\t# Clear old tags\n\tsearch_manager.available_tags = PackedStringArray()\n\tfor tag in search_manager.tag_list.get_children():\n\t\ttag.queue_free()\n\t# Clear old entries\n\tfor entry in content.get_children():\n\t\tentry.queue_free()\n\t_faulty_custom_links.clear()\n\t_custom_links_remaining = custom_store_links.custom_links.size()\n\t_extension_name_sorter.clear()\n\tfetch_info(STORE_LINK)\n\n\nfunc _on_close_requested() -> void:\n\thide()\n\n\nfunc fetch_info(link: String) -> void:\n\tif _extension_path != \"\":  # Did everything went smoothly in _ready() function?\n\t\t# everything is ready, now request the repository information\n\t\t# so that available extensions could be displayed\n\t\tvar error := store_info_downloader.request(link)\n\t\tif error == OK:\n\t\t\tprepare_progress()\n\t\telse:\n\t\t\tprinterr(\"Unable to get info from remote repository.\")\n\t\t\terror_getting_info(error)\n\n\n## Gets called when the extension repository information has finished downloading.\nfunc _on_StoreInformation_request_completed(\n\tresult: int, _response_code: int, _headers: PackedStringArray, _body: PackedByteArray\n) -> void:\n\tif result == HTTPRequest.RESULT_SUCCESS:\n\t\tvar file_path := _extension_path.path_join(STORE_INFORMATION_FILE)\n\t\t# process the info contained in the file\n\t\tvar file := FileAccess.open(file_path, FileAccess.READ)\n\t\twhile not file.eof_reached():\n\t\t\tprocess_line(file.get_line())\n\t\tfile.close()\n\t\tDirAccess.remove_absolute(file_path)\n\t\t# Hide the progress bar because it's no longer required\n\t\tclose_progress()\n\telse:\n\t\tprinterr(\"Unable to get info from remote repository.\")\n\t\terror_getting_info(result)\n\n\nfunc close_progress() -> void:\n\tprogress_bar.get_parent().visible = false\n\ttab_container.visible = true\n\tupdate_timer.stop()\n\tif _redirects.size() > 0:\n\t\tvar next_link := _redirects.pop_front() as String\n\t\tfetch_info(next_link)\n\telse:\n\t\t# no more redirects, jump to the next store\n\t\t_custom_links_remaining -= 1\n\t\tif _custom_links_remaining >= 0:\n\t\t\tvar next_link: String = custom_store_links.custom_links[_custom_links_remaining]\n\t\t\tfetch_info(next_link)\n\t\telse:\n\t\t\tif _faulty_custom_links.size() > 0:  # manage custom faulty links\n\t\t\t\tfaulty_links_label.text = \"\"\n\t\t\t\tfor link in _faulty_custom_links:\n\t\t\t\t\tfaulty_links_label.text += str(link, \"\\n\")\n\t\t\t\tcustom_link_error.popup_centered_clamped()\n\n\n# Signal connected from Preferences.tscn\nfunc _on_explore_pressed() -> void:\n\tpopup_centered_clamped()\n\n\n## Function related to error dialog\nfunc _on_CopyCommand_pressed() -> void:\n\tDisplayServer.clipboard_set(\n\t\t\"sudo flatpak override com.orama_interactive.Pixelorama --share=network\"\n\t)\n\n\n## Adds a new extension entry to the \"content\"\nfunc add_entry(info: Dictionary) -> void:\n\tvar entry := EXTENSION_ENTRY_TSCN.instantiate()\n\tvar extension_name: String = info.get(\"name\", \"\")\n\t_extension_name_sorter.append(extension_name)\n\t_extension_name_sorter.sort()\n\tcontent.add_child(entry)\n\tcontent.move_child(entry, _extension_name_sorter.find(extension_name))\n\tentry.set_info(info, _extension_path)\n\tsearch_manager.add_new_tags(info.get(\"tags\", PackedStringArray()))\n\n\n## Gets called when data couldn't be fetched from remote repository\nfunc error_getting_info(result: int) -> void:\n\t# Shows a popup if error is from main link (i-e MainStore)\n\t# Popups for errors in custom_links are handled in close_progress()\n\tif _custom_links_remaining == custom_store_links.custom_links.size():\n\t\terror_get_info.popup_centered_clamped()\n\t\terror_get_info.title = error_string(result)\n\telse:\n\t\t_faulty_custom_links.append(custom_store_links.custom_links[_custom_links_remaining])\n\tclose_progress()\n\n\n## Progress bar method\nfunc prepare_progress() -> void:\n\tprogress_bar.get_parent().visible = true\n\ttab_container.visible = false\n\tprogress_bar.value = 0\n\tupdate_timer.start()\n\n\n## Progress bar method\nfunc update_progress() -> void:\n\tvar down := store_info_downloader.get_downloaded_bytes()\n\tvar total := store_info_downloader.get_body_size()\n\tprogress_bar.value = (float(down) / float(total)) * 100.0\n\n\n## Progress bar method\nfunc _on_UpdateTimer_timeout() -> void:\n\tupdate_progress()\n\n\n# DATA PROCESSORS\nfunc process_line(line: String) -> void:\n\t# If the line isn't a comment, we will check data type\n\tvar raw_data\n\tline = line.strip_edges()\n\t# Attempting to convert to a variable other than a string\n\tif not line.strip_edges().begins_with(\"#\"):  # This check prevents error Invalid color code: #\n\t\traw_data = str_to_var(line)\n\tif !raw_data:  # attempt failed, using it as string\n\t\traw_data = line\n\n\t# Determine action based on data type\n\tmatch typeof(raw_data):\n\t\tTYPE_ARRAY:\n\t\t\tvar extension_data: Dictionary = parse_extension_data(raw_data)\n\t\t\tadd_entry(extension_data)\n\t\tTYPE_STRING:\n\t\t\t# it's most probably a repository link\n\t\t\tvar link: String = raw_data.strip_edges()\n\t\t\tif !link in _redirects and link.begins_with(\"http\") and \"://\" in link:\n\t\t\t\t_redirects.append(link)\n\n\nfunc parse_extension_data(raw_data: Array) -> Dictionary:\n\tvar result := {}\n\t# Check for non-compulsory things if they exist\n\tfor item in raw_data:\n\t\tif typeof(item) == TYPE_ARRAY:\n\t\t\t# first array element should always be an identifier text type\n\t\t\tvar identifier = item.pop_front()\n\t\t\tif typeof(identifier) == TYPE_STRING and item.size() > 0:\n\t\t\t\tmatch identifier:\n\t\t\t\t\t\"name\":\n\t\t\t\t\t\tresult[\"name\"] = item[0]\n\t\t\t\t\t\"version\":\n\t\t\t\t\t\tresult[\"version\"] = item[0]\n\t\t\t\t\t\"sha256\":\n\t\t\t\t\t\tresult[\"sha256\"] = item[0]\n\t\t\t\t\t\"description\":\n\t\t\t\t\t\tresult[\"description\"] = item[0]\n\t\t\t\t\t\"readme\":\n\t\t\t\t\t\tresult[\"readme\"] = item[0]\n\t\t\t\t\t\"thumbnail\":\n\t\t\t\t\t\tresult[\"thumbnail\"] = item[0]\n\t\t\t\t\t\"download_link\":\n\t\t\t\t\t\tresult[\"download_link\"] = item[0]\n\t\t\t\t\t\"tags\":  # (this should remain as an array)\n\t\t\t\t\t\tvar tags: Array = item.map(\n\t\t\t\t\t\t\tfunc(element):\n\t\t\t\t\t\t\t\tif typeof(element) == TYPE_STRING:\n\t\t\t\t\t\t\t\t\treturn element.capitalize()\n\t\t\t\t\t\t)\n\t\t\t\t\t\tresult[\"tags\"] = tags\n\treturn result\n\n\nfunc _on_report_issue_pressed() -> void:\n\tOS.shell_open(\"https://github.com/Orama-Interactive/PixeloramaExtensionRepository/issues\")\n"
  },
  {
    "path": "src/UI/ExtensionExplorer/ExtensionExplorer.gd.uid",
    "content": "uid://3gweeb1iyr4l\n"
  },
  {
    "path": "src/UI/ExtensionExplorer/ExtensionExplorer.tscn",
    "content": "[gd_scene format=3 uid=\"uid://chy5d42l72crk\"]\n\n[ext_resource type=\"Script\" uid=\"uid://3gweeb1iyr4l\" path=\"res://src/UI/ExtensionExplorer/ExtensionExplorer.gd\" id=\"1_pwcwi\"]\n[ext_resource type=\"Script\" uid=\"uid://bax7ba3s0gq6a\" path=\"res://src/UI/ExtensionExplorer/Subscripts/SearchManager.gd\" id=\"2_uqsvm\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://3v78ojo0pkfg\" path=\"res://assets/graphics/misc/external_link.svg\" id=\"3_6lb58\"]\n[ext_resource type=\"Script\" uid=\"uid://nu4gcburux0v\" path=\"res://src/UI/ExtensionExplorer/Subscripts/CustomRepositoryLinks.gd\" id=\"3_dk1xf\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://d1urikaf1lxwl\" path=\"res://assets/graphics/timeline/new_frame.png\" id=\"4_ntl7p\"]\n\n[node name=\"ExtensionExplorer\" type=\"Window\" unique_id=566187874]\ntitle = \"Explore Online\"\nposition = Vector2i(0, 36)\nsize = Vector2i(760, 470)\nvisible = false\nwrap_controls = true\nexclusive = true\nalways_on_top = true\nscript = ExtResource(\"1_pwcwi\")\n\n[node name=\"TabContainer\" type=\"TabContainer\" parent=\".\" unique_id=1552507201]\nunique_name_in_owner = true\nclip_contents = true\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 7.0\noffset_top = 8.0\noffset_right = -7.0\noffset_bottom = -8.0\ncurrent_tab = 0\n\n[node name=\"Extension Explorer\" type=\"MarginContainer\" parent=\"TabContainer\" unique_id=838264733]\nlayout_mode = 2\nmetadata/_tab_index = 0\n\n[node name=\"StoreMainContainer\" type=\"HSplitContainer\" parent=\"TabContainer/Extension Explorer\" unique_id=1811375853]\nlayout_mode = 2\n\n[node name=\"Parameters\" type=\"VBoxContainer\" parent=\"TabContainer/Extension Explorer/StoreMainContainer\" unique_id=1136058535]\ncustom_minimum_size = Vector2(150, 0)\nlayout_mode = 2\n\n[node name=\"SearchManager\" type=\"LineEdit\" parent=\"TabContainer/Extension Explorer/StoreMainContainer/Parameters\" unique_id=668195234]\nunique_name_in_owner = true\nlayout_mode = 2\nplaceholder_text = \"Search...\"\nscript = ExtResource(\"2_uqsvm\")\n\n[node name=\"Header\" type=\"Label\" parent=\"TabContainer/Extension Explorer/StoreMainContainer/Parameters\" unique_id=985165587]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Tags:\"\n\n[node name=\"ScrollContainer\" type=\"ScrollContainer\" parent=\"TabContainer/Extension Explorer/StoreMainContainer/Parameters\" unique_id=2060533486]\nlayout_mode = 2\nsize_flags_vertical = 3\nhorizontal_scroll_mode = 0\n\n[node name=\"TagList\" type=\"VBoxContainer\" parent=\"TabContainer/Extension Explorer/StoreMainContainer/Parameters/ScrollContainer\" unique_id=1054309338]\nunique_name_in_owner = true\nlayout_mode = 2\nalignment = 1\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"TabContainer/Extension Explorer/StoreMainContainer\" unique_id=1977498893]\nlayout_mode = 2\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"TabContainer/Extension Explorer/StoreMainContainer/VBoxContainer\" unique_id=1309776449]\nlayout_mode = 2\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"TabContainer/Extension Explorer/StoreMainContainer/VBoxContainer/HBoxContainer\" unique_id=13956883]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"ReportIssue\" type=\"Button\" parent=\"TabContainer/Extension Explorer/StoreMainContainer/VBoxContainer/HBoxContainer\" unique_id=1389595315]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Report issue with an extension\"\nicon = ExtResource(\"3_6lb58\")\n\n[node name=\"ContentScrollContainer\" type=\"ScrollContainer\" parent=\"TabContainer/Extension Explorer/StoreMainContainer/VBoxContainer\" unique_id=1840091176]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"Content\" type=\"VBoxContainer\" parent=\"TabContainer/Extension Explorer/StoreMainContainer/VBoxContainer/ContentScrollContainer\" unique_id=67644364]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"Options\" type=\"MarginContainer\" parent=\"TabContainer\" unique_id=1515693093]\nvisible = false\nlayout_mode = 2\nmetadata/_tab_index = 1\n\n[node name=\"ScrollContainer\" type=\"ScrollContainer\" parent=\"TabContainer/Options\" unique_id=675443141]\nlayout_mode = 2\n\n[node name=\"CustomStoreLinks\" type=\"VBoxContainer\" parent=\"TabContainer/Options/ScrollContainer\" unique_id=388496557]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nscript = ExtResource(\"3_dk1xf\")\n\n[node name=\"Header\" type=\"Label\" parent=\"TabContainer/Options/ScrollContainer/CustomStoreLinks\" unique_id=859717412]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Repository links:\"\n\n[node name=\"MainStoreLink\" type=\"LineEdit\" parent=\"TabContainer/Options/ScrollContainer/CustomStoreLinks\" unique_id=1458991633]\nunique_name_in_owner = true\nlayout_mode = 2\neditable = false\n\n[node name=\"Links\" type=\"VBoxContainer\" parent=\"TabContainer/Options/ScrollContainer/CustomStoreLinks\" unique_id=381047335]\nlayout_mode = 2\n\n[node name=\"ButtonContainer\" type=\"HBoxContainer\" parent=\"TabContainer/Options/ScrollContainer/CustomStoreLinks\" unique_id=650590758]\nlayout_mode = 2\n\n[node name=\"Guide\" type=\"Button\" parent=\"TabContainer/Options/ScrollContainer/CustomStoreLinks/ButtonContainer\" unique_id=1559187190]\nvisible = false\nlayout_mode = 2\ntext = \"Guide to making a repository file\"\n\n[node name=\"NewLink\" type=\"Button\" parent=\"TabContainer/Options/ScrollContainer/CustomStoreLinks/ButtonContainer\" unique_id=1957883373]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nsize_flags_horizontal = 8\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TabContainer/Options/ScrollContainer/CustomStoreLinks/ButtonContainer/NewLink\" unique_id=153206581]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 5.0\noffset_top = 5.0\noffset_right = -5.0\noffset_bottom = -5.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"4_ntl7p\")\nstretch_mode = 5\n\n[node name=\"ProgressContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=1224669755]\nunique_name_in_owner = true\nvisible = false\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 51.0\noffset_top = 21.0\noffset_right = -37.0\noffset_bottom = -5.0\nalignment = 1\n\n[node name=\"ProgressBar\" type=\"ProgressBar\" parent=\"ProgressContainer\" unique_id=667431866]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(0, 20)\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"ProgressContainer\" unique_id=1625797705]\nlayout_mode = 2\ntext = \"Fetching data from remote repository.\nPlease wait.\"\nhorizontal_alignment = 1\n\n[node name=\"UpdateTimer\" type=\"Timer\" parent=\"ProgressContainer\" unique_id=1068676872]\nunique_name_in_owner = true\nwait_time = 0.1\n\n[node name=\"StoreInformationDownloader\" type=\"HTTPRequest\" parent=\".\" unique_id=1823062891]\nunique_name_in_owner = true\n\n[node name=\"Error\" type=\"AcceptDialog\" parent=\".\" unique_id=1754437895]\nunique_name_in_owner = true\nposition = Vector2i(0, 36)\nsize = Vector2i(511, 326)\nunresizable = true\nalways_on_top = true\npopup_window = true\n\n[node name=\"Content\" type=\"VBoxContainer\" parent=\"Error\" unique_id=443249857]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 8.0\noffset_top = 8.0\noffset_right = -8.0\noffset_bottom = -49.0\ngrow_horizontal = 2\ngrow_vertical = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"Error/Content\" unique_id=1811997562]\ncustom_minimum_size = Vector2(495, 180)\nlayout_mode = 2\ntext = \"Unable to get info from remote repository.\n\n- Make sure you are connected to the internet.\n- If you are using the Flatpak version of Pixelorama, you need to grant it permission to connect to the internet. To do that, you can run the following command on your terminal:\"\nautowrap_mode = 2\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"Error/Content\" unique_id=884813541]\nlayout_mode = 2\n\n[node name=\"LineEdit\" type=\"LineEdit\" parent=\"Error/Content/HBoxContainer\" unique_id=1777086647]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"sudo flatpak override com.orama_interactive.Pixelorama --share=network\"\neditable = false\n\n[node name=\"CopyCommand\" type=\"Button\" parent=\"Error/Content/HBoxContainer\" unique_id=946016318]\nlayout_mode = 2\ntext = \"Copy\"\n\n[node name=\"Label2\" type=\"Label\" parent=\"Error/Content\" unique_id=2079448320]\ncustom_minimum_size = Vector2(495, 50)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Alternatively, you can download Flatseal and set permissions for Flatpak apps there.\"\nautowrap_mode = 3\n\n[node name=\"ErrorCustom\" type=\"AcceptDialog\" parent=\".\" unique_id=1450592042]\nunique_name_in_owner = true\nposition = Vector2i(0, 36)\nsize = Vector2i(357, 110)\nalways_on_top = true\npopup_window = true\n\n[node name=\"Content\" type=\"VBoxContainer\" parent=\"ErrorCustom\" unique_id=1277869508]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 8.0\noffset_top = 8.0\noffset_right = -8.0\noffset_bottom = -49.0\n\n[node name=\"Label\" type=\"Label\" parent=\"ErrorCustom/Content\" unique_id=1155753648]\nlayout_mode = 2\ntext = \"Unable to get info from remote repository.\"\n\n[node name=\"FaultyLinks\" type=\"Label\" parent=\"ErrorCustom/Content\" unique_id=1996995262]\nunique_name_in_owner = true\nlayout_mode = 2\n\n[connection signal=\"about_to_popup\" from=\".\" to=\".\" method=\"_on_Store_about_to_show\"]\n[connection signal=\"close_requested\" from=\".\" to=\".\" method=\"_on_close_requested\"]\n[connection signal=\"text_changed\" from=\"TabContainer/Extension Explorer/StoreMainContainer/Parameters/SearchManager\" to=\"TabContainer/Extension Explorer/StoreMainContainer/Parameters/SearchManager\" method=\"_on_SearchManager_text_changed\"]\n[connection signal=\"pressed\" from=\"TabContainer/Extension Explorer/StoreMainContainer/VBoxContainer/HBoxContainer/ReportIssue\" to=\".\" method=\"_on_report_issue_pressed\"]\n[connection signal=\"visibility_changed\" from=\"TabContainer/Options\" to=\"TabContainer/Options/ScrollContainer/CustomStoreLinks\" method=\"_on_Options_visibility_changed\"]\n[connection signal=\"pressed\" from=\"TabContainer/Options/ScrollContainer/CustomStoreLinks/ButtonContainer/Guide\" to=\"TabContainer/Options/ScrollContainer/CustomStoreLinks\" method=\"_on_Guide_pressed\"]\n[connection signal=\"pressed\" from=\"TabContainer/Options/ScrollContainer/CustomStoreLinks/ButtonContainer/NewLink\" to=\"TabContainer/Options/ScrollContainer/CustomStoreLinks\" method=\"_on_NewLink_pressed\"]\n[connection signal=\"timeout\" from=\"ProgressContainer/UpdateTimer\" to=\".\" method=\"_on_UpdateTimer_timeout\"]\n[connection signal=\"request_completed\" from=\"StoreInformationDownloader\" to=\".\" method=\"_on_StoreInformation_request_completed\"]\n[connection signal=\"pressed\" from=\"Error/Content/HBoxContainer/CopyCommand\" to=\".\" method=\"_on_CopyCommand_pressed\"]\n"
  },
  {
    "path": "src/UI/ExtensionExplorer/Subscripts/CustomRepositoryLinks.gd",
    "content": "extends VBoxContainer\n\nvar custom_links := []\n\n\nfunc _ready() -> void:\n\tcustom_links = Global.config_cache.get_value(\"ExtensionExplorer\", \"custom_links\", [])\n\tfor link in custom_links:\n\t\tadd_field(link)\n\n\nfunc update_links() -> void:\n\tcustom_links.clear()\n\tfor child in $Links.get_children():\n\t\tif child.text != \"\":\n\t\t\tcustom_links.append(child.text)\n\tGlobal.config_cache.set_value(\"ExtensionExplorer\", \"custom_links\", custom_links)\n\n\nfunc _on_NewLink_pressed() -> void:\n\tadd_field()\n\n\nfunc add_field(link := \"\") -> void:\n\tvar link_field := LineEdit.new()\n\t# gdlint: ignore=max-line-length\n\tlink_field.placeholder_text = \"Paste repository link, given by the repository owner. If left empty, it will automatically be removed.\"\n\tlink_field.text = link\n\t$Links.add_child(link_field)\n\tlink_field.text_changed.connect(field_text_changed)\n\n\nfunc field_text_changed(_text: String) -> void:\n\tupdate_links()\n\n\nfunc _on_Options_visibility_changed() -> void:\n\tfor child in $Links.get_children():\n\t\tif child.text == \"\":\n\t\t\tchild.queue_free()\n\n\n# Uncomment it when we have a proper guide for writing a store_info file\nfunc _on_Guide_pressed() -> void:\n\tpass\n# gdlint: ignore=max-line-length\n#\tOS.shell_open(\"https://github.com/Variable-Interactive/Variable-Store/tree/master#rules-for-writing-a-store_info-file\")\n"
  },
  {
    "path": "src/UI/ExtensionExplorer/Subscripts/CustomRepositoryLinks.gd.uid",
    "content": "uid://nu4gcburux0v\n"
  },
  {
    "path": "src/UI/ExtensionExplorer/Subscripts/SearchManager.gd",
    "content": "extends LineEdit\n\nvar available_tags := PackedStringArray()\n@onready var tag_list: VBoxContainer = $\"%TagList\"\n\n\nfunc _on_SearchManager_text_changed(_new_text: String) -> void:\n\ttag_text_search()\n\n\nfunc tag_text_search() -> void:\n\tvar result := text_search(text)\n\tvar tags := PackedStringArray([])\n\tfor tag: Button in tag_list.get_children():\n\t\tif tag.button_pressed:\n\t\t\ttags.append(tag.text)\n\n\tfor entry in result:\n\t\tif !entry.tags_match(tags):\n\t\t\tentry.visible = false\n\n\nfunc text_search(text_to_search: String) -> Array[ExtensionEntry]:\n\tvar result: Array[ExtensionEntry] = []\n\tfor entry: ExtensionEntry in $\"%Content\".get_children():\n\t\tvar visibility := true\n\t\tif text_to_search != \"\":\n\t\t\tvar extension_name := entry.ext_name.text.to_lower()\n\t\t\tvar extension_description := entry.ext_discription.text.to_lower()\n\t\t\tif not text_to_search.to_lower() in extension_name:\n\t\t\t\tif not text_to_search.to_lower() in extension_description:\n\t\t\t\t\tvisibility = false\n\t\tif visibility == true:\n\t\t\tresult.append(entry)\n\t\tentry.visible = visibility\n\treturn result\n\n\nfunc add_new_tags(tag_array: PackedStringArray) -> void:\n\tfor tag: String in tag_array:\n\t\tif !tag in available_tags:\n\t\t\tavailable_tags.append(tag)\n\t\t\tavailable_tags.sort()\n\t\t\tvar tag_checkbox := CheckBox.new()\n\t\t\ttag_checkbox.text = tag\n\t\t\ttag_checkbox.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\t\t\ttag_list.add_child(tag_checkbox)\n\t\t\tvar index := available_tags.find(tag)\n\t\t\ttag_list.move_child(tag_checkbox, index)\n\t\t\ttag_checkbox.toggled.connect(start_tag_search)\n\n\nfunc start_tag_search(_button_pressed: bool) -> void:\n\ttag_text_search()\n"
  },
  {
    "path": "src/UI/ExtensionExplorer/Subscripts/SearchManager.gd.uid",
    "content": "uid://bax7ba3s0gq6a\n"
  },
  {
    "path": "src/UI/GlobalToolOptions/DynamicsPanel.gd",
    "content": "extends PopupPanel\n\nenum { ALPHA, SIZE }\n\nvar recommended_max_velocity: int = Tools.mouse_velocity_max\n\n@onready var alpha_pressure_button: Button = %AlphaPressureButton\n@onready var alpha_velocity_button: Button = %AlphaVelocityButton\n@onready var size_pressure_button: Button = %SizePressureButton\n@onready var size_velocity_button: Button = %SizeVelocityButton\n@onready var pressure_preview: ProgressBar = %PressurePreview\n@onready var velocity_preview: ProgressBar = %VelocityPreview\n@onready var limits_header: HBoxContainer = %LimitsHeader\n@onready var thresholds_header: HBoxContainer = %ThresholdsHeader\n@onready var max_velocity_slider: ValueSlider = %MaxVelocitySlider\n@onready var alpha_group := alpha_pressure_button.button_group\n@onready var size_group := size_pressure_button.button_group\n\n\nfunc _ready() -> void:\n\tmax_velocity_slider.set_value_no_signal(Tools.mouse_velocity_max)\n\talpha_pressure_button.toggled.connect(\n\t\t_on_dynamics_toggled.bind(alpha_pressure_button, ALPHA, Tools.Dynamics.PRESSURE)\n\t)\n\talpha_velocity_button.toggled.connect(\n\t\t_on_dynamics_toggled.bind(alpha_velocity_button, ALPHA, Tools.Dynamics.VELOCITY)\n\t)\n\tsize_pressure_button.toggled.connect(\n\t\t_on_dynamics_toggled.bind(size_pressure_button, SIZE, Tools.Dynamics.PRESSURE)\n\t)\n\tsize_velocity_button.toggled.connect(\n\t\t_on_dynamics_toggled.bind(size_velocity_button, SIZE, Tools.Dynamics.VELOCITY)\n\t)\n\tfor child: Control in $VBoxContainer.get_children():\n\t\t## Resets the y-size to an appropriate value\n\t\tchild.visibility_changed.connect(_recalculate_size)\n\n\nfunc _recalculate_size():\n\tawait get_tree().process_frame\n\tset_size(Vector2i(size.x, 0))\n\tset_size(Vector2i(size.x, size.y + 10))\n\n\nfunc _input(event: InputEvent) -> void:\n\tpressure_preview.value = 0\n\tvelocity_preview.value = 0\n\tif event is InputEventMouseMotion:\n\t\tif event.velocity.length() > Tools.mouse_velocity_max:\n\t\t\trecommended_max_velocity = event.velocity.length()\n\t\tmax_velocity_slider.tooltip_text = (\n\t\t\ttr(\n\t\t\t\t\"\"\"\n\t\tMaximum mouse velocity allowed to be detected by app.\n\t\tRecommended: %s\n\t\t\"\"\"\n\t\t\t)\n\t\t\t% str(recommended_max_velocity)\n\t\t)\n\t\tpressure_preview.value = event.pressure\n\t\tvelocity_preview.value = event.velocity.length() / Tools.mouse_velocity_max\n\n\nfunc _on_dynamics_toggled(\n\tbutton_pressed: bool, button: BaseButton, property: int, dynamic: Tools.Dynamics\n) -> void:\n\tvar final_dynamic := dynamic\n\tif not button.button_pressed:\n\t\tfinal_dynamic = Tools.Dynamics.NONE\n\tmatch property:\n\t\tALPHA:\n\t\t\tTools.dynamics_alpha = final_dynamic\n\t\tSIZE:\n\t\t\tTools.dynamics_size = final_dynamic\n\tvar has_alpha_dynamic := Tools.dynamics_alpha != Tools.Dynamics.NONE\n\tvar has_size_dynamic := Tools.dynamics_size != Tools.Dynamics.NONE\n\tvar has_pressure_dynamic := (\n\t\tTools.dynamics_alpha == Tools.Dynamics.PRESSURE\n\t\tor Tools.dynamics_size == Tools.Dynamics.PRESSURE\n\t)\n\tvar has_velocity_dynamic := (\n\t\tTools.dynamics_alpha == Tools.Dynamics.VELOCITY\n\t\tor Tools.dynamics_size == Tools.Dynamics.VELOCITY\n\t)\n\tlimits_header.visible = has_alpha_dynamic or has_size_dynamic\n\tthresholds_header.visible = limits_header.visible\n\tget_tree().set_group(&\"VisibleOnAlpha\", \"visible\", has_alpha_dynamic)\n\tget_tree().set_group(&\"VisibleOnSize\", \"visible\", has_size_dynamic)\n\tget_tree().set_group(&\"VisibleOnPressure\", \"visible\", has_pressure_dynamic)\n\tget_tree().set_group(&\"VisibleOnVelocity\", \"visible\", has_velocity_dynamic)\n\tvar texture_button: TextureRect = button.get_node(\"TextureRect\")\n\tvar file_name := \"check.png\"\n\tif !button.button_pressed:\n\t\tfile_name = \"uncheck.png\"\n\tGlobal.change_button_texturerect(texture_button, file_name)\n\tGlobal.dynamics_changed.emit()\n\n\nfunc _on_threshold_pressure_updated(value_1: float, value_2: float) -> void:\n\tTools.pen_pressure_min = minf(value_1, value_2)\n\tTools.pen_pressure_max = maxf(value_1, value_2)\n\n\nfunc _on_threshold_velocity_updated(value_1: float, value_2: float) -> void:\n\tTools.mouse_velocity_min_thres = minf(value_1, value_2)\n\tTools.mouse_velocity_max_thres = maxf(value_1, value_2)\n\n\nfunc _on_alpha_min_value_changed(value: float) -> void:\n\tTools.alpha_min = value\n\tGlobal.dynamics_changed.emit()\n\n\nfunc _on_alpha_max_value_changed(value: float) -> void:\n\tTools.alpha_max = value\n\tGlobal.dynamics_changed.emit()\n\n\nfunc _on_size_max_value_changed(value: float) -> void:\n\tTools.brush_size_max_increment = int(value)\n\t%SizeMaxIncrement.prefix = \"Brush size +\"\n\tif value < 0:\n\t\t%SizeMaxIncrement.prefix = \"Brush size \"\n\tGlobal.dynamics_changed.emit()\n\n\nfunc _on_enable_stabilizer_toggled(toggled_on: bool) -> void:\n\tTools.stabilizer_enabled = toggled_on\n\n\nfunc _on_stabilizer_value_value_changed(value: float) -> void:\n\tTools.stabilizer_value = value\n\n\nfunc _on_max_velocity_slider_value_changed(value: float) -> void:\n\tTools.mouse_velocity_max = value\n"
  },
  {
    "path": "src/UI/GlobalToolOptions/DynamicsPanel.gd.uid",
    "content": "uid://c8iilx5w0hjf3\n"
  },
  {
    "path": "src/UI/GlobalToolOptions/GlobalToolOptions.gd",
    "content": "extends PanelContainer\n\n@onready var grid_container: GridContainer = find_child(\"GridContainer\")\n@onready var horizontal_mirror: BaseButton = grid_container.get_node(\"Horizontal\")\n@onready var vertical_mirror: BaseButton = grid_container.get_node(\"Vertical\")\n@onready var diagonal_xy_mirror: BaseButton = grid_container.get_node(\"DiagonalXY\")\n@onready var diagonal_x_minus_y_mirror: BaseButton = grid_container.get_node(\"DiagonalXMinusY\")\n@onready var mirror_options: MenuButton = %MirrorOptions\n@onready var pixel_perfect: BaseButton = grid_container.get_node(\"PixelPerfect\")\n@onready var alpha_lock: BaseButton = grid_container.get_node(\"AlphaLock\")\n@onready var dynamics: Button = $\"%Dynamics\"\n@onready var dynamics_panel: PopupPanel = $DynamicsPanel\n\n\nfunc _ready() -> void:\n\tTools.options_reset.connect(reset_options)\n\tmirror_options.get_popup().id_pressed.connect(_on_mirror_options_id_pressed)\n\t# Resize tools panel when window gets resized\n\tget_tree().get_root().size_changed.connect(_on_resized)\n\thorizontal_mirror.button_pressed = Tools.horizontal_mirror\n\tvertical_mirror.button_pressed = Tools.vertical_mirror\n\tdiagonal_xy_mirror.button_pressed = Tools.diagonal_xy_mirror\n\tdiagonal_x_minus_y_mirror.button_pressed = Tools.diagonal_x_minus_y_mirror\n\tpixel_perfect.button_pressed = Tools.pixel_perfect\n\talpha_lock.button_pressed = Tools.alpha_locked\n\n\nfunc reset_options() -> void:\n\thorizontal_mirror.button_pressed = false\n\tvertical_mirror.button_pressed = false\n\tpixel_perfect.button_pressed = false\n\talpha_lock.button_pressed = false\n\n\nfunc _on_resized() -> void:\n\tvar column_n := size.x / 36.5\n\tif column_n < 1:\n\t\tcolumn_n = 1\n\tgrid_container.columns = column_n\n\n\nfunc _on_Horizontal_toggled(toggled_on: bool) -> void:\n\tTools.horizontal_mirror = toggled_on\n\tGlobal.config_cache.set_value(\"tools\", \"horizontal_mirror\", toggled_on)\n\tGlobal.show_y_symmetry_axis = toggled_on\n\tGlobal.current_project.y_symmetry_axis.visible = (\n\t\tGlobal.show_y_symmetry_axis and Global.show_guides\n\t)\n\n\tvar texture_button: TextureRect = horizontal_mirror.get_node(\"TextureRect\")\n\tvar file_name := \"horizontal_mirror_on.png\"\n\tif not toggled_on:\n\t\tfile_name = \"horizontal_mirror_off.png\"\n\tGlobal.change_button_texturerect(texture_button, file_name)\n\n\nfunc _on_Vertical_toggled(toggled_on: bool) -> void:\n\tTools.vertical_mirror = toggled_on\n\tGlobal.config_cache.set_value(\"tools\", \"vertical_mirror\", toggled_on)\n\tGlobal.show_x_symmetry_axis = toggled_on\n\t# If the button is not pressed but another button is, keep the symmetry guide visible\n\tGlobal.current_project.x_symmetry_axis.visible = (\n\t\tGlobal.show_x_symmetry_axis and Global.show_guides\n\t)\n\n\tvar texture_button: TextureRect = vertical_mirror.get_node(\"TextureRect\")\n\tvar file_name := \"vertical_mirror_on.png\"\n\tif not toggled_on:\n\t\tfile_name = \"vertical_mirror_off.png\"\n\tGlobal.change_button_texturerect(texture_button, file_name)\n\n\nfunc _on_diagonal_xy_toggled(toggled_on: bool) -> void:\n\tTools.diagonal_xy_mirror = toggled_on\n\tGlobal.config_cache.set_value(\"tools\", \"diagonal_xy_mirror\", toggled_on)\n\tGlobal.show_xy_symmetry_axis = toggled_on\n\t# If the button is not pressed but another button is, keep the symmetry guide visible\n\tGlobal.current_project.diagonal_xy_symmetry_axis.visible = (\n\t\tGlobal.show_xy_symmetry_axis and Global.show_guides\n\t)\n\n\tvar texture_button: TextureRect = diagonal_xy_mirror.get_node(\"TextureRect\")\n\tvar file_name := \"xy_mirror_on.png\"\n\tif not toggled_on:\n\t\tfile_name = \"xy_mirror_off.png\"\n\tGlobal.change_button_texturerect(texture_button, file_name)\n\n\nfunc _on_diagonal_x_minus_y_toggled(toggled_on: bool) -> void:\n\tTools.diagonal_x_minus_y_mirror = toggled_on\n\tGlobal.config_cache.set_value(\"tools\", \"diagonal_x_minus_y_mirror\", toggled_on)\n\tGlobal.show_x_minus_y_symmetry_axis = toggled_on\n\t# If the button is not pressed but another button is, keep the symmetry guide visible\n\tGlobal.current_project.diagonal_x_minus_y_symmetry_axis.visible = (\n\t\tGlobal.show_x_minus_y_symmetry_axis and Global.show_guides\n\t)\n\n\tvar texture_button: TextureRect = diagonal_x_minus_y_mirror.get_node(\"TextureRect\")\n\tvar file_name := \"x_minus_y_mirror_on.png\"\n\tif not toggled_on:\n\t\tfile_name = \"x_minus_y_mirror_off.png\"\n\tGlobal.change_button_texturerect(texture_button, file_name)\n\n\nfunc _on_PixelPerfect_toggled(button_pressed: bool) -> void:\n\tTools.pixel_perfect = button_pressed\n\tGlobal.config_cache.set_value(\"tools\", \"pixel_perfect\", button_pressed)\n\tvar texture_button: TextureRect = pixel_perfect.get_node(\"TextureRect\")\n\tvar file_name := \"pixel_perfect_on.png\"\n\tif !button_pressed:\n\t\tfile_name = \"pixel_perfect_off.png\"\n\tGlobal.change_button_texturerect(texture_button, file_name)\n\n\nfunc _on_alpha_lock_toggled(toggled_on: bool) -> void:\n\tTools.alpha_locked = toggled_on\n\tGlobal.config_cache.set_value(\"tools\", \"alpha_locked\", toggled_on)\n\tvar texture_button: TextureRect = alpha_lock.get_node(\"TextureRect\")\n\tvar file_name := \"alpha_lock_on.png\"\n\tif not toggled_on:\n\t\tfile_name = \"alpha_lock_off.png\"\n\tGlobal.change_button_texturerect(texture_button, file_name)\n\n\nfunc _on_Dynamics_pressed() -> void:\n\tvar pos := dynamics.global_position + Vector2(0, 32)\n\tdynamics_panel.popup_on_parent(Rect2(pos, dynamics_panel.size))\n\n\nfunc _on_mirror_options_id_pressed(id: int) -> void:\n\tvar project := Global.current_project\n\tif id == 0:\n\t\tproject.x_symmetry_point = project.size.x - 1\n\t\tproject.y_symmetry_point = project.size.y - 1\n\t\tproject.xy_symmetry_point = project.size * 0.5\n\telif id == 1:\n\t\tproject.x_symmetry_point = Global.camera.camera_screen_center.x * 2\n\t\tproject.y_symmetry_point = Global.camera.camera_screen_center.y * 2\n\t\tproject.xy_symmetry_point = Global.camera.camera_screen_center\n\tproject.x_minus_y_symmetry_point = project.xy_symmetry_point\n\tproject.y_symmetry_axis.points[0].x = project.x_symmetry_point / 2 + 0.5\n\tproject.y_symmetry_axis.points[1].x = project.x_symmetry_point / 2 + 0.5\n\tproject.x_symmetry_axis.points[0].y = project.y_symmetry_point / 2 + 0.5\n\tproject.x_symmetry_axis.points[1].y = project.y_symmetry_point / 2 + 0.5\n\tproject.diagonal_xy_symmetry_axis.points[0] = Vector2(19999, -19999)\n\tproject.diagonal_xy_symmetry_axis.points[1] = (\n\t\tVector2(-19999, 19999) + project.xy_symmetry_point * 2.0\n\t)\n\tproject.diagonal_x_minus_y_symmetry_axis.points[0] = Vector2(-19999, -19999)\n\tproject.diagonal_x_minus_y_symmetry_axis.points[1] = (\n\t\tVector2(19999, 19999) + project.x_minus_y_symmetry_point * 2.0\n\t)\n"
  },
  {
    "path": "src/UI/GlobalToolOptions/GlobalToolOptions.gd.uid",
    "content": "uid://d0y5cefhrvfm7\n"
  },
  {
    "path": "src/UI/GlobalToolOptions/GlobalToolOptions.tscn",
    "content": "[gd_scene format=3 uid=\"uid://wo0hqxkst808\"]\n\n[ext_resource type=\"Texture2D\" uid=\"uid://cjrokejjsp5dm\" path=\"res://assets/graphics/misc/horizontal_mirror_off.png\" id=\"1\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://hiduvaa73fr6\" path=\"res://assets/graphics/misc/vertical_mirror_off.png\" id=\"2\"]\n[ext_resource type=\"Script\" uid=\"uid://d0y5cefhrvfm7\" path=\"res://src/UI/GlobalToolOptions/GlobalToolOptions.gd\" id=\"3\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ct8wn8m6x4m54\" path=\"res://assets/graphics/misc/value_arrow.svg\" id=\"3_faalk\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://22h12g8p3jtd\" path=\"res://assets/graphics/misc/pixel_perfect_off.png\" id=\"4\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"5\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dlxhm0ronna25\" path=\"res://assets/graphics/misc/xy_mirror_off.png\" id=\"5_hcmgx\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://j8eywwy082a4\" path=\"res://assets/graphics/misc/alpha_lock_off.png\" id=\"5_jv20x\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dg3dumyfj1682\" path=\"res://assets/graphics/misc/dynamics.png\" id=\"6\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://1kj5gcswa3t2\" path=\"res://assets/graphics/misc/x_minus_y_mirror_off.png\" id=\"6_sw8fy\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://di8au2u87jgv5\" path=\"res://assets/graphics/misc/uncheck.png\" id=\"7\"]\n[ext_resource type=\"Script\" uid=\"uid://c8iilx5w0hjf3\" path=\"res://src/UI/GlobalToolOptions/DynamicsPanel.gd\" id=\"7_iqcw1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bmsc0s03pwji4\" path=\"res://src/UI/Nodes/MaxMinEdit.tscn\" id=\"8\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"14_d1yms\"]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_4k08w\"]\naction = &\"horizontal_mirror\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_eld87\"]\nevents = [SubResource(\"InputEventAction_4k08w\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_d1yms\"]\naction = &\"vertical_mirror\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_ixtbd\"]\nevents = [SubResource(\"InputEventAction_d1yms\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_ixtbd\"]\naction = &\"diagonal_xy_mirror\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_t5ndj\"]\nevents = [SubResource(\"InputEventAction_ixtbd\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_24etr\"]\naction = &\"diagonal_x_minus_y_mirror\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_ai7qc\"]\nevents = [SubResource(\"InputEventAction_24etr\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_eokfu\"]\naction = &\"pixel_perfect\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_7kmom\"]\nevents = [SubResource(\"InputEventAction_eokfu\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_ebgk6\"]\naction = &\"alpha_lock\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_vcyug\"]\nevents = [SubResource(\"InputEventAction_ebgk6\")]\n\n[sub_resource type=\"ButtonGroup\" id=\"ButtonGroup_ahrcw\"]\nallow_unpress = true\n\n[sub_resource type=\"ButtonGroup\" id=\"ButtonGroup_t01h7\"]\nallow_unpress = true\n\n[sub_resource type=\"Gradient\" id=\"3\"]\ninterpolation_mode = 1\noffsets = PackedFloat32Array(0, 0, 1)\ncolors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1)\n\n[sub_resource type=\"GradientTexture2D\" id=\"4\"]\ngradient = SubResource(\"3\")\n\n[sub_resource type=\"GradientTexture2D\" id=\"5\"]\ngradient = SubResource(\"3\")\n\n[node name=\"Global Tool Options\" type=\"PanelContainer\" unique_id=1744736398]\noffset_left = 1.0\noffset_right = 307.0\noffset_bottom = 50.0\nscript = ExtResource(\"3\")\n\n[node name=\"ScrollContainer\" type=\"ScrollContainer\" parent=\".\" unique_id=1428651689]\ncustom_minimum_size = Vector2(36, 36)\nlayout_mode = 2\n\n[node name=\"CenterContainer\" type=\"CenterContainer\" parent=\"ScrollContainer\" unique_id=1011913846]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"ScrollContainer/CenterContainer\" unique_id=1296961989]\nlayout_mode = 2\nsize_flags_vertical = 0\ncolumns = 8\n\n[node name=\"Horizontal\" type=\"Button\" parent=\"ScrollContainer/CenterContainer/GridContainer\" unique_id=1430786735 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\ntooltip_text = \"Enable horizontal mirrored drawing\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nshortcut = SubResource(\"Shortcut_eld87\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ScrollContainer/CenterContainer/GridContainer/Horizontal\" unique_id=2084418713]\nlayout_mode = 1\nanchors_preset = 4\nanchor_top = 0.5\nanchor_bottom = 0.5\noffset_left = 5.0\noffset_top = -10.0\noffset_right = 25.0\noffset_bottom = 11.0\ngrow_vertical = 2\ntexture = ExtResource(\"1\")\n\n[node name=\"Vertical\" type=\"Button\" parent=\"ScrollContainer/CenterContainer/GridContainer\" unique_id=1644815502 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\ntooltip_text = \"Enable vertical mirrored drawing\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nshortcut = SubResource(\"Shortcut_ixtbd\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ScrollContainer/CenterContainer/GridContainer/Vertical\" unique_id=1342587046]\nlayout_mode = 1\nanchors_preset = 4\nanchor_top = 0.5\nanchor_bottom = 0.5\noffset_left = 5.0\noffset_top = -10.0\noffset_right = 25.0\noffset_bottom = 10.0\ngrow_vertical = 2\ntexture = ExtResource(\"2\")\n\n[node name=\"DiagonalXY\" type=\"Button\" parent=\"ScrollContainer/CenterContainer/GridContainer\" unique_id=412499936 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\ntooltip_text = \"Enable diagonal (↗) mirrored drawing\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nshortcut = SubResource(\"Shortcut_t5ndj\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ScrollContainer/CenterContainer/GridContainer/DiagonalXY\" unique_id=381913575]\nlayout_mode = 1\nanchors_preset = 4\nanchor_top = 0.5\nanchor_bottom = 0.5\noffset_left = 5.0\noffset_top = -10.0\noffset_right = 25.0\noffset_bottom = 10.0\ngrow_vertical = 2\ntexture = ExtResource(\"5_hcmgx\")\n\n[node name=\"DiagonalXMinusY\" type=\"Button\" parent=\"ScrollContainer/CenterContainer/GridContainer\" unique_id=1676525896 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\ntooltip_text = \"Enable diagonal (↘) mirrored drawing\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nshortcut = SubResource(\"Shortcut_ai7qc\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ScrollContainer/CenterContainer/GridContainer/DiagonalXMinusY\" unique_id=2017737103]\nlayout_mode = 1\nanchors_preset = 4\nanchor_top = 0.5\nanchor_bottom = 0.5\noffset_left = 5.0\noffset_top = -10.0\noffset_right = 25.0\noffset_bottom = 10.0\ngrow_vertical = 2\ntexture = ExtResource(\"6_sw8fy\")\n\n[node name=\"MirrorOptions\" type=\"MenuButton\" parent=\"ScrollContainer/CenterContainer/GridContainer\" unique_id=1991402163]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(32, 0)\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nflat = false\nitem_count = 2\npopup/item_0/text = \"Move to canvas center\"\npopup/item_0/id = 0\npopup/item_1/text = \"Move to view center\"\npopup/item_1/id = 1\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ScrollContainer/CenterContainer/GridContainer/MirrorOptions\" unique_id=1094405293]\nlayout_mode = 1\nanchors_preset = 8\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -6.0\noffset_top = -6.0\noffset_right = 6.0\noffset_bottom = 6.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"3_faalk\")\nstretch_mode = 3\n\n[node name=\"PixelPerfect\" type=\"Button\" parent=\"ScrollContainer/CenterContainer/GridContainer\" unique_id=1257770485 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\ntooltip_text = \"Pixel Perfect\nMakes lines smooth by removing the extra pixels on the edges\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nshortcut = SubResource(\"Shortcut_7kmom\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ScrollContainer/CenterContainer/GridContainer/PixelPerfect\" unique_id=208861589]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -11.0\noffset_top = -10.0\noffset_right = 11.0\noffset_bottom = 10.0\ntexture = ExtResource(\"4\")\n\n[node name=\"AlphaLock\" type=\"Button\" parent=\"ScrollContainer/CenterContainer/GridContainer\" unique_id=535628166]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\ntooltip_text = \"Lock alpha\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nshortcut = SubResource(\"Shortcut_vcyug\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ScrollContainer/CenterContainer/GridContainer/AlphaLock\" unique_id=1554395905]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -11.0\noffset_top = -10.0\noffset_right = 11.0\noffset_bottom = 10.0\ntexture = ExtResource(\"5_jv20x\")\n\n[node name=\"Dynamics\" type=\"Button\" parent=\"ScrollContainer/CenterContainer/GridContainer\" unique_id=2033294383 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\ntooltip_text = \"Dynamics\"\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ScrollContainer/CenterContainer/GridContainer/Dynamics\" unique_id=870713854]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -11.0\noffset_top = -10.0\noffset_right = 11.0\noffset_bottom = 10.0\ntexture = ExtResource(\"6\")\n\n[node name=\"DynamicsPanel\" type=\"PopupPanel\" parent=\".\" unique_id=142986690]\ncanvas_item_default_texture_filter = 0\noversampling_override = 1.0\nsize = Vector2i(300, 334)\nscript = ExtResource(\"7_iqcw1\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"DynamicsPanel\" unique_id=1945514481]\noffset_left = 4.0\noffset_top = 4.0\noffset_right = 296.0\noffset_bottom = 330.0\n\n[node name=\"StabilizerContainer\" type=\"HBoxContainer\" parent=\"DynamicsPanel/VBoxContainer\" unique_id=1539855122]\nlayout_mode = 2\n\n[node name=\"EnableStabilizer\" type=\"CheckButton\" parent=\"DynamicsPanel/VBoxContainer/StabilizerContainer\" unique_id=1844469668]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Stabilizer\"\n\n[node name=\"StabilizerValue\" type=\"TextureProgressBar\" parent=\"DynamicsPanel/VBoxContainer/StabilizerContainer\" unique_id=217099507]\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nmax_value = 64.0\nvalue = 16.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\n\n[node name=\"DynamicsOptions\" type=\"GridContainer\" parent=\"DynamicsPanel/VBoxContainer\" unique_id=1379873237]\nlayout_mode = 2\ncolumns = 3\n\n[node name=\"Control\" type=\"Control\" parent=\"DynamicsPanel/VBoxContainer/DynamicsOptions\" unique_id=77374913]\ncustom_minimum_size = Vector2(20, 20)\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"PressureLabel\" type=\"Label\" parent=\"DynamicsPanel/VBoxContainer/DynamicsOptions\" unique_id=1070547251]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Pressure\"\n\n[node name=\"VelocityLabel\" type=\"Label\" parent=\"DynamicsPanel/VBoxContainer/DynamicsOptions\" unique_id=1366494522]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Velocity\"\n\n[node name=\"AlphaLabel\" type=\"Label\" parent=\"DynamicsPanel/VBoxContainer/DynamicsOptions\" unique_id=1925095099]\nlayout_mode = 2\ntext = \"Alpha\"\n\n[node name=\"AlphaPressureButton\" type=\"Button\" parent=\"DynamicsPanel/VBoxContainer/DynamicsOptions\" unique_id=1658302600 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_ahrcw\")\nicon_alignment = 1\nexpand_icon = true\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"DynamicsPanel/VBoxContainer/DynamicsOptions/AlphaPressureButton\" unique_id=2101576815]\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource(\"7\")\nexpand_mode = 1\n\n[node name=\"AlphaVelocityButton\" type=\"Button\" parent=\"DynamicsPanel/VBoxContainer/DynamicsOptions\" unique_id=494678504 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_ahrcw\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"DynamicsPanel/VBoxContainer/DynamicsOptions/AlphaVelocityButton\" unique_id=669085500]\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource(\"7\")\nexpand_mode = 1\n\n[node name=\"SizeLabel\" type=\"Label\" parent=\"DynamicsPanel/VBoxContainer/DynamicsOptions\" unique_id=122936316]\nlayout_mode = 2\ntext = \"Size\"\n\n[node name=\"SizePressureButton\" type=\"Button\" parent=\"DynamicsPanel/VBoxContainer/DynamicsOptions\" unique_id=660654220 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_t01h7\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"DynamicsPanel/VBoxContainer/DynamicsOptions/SizePressureButton\" unique_id=1914099260]\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource(\"7\")\nexpand_mode = 1\n\n[node name=\"SizeVelocityButton\" type=\"Button\" parent=\"DynamicsPanel/VBoxContainer/DynamicsOptions\" unique_id=894422478 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_t01h7\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"DynamicsPanel/VBoxContainer/DynamicsOptions/SizeVelocityButton\" unique_id=1935205518]\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource(\"7\")\nexpand_mode = 1\n\n[node name=\"LimitsHeader\" type=\"HBoxContainer\" parent=\"DynamicsPanel/VBoxContainer\" unique_id=1522388238]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"DynamicsPanel/VBoxContainer/LimitsHeader\" unique_id=962072864]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Value limits\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"DynamicsPanel/VBoxContainer/LimitsHeader\" unique_id=15437750]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"LimitContainer\" type=\"VBoxContainer\" parent=\"DynamicsPanel/VBoxContainer\" unique_id=1707792232]\nlayout_mode = 2\n\n[node name=\"AlphaLimits\" type=\"HBoxContainer\" parent=\"DynamicsPanel/VBoxContainer/LimitContainer\" unique_id=1621071575 groups=[\"VisibleOnAlpha\"]]\nvisible = false\nlayout_mode = 2\n\n[node name=\"AlphaLabel\" type=\"Label\" parent=\"DynamicsPanel/VBoxContainer/LimitContainer/AlphaLimits\" unique_id=2073040997]\ncustom_minimum_size = Vector2(100, 0)\nlayout_mode = 2\ntext = \"Alpha\"\n\n[node name=\"AlphaMin\" type=\"TextureProgressBar\" parent=\"DynamicsPanel/VBoxContainer/LimitContainer/AlphaLimits\" unique_id=1556235059]\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 1.0\nstep = 0.01\nvalue = 0.1\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\nprefix = \"Start\"\nsnap_step = 0.1\n\n[node name=\"AlphaMax\" type=\"TextureProgressBar\" parent=\"DynamicsPanel/VBoxContainer/LimitContainer/AlphaLimits\" unique_id=1226675110]\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 1.0\nstep = 0.01\nvalue = 1.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\nprefix = \"End\"\nsnap_step = 0.1\n\n[node name=\"SizeLimits\" type=\"HBoxContainer\" parent=\"DynamicsPanel/VBoxContainer/LimitContainer\" unique_id=936003525 groups=[\"VisibleOnSize\"]]\nvisible = false\nlayout_mode = 2\n\n[node name=\"SizeLabel\" type=\"Label\" parent=\"DynamicsPanel/VBoxContainer/LimitContainer/SizeLimits\" unique_id=1374643510]\ncustom_minimum_size = Vector2(100, 0)\nlayout_mode = 2\ntext = \"Size max:\"\n\n[node name=\"SizeMaxIncrement\" type=\"TextureProgressBar\" parent=\"DynamicsPanel/VBoxContainer/LimitContainer/SizeLimits\" unique_id=993979843]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = -25.0\nmax_value = 25.0\nvalue = 4.0\nallow_greater = true\nallow_lesser = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"5\")\nprefix = \"Brush size +\"\n\n[node name=\"ThresholdsHeader\" type=\"HBoxContainer\" parent=\"DynamicsPanel/VBoxContainer\" unique_id=838820615]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"DynamicsPanel/VBoxContainer/ThresholdsHeader\" unique_id=385243725]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Thresholds\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"DynamicsPanel/VBoxContainer/ThresholdsHeader\" unique_id=604592608]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"ThresholdContainer\" type=\"GridContainer\" parent=\"DynamicsPanel/VBoxContainer\" unique_id=221407890]\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"ThresholdPressureLabel\" type=\"Label\" parent=\"DynamicsPanel/VBoxContainer/ThresholdContainer\" unique_id=1814798409 groups=[\"VisibleOnPressure\"]]\nvisible = false\nlayout_mode = 2\ntext = \"Pressure\"\n\n[node name=\"ThresholdPressure\" parent=\"DynamicsPanel/VBoxContainer/ThresholdContainer\" unique_id=1969622875 groups=[\"VisibleOnPressure\"] instance=ExtResource(\"8\")]\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\nstart = 0.2\nend = 0.8\n\n[node name=\"TextureRect\" parent=\"DynamicsPanel/VBoxContainer/ThresholdContainer/ThresholdPressure\" index=\"0\" unique_id=1086824968]\ntexture = SubResource(\"4\")\n\n[node name=\"PressurePreview\" type=\"ProgressBar\" parent=\"DynamicsPanel/VBoxContainer/ThresholdContainer/ThresholdPressure/TextureRect\" index=\"0\" unique_id=1400371720]\nunique_name_in_owner = true\nmodulate = Color(1, 1, 1, 0.294118)\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\nmax_value = 1.0\nstep = 0.001\nvalue = 0.497\n\n[node name=\"Value\" parent=\"DynamicsPanel/VBoxContainer/ThresholdContainer/ThresholdPressure/TextureRect\" index=\"1\" unique_id=852397936]\nanchor_right = 0.0\nanchor_bottom = 0.0\noffset_right = 1.0\noffset_bottom = 23.0\n\n[node name=\"ThresholdVelocityLabel\" type=\"Label\" parent=\"DynamicsPanel/VBoxContainer/ThresholdContainer\" unique_id=187362113 groups=[\"VisibleOnVelocity\"]]\nvisible = false\nlayout_mode = 2\ntext = \"Velocity\"\n\n[node name=\"ThresholdVelocity\" parent=\"DynamicsPanel/VBoxContainer/ThresholdContainer\" unique_id=1054163450 groups=[\"VisibleOnVelocity\"] instance=ExtResource(\"8\")]\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\nstart = 0.2\nend = 0.8\n\n[node name=\"TextureRect\" parent=\"DynamicsPanel/VBoxContainer/ThresholdContainer/ThresholdVelocity\" index=\"0\" unique_id=1086824968]\ntexture = SubResource(\"5\")\n\n[node name=\"VelocityPreview\" type=\"ProgressBar\" parent=\"DynamicsPanel/VBoxContainer/ThresholdContainer/ThresholdVelocity/TextureRect\" index=\"0\" unique_id=1415260243]\nunique_name_in_owner = true\nmodulate = Color(1, 1, 1, 0.294118)\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\nmax_value = 1.0\nstep = 0.001\n\n[node name=\"Value\" parent=\"DynamicsPanel/VBoxContainer/ThresholdContainer/ThresholdVelocity/TextureRect\" index=\"1\" unique_id=852397936]\nanchor_right = 0.0\nanchor_bottom = 0.0\noffset_right = 1.0\noffset_bottom = 23.0\n\n[node name=\"MaxVelocitySlider\" parent=\"DynamicsPanel/VBoxContainer/ThresholdContainer/ThresholdVelocity\" unique_id=1339175976 instance=ExtResource(\"14_d1yms\")]\nunique_name_in_owner = true\nlayout_mode = 2\nmin_value = 1.0\nmax_value = 1000.0\nvalue = 1000.0\nallow_greater = true\nprefix = \"Max velocity:\"\nsuffix = \"Pixels per sec\"\n\n[connection signal=\"resized\" from=\".\" to=\".\" method=\"_on_resized\"]\n[connection signal=\"toggled\" from=\"ScrollContainer/CenterContainer/GridContainer/Horizontal\" to=\".\" method=\"_on_Horizontal_toggled\"]\n[connection signal=\"toggled\" from=\"ScrollContainer/CenterContainer/GridContainer/Vertical\" to=\".\" method=\"_on_Vertical_toggled\"]\n[connection signal=\"toggled\" from=\"ScrollContainer/CenterContainer/GridContainer/DiagonalXY\" to=\".\" method=\"_on_diagonal_xy_toggled\"]\n[connection signal=\"toggled\" from=\"ScrollContainer/CenterContainer/GridContainer/DiagonalXMinusY\" to=\".\" method=\"_on_diagonal_x_minus_y_toggled\"]\n[connection signal=\"toggled\" from=\"ScrollContainer/CenterContainer/GridContainer/PixelPerfect\" to=\".\" method=\"_on_PixelPerfect_toggled\"]\n[connection signal=\"toggled\" from=\"ScrollContainer/CenterContainer/GridContainer/AlphaLock\" to=\".\" method=\"_on_alpha_lock_toggled\"]\n[connection signal=\"pressed\" from=\"ScrollContainer/CenterContainer/GridContainer/Dynamics\" to=\".\" method=\"_on_Dynamics_pressed\"]\n[connection signal=\"toggled\" from=\"DynamicsPanel/VBoxContainer/StabilizerContainer/EnableStabilizer\" to=\"DynamicsPanel\" method=\"_on_enable_stabilizer_toggled\"]\n[connection signal=\"value_changed\" from=\"DynamicsPanel/VBoxContainer/StabilizerContainer/StabilizerValue\" to=\"DynamicsPanel\" method=\"_on_stabilizer_value_value_changed\"]\n[connection signal=\"value_changed\" from=\"DynamicsPanel/VBoxContainer/LimitContainer/AlphaLimits/AlphaMin\" to=\"DynamicsPanel\" method=\"_on_alpha_min_value_changed\"]\n[connection signal=\"value_changed\" from=\"DynamicsPanel/VBoxContainer/LimitContainer/AlphaLimits/AlphaMax\" to=\"DynamicsPanel\" method=\"_on_alpha_max_value_changed\"]\n[connection signal=\"value_changed\" from=\"DynamicsPanel/VBoxContainer/LimitContainer/SizeLimits/SizeMaxIncrement\" to=\"DynamicsPanel\" method=\"_on_size_max_value_changed\"]\n[connection signal=\"updated\" from=\"DynamicsPanel/VBoxContainer/ThresholdContainer/ThresholdPressure\" to=\"DynamicsPanel\" method=\"_on_threshold_pressure_updated\"]\n[connection signal=\"updated\" from=\"DynamicsPanel/VBoxContainer/ThresholdContainer/ThresholdVelocity\" to=\"DynamicsPanel\" method=\"_on_threshold_velocity_updated\"]\n[connection signal=\"value_changed\" from=\"DynamicsPanel/VBoxContainer/ThresholdContainer/ThresholdVelocity/MaxVelocitySlider\" to=\"DynamicsPanel\" method=\"_on_max_velocity_slider_value_changed\"]\n\n[editable path=\"DynamicsPanel/VBoxContainer/ThresholdContainer/ThresholdPressure\"]\n[editable path=\"DynamicsPanel/VBoxContainer/ThresholdContainer/ThresholdVelocity\"]\n"
  },
  {
    "path": "src/UI/Nodes/AnimatePanel.gd",
    "content": "class_name AnimatePanel\nextends PanelContainer\n\nvar image_effect_node: ConfirmationDialog\nvar frames := []  ## Set this value before calling \"get_animated_value\"\nvar properties := []  ## Contains dictionary of properties\nvar resetter_values := []  ## Contains the Original properties without any change\nvar _current_id := 0  ## The property currently selected in \"property_list\"\n\n@onready var can_animate_button: CheckBox = $\"%CanAnimate\"\n@onready var property_list: ItemList = $\"%PropertyList\"\n@onready var initial_value: ValueSlider = $\"%Initial\"\n@onready var final_value: ValueSlider = $\"%Final\"\n@onready var preview_slider: TextureProgressBar = $\"%PreviewSlider\"\n\n\nfunc _ready() -> void:\n\t_populate_ease_type()\n\t_populate_transition_type()\n\t$\"%Options\".visible = false\n\n\nfunc re_calibrate_preview_slider():\n\tpreview_slider.visible = false\n\tpreview_slider.max_value = frames[-1] + 1\n\tpreview_slider.min_value = frames[0] + 1\n\tpreview_slider.value = image_effect_node.commit_idx + 1\n\tpreview_slider.visible = true\n\n\nfunc add_float_property(prop_name: String, property_node: Range):\n\tvar info := {\n\t\t\"range_node\": property_node,\n\t\t\"can_animate\": false,\n\t\t\"initial_value\": property_node.value,\n\t\t\"transition_type\": Tween.TRANS_LINEAR,\n\t\t\"ease_type\": Tween.EASE_IN,\n\t}\n\tproperties.append(info)\n\tresetter_values.append(property_node.value)\n\tproperty_list.add_item(prop_name)\n\tproperty_node.value_changed.connect(_on_range_node_value_changed)\n\n\nfunc get_animated_value(frame_idx: int, property_idx := 0) -> float:\n\tif property_idx <= 0 or property_idx < properties.size():\n\t\tif frame_idx in frames:\n\t\t\tif properties[property_idx][\"can_animate\"] and frames.size() > 1:\n\t\t\t\tvar duration := frames.size() - 1\n\t\t\t\tvar elapsed := frames.find(frame_idx)\n\t\t\t\tvar initial = properties[property_idx][\"initial_value\"]\n\t\t\t\tvar delta = properties[property_idx][\"range_node\"].value - initial\n\t\t\t\tvar transition_type = properties[property_idx][\"transition_type\"]\n\t\t\t\tvar ease_type = properties[property_idx][\"ease_type\"]\n\t\t\t\tvar value = Tween.interpolate_value(\n\t\t\t\t\tinitial, delta, elapsed, duration, transition_type, ease_type\n\t\t\t\t)\n\t\t\t\treturn value\n\t\t\telse:\n\t\t\t\treturn properties[property_idx][\"range_node\"].value\n\t\telse:\n\t\t\treturn resetter_values[property_idx]\n\telse:\n\t\tprinterr(\n\t\t\t\"(AnimatePanel) Property index is exceeding the bounds of the number of properties\"\n\t\t)\n\t\treturn 0.0\n\n\nfunc _on_Initial_value_changed(value) -> void:\n\tproperties[_current_id][\"initial_value\"] = value\n\timage_effect_node.update_preview()\n\n\nfunc _on_Final_value_changed(value: float) -> void:\n\tif properties[_current_id][\"range_node\"].value != value:\n\t\tproperties[_current_id][\"range_node\"].value = value\n\n\nfunc _on_range_node_value_changed(_value) -> void:\n\t# Value is changed from outside the Animate Panel\n\tif properties[_current_id][\"range_node\"].value != final_value.value:\n\t\tif final_value.value_changed.is_connected(_on_Final_value_changed):\n\t\t\tfinal_value.value_changed.disconnect(_on_Final_value_changed)\n\t\tfinal_value.value = properties[_current_id][\"range_node\"].value\n\t\tfinal_value.value_changed.connect(_on_Final_value_changed)\n\n\nfunc _on_CanAnimate_toggled(button_pressed: bool) -> void:\n\tproperties[_current_id][\"can_animate\"] = button_pressed\n\t$\"%Initial\".editable = button_pressed\n\t$\"%Final\".editable = button_pressed\n\t$\"%EaseType\".disabled = !button_pressed\n\t$\"%TransitionType\".disabled = !button_pressed\n\timage_effect_node.update_preview()\n\n\nfunc _on_PropertyList_item_selected(index: int) -> void:\n\t_current_id = index\n\tif not $\"%Options\".visible:\n\t\t$\"%Options\".visible = true\n\t$\"%Options\".visible = true\n\t_refresh_properties(_current_id)\n\n\nfunc _refresh_properties(idx: int):\n\tif initial_value.value_changed.is_connected(_on_Initial_value_changed):\n\t\tinitial_value.value_changed.disconnect(_on_Initial_value_changed)\n\tif final_value.value_changed.is_connected(_on_Final_value_changed):\n\t\tfinal_value.value_changed.disconnect(_on_Final_value_changed)\n\n\t# Nodes setup\n\tvar property_node: Range = properties[idx][\"range_node\"]\n\tif property_node is ValueSlider:\n\t\tfinal_value.snap_step = property_node.snap_step\n\t\tinitial_value.snap_step = property_node.snap_step\n\tfinal_value.allow_greater = property_node.allow_greater\n\tfinal_value.allow_lesser = property_node.allow_lesser\n\tfinal_value.max_value = property_node.max_value\n\tfinal_value.min_value = property_node.min_value\n\tfinal_value.step = property_node.step\n\tinitial_value.allow_greater = property_node.allow_greater\n\tinitial_value.allow_lesser = property_node.allow_lesser\n\tinitial_value.max_value = property_node.max_value\n\tinitial_value.min_value = property_node.min_value\n\tinitial_value.step = property_node.step\n\n\t# Update values\n\tcan_animate_button.button_pressed = properties[idx][\"can_animate\"]\n\tinitial_value.value = properties[idx][\"initial_value\"]\n\tif properties[idx][\"range_node\"].value != final_value.value:\n\t\tfinal_value.value = properties[idx][\"range_node\"].value\n\t$\"%Name\".text = property_list.get_item_text(idx)\n\t$\"%EaseType\".select($\"%EaseType\".get_item_index(properties[idx][\"ease_type\"]))\n\t$\"%TransitionType\".select($\"%TransitionType\".get_item_index(properties[idx][\"transition_type\"]))\n\n\tinitial_value.value_changed.connect(_on_Initial_value_changed)\n\tfinal_value.value_changed.connect(_on_Final_value_changed)\n\n\nfunc _populate_ease_type():\n\t$\"%EaseType\".add_item(\"Starts slowly and speeds up towards the end\", Tween.EASE_IN)\n\t$\"%EaseType\".add_item(\"Starts quickly and slows down towards the end\", Tween.EASE_OUT)\n\t$\"%EaseType\".add_item(\"Slowest at both ends, fast at middle\", Tween.EASE_IN_OUT)\n\t$\"%EaseType\".add_item(\"Fast at both ends, slow at middle\", Tween.EASE_OUT_IN)\n\n\nfunc _populate_transition_type():\n\t$\"%TransitionType\".add_item(\"Linear\", Tween.TRANS_LINEAR)\n\t$\"%TransitionType\".add_item(\"Quadratic (power of 2)\", Tween.TRANS_QUAD)\n\t$\"%TransitionType\".add_item(\"Cubic (power of 3)\", Tween.TRANS_CUBIC)\n\t$\"%TransitionType\".add_item(\"Quartic (power of 4)\", Tween.TRANS_QUART)\n\t$\"%TransitionType\".add_item(\"Quintic (power of 5)\", Tween.TRANS_QUINT)\n\t$\"%TransitionType\".add_item(\"Exponential (power of x)\", Tween.TRANS_EXPO)\n\t$\"%TransitionType\".add_item(\"Square root\", Tween.TRANS_CIRC)\n\t$\"%TransitionType\".add_item(\"Sine\", Tween.TRANS_SINE)\n\t$\"%TransitionType\".add_item(\"Wiggling around the edges\", Tween.TRANS_ELASTIC)\n\t$\"%TransitionType\".add_item(\"Bouncing at the end\", Tween.TRANS_BOUNCE)\n\t$\"%TransitionType\".add_item(\"Backing out at ends\", Tween.TRANS_BACK)\n\t$\"%TransitionType\".add_item(\"Spring towards the end\", Tween.TRANS_SPRING)\n\n\nfunc _on_EaseType_item_selected(index: int) -> void:\n\tproperties[_current_id][\"ease_type\"] = $\"%EaseType\".get_item_id(index)\n\timage_effect_node.update_preview()\n\n\nfunc _on_TransitionType_item_selected(index: int) -> void:\n\tproperties[_current_id][\"transition_type\"] = $\"%TransitionType\".get_item_id(index)\n\timage_effect_node.update_preview()\n\n\nfunc _on_PreviewSlider_value_changed(value: float) -> void:\n\timage_effect_node.set_and_update_preview_image(value - 1)\n"
  },
  {
    "path": "src/UI/Nodes/AnimatePanel.gd.uid",
    "content": "uid://b8vv6x3nwn3x1\n"
  },
  {
    "path": "src/UI/Nodes/AnimatePanel.tscn",
    "content": "[gd_scene format=3 uid=\"uid://dmlgx1jgau8a5\"]\n\n[ext_resource type=\"Script\" uid=\"uid://b8vv6x3nwn3x1\" path=\"res://src/UI/Nodes/AnimatePanel.gd\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"2\"]\n\n[node name=\"AnimatePanel\" type=\"PanelContainer\" unique_id=551623729]\noffset_right = 360.0\noffset_bottom = 226.0\nscript = ExtResource(\"1\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=1466450595]\nlayout_mode = 2\n\n[node name=\"TopOptions\" type=\"HBoxContainer\" parent=\"VBoxContainer\" unique_id=1452342022]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"VBoxContainer/TopOptions\" unique_id=532910817]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Animatable Properties\"\n\n[node name=\"PreviewSlider\" parent=\"VBoxContainer/TopOptions\" unique_id=1770337358 instance=ExtResource(\"2\")]\nunique_name_in_owner = true\nlayout_mode = 2\nmin_value = 1.0\nmax_value = 1.0\nvalue = 1.0\nprefix = \"Preview frame:\"\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer\" unique_id=1693821843]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"PropertyList\" type=\"ItemList\" parent=\"VBoxContainer/HBoxContainer\" unique_id=2095156160]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(100, 0)\nlayout_mode = 2\n\n[node name=\"Options\" type=\"VBoxContainer\" parent=\"VBoxContainer/HBoxContainer\" unique_id=914216799]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer/HBoxContainer/Options\" unique_id=711056286]\nlayout_mode = 2\n\n[node name=\"Name\" type=\"Label\" parent=\"VBoxContainer/HBoxContainer/Options/HBoxContainer\" unique_id=375454812]\nunique_name_in_owner = true\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"VBoxContainer/HBoxContainer/Options/HBoxContainer\" unique_id=4670613]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"CanAnimate\" type=\"CheckBox\" parent=\"VBoxContainer/HBoxContainer/Options\" unique_id=1528736747]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 8\nmouse_default_cursor_shape = 2\ntext = \"Animate\"\n\n[node name=\"Values\" type=\"GridContainer\" parent=\"VBoxContainer/HBoxContainer/Options\" unique_id=1552434033]\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"VBoxContainer/HBoxContainer/Options/Values\" unique_id=125369439]\nlayout_mode = 2\ntext = \"Initial value:\"\n\n[node name=\"Initial\" parent=\"VBoxContainer/HBoxContainer/Options/Values\" unique_id=1915558208 instance=ExtResource(\"2\")]\nunique_name_in_owner = true\nlayout_mode = 2\neditable = false\n\n[node name=\"Label2\" type=\"Label\" parent=\"VBoxContainer/HBoxContainer/Options/Values\" unique_id=627776325]\nlayout_mode = 2\ntext = \"Final value:\"\n\n[node name=\"Final\" parent=\"VBoxContainer/HBoxContainer/Options/Values\" unique_id=194689446 instance=ExtResource(\"2\")]\nunique_name_in_owner = true\nlayout_mode = 2\neditable = false\n\n[node name=\"Label4\" type=\"Label\" parent=\"VBoxContainer/HBoxContainer/Options/Values\" unique_id=1235921192]\nlayout_mode = 2\ntext = \"Ease type:\"\n\n[node name=\"EaseType\" type=\"OptionButton\" parent=\"VBoxContainer/HBoxContainer/Options/Values\" unique_id=1404622346]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_vertical = 4\nmouse_default_cursor_shape = 2\ndisabled = true\nclip_text = true\n\n[node name=\"Label5\" type=\"Label\" parent=\"VBoxContainer/HBoxContainer/Options/Values\" unique_id=687245253]\nlayout_mode = 2\ntext = \"Interpolation:\"\n\n[node name=\"TransitionType\" type=\"OptionButton\" parent=\"VBoxContainer/HBoxContainer/Options/Values\" unique_id=1002587030]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_vertical = 4\ntooltip_text = \"How the value changes while moving from initial to final value\"\nmouse_default_cursor_shape = 2\ndisabled = true\nclip_text = true\n\n[connection signal=\"value_changed\" from=\"VBoxContainer/TopOptions/PreviewSlider\" to=\".\" method=\"_on_PreviewSlider_value_changed\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/HBoxContainer/PropertyList\" to=\".\" method=\"_on_PropertyList_item_selected\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/HBoxContainer/Options/CanAnimate\" to=\".\" method=\"_on_CanAnimate_toggled\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/HBoxContainer/Options/Values/Initial\" to=\".\" method=\"_on_Initial_value_changed\"]\n[connection signal=\"value_changed\" from=\"VBoxContainer/HBoxContainer/Options/Values/Final\" to=\".\" method=\"_on_Final_value_changed\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/HBoxContainer/Options/Values/EaseType\" to=\".\" method=\"_on_EaseType_item_selected\"]\n[connection signal=\"item_selected\" from=\"VBoxContainer/HBoxContainer/Options/Values/TransitionType\" to=\".\" method=\"_on_TransitionType_item_selected\"]\n"
  },
  {
    "path": "src/UI/Nodes/CollapsibleContainer.gd",
    "content": "@tool\nclass_name CollapsibleContainer\nextends VBoxContainer\n## A button that, when clicked, expands into a VBoxContainer.\n\n@export var text := \"\":\n\tset(value):\n\t\ttext = value\n\t\t_label.text = value\n@export var visible_content := false:\n\tset(value):\n\t\tvisible_content = value\n\t\t_button.button_pressed = value\n@export var flat := false:\n\tset(value):\n\t\tflat = value\n\t\t_button.flat = value\n\nvar _button := Button.new()\nvar _texture_rect := TextureRect.new()\nvar _label := Label.new()\n\n\nfunc _init() -> void:\n\ttheme_type_variation = \"CollapsibleContainer\"\n\n\nfunc _ready() -> void:\n\tif name.is_empty():\n\t\tname = \"CollapsibleContainer\"\n\t_button.flat = flat\n\t_button.toggle_mode = true\n\t_button.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\t_button.toggled.connect(set_visible_children)\n\tadd_child(_button, false, Node.INTERNAL_MODE_FRONT)\n\t_texture_rect.set_anchors_and_offsets_preset(\n\t\tControl.PRESET_CENTER_LEFT, Control.PRESET_MODE_MINSIZE\n\t)\n\t_texture_rect.rotation_degrees = -90\n\t_texture_rect.pivot_offset = Vector2(6, 6)\n\t_texture_rect.add_to_group(\"UIButtons\")\n\t_button.add_child(_texture_rect)\n\t_label.vertical_alignment = VERTICAL_ALIGNMENT_CENTER\n\t_label.position = Vector2(14, 0)\n\t_label.size_flags_vertical = Control.SIZE_SHRINK_CENTER\n\t_button.add_child(_label)\n\t_button.custom_minimum_size = _label.size\n\t_button.button_pressed = visible_content\n\tfor child in get_children():\n\t\tif not child is CanvasItem or child == _button:\n\t\t\tcontinue\n\t\tchild.visibility_changed.connect(_child_visibility_changed.bind(child))\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_THEME_CHANGED:\n\t\t_texture_rect.texture = get_theme_icon(\"arrow_normal\", \"CollapsibleContainer\")\n\n\n## Toggles whether the children of the container are visible or not\nfunc set_visible_children(pressed: bool) -> void:\n\tvar angle := 0.0 if pressed else -90.0\n\tcreate_tween().tween_property(_texture_rect, \"rotation_degrees\", angle, 0.05)\n\tfor child in get_children():\n\t\tif not child is CanvasItem or child == _button:\n\t\t\tcontinue\n\t\tchild.visible = pressed\n\n\n## Returns [member _button].\nfunc get_button() -> Button:\n\treturn _button\n\n\n## Checks if a child becomes visible from another sure and ensures\n## it remains invisible if the button is not pressed\nfunc _child_visibility_changed(child: CanvasItem) -> void:\n\tif not _button.pressed:\n\t\tchild.visible = false\n"
  },
  {
    "path": "src/UI/Nodes/CollapsibleContainer.gd.uid",
    "content": "uid://cca0fmlwaqjh1\n"
  },
  {
    "path": "src/UI/Nodes/CurveEditor/CurveControlPoint.gd",
    "content": "# Code taken and modified from Material Maker, licensed under MIT\n# gdlint: ignore=max-line-length\n# https://github.com/RodZill4/material-maker/blob/master/material_maker/widgets/curve_edit/control_point.gd\nclass_name CurveEditControlPoint\nextends Control\n\nsignal moved(index: int)\nsignal removed(index: int)\n\nconst OFFSET := Vector2(3, 3)\n\nvar moving := false\n\nvar min_x: float\nvar max_x: float\nvar min_y: float\nvar max_y: float\nvar left_slope: CurveEditTangentPoint\nvar right_slope: CurveEditTangentPoint\n\n@onready var parent := get_parent() as Control\n@onready var grandparent := parent.get_parent() as CurveEdit\n\n\nfunc _ready() -> void:\n\tgui_input.connect(_on_gui_input)\n\tcustom_minimum_size = Vector2(8, 8)\n\tleft_slope = CurveEditTangentPoint.new()\n\tright_slope = CurveEditTangentPoint.new()\n\tadd_child(left_slope)\n\tadd_child(right_slope)\n\n\nfunc _draw() -> void:\n\tvar color := Color.GRAY\n\tvar current_scene := get_tree().current_scene\n\tif current_scene is Control:\n\t\tvar current_theme := (current_scene as Control).theme\n\t\tcolor = current_theme.get_color(\"font_color\", \"Label\")\n\tfor c: CurveEditTangentPoint in get_children():\n\t\tif c.visible:\n\t\t\tdraw_line(OFFSET, c.position + OFFSET, color)\n\tdraw_rect(Rect2(0, 0, 7, 7), color)\n\n\nfunc initialize(curve: Curve, index: int) -> void:\n\tif not is_instance_valid(parent):\n\t\tawait ready\n\tposition = grandparent.transform_point(curve.get_point_position(index)) - OFFSET\n\tvar left_tangent := curve.get_point_left_tangent(index)\n\tvar right_tangent := curve.get_point_right_tangent(index)\n\tif left_tangent != INF:\n\t\tleft_slope.position = (\n\t\t\tleft_slope.distance * (parent.size * Vector2(1.0, -left_tangent)).normalized()\n\t\t)\n\tif right_tangent != INF:\n\t\tright_slope.position = (\n\t\t\tright_slope.distance * (parent.size * Vector2(1.0, -right_tangent)).normalized()\n\t\t)\n\n\nfunc set_control_point_visibility(left: bool, new_visible: bool) -> void:\n\tif not is_instance_valid(left_slope):\n\t\tawait ready\n\tif left:\n\t\tleft_slope.visible = new_visible\n\telse:\n\t\tright_slope.visible = new_visible\n\n\nfunc set_constraint(new_min_x: float, new_max_x: float, new_min_y: float, new_max_y: float) -> void:\n\tmin_x = new_min_x\n\tmax_x = new_max_x\n\tmin_y = new_min_y\n\tmax_y = new_max_y\n\n\nfunc _on_gui_input(event: InputEvent) -> void:\n\tif event is InputEventMouseButton:\n\t\tif event.button_index == MOUSE_BUTTON_LEFT:\n\t\t\tif event.pressed:\n\t\t\t\tmoving = true\n\t\t\telse:\n\t\t\t\tmoving = false\n\t\t\t\tgrandparent.update_controls()\n\t\telif event.button_index == MOUSE_BUTTON_RIGHT and event.pressed:\n\t\t\tremoved.emit(get_index())\n\telif moving and event is InputEventMouseMotion:\n\t\tposition += event.relative\n\t\tif position.x < min_x:\n\t\t\tposition.x = min_x\n\t\telif position.x > max_x:\n\t\t\tposition.x = max_x\n\t\tif position.y < min_y:\n\t\t\tposition.y = min_y\n\t\telif position.y > max_y:\n\t\t\tposition.y = max_y\n\t\tmoved.emit(get_index())\n\n\nfunc update_tangents() -> void:\n\tqueue_redraw()\n\tmoved.emit(get_index())\n"
  },
  {
    "path": "src/UI/Nodes/CurveEditor/CurveControlPoint.gd.uid",
    "content": "uid://bxn7u7x0ev381\n"
  },
  {
    "path": "src/UI/Nodes/CurveEditor/CurveEdit.gd",
    "content": "# Code taken and modified from Material Maker, licensed under MIT\n# gdlint: ignore=max-line-length\n# https://github.com/RodZill4/material-maker/blob/master/material_maker/widgets/curve_edit/curve_view.gd\n# and\n# gdlint: ignore=max-line-length\n# https://github.com/RodZill4/material-maker/blob/master/material_maker/widgets/curve_edit/curve_editor.gd\n@tool\nclass_name CurveEdit\nextends VBoxContainer\n\nsignal value_changed(value: Curve)\n\n## Array of dictionaries of key [String] and value [Array] of type [CurveEdit.CurvePoint].\nstatic var presets: Array[Dictionary] = [\n\t{\"Linear\": [CurvePoint.new(0.0, 0.0, 0.0, 1.0), CurvePoint.new(1.0, 1.0, 1.0, 0.0)]},\n\t{\n\t\t\"Ease out\":\n\t\t[\n\t\t\tCurvePoint.new(0.0, 0.0, 0.0, 4.0),\n\t\t\tCurvePoint.new(0.292893, 0.707107, 1.0, 1.0),\n\t\t\tCurvePoint.new(1.0, 1.0, 0.0, 0.0)\n\t\t]\n\t},\n\t{\n\t\t\"Ease in out\":\n\t\t[\n\t\t\tCurvePoint.new(0.0, 0.0, 0.0, 0.0),\n\t\t\tCurvePoint.new(0.5, 0.5, 3.0, 3.0),\n\t\t\tCurvePoint.new(1.0, 1.0, 0.0, 0.0)\n\t\t]\n\t},\n\t{\n\t\t\"Ease in\":\n\t\t[\n\t\t\tCurvePoint.new(0.0, 0.0, 0.0, 0.0),\n\t\t\tCurvePoint.new(0.707107, 0.292893, 1.0, 1.0),\n\t\t\tCurvePoint.new(1.0, 1.0, 4.0, 0.0)\n\t\t]\n\t},\n\t{\n\t\t\"Sawtooth\":\n\t\t[\n\t\t\tCurvePoint.new(0.0, 0.0, 0.0, 2.0),\n\t\t\tCurvePoint.new(0.5, 1.0, 2.0, -2.0),\n\t\t\tCurvePoint.new(1.0, 0.0, -2.0, 0.0)\n\t\t]\n\t},\n\t{\n\t\t\"Bounce\":\n\t\t[\n\t\t\tCurvePoint.new(0.0, 0.0, 0.0, 5.0),\n\t\t\tCurvePoint.new(0.15, 0.65, 2.45201, 2.45201),\n\t\t\tCurvePoint.new(0.5, 1.0, 0.0, 0.0),\n\t\t\tCurvePoint.new(0.85, 0.65, -2.45201, -2.45201),\n\t\t\tCurvePoint.new(1.0, 0.0, -5.0, 0.0)\n\t\t]\n\t},\n\t{\n\t\t\"Bevel\":\n\t\t[\n\t\t\tCurvePoint.new(0.0, 0.0, 0.0, 2.38507),\n\t\t\tCurvePoint.new(0.292893, 0.707107, 2.34362, 0.428147),\n\t\t\tCurvePoint.new(1.0, 1.0, 0.410866, 0.0)\n\t\t]\n\t}\n]\n@export var show_axes := true\n@export var curve: Curve:\n\tset(value):\n\t\tcurve = value\n\t\t_on_resize()\nvar curve_editor := Control.new()\nvar hbox := HBoxContainer.new()\n\n\nclass CurvePoint:\n\tvar pos: Vector2\n\tvar left_tangent: float\n\tvar right_tangent: float\n\n\tfunc _init(x: float, y: float, _left_tangent := 0.0, _right_tangent := 0.0) -> void:\n\t\tpos = Vector2(x, y)\n\t\tleft_tangent = _left_tangent\n\t\tright_tangent = _right_tangent\n\n\nfunc _ready() -> void:\n\tif not is_instance_valid(curve):\n\t\tcurve = Curve.new()\n\tif custom_minimum_size.is_zero_approx():\n\t\tcustom_minimum_size = Vector2(32, 150)\n\tcurve_editor.gui_input.connect(_on_gui_input)\n\tresized.connect(_on_resize)\n\tcurve_editor.size_flags_vertical = Control.SIZE_EXPAND_FILL\n\tadd_child(curve_editor)\n\tadd_child(hbox)\n\tvar presets_button := MenuButton.new()\n\tpresets_button.text = \"Presets\"\n\tpresets_button.flat = false\n\tpresets_button.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\tpresets_button.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\tpresets_button.get_popup().id_pressed.connect(_on_presets_item_selected)\n\tfor preset in presets:\n\t\tpresets_button.get_popup().add_item(preset.keys()[0])\n\tvar invert_button := Button.new()\n\tinvert_button.text = \"Invert\"\n\tinvert_button.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\tinvert_button.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\tinvert_button.pressed.connect(_on_invert_button_pressed)\n\thbox.add_child(presets_button)\n\thbox.add_child(invert_button)\n\t_on_resize.call_deferred()\n\n\nfunc update_controls() -> void:\n\tfor c in curve_editor.get_children():\n\t\tif c is CurveEditControlPoint:\n\t\t\tc.queue_free()\n\tfor i in curve.point_count:\n\t\tvar p := curve.get_point_position(i)\n\t\tvar control_point := CurveEditControlPoint.new()\n\t\tcurve_editor.add_child(control_point)\n\t\tcontrol_point.initialize(curve, i)\n\t\tcontrol_point.position = transform_point(p) - control_point.OFFSET\n\t\tif i == 0 or i == curve.point_count - 1:\n\t\t\tcontrol_point.set_constraint(\n\t\t\t\tcontrol_point.position.x,\n\t\t\t\tcontrol_point.position.x,\n\t\t\t\t-control_point.OFFSET.y,\n\t\t\t\tavailable_size().y - control_point.OFFSET.y\n\t\t\t)\n\t\t\tif i == 0:\n\t\t\t\tcontrol_point.set_control_point_visibility(true, false)\n\t\t\telse:\n\t\t\t\tcontrol_point.set_control_point_visibility(false, false)\n\t\telse:\n\t\t\tvar min_x := transform_point(curve.get_point_position(i - 1)).x + 1\n\t\t\tvar max_x := transform_point(curve.get_point_position(i + 1)).x - 1\n\t\t\tcontrol_point.set_constraint(\n\t\t\t\tmin_x, max_x, -control_point.OFFSET.y, available_size().y - control_point.OFFSET.y\n\t\t\t)\n\t\tcontrol_point.moved.connect(_on_control_point_moved)\n\t\tcontrol_point.removed.connect(_on_control_point_removed)\n\tvalue_changed.emit(curve)\n\n\nstatic func to_texture(from_curve: Curve, width := 256) -> CurveTexture:\n\tvar texture := CurveTexture.new()\n\ttexture.texture_mode = CurveTexture.TEXTURE_MODE_RED\n\ttexture.curve = from_curve\n\ttexture.width = width\n\treturn texture\n\n\nstatic func set_curve_preset(curve_to_edit: Curve, preset_index: int) -> void:\n\tcurve_to_edit.clear_points()\n\tvar preset_points: Array = presets[preset_index].values()[0]\n\tfor point: CurvePoint in preset_points:\n\t\tcurve_to_edit.add_point(point.pos, point.left_tangent, point.right_tangent)\n\n\nfunc set_default_curve() -> void:\n\tif not is_instance_valid(curve):\n\t\tcurve = Curve.new()\n\t_on_presets_item_selected(0)\n\n\nfunc available_size() -> Vector2:\n\tif curve_editor.size.is_zero_approx():\n\t\treturn Vector2.ONE\n\treturn curve_editor.size\n\n\nfunc transform_point(p: Vector2) -> Vector2:\n\treturn (Vector2(0.0, 1.0) + Vector2(1.0, -1.0) * p) * available_size()\n\n\nfunc reverse_transform_point(p: Vector2) -> Vector2:\n\treturn Vector2(0.0, 1.0) + Vector2(1.0, -1.0) * p / available_size()\n\n\nfunc _draw() -> void:\n\tvar bg := Color.DARK_GRAY\n\tvar fg := Color.GRAY\n\tvar current_scene := get_tree().current_scene\n\tif current_scene is Control:\n\t\tvar current_theme := (current_scene as Control).theme\n\t\tvar panel_stylebox := current_theme.get_stylebox(\"panel\", \"Panel\")\n\t\tif panel_stylebox is StyleBoxFlat:\n\t\t\tbg = panel_stylebox.bg_color\n\t\tfg = current_theme.get_color(\"font_color\", \"Label\")\n\tvar axes_color := bg.lerp(fg, 0.25)\n\tvar curve_color := bg.lerp(fg, 0.75)\n\tif show_axes:\n\t\tfor i in range(5):\n\t\t\tvar p := transform_point(0.25 * Vector2(i, i))\n\t\t\tdraw_line(Vector2(p.x, 0), Vector2(p.x, available_size().y - 1), axes_color)\n\t\t\tdraw_line(Vector2(0, p.y), Vector2(available_size().x - 1, p.y), axes_color)\n\tvar points := PackedVector2Array()\n\tfor i in range(curve.point_count - 1):\n\t\tvar p1 := curve.get_point_position(i)\n\t\tvar p2 := curve.get_point_position(i + 1)\n\t\tvar d := (p2.x - p1.x) / 3.0\n\t\tvar yac := p1.y + d * curve.get_point_right_tangent(i)\n\t\tvar ybc := p2.y - d * curve.get_point_left_tangent(i + 1)\n\t\tvar p := transform_point(p1)\n\t\tif points.is_empty():\n\t\t\tpoints.push_back(p)\n\t\tvar count := maxi(1, transform_point(p2).x - p.x / 5.0)\n\t\tfor tt in range(count):\n\t\t\tvar t := (tt + 1.0) / count\n\t\t\tvar omt := 1.0 - t\n\t\t\tvar omt2 := omt * omt\n\t\t\tvar omt3 := omt2 * omt\n\t\t\tvar t2 := t * t\n\t\t\tvar t3 := t2 * t\n\t\t\tvar x := p1.x + (p2.x - p1.x) * t\n\t\t\tvar y := p1.y * omt3 + yac * omt2 * t * 3.0 + ybc * omt * t2 * 3.0 + p2.y * t3\n\t\t\tp = transform_point(Vector2(x, y))\n\t\t\tpoints.push_back(p)\n\tif points.size() > 1:\n\t\tdraw_polyline(points, curve_color)\n\n\nfunc _on_control_point_moved(index: int) -> void:\n\tvar control_point := curve_editor.get_child(index) as CurveEditControlPoint\n\tvar new_point := reverse_transform_point(control_point.position + control_point.OFFSET)\n\tcurve.set_point_offset(index, new_point.x)\n\tcurve.set_point_value(index, new_point.y)\n\tif is_instance_valid(control_point.left_slope):\n\t\tvar slope_vector := control_point.left_slope.position / available_size()\n\t\tif slope_vector.x != 0:\n\t\t\tcurve.set_point_left_tangent(index, -slope_vector.y / slope_vector.x)\n\tif is_instance_valid(control_point.right_slope):\n\t\tvar slope_vector := control_point.right_slope.position / available_size()\n\t\tif slope_vector.x != 0:\n\t\t\tcurve.set_point_right_tangent(index, -slope_vector.y / slope_vector.x)\n\tqueue_redraw()\n\tvalue_changed.emit(curve)\n\n\nfunc _on_control_point_removed(index: int) -> void:\n\tif index > 0 and index < curve.point_count:\n\t\tcurve.remove_point(index)\n\t\tqueue_redraw()\n\t\tupdate_controls()\n\n\nfunc _on_gui_input(event: InputEvent) -> void:\n\tif event is InputEventMouseButton:\n\t\tif event.button_index == MOUSE_BUTTON_LEFT and event.double_click:\n\t\t\tvar new_point_position := reverse_transform_point(get_local_mouse_position())\n\t\t\tcurve.add_point(new_point_position, 0.0, 0.0)\n\t\t\tqueue_redraw()\n\t\t\tupdate_controls()\n\n\nfunc _on_resize() -> void:\n\tqueue_redraw()\n\tupdate_controls()\n\n\nfunc _on_presets_item_selected(index: int) -> void:\n\tset_curve_preset(curve, index)\n\tcurve = curve  # Call setter\n\n\nfunc _on_invert_button_pressed() -> void:\n\tvar copy_curve := curve.duplicate() as Curve\n\tcurve.clear_points()\n\tfor i in copy_curve.point_count:\n\t\tvar point := copy_curve.get_point_position(i)\n\t\tpoint.y = 1.0 - point.y\n\t\tvar left_tangent := -copy_curve.get_point_left_tangent(i)\n\t\tvar right_tangent := -copy_curve.get_point_right_tangent(i)\n\t\tcurve.add_point(point, left_tangent, right_tangent)\n\tcurve = curve  # Call setter\n"
  },
  {
    "path": "src/UI/Nodes/CurveEditor/CurveEdit.gd.uid",
    "content": "uid://cd0klfo0jdjni\n"
  },
  {
    "path": "src/UI/Nodes/CurveEditor/CurveTangentPoint.gd",
    "content": "# Code taken and modified from Material Maker, licensed under MIT\n# gdlint: ignore=max-line-length\n# https://github.com/RodZill4/material-maker/blob/master/material_maker/widgets/curve_edit/slope_point.gd\nclass_name CurveEditTangentPoint\nextends Control\n\nconst OFFSET := Vector2(0, 0)\n\n@export var distance := 30\n\nvar moving = false\n@onready var parent := get_parent() as CurveEditControlPoint\n@onready var grandparent := parent.get_parent() as Control\n\n\nfunc _ready() -> void:\n\tgui_input.connect(_on_gui_input)\n\tcustom_minimum_size = Vector2(8, 8)\n\tif get_index() == 0:\n\t\tdistance = -distance\n\n\nfunc _draw() -> void:\n\tvar color := Color.GRAY\n\tvar current_scene := get_tree().current_scene\n\tif current_scene is Control:\n\t\tvar current_theme := (current_scene as Control).theme\n\t\tcolor = current_theme.get_color(\"font_color\", \"Label\")\n\tdraw_circle(Vector2(3.0, 3.0), 3.0, color)\n\n\nfunc _on_gui_input(event: InputEvent) -> void:\n\tif event is InputEventMouseButton:\n\t\tif event.button_index == MOUSE_BUTTON_LEFT:\n\t\t\tif event.pressed:\n\t\t\t\tif event.double_click:\n\t\t\t\t\tvar vector: Vector2\n\t\t\t\t\tif get_index() == 0:\n\t\t\t\t\t\tvector = (\n\t\t\t\t\t\t\tparent.position - grandparent.get_child(parent.get_index() - 1).position\n\t\t\t\t\t\t)\n\t\t\t\t\telse:\n\t\t\t\t\t\tvector = (\n\t\t\t\t\t\t\tgrandparent.get_child(parent.get_index() + 1).position - parent.position\n\t\t\t\t\t\t)\n\t\t\t\t\tvector = distance * vector.normalized()\n\t\t\t\t\tposition = vector - OFFSET\n\t\t\t\t\tif event.is_control_or_command_pressed():\n\t\t\t\t\t\tparent.get_child(1 - get_index()).position = -vector - OFFSET\n\t\t\t\t\tparent.update_tangents()\n\t\t\t\telse:\n\t\t\t\t\tmoving = true\n\t\t\telse:\n\t\t\t\tmoving = false\n\telif moving and event is InputEventMouseMotion:\n\t\tvar vector := get_global_mouse_position() - parent.get_global_rect().position + OFFSET\n\t\tvector *= signf(vector.x)\n\t\tvector = distance * vector.normalized()\n\t\tposition = vector - OFFSET\n\t\tif event.is_command_or_control_pressed():\n\t\t\tparent.get_child(1 - get_index()).position = -vector - OFFSET\n\t\tparent.update_tangents()\n"
  },
  {
    "path": "src/UI/Nodes/CurveEditor/CurveTangentPoint.gd.uid",
    "content": "uid://cgx8811o1niyv\n"
  },
  {
    "path": "src/UI/Nodes/GradientEdit.gd",
    "content": "# Code taken and modified from Material Maker, licensed under MIT\n# gdlint: ignore=max-line-length\n# https://github.com/RodZill4/material-maker/blob/master/material_maker/widgets/gradient_editor/gradient_editor.gd\nclass_name GradientEditNode\nextends Control\n\nsignal updated(gradient: Gradient, cc: bool)\n\nconst GRADIENT_DIR := \"user://gradients\"\n\nvar continuous_change := true\nvar active_cursor: GradientCursor:  ## Showing a color picker popup to change a cursor's color\n\tset(value):\n\t\tactive_cursor = value\n\t\tif is_instance_valid(active_cursor):\n\t\t\tawait get_tree().process_frame\n\t\t\toffset_value_slider.set_value_no_signal_update_display(\n\t\t\t\tactive_cursor.get_cursor_offset()\n\t\t\t)\n\t\tfor i in texture_rect.get_children():\n\t\t\ti.queue_redraw()\nvar texture := GradientTexture2D.new()\nvar gradient := Gradient.new()\nvar presets: Array[Preset] = []\n\n@onready var x_offset: float = size.x - GradientCursor.WIDTH\n@onready var offset_value_slider := %OffsetValueSlider as ValueSlider\n@onready var interpolation_option_button: OptionButton = %InterpolationOptionButton\n@onready var color_space_option_button: OptionButton = %ColorSpaceOptionButton\n@onready var tools_menu_button: MenuButton = %ToolsMenuButton\n@onready var preset_list_button: Button = %PresetListButton\n@onready var presets_container: VBoxContainer = %PresetsContainer\n@onready var texture_rect := $TextureRect as TextureRect\n@onready var color_picker := $Popup.get_node(\"ColorPicker\") as ColorPicker\n@onready var divide_dialog := $DivideConfirmationDialog as ConfirmationDialog\n@onready var number_of_parts_spin_box := $\"%NumberOfPartsSpinBox\" as SpinBox\n@onready var add_point_end_check_box := $\"%AddPointEndCheckBox\" as CheckBox\n\n\nclass GradientCursor:\n\textends Control\n\n\tconst WIDTH := 10\n\tvar color: Color\n\tvar sliding := false\n\n\t@onready var parent: TextureRect = get_parent()\n\t@onready var grand_parent: GradientEditNode = parent.get_parent()\n\n\tfunc _ready() -> void:\n\t\tsize = Vector2(WIDTH, get_parent().size.y)\n\n\tfunc _draw() -> void:\n\t\tvar polygon := PackedVector2Array(\n\t\t\t[\n\t\t\t\tVector2(0, size.y * 0.75),\n\t\t\t\tVector2(WIDTH * 0.5, size.y * 0.5),\n\t\t\t\tVector2(WIDTH, size.y * 0.75),\n\t\t\t\tVector2(WIDTH, size.y),\n\t\t\t\tVector2(0, size.y),\n\t\t\t\tVector2(0, size.y * 0.75)\n\t\t\t]\n\t\t)\n\t\tvar c := color\n\t\tc.a = 1.0\n\t\tdraw_colored_polygon(polygon, c)\n\t\tvar outline_color := Color.BLACK if (color.get_luminance() > 0.5) else Color.WHITE\n\t\tdraw_polyline(polygon, outline_color)\n\t\tdraw_dashed_line(Vector2(WIDTH * 0.5, 0), Vector2(WIDTH * 0.5, size.y * 0.5), outline_color)\n\t\t# Draw the TRIANGLE (house roof) shape\n\t\tif grand_parent.active_cursor == self:\n\t\t\tvar active_polygon: PackedVector2Array = PackedVector2Array(\n\t\t\t\t[\n\t\t\t\t\tVector2(0, size.y * 0.75),\n\t\t\t\t\tVector2(WIDTH * 0.5, size.y * 0.5),\n\t\t\t\t\tVector2(WIDTH, size.y * 0.75),\n\t\t\t\t\tVector2(0, size.y * 0.75)\n\t\t\t\t]\n\t\t\t)\n\t\t\tdraw_colored_polygon(active_polygon, outline_color)\n\n\tfunc _gui_input(ev: InputEvent) -> void:\n\t\tif ev is InputEventMouseButton:\n\t\t\tif ev.button_index == MOUSE_BUTTON_LEFT:\n\t\t\t\tif ev.double_click:\n\t\t\t\t\tgrand_parent.select_color(self, ev.global_position)\n\t\t\t\telif ev.pressed:\n\t\t\t\t\tgrand_parent.active_cursor = self\n\t\t\t\t\tgrand_parent.continuous_change = false\n\t\t\t\t\tsliding = true\n\t\t\t\telse:\n\t\t\t\t\tsliding = false\n\t\t\telif (\n\t\t\t\tev.button_index == MOUSE_BUTTON_RIGHT\n\t\t\t\tand grand_parent.get_sorted_cursors().size() > 2\n\t\t\t):\n\t\t\t\tvar node_index := get_index()\n\t\t\t\tparent.remove_child(self)\n\t\t\t\tqueue_free()\n\t\t\t\tif grand_parent.active_cursor == self:\n\t\t\t\t\tif node_index > 0:\n\t\t\t\t\t\tnode_index -= 1\n\t\t\t\t\tgrand_parent.active_cursor = parent.get_child(node_index)\n\t\t\t\tgrand_parent.continuous_change = false\n\t\t\t\tgrand_parent.update_from_value()\n\t\telif (\n\t\t\tev is InputEventMouseMotion\n\t\t\tand (ev.button_mask & MOUSE_BUTTON_MASK_LEFT) != 0\n\t\t\tand sliding\n\t\t):\n\t\t\tmove_to(position.x + get_local_mouse_position().x, true, ev.ctrl_pressed)\n\n\tfunc move_to(pos: float, update_slider: bool, snap := false) -> void:\n\t\tposition.x = pos\n\t\tif snap:\n\t\t\tposition.x = (roundi(get_cursor_offset() * 20.0) * 0.05 * (parent.size.x - WIDTH))\n\t\tposition.x = mini(maxi(0, position.x), parent.size.x - size.x)\n\t\tgrand_parent.update_from_value()\n\t\tif update_slider:\n\t\t\tgrand_parent.offset_value_slider.value = get_cursor_offset()\n\n\tfunc get_cursor_offset() -> float:\n\t\treturn position.x / (parent.size.x - WIDTH)\n\n\tfunc get_cursor_position_from_offset(offset: float) -> float:\n\t\treturn offset * (parent.size.x - WIDTH)\n\n\tfunc set_color(c: Color) -> void:\n\t\tcolor = c\n\t\tgrand_parent.update_from_value()\n\t\tqueue_redraw()\n\n\tfunc _can_drop_data(_position: Vector2, data) -> bool:\n\t\treturn typeof(data) == TYPE_COLOR\n\n\tfunc _drop_data(_position: Vector2, data) -> void:\n\t\tset_color(data)\n\n\nclass Preset:\n\tvar gradient: Gradient\n\tvar file_name := \"\"\n\n\tfunc _init(_gradient: Gradient, _file_name := \"\") -> void:\n\t\tgradient = _gradient\n\t\tfile_name = _file_name\n\n\nfunc _init() -> void:\n\ttexture.gradient = gradient\n\n\nfunc _ready() -> void:\n\ttexture_rect.texture = texture\n\t_create_cursors()\n\tinterpolation_option_button.select(gradient.interpolation_mode)\n\tcolor_space_option_button.select(gradient.interpolation_color_space)\n\ttools_menu_button.get_popup().index_pressed.connect(_on_tools_menu_button_index_pressed)\n\n\nfunc _create_cursors() -> void:\n\tfor c in texture_rect.get_children():\n\t\tif c is GradientCursor:\n\t\t\ttexture_rect.remove_child(c)\n\t\t\tc.queue_free()\n\tfor i in gradient.get_point_count():\n\t\tvar p: float = gradient.get_offset(i)\n\t\tadd_cursor(p * x_offset, gradient.get_color(i))\n\n\nfunc _gui_input(ev: InputEvent) -> void:\n\tif ev.is_action_pressed(\"left_mouse\"):\n\t\tvar p := clampf(ev.position.x, 0, x_offset)\n\t\tadd_cursor(p, get_gradient_color(p))\n\t\tcontinuous_change = false\n\t\tupdate_from_value()\n\n\nfunc update_from_value() -> void:\n\tgradient.offsets = []\n\tfor c in texture_rect.get_children():\n\t\tif c is GradientCursor:\n\t\t\tvar point: float = c.position.x / x_offset\n\t\t\tgradient.add_point(point, c.color)\n\tupdated.emit(gradient, continuous_change)\n\tcontinuous_change = true\n\n\nfunc add_cursor(x: float, color: Color) -> void:\n\tvar cursor := GradientCursor.new()\n\ttexture_rect.add_child(cursor)\n\tactive_cursor = cursor\n\tcursor.position.x = x\n\tcursor.color = color\n\n\nfunc select_color(cursor: GradientCursor, pos: Vector2) -> void:\n\tcolor_picker.color = cursor.color\n\tif pos.x > global_position.x + (size.x / 2.0):\n\t\tpos.x = global_position.x + size.x\n\telse:\n\t\tpos.x = global_position.x - $Popup.size.x\n\t$Popup.popup_on_parent(Rect2i(pos, Vector2.ONE))\n\n\nfunc get_sorted_cursors() -> Array:\n\tvar array: Array[GradientCursor] = []\n\tfor c in texture_rect.get_children():\n\t\tif c is GradientCursor:\n\t\t\tarray.append(c)\n\tarray.sort_custom(\n\t\tfunc(a: GradientCursor, b: GradientCursor): return a.get_position() < b.get_position()\n\t)\n\treturn array\n\n\nfunc get_gradient_color(x: float) -> Color:\n\treturn gradient.sample(x / x_offset)\n\n\nfunc set_gradient_texture_1d(new_texture: GradientTexture1D) -> void:\n\ttexture = GradientTexture2D.new()\n\ttexture.gradient = new_texture.gradient\n\t$TextureRect.texture = texture\n\tgradient = texture.gradient\n\n\nfunc set_gradient_texture(new_texture: GradientTexture2D) -> void:\n\t$TextureRect.texture = new_texture\n\ttexture = new_texture\n\tgradient = texture.gradient\n\n\n## Construct an image that contains the selected colors of the gradient without interpolation.\nfunc get_gradient_texture_no_interpolation() -> ImageTexture:\n\tvar offsets := gradient.offsets\n\toffsets.sort()\n\tvar n_of_colors := offsets.size()\n\tvar gradient_image := Image.create(n_of_colors, 1, false, Image.FORMAT_RGBA8)\n\tfor i in n_of_colors:\n\t\tvar actual_index := gradient.offsets.find(offsets[i])\n\t\tif actual_index == -1:\n\t\t\tactual_index = i\n\t\tgradient_image.set_pixel(i, 0, gradient.colors[actual_index])\n\treturn ImageTexture.create_from_image(gradient_image)\n\n\n## Pass the gradient offsets as an array to the shader,\n## but we can't provide arrays with variable sizes as uniforms, instead we construct\n## a Nx1 grayscale texture with each offset stored in each pixel, and pass it to the shader.\nfunc get_gradient_offsets_texture() -> ImageTexture:\n\tvar offsets := gradient.offsets\n\toffsets.sort()\n\tvar n_of_colors := offsets.size()\n\tvar offsets_image := Image.create(n_of_colors, 1, false, Image.FORMAT_L8)\n\tfor i in n_of_colors:\n\t\tvar c := offsets[i]\n\t\toffsets_image.set_pixel(i, 0, Color(c, c, c, c))\n\treturn ImageTexture.create_from_image(offsets_image)\n\n\nfunc serialize_gradient(grad: Gradient) -> Dictionary:\n\tvar dict := {}\n\tdict[\"offsets\"] = grad.offsets\n\tdict[\"colors\"] = var_to_str(grad.colors)\n\tdict[\"interpolation_mode\"] = grad.interpolation_mode\n\tdict[\"interpolation_color_space\"] = grad.interpolation_color_space\n\treturn dict\n\n\nfunc deserialize_gradient(dict: Dictionary) -> Gradient:\n\tvar new_gradient := Gradient.new()\n\tnew_gradient.offsets = dict.get(\"offsets\", new_gradient.offsets)\n\tvar colors = str_to_var(dict.get(\"colors\"))\n\tnew_gradient.colors = colors\n\tnew_gradient.interpolation_mode = dict.get(\n\t\t\"interpolation_mode\", new_gradient.interpolation_mode\n\t)\n\tnew_gradient.interpolation_color_space = dict.get(\n\t\t\"interpolation_color_space\", new_gradient.interpolation_color_space\n\t)\n\treturn new_gradient\n\n\nfunc _on_ColorPicker_color_changed(color: Color) -> void:\n\tactive_cursor.set_color(color)\n\n\nfunc _on_GradientEdit_resized() -> void:\n\tif not is_instance_valid(texture_rect):\n\t\treturn\n\tx_offset = size.x - GradientCursor.WIDTH\n\t_create_cursors()\n\n\nfunc _on_offset_value_slider_value_changed(value: float) -> void:\n\tvar cursor_pos := active_cursor.get_cursor_position_from_offset(value)\n\tif cursor_pos != active_cursor.get_cursor_offset():\n\t\tactive_cursor.move_to(cursor_pos, false)\n\n\nfunc _on_InterpolationOptionButton_item_selected(index: Gradient.InterpolationMode) -> void:\n\tgradient.interpolation_mode = index\n\tupdated.emit(gradient, continuous_change)\n\n\nfunc _on_color_space_option_button_item_selected(index: Gradient.ColorSpace) -> void:\n\tgradient.interpolation_color_space = index\n\tupdated.emit(gradient, continuous_change)\n\n\nfunc _on_tools_menu_button_index_pressed(index: int) -> void:\n\tif index == 0:  # Reverse\n\t\tgradient.reverse()\n\t\t_create_cursors()\n\t\tupdated.emit(gradient, continuous_change)\n\telif index == 1:  # Evenly distribute points\n\t\tvar point_count := gradient.get_point_count()\n\t\tfor i in range(point_count):\n\t\t\tgradient.set_offset(i, 1.0 / (point_count - 1) * i)\n\t\t_create_cursors()\n\t\tupdated.emit(gradient, continuous_change)\n\telif index == 2:  # Divide into equal parts\n\t\tdivide_dialog.popup_centered_clamped()\n\n\nfunc _initialize_presets() -> void:\n\tpresets.clear()\n\tfor child in presets_container.get_children():\n\t\tchild.queue_free()\n\tpresets.append(Preset.new(Gradient.new()))  # Left to right\n\tpresets.append(Preset.new(Gradient.new()))  # Left to transparent\n\tpresets.append(Preset.new(Gradient.new()))  # Black to white\n\t# Update left to right and left to transparent gradients\n\tpresets[0].gradient.set_color(0, Tools.get_assigned_color(MOUSE_BUTTON_LEFT))\n\tpresets[0].gradient.set_color(1, Tools.get_assigned_color(MOUSE_BUTTON_RIGHT))\n\tpresets[1].gradient.set_color(0, Tools.get_assigned_color(MOUSE_BUTTON_LEFT))\n\tpresets[1].gradient.set_color(1, Color(0, 0, 0, 0))\n\tfor file_name in DirAccess.get_files_at(GRADIENT_DIR):\n\t\tvar full_file_name := GRADIENT_DIR.path_join(file_name)\n\t\tvar file := FileAccess.open(full_file_name, FileAccess.READ)\n\t\tvar json := file.get_as_text()\n\t\tvar dict = JSON.parse_string(json)\n\t\tif typeof(dict) == TYPE_DICTIONARY:\n\t\t\tvar preset_gradient := deserialize_gradient(dict)\n\t\t\tpresets.append(Preset.new(preset_gradient, full_file_name))\n\tfor preset in presets:\n\t\t_create_preset_button(preset)\n\n\nfunc _on_save_to_presets_button_pressed() -> void:\n\tif not DirAccess.dir_exists_absolute(GRADIENT_DIR):\n\t\tDirAccess.make_dir_absolute(GRADIENT_DIR)\n\tvar json := JSON.stringify(serialize_gradient(gradient))\n\tvar file_name := GRADIENT_DIR.path_join(str(floori(Time.get_unix_time_from_system())))\n\tvar file := FileAccess.open(file_name, FileAccess.WRITE)\n\tfile.store_string(json)\n\n\nfunc _on_preset_list_button_pressed() -> void:\n\t_initialize_presets()\n\tvar popup_panel := preset_list_button.get_child(0) as PopupPanel\n\tvar popup_position := preset_list_button.get_screen_position()\n\tpopup_position.y += preset_list_button.size.y + 4\n\tpopup_panel.popup(Rect2i(popup_position, Vector2i.ONE))\n\n\nfunc _create_preset_button(preset: Preset) -> void:\n\tvar grad_texture := GradientTexture2D.new()\n\tgrad_texture.height = 32\n\tgrad_texture.gradient = preset.gradient\n\tvar gradient_button := Button.new()\n\tgradient_button.icon = grad_texture\n\tgradient_button.gui_input.connect(_on_preset_button_gui_input.bind(preset))\n\tpresets_container.add_child(gradient_button)\n\n\nfunc _on_preset_button_gui_input(event: InputEvent, preset: Preset) -> void:\n\tif event is not InputEventMouseButton:\n\t\treturn\n\tif event.pressed:\n\t\treturn\n\tif event.button_index == MOUSE_BUTTON_LEFT:  # Select preset\n\t\tgradient = preset.gradient.duplicate()\n\t\ttexture.gradient = gradient\n\t\t_create_cursors()\n\t\tupdated.emit(gradient, continuous_change)\n\t\tvar popup_panel := preset_list_button.get_child(0) as PopupPanel\n\t\tpopup_panel.hide()\n\telif event.button_index == MOUSE_BUTTON_RIGHT or event.button_index == MOUSE_BUTTON_MIDDLE:\n\t\t# Remove preset\n\t\tif preset.file_name.is_empty():\n\t\t\treturn\n\t\tDirAccess.remove_absolute(preset.file_name)\n\t\tpresets.erase(preset)\n\t\tvar button := presets_container.get_child(presets.find(preset)) as Button\n\t\tbutton.queue_free()\n\n\nfunc _on_DivideConfirmationDialog_confirmed() -> void:\n\tvar add_point_to_end := add_point_end_check_box.button_pressed\n\tvar parts := number_of_parts_spin_box.value\n\tvar colors: PackedColorArray = []\n\tvar end_point := 1 if add_point_to_end else 0\n\tparts -= end_point\n\n\tif not add_point_to_end:\n\t\t# Move the final color one part behind, useful for it to be in constant interpolation\n\t\tgradient.add_point((parts - 1) / parts, gradient.sample(1))\n\tfor i in parts + end_point:\n\t\tcolors.append(gradient.sample(i / parts))\n\tgradient.offsets = []\n\tfor i in parts + end_point:\n\t\tgradient.add_point(i / parts, colors[i])\n\t_create_cursors()\n\tupdated.emit(gradient, continuous_change)\n"
  },
  {
    "path": "src/UI/Nodes/GradientEdit.gd.uid",
    "content": "uid://bqcro2iobw22n\n"
  },
  {
    "path": "src/UI/Nodes/GradientEdit.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bn4aw27dj7pwi\"]\n\n[ext_resource type=\"Script\" uid=\"uid://bqcro2iobw22n\" path=\"res://src/UI/Nodes/GradientEdit.gd\" id=\"1\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://cis71foi5jt31\" path=\"res://assets/graphics/misc/settings.svg\" id=\"2_2dyyb\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"2_y6708\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://cvc120a27s57m\" path=\"res://assets/graphics/misc/save.svg\" id=\"4_b5s6b\"]\n\n[node name=\"GradientEdit\" type=\"VBoxContainer\" unique_id=308571157]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\nscript = ExtResource(\"1\")\n\n[node name=\"InterpolationContainer\" type=\"HBoxContainer\" parent=\".\" unique_id=269042896]\nlayout_mode = 2\n\n[node name=\"OffsetValueSlider\" type=\"TextureProgressBar\" parent=\"InterpolationContainer\" unique_id=1568485621]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(64, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_filter = 0\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 1.0\nstep = 0.001\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"2_y6708\")\nsnap_step = 0.1\n\n[node name=\"InterpolationOptionButton\" type=\"OptionButton\" parent=\"InterpolationContainer\" unique_id=117837122]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Interpolation\"\nmouse_default_cursor_shape = 2\nselected = 0\nfit_to_longest_item = false\nitem_count = 3\npopup/item_0/text = \"Linear\"\npopup/item_0/id = 0\npopup/item_1/text = \"Constant\"\npopup/item_1/id = 1\npopup/item_2/text = \"Cubic\"\npopup/item_2/id = 2\n\n[node name=\"ColorSpaceOptionButton\" type=\"OptionButton\" parent=\"InterpolationContainer\" unique_id=226778671]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\ntooltip_text = \"Color space\"\nmouse_default_cursor_shape = 2\nselected = 0\nfit_to_longest_item = false\nitem_count = 3\npopup/item_0/text = \"sRGB\"\npopup/item_0/id = 0\npopup/item_1/text = \"Linear sRGB\"\npopup/item_1/id = 1\npopup/item_2/text = \"Oklab\"\npopup/item_2/id = 2\n\n[node name=\"ToolsMenuButton\" type=\"MenuButton\" parent=\"InterpolationContainer\" unique_id=1249427130]\nunique_name_in_owner = true\nlayout_mode = 2\ntooltip_text = \"Tools\"\nmouse_default_cursor_shape = 2\nicon = ExtResource(\"2_2dyyb\")\nflat = false\nicon_alignment = 1\nitem_count = 3\npopup/item_0/text = \"Reverse\"\npopup/item_0/id = 0\npopup/item_1/text = \"Evenly distribute points\"\npopup/item_1/id = 1\npopup/item_2/text = \"Divide into equal parts\"\npopup/item_2/id = 2\n\n[node name=\"SaveToPresetsButton\" type=\"Button\" parent=\"InterpolationContainer\" unique_id=395800274]\nlayout_mode = 2\ntooltip_text = \"Save to presets\"\nmouse_default_cursor_shape = 2\nicon = ExtResource(\"4_b5s6b\")\n\n[node name=\"PresetListButton\" type=\"Button\" parent=\"InterpolationContainer\" unique_id=1760922533]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntext = \"Presets\"\n\n[node name=\"PopupPanel\" type=\"PopupPanel\" parent=\"InterpolationContainer/PresetListButton\" unique_id=839632612]\n\n[node name=\"ScrollContainer\" type=\"ScrollContainer\" parent=\"InterpolationContainer/PresetListButton/PopupPanel\" unique_id=801037916]\ncustom_minimum_size = Vector2(100, 150)\noffset_left = 4.0\noffset_top = 4.0\noffset_right = 104.0\noffset_bottom = 154.0\n\n[node name=\"PresetsContainer\" type=\"VBoxContainer\" parent=\"InterpolationContainer/PresetListButton/PopupPanel/ScrollContainer\" unique_id=2115640326]\nunique_name_in_owner = true\nlayout_mode = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\".\" unique_id=943831304]\ncustom_minimum_size = Vector2(0, 30)\nlayout_direction = 2\nlayout_mode = 2\nsize_flags_vertical = 3\nexpand_mode = 1\n\n[node name=\"Popup\" type=\"PopupPanel\" parent=\".\" unique_id=2114072867]\nunresizable = false\nborderless = false\n\n[node name=\"ColorPicker\" type=\"ColorPicker\" parent=\"Popup\" unique_id=1565192928]\noffset_left = 4.0\noffset_top = 4.0\noffset_right = 161.0\noffset_bottom = 331.0\n\n[node name=\"DivideConfirmationDialog\" type=\"ConfirmationDialog\" parent=\".\" unique_id=48060438]\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"DivideConfirmationDialog\" unique_id=390275624]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 8.0\noffset_top = 8.0\noffset_right = -8.0\noffset_bottom = -36.0\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"DivideConfirmationDialog/VBoxContainer\" unique_id=920237456]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"DivideConfirmationDialog/VBoxContainer/HBoxContainer\" unique_id=1391381508]\nlayout_mode = 2\ntext = \"Parts:\"\n\n[node name=\"NumberOfPartsSpinBox\" type=\"SpinBox\" parent=\"DivideConfirmationDialog/VBoxContainer/HBoxContainer\" unique_id=1094855716]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmin_value = 2.0\nvalue = 3.0\nallow_greater = true\n\n[node name=\"AddPointEndCheckBox\" type=\"CheckBox\" parent=\"DivideConfirmationDialog/VBoxContainer\" unique_id=1626355087]\nunique_name_in_owner = true\nlayout_mode = 2\ntooltip_text = \"If this is enabled, the last point gets added at the end of the gradient.\nDisable this if you wish to convert the gradient to have constant interpolation, so that the last color will be taken into account.\"\nmouse_default_cursor_shape = 2\ntext = \"Add point at the end\"\n\n[connection signal=\"resized\" from=\".\" to=\".\" method=\"_on_GradientEdit_resized\"]\n[connection signal=\"value_changed\" from=\"InterpolationContainer/OffsetValueSlider\" to=\".\" method=\"_on_offset_value_slider_value_changed\"]\n[connection signal=\"item_selected\" from=\"InterpolationContainer/InterpolationOptionButton\" to=\".\" method=\"_on_InterpolationOptionButton_item_selected\"]\n[connection signal=\"item_selected\" from=\"InterpolationContainer/ColorSpaceOptionButton\" to=\".\" method=\"_on_color_space_option_button_item_selected\"]\n[connection signal=\"pressed\" from=\"InterpolationContainer/SaveToPresetsButton\" to=\".\" method=\"_on_save_to_presets_button_pressed\"]\n[connection signal=\"pressed\" from=\"InterpolationContainer/PresetListButton\" to=\".\" method=\"_on_preset_list_button_pressed\"]\n[connection signal=\"color_changed\" from=\"Popup/ColorPicker\" to=\".\" method=\"_on_ColorPicker_color_changed\"]\n[connection signal=\"confirmed\" from=\"DivideConfirmationDialog\" to=\".\" method=\"_on_DivideConfirmationDialog_confirmed\"]\n"
  },
  {
    "path": "src/UI/Nodes/MaxMinEdit.gd",
    "content": "# Code taken and modified from Material Maker, licensed under MIT\n# gdlint: ignore=max-line-length\n# https://github.com/RodZill4/material-maker/blob/master/material_maker/widgets/gradient_editor/gradient_editor.gd\nclass_name MaxMinEdit\nextends Control\n\nsignal updated(zone)\n\n@export var start := 0.0\n@export var end := 1.0\n@export var zone_col := Color.BLACK\n@export var background_col := Color.GRAY\n\nvar active_cursor: GradientCursor  # Showing a color picker popup to change a cursor's color\n\n@onready var x_offset: float = size.x - GradientCursor.WIDTH\n@onready var texture_rect := $TextureRect as TextureRect\n@onready var texture := texture_rect.texture as GradientTexture2D\n@onready var gradient := texture.gradient as Gradient\n\n\nclass GradientCursor:\n\textends Control\n\n\tconst WIDTH := 10\n\tvar color: Color\n\tvar sliding := false\n\n\t@onready var parent: TextureRect = get_parent()\n\t@onready var grand_parent: Container = parent.get_parent()\n\t@onready var label: Label = parent.get_node(\"Value\")\n\n\tfunc _ready() -> void:\n\t\tposition = Vector2(0, 15)\n\t\tsize = Vector2(WIDTH, 15)\n\n\tfunc _draw() -> void:\n\t\tvar polygon := PackedVector2Array(\n\t\t\t[\n\t\t\t\tVector2(0, 5),\n\t\t\t\tVector2(WIDTH / 2.0, 0),\n\t\t\t\tVector2(WIDTH, 5),\n\t\t\t\tVector2(WIDTH, 15),\n\t\t\t\tVector2(0, 15),\n\t\t\t\tVector2(0, 5)\n\t\t\t]\n\t\t)\n\t\tvar c := color\n\t\tc.a = 1.0\n\t\tdraw_colored_polygon(polygon, c)\n\t\tdraw_polyline(polygon, Color(0.0, 0.0, 0.0) if color.v > 0.5 else Color(1.0, 1.0, 1.0))\n\n\tfunc _gui_input(ev: InputEvent) -> void:\n\t\tif ev is InputEventMouseButton:\n\t\t\tif ev.button_index == MOUSE_BUTTON_LEFT:\n\t\t\t\tif ev.pressed:\n\t\t\t\t\tsliding = true\n\t\t\t\t\tlabel.visible = true\n\t\t\t\t\tlabel.text = \"%.03f\" % get_caret_column()\n\t\t\t\telse:\n\t\t\t\t\tsliding = false\n\t\t\t\t\tlabel.visible = false\n\t\telif (\n\t\t\tev is InputEventMouseMotion\n\t\t\tand (ev.button_mask & MOUSE_BUTTON_MASK_LEFT) != 0\n\t\t\tand sliding\n\t\t):\n\t\t\tposition.x += get_local_mouse_position().x\n\t\t\tif ev.ctrl_pressed:\n\t\t\t\tposition.x = (roundi(get_caret_column() * 20.0) * 0.05 * (parent.size.x - WIDTH))\n\t\t\tposition.x = mini(maxi(0, position.x), parent.size.x - size.x)\n\t\t\tgrand_parent.update_from_value()\n\t\t\tlabel.text = \"%.03f\" % get_caret_column()\n\n\tfunc get_caret_column() -> float:\n\t\treturn position.x / (parent.size.x - WIDTH)\n\n\nfunc _ready() -> void:\n\tgradient = gradient.duplicate(true)\n\ttexture.gradient = gradient\n\tgradient.offsets[1] = start\n\tgradient.offsets[2] = end\n\tgradient.interpolation_mode = Gradient.GRADIENT_INTERPOLATE_CONSTANT\n\tgradient.colors[0] = background_col\n\tgradient.colors[2] = background_col\n\tgradient.colors[1] = zone_col\n\t_create_cursors()\n\n\nfunc _create_cursors() -> void:\n\tfor c in texture_rect.get_children():\n\t\tif c is GradientCursor:\n\t\t\ttexture_rect.remove_child(c)\n\t\t\tc.queue_free()\n\tfor i in gradient.get_point_count():\n\t\tif i == 0:\n\t\t\tgradient.set_offset(0, 0)\n\t\telse:\n\t\t\tvar p: float = gradient.get_offset(i)\n\t\t\tadd_cursor(p * x_offset)\n\n\nfunc update_from_value() -> void:\n\tgradient.offsets = [0.0]\n\tvar cursors: Array[GradientCursor] = []\n\tfor c in texture_rect.get_children():\n\t\tif c is GradientCursor:\n\t\t\tcursors.append(c)\n\tvar point_1: float = cursors[0].position.x / x_offset\n\tvar point_2: float = cursors[1].position.x / x_offset\n\tif cursors[1].get_caret_column() > cursors[0].get_caret_column():\n\t\tgradient.add_point(point_1, zone_col)\n\t\tgradient.add_point(point_2, background_col)\n\telse:\n\t\tgradient.add_point(point_1, background_col)\n\t\tgradient.add_point(point_2, zone_col)\n\tupdated.emit(gradient.offsets[1], gradient.offsets[2])\n\n\nfunc add_cursor(x: float) -> void:\n\tvar cursor := GradientCursor.new()\n\ttexture_rect.add_child(cursor)\n\tcursor.position.x = x\n\tcursor.color = zone_col\n\n\nfunc _on_GradientEdit_resized() -> void:\n\tif not gradient:\n\t\treturn\n\tx_offset = size.x - GradientCursor.WIDTH\n\t_create_cursors()\n"
  },
  {
    "path": "src/UI/Nodes/MaxMinEdit.gd.uid",
    "content": "uid://xxrmad3xuwn0\n"
  },
  {
    "path": "src/UI/Nodes/MaxMinEdit.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bmsc0s03pwji4\"]\n\n[ext_resource type=\"Script\" uid=\"uid://xxrmad3xuwn0\" path=\"res://src/UI/Nodes/MaxMinEdit.gd\" id=\"1\"]\n[ext_resource type=\"Shader\" uid=\"uid://jvo6i3t4snow\" path=\"res://src/Shaders/AutoInvertColors.gdshader\" id=\"2\"]\n\n[sub_resource type=\"Gradient\" id=\"3\"]\ninterpolation_mode = 1\noffsets = PackedFloat32Array(0, 0, 1)\ncolors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1)\n\n[sub_resource type=\"GradientTexture2D\" id=\"6\"]\ngradient = SubResource(\"3\")\n\n[sub_resource type=\"ShaderMaterial\" id=\"5\"]\nshader = ExtResource(\"2\")\nshader_parameter/width = 0.05\nshader_parameter/hollow_shapes = false\n\n[node name=\"MaxMinEdit\" type=\"VBoxContainer\" unique_id=1621151285]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\nscript = ExtResource(\"1\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\".\" unique_id=1086824968]\ncustom_minimum_size = Vector2(0, 30)\nlayout_mode = 2\nsize_flags_vertical = 3\ntexture = SubResource(\"6\")\nexpand_mode = 1\n\n[node name=\"Value\" type=\"Label\" parent=\"TextureRect\" unique_id=852397936]\nmaterial = SubResource(\"5\")\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\n\n[connection signal=\"resized\" from=\".\" to=\".\" method=\"_on_GradientEdit_resized\"]\n"
  },
  {
    "path": "src/UI/Nodes/NoiseGenerator.gd",
    "content": "class_name NoiseGenerator\nextends ScrollContainer\n\nsignal value_changed(noise_texture: NoiseTexture2D)\n\nvar noise_texture: NoiseTexture2D:\n\tset(value):\n\t\tnoise_texture = value\n\t\tif not is_instance_valid(noise_texture.noise):\n\t\t\tnoise_texture.noise = FastNoiseLite.new()\n\t\tif not is_instance_valid(preview):\n\t\t\tawait ready\n\t\tpreview.texture = noise_texture\n\t\t_set_node_values()\n\n@onready var preview := %Preview as TextureRect\n@onready var size_slider := %SizeSlider as ValueSliderV2\n@onready var properties := {\n\t\"invert\": %InvertCheckBox,\n\t\"in_3d_space\": %In3DSpaceCheckBox,\n\t\"seamless\": %SeamlessCheckBox,\n\t\"as_normal_map\": %NormalMapCheckBox,\n\t\"normalize\": %NormalizeCheckBox,\n\t\"color_ramp\": %ColorRampEdit,\n\t\"noise:noise_type\": %NoiseTypeOptionButton,\n\t\"noise:seed\": %SeedSlider,\n\t\"noise:frequency\": %FrequencySlider,\n\t\"noise:offset\": %OffsetSlider,\n\t\"noise:fractal_type\": %FractalTypeOptionButton,\n\t\"noise:fractal_octaves\": %FractalOctavesSlider,\n\t\"noise:fractal_lacunarity\": %FractalLacunaritySlider,\n\t\"noise:fractal_gain\": %FractalGainSlider,\n\t\"noise:fractal_weighted_strength\": %FractalWeightedStrengthSlider,\n\t\"noise:domain_warp_enabled\": %DomainWarpEnabledCheckBox,\n\t\"noise:domain_warp_type\": %DomainWarpTypeOptionButton,\n\t\"noise:domain_warp_amplitude\": %DomainWarpAmplitudeSlider,\n\t\"noise:domain_warp_frequency\": %DomainWarpFrequencySlider,\n\t\"noise:domain_warp_fractal_type\": %DomainWarpFractalTypeOptionButton,\n\t\"noise:domain_warp_fractal_octaves\": %DomainWarpFractalOctavesSlider,\n\t\"noise:domain_warp_fractal_lacunarity\": %DomainWarpFractalLacunaritySlider,\n\t\"noise:domain_warp_fractal_gain\": %DomainWarpFractalGainSlider\n}\n\n\nfunc _init() -> void:\n\tnoise_texture = NoiseTexture2D.new()\n\n\nfunc _ready() -> void:\n\t# Connect the signals of the object property nodes\n\tfor prop in properties:\n\t\tvar node: Control = properties[prop]\n\t\tif node is ValueSliderV3:\n\t\t\tnode.value_changed.connect(_property_vector3_changed.bind(prop))\n\t\telif node is ValueSliderV2:\n\t\t\tvar property_path: String = prop\n\t\t\tnode.value_changed.connect(_property_vector2_changed.bind(property_path))\n\t\telif node is Range:\n\t\t\tnode.value_changed.connect(_property_value_changed.bind(prop))\n\t\telif node is OptionButton:\n\t\t\tnode.item_selected.connect(_property_item_selected.bind(prop))\n\t\telif node is CheckBox:\n\t\t\tnode.toggled.connect(_property_toggled.bind(prop))\n\t\telif node is GradientEditNode:\n\t\t\tnode.updated.connect(_property_gradient_changed.bind(prop))\n\n\nfunc _set_node_values() -> void:\n\tsize_slider.value.x = noise_texture.width\n\tsize_slider.value.y = noise_texture.height\n\tfor prop in properties:\n\t\tvar property_path: String = prop\n\t\tvar value = noise_texture.get_indexed(property_path)\n\t\tif value == null:\n\t\t\tcontinue\n\t\tvar node: Control = properties[prop]\n\t\tif node is Range or node is ValueSliderV3 or node is ValueSliderV2:\n\t\t\tif typeof(node.value) != typeof(value) and typeof(value) != TYPE_INT:\n\t\t\t\tcontinue\n\t\t\tnode.value = value\n\t\telif node is OptionButton:\n\t\t\tnode.selected = value\n\t\telif node is CheckBox:\n\t\t\tnode.button_pressed = value\n\t\telif node is GradientEditNode:\n\t\t\tvar gradient_tex := GradientTexture2D.new()\n\t\t\tgradient_tex.gradient = value\n\t\t\tnode.set_gradient_texture(gradient_tex)\n\n\nfunc _set_value_from_node(value, prop: String) -> void:\n\tnoise_texture.set_indexed(prop, value)\n\tawait noise_texture.changed\n\tvalue_changed.emit(noise_texture)\n\n\nfunc _property_vector3_changed(value: Vector3, prop: String) -> void:\n\t_set_value_from_node(value, prop)\n\n\nfunc _property_vector2_changed(value: Vector2, prop: String) -> void:\n\t_set_value_from_node(value, prop)\n\n\nfunc _property_value_changed(value: float, prop: String) -> void:\n\t_set_value_from_node(value, prop)\n\n\nfunc _property_item_selected(value: int, prop: String) -> void:\n\t_set_value_from_node(value, prop)\n\n\nfunc _property_gradient_changed(value: Gradient, _cc: bool, prop: String) -> void:\n\t_set_value_from_node(value, prop)\n\n\nfunc _property_toggled(value: bool, prop: String) -> void:\n\t_set_value_from_node(value, prop)\n\n\nfunc _on_size_slider_value_changed(value: Vector2) -> void:\n\tnoise_texture.width = value.x\n\tnoise_texture.height = value.y\n\tawait noise_texture.changed\n\tvalue_changed.emit(noise_texture)\n"
  },
  {
    "path": "src/UI/Nodes/NoiseGenerator.gd.uid",
    "content": "uid://bt8qvbe6t6qjo\n"
  },
  {
    "path": "src/UI/Nodes/NoiseGenerator.tscn",
    "content": "[gd_scene format=3 uid=\"uid://be14ffwmcp5xy\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bbnqcxa20a5a5\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\" id=\"1_evt0j\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"1_pm12o\"]\n[ext_resource type=\"Script\" uid=\"uid://bt8qvbe6t6qjo\" path=\"res://src/UI/Nodes/NoiseGenerator.gd\" id=\"1_uxdt4\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bn4aw27dj7pwi\" path=\"res://src/UI/Nodes/GradientEdit.tscn\" id=\"2_nxkb0\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://dpoteid430evf\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV3.tscn\" id=\"3_ffklk\"]\n\n[node name=\"NoiseGenerator\" type=\"ScrollContainer\" unique_id=1108915200]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nscript = ExtResource(\"1_uxdt4\")\n\n[node name=\"VSplitContainer\" type=\"VSplitContainer\" parent=\".\" unique_id=1261118777]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"Preview\" type=\"TextureRect\" parent=\"VSplitContainer\" unique_id=574262817]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(64, 64)\nlayout_mode = 2\nsize_flags_vertical = 3\nexpand_mode = 1\nstretch_mode = 5\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"VSplitContainer\" unique_id=2139545847]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"VSplitContainer/VBoxContainer\" unique_id=447799834]\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"SizeLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=1044564492]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Size:\"\n\n[node name=\"SizeSlider\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=2023832741 instance=ExtResource(\"1_evt0j\")]\nunique_name_in_owner = true\nlayout_mode = 2\nvalue = Vector2(512, 512)\nmin_value = Vector2(1, 1)\nmax_value = Vector2(1024, 1024)\nallow_greater = true\nshow_ratio = true\ngrid_columns = 2\nsuffix_x = \"px\"\nsuffix_y = \"px\"\n\n[node name=\"InvertLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=1362909668]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Invert:\"\n\n[node name=\"InvertCheckBox\" type=\"CheckBox\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=1178172180]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"In3DSpaceLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=737890940]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"In 3D space:\"\n\n[node name=\"In3DSpaceCheckBox\" type=\"CheckBox\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=1210493411]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"SeamlessLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=1854520935]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Seamless:\"\n\n[node name=\"SeamlessCheckBox\" type=\"CheckBox\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=287595744]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"NormalMapLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=1465641475]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Normal map:\"\n\n[node name=\"NormalMapCheckBox\" type=\"CheckBox\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=42147971]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"NormalizeLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=1479283604]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Normalize:\"\n\n[node name=\"NormalizeCheckBox\" type=\"CheckBox\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=1294934881]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"ColorRampLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=1166553692]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Color ramp:\"\n\n[node name=\"ColorRampEdit\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=1174897398 instance=ExtResource(\"2_nxkb0\")]\nunique_name_in_owner = true\nlayout_mode = 2\n\n[node name=\"NoiseTypeLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=720620150]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Noise type:\"\n\n[node name=\"NoiseTypeOptionButton\" type=\"OptionButton\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=920604842]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 1\nitem_count = 6\npopup/item_0/text = \"Simplex\"\npopup/item_0/id = 0\npopup/item_1/text = \"Simplex Smooth\"\npopup/item_1/id = 1\npopup/item_2/text = \"Cellural\"\npopup/item_2/id = 2\npopup/item_3/text = \"Perlin\"\npopup/item_3/id = 3\npopup/item_4/text = \"Value Cubic\"\npopup/item_4/id = 4\npopup/item_5/text = \"Value\"\npopup/item_5/id = 5\n\n[node name=\"SeedLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=1624840921]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Seed:\"\n\n[node name=\"SeedSlider\" type=\"TextureProgressBar\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=1892924475]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 1024.0\nallow_greater = true\nallow_lesser = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1_pm12o\")\n\n[node name=\"FrequencyLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=90526403]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Frequency:\"\n\n[node name=\"FrequencySlider\" type=\"TextureProgressBar\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=327841864]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 0.001\nmax_value = 1.0\nstep = 0.001\nvalue = 0.001\nallow_greater = true\nallow_lesser = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1_pm12o\")\nsnap_step = 0.1\n\n[node name=\"OffsetLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=1930112714]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Offset:\"\n\n[node name=\"OffsetSlider\" parent=\"VSplitContainer/VBoxContainer/GridContainer\" unique_id=1959566497 instance=ExtResource(\"3_ffklk\")]\nunique_name_in_owner = true\nlayout_mode = 2\nmin_value = Vector3(-1000, -1000, -1000)\nmax_value = Vector3(1000, 1000, 1000)\ngrid_columns = 3\n\n[node name=\"FractalOptions\" type=\"FoldableContainer\" parent=\"VSplitContainer/VBoxContainer\" unique_id=1777417323]\nlayout_mode = 2\ntheme_type_variation = &\"CollapsibleContainer\"\nfolded = true\ntitle = \"Fractal\"\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"VSplitContainer/VBoxContainer/FractalOptions\" unique_id=555114170]\nvisible = false\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"FractalTypeLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/FractalOptions/GridContainer\" unique_id=972479371]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Type:\"\n\n[node name=\"FractalTypeOptionButton\" type=\"OptionButton\" parent=\"VSplitContainer/VBoxContainer/FractalOptions/GridContainer\" unique_id=1100648949]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 4\npopup/item_0/text = \"None\"\npopup/item_0/id = 0\npopup/item_1/text = \"FBM\"\npopup/item_1/id = 1\npopup/item_2/text = \"Ridged\"\npopup/item_2/id = 2\npopup/item_3/text = \"Ping-Pong\"\npopup/item_3/id = 3\n\n[node name=\"FractalOctavesLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/FractalOptions/GridContainer\" unique_id=1398882403]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Octaves:\"\n\n[node name=\"FractalOctavesSlider\" type=\"TextureProgressBar\" parent=\"VSplitContainer/VBoxContainer/FractalOptions/GridContainer\" unique_id=436931400]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nmax_value = 10.0\nvalue = 5.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1_pm12o\")\n\n[node name=\"FractalLacunarityLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/FractalOptions/GridContainer\" unique_id=54067477]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Lacunarity:\"\n\n[node name=\"FractalLacunaritySlider\" type=\"TextureProgressBar\" parent=\"VSplitContainer/VBoxContainer/FractalOptions/GridContainer\" unique_id=272123281]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = -50.0\nmax_value = 50.0\nvalue = 2.0\nallow_greater = true\nallow_lesser = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1_pm12o\")\n\n[node name=\"FractalGainLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/FractalOptions/GridContainer\" unique_id=1099057449]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Gain:\"\n\n[node name=\"FractalGainSlider\" type=\"TextureProgressBar\" parent=\"VSplitContainer/VBoxContainer/FractalOptions/GridContainer\" unique_id=2147010372]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = -20.0\nmax_value = 20.0\nstep = 0.001\nvalue = 0.5\nallow_greater = true\nallow_lesser = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1_pm12o\")\nsnap_step = 0.01\n\n[node name=\"FractalWeightedStrengthLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/FractalOptions/GridContainer\" unique_id=1375273748]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Weighted Strength:\"\n\n[node name=\"FractalWeightedStrengthSlider\" type=\"TextureProgressBar\" parent=\"VSplitContainer/VBoxContainer/FractalOptions/GridContainer\" unique_id=1920040516]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 1.0\nstep = 0.01\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1_pm12o\")\nsnap_step = 0.1\n\n[node name=\"DomainWarpOptions\" type=\"FoldableContainer\" parent=\"VSplitContainer/VBoxContainer\" unique_id=1982835463]\nlayout_mode = 2\ntheme_type_variation = &\"CollapsibleContainer\"\nfolded = true\ntitle = \"Domain Warp\"\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"VSplitContainer/VBoxContainer/DomainWarpOptions\" unique_id=16606317]\nvisible = false\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"DomainWarpEnabledLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer\" unique_id=1423546611]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Enabled:\"\n\n[node name=\"DomainWarpEnabledCheckBox\" type=\"CheckBox\" parent=\"VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer\" unique_id=321111731]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"DomainWarpTypeLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer\" unique_id=555879037]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Type:\"\n\n[node name=\"DomainWarpTypeOptionButton\" type=\"OptionButton\" parent=\"VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer\" unique_id=1674534477]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 3\npopup/item_0/text = \"Simplex\"\npopup/item_0/id = 0\npopup/item_1/text = \"Simplex Reduced\"\npopup/item_1/id = 1\npopup/item_2/text = \"Basic Grid\"\npopup/item_2/id = 2\n\n[node name=\"DomainWarpAmplitudeLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer\" unique_id=1823311103]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Amplitude:\"\n\n[node name=\"DomainWarpAmplitudeSlider\" type=\"TextureProgressBar\" parent=\"VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer\" unique_id=1156927646]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nvalue = 30.0\nallow_greater = true\nallow_lesser = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1_pm12o\")\n\n[node name=\"DomainWarpFrequencyLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer\" unique_id=282509459]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Frequency:\"\n\n[node name=\"DomainWarpFrequencySlider\" type=\"TextureProgressBar\" parent=\"VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer\" unique_id=1236187205]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = -20.0\nmax_value = 20.0\nstep = 0.001\nvalue = 0.05000000000000071\nallow_greater = true\nallow_lesser = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1_pm12o\")\nsnap_step = 0.01\n\n[node name=\"DomainWarpFractalTypeLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer\" unique_id=2012875763]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Fractal type:\"\n\n[node name=\"DomainWarpFractalTypeOptionButton\" type=\"OptionButton\" parent=\"VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer\" unique_id=359670898]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 3\npopup/item_0/text = \"None\"\npopup/item_0/id = 0\npopup/item_1/text = \"Progressive\"\npopup/item_1/id = 1\npopup/item_2/text = \"Independent\"\npopup/item_2/id = 2\n\n[node name=\"DomainWarpFractalOctavesLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer\" unique_id=382820224]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Fractal octaves:\"\n\n[node name=\"DomainWarpFractalOctavesSlider\" type=\"TextureProgressBar\" parent=\"VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer\" unique_id=1157291151]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nmax_value = 10.0\nvalue = 5.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1_pm12o\")\n\n[node name=\"DomainWarpFractalLacunarityLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer\" unique_id=1411465244]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Fractal lacunarity:\"\n\n[node name=\"DomainWarpFractalLacunaritySlider\" type=\"TextureProgressBar\" parent=\"VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer\" unique_id=1956459995]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = -50.0\nmax_value = 50.0\nvalue = 6.0\nallow_greater = true\nallow_lesser = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1_pm12o\")\n\n[node name=\"DomainWarpFractalGainLabel\" type=\"Label\" parent=\"VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer\" unique_id=71389962]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Fractal gain:\"\n\n[node name=\"DomainWarpFractalGainSlider\" type=\"TextureProgressBar\" parent=\"VSplitContainer/VBoxContainer/DomainWarpOptions/GridContainer\" unique_id=1409848330]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = -20.0\nmax_value = 20.0\nstep = 0.001\nvalue = 0.5\nallow_greater = true\nallow_lesser = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1_pm12o\")\nsnap_step = 0.01\n\n[connection signal=\"value_changed\" from=\"VSplitContainer/VBoxContainer/GridContainer/SizeSlider\" to=\".\" method=\"_on_size_slider_value_changed\"]\n"
  },
  {
    "path": "src/UI/Nodes/NoiseGeneratorDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://buixtfobyc3df\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://be14ffwmcp5xy\" path=\"res://src/UI/Nodes/NoiseGenerator.tscn\" id=\"1_wso7i\"]\n\n[node name=\"NoiseGeneratorDialog\" type=\"AcceptDialog\" unique_id=32559367]\ntitle = \"Generate noise\"\nsize = Vector2i(500, 500)\n\n[node name=\"NoiseGenerator\" parent=\".\" unique_id=1382255649 instance=ExtResource(\"1_wso7i\")]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = -8.0\noffset_bottom = -49.0\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n"
  },
  {
    "path": "src/UI/Nodes/NotificationLabel.gd",
    "content": "class_name NotificationLabel\nextends Label\n\n\nfunc _ready() -> void:\n\tvar tw := create_tween().set_parallel().set_trans(Tween.TRANS_LINEAR).set_ease(Tween.EASE_OUT)\n\ttw.tween_property(self, \"position\", Vector2(position.x, position.y - 100), 1)\n\ttw.tween_property(self, \"modulate\", Color(modulate.r, modulate.g, modulate.b, 0), 1)\n\ttw.finished.connect(_on_tween_finished)\n\n\nfunc _on_tween_finished() -> void:\n\tqueue_free()\n"
  },
  {
    "path": "src/UI/Nodes/NotificationLabel.gd.uid",
    "content": "uid://d3o2k6ilgekj4\n"
  },
  {
    "path": "src/UI/Nodes/Sliders/BasisSliders.gd",
    "content": "@tool\nclass_name BasisSliders\nextends HBoxContainer\n\nsignal value_changed(value: Basis)\n\n@export var value: Basis:\n\tset(val):\n\t\tvalue = val\n\t\t_can_emit_signal = false\n\t\tget_sliders()[0].set_value_no_signal(value.x)\n\t\tget_sliders()[1].set_value_no_signal(value.y)\n\t\tget_sliders()[2].set_value_no_signal(value.z)\n\t\t_can_emit_signal = true\n@export var min_value := Vector3.ZERO:\n\tset(val):\n\t\tmin_value = val\n\t\tget_sliders()[0].min_value = val\n\t\tget_sliders()[1].min_value = val\n\t\tget_sliders()[2].min_value = val\n@export var max_value := Vector3(100.0, 100.0, 100.0):\n\tset(val):\n\t\tmax_value = val\n\t\tget_sliders()[0].max_value = val\n\t\tget_sliders()[1].max_value = val\n\t\tget_sliders()[2].max_value = val\n@export var step := 1.0:\n\tset(val):\n\t\tstep = val\n\t\tfor slider in get_sliders():\n\t\t\tslider.step = val\n@export var allow_greater := false:\n\tset(val):\n\t\tallow_greater = val\n\t\tfor slider in get_sliders():\n\t\t\tslider.allow_greater = val\n@export var allow_lesser := false:\n\tset(val):\n\t\tallow_lesser = val\n\t\tfor slider in get_sliders():\n\t\t\tslider.allow_lesser = val\n\nvar _can_emit_signal := true\n\n\nfunc get_sliders() -> Array[ValueSliderV3]:\n\treturn [$XSlider, $YSlider, $ZSlider]\n\n\nfunc _on_x_slider_value_changed(val: Vector3) -> void:\n\tvalue.x = val\n\tif _can_emit_signal:\n\t\tvalue_changed.emit(value)\n\n\nfunc _on_y_slider_value_changed(val: Vector3) -> void:\n\tvalue.y = val\n\tif _can_emit_signal:\n\t\tvalue_changed.emit(value)\n\n\nfunc _on_z_slider_value_changed(val: Vector3) -> void:\n\tvalue.z = val\n\tif _can_emit_signal:\n\t\tvalue_changed.emit(value)\n"
  },
  {
    "path": "src/UI/Nodes/Sliders/BasisSliders.gd.uid",
    "content": "uid://c68dnixirmyng\n"
  },
  {
    "path": "src/UI/Nodes/Sliders/BasisSliders.tscn",
    "content": "[gd_scene format=3 uid=\"uid://d0d66oh6bw3kt\"]\n\n[ext_resource type=\"Script\" uid=\"uid://c68dnixirmyng\" path=\"res://src/UI/Nodes/Sliders/BasisSliders.gd\" id=\"1_sbf5t\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://dpoteid430evf\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV3.tscn\" id=\"2_7swri\"]\n\n[node name=\"BasisSliders\" type=\"HBoxContainer\" unique_id=716661406]\noffset_right = 40.0\noffset_bottom = 40.0\nscript = ExtResource(\"1_sbf5t\")\n\n[node name=\"XSlider\" parent=\".\" unique_id=487320088 instance=ExtResource(\"2_7swri\")]\nlayout_mode = 2\nsize_flags_horizontal = 3\nvalue = Vector3(1, 0, 0)\nslider_min_size = Vector2(64, 24)\nprefix_x = \"XX:\"\nprefix_y = \"YX:\"\nprefix_z = \"ZX:\"\n\n[node name=\"YSlider\" parent=\".\" unique_id=2059840864 instance=ExtResource(\"2_7swri\")]\nlayout_mode = 2\nsize_flags_horizontal = 3\nvalue = Vector3(0, 1, 0)\nslider_min_size = Vector2(64, 24)\nprefix_x = \"XY:\"\nprefix_y = \"YY:\"\nprefix_z = \"ZY:\"\n\n[node name=\"ZSlider\" parent=\".\" unique_id=908518519 instance=ExtResource(\"2_7swri\")]\nlayout_mode = 2\nsize_flags_horizontal = 3\nvalue = Vector3(0, 0, 1)\nslider_min_size = Vector2(64, 24)\nprefix_x = \"XZ:\"\nprefix_y = \"YZ:\"\nprefix_z = \"ZZ:\"\n\n[connection signal=\"value_changed\" from=\"XSlider\" to=\".\" method=\"_on_x_slider_value_changed\"]\n[connection signal=\"value_changed\" from=\"YSlider\" to=\".\" method=\"_on_y_slider_value_changed\"]\n[connection signal=\"value_changed\" from=\"ZSlider\" to=\".\" method=\"_on_z_slider_value_changed\"]\n"
  },
  {
    "path": "src/UI/Nodes/Sliders/ValueSlider.gd",
    "content": "@tool\nclass_name ValueSlider\nextends TextureProgressBar\n## Custom node that combines the behavior of a Slider and a SpinBox.\n## Initial version made by MrTriPie, has been modified by Overloaded.\n\n## Emitted when the grabber starts being dragged.\n## This is emitted before the corresponding [signal Range.value_changed] signal.\nsignal drag_started\n## Emitted when the grabber stops being dragged.\n## If value_changed is true, [member Range.value] is different from the value\n## when the dragging was started.\nsignal drag_ended(value_changed: bool)\n\nenum { NORMAL, HELD, SLIDING, TYPING }\n\n@export var editable := true:\n\tset(v):\n\t\teditable = v\n\t\tvar line_edit_color := get_theme_color(\"font_color\", \"LineEdit\")\n\t\tvar line_edit_disabled_col := get_theme_color(\"font_uneditable_color\", \"LineEdit\")\n\t\tif editable:\n\t\t\t_line_edit.add_theme_color_override(\"font_uneditable_color\", line_edit_color)\n\t\telse:\n\t\t\t_line_edit.add_theme_color_override(\"font_uneditable_color\", line_edit_disabled_col)\n@export var prefix: String:\n\tset(v):\n\t\tprefix = v\n\t\t_reset_display()\n@export var suffix: String:\n\tset(v):\n\t\tsuffix = v\n\t\t_reset_display()\n## Size of additional snapping (applied in addition to Range's step).\n## This should always be larger than step.\n@export var snap_step := 1.0\n## If snap_by_default is true, snapping is enabled when Control is NOT held (used for sliding in\n## larger steps by default, and smaller steps when holding Control).\n## If false, snapping is enabled when Control IS held (used for sliding in smaller steps by\n## default, and larger steps when holding Control).\n@export var snap_by_default := false\n## If show_progress is true it will show the colored progress bar, good for values with a specific\n## range. False will hide it, which is good for values that can be any number.\n@export var show_progress := true\n@export var show_arrows := true:\n\tset(v):\n\t\tshow_arrows = v\n\t\tif not _line_edit:\n\t\t\treturn\n\t\t_value_up_button.visible = v\n\t\t_value_down_button.visible = v\n@export var echo_arrow_time := 0.075\n@export var allow_global_input_events := false:\n\tset(v):\n\t\tallow_global_input_events = v\n\t\tset_process_unhandled_input(allow_global_input_events)\n@export var global_increment_action := \"\"  ## Global shortcut to increment\n@export var global_decrement_action := \"\"  ## Global shortcut to decrement\n\nvar text_server := TextServerManager.get_primary_interface()\nvar state := NORMAL\nvar arrow_is_held := 0  ## Used for arrow button echo behavior. Is 1 for ValueUp, -1 for ValueDown.\n\nvar _start_value := value\nvar _line_edit := LineEdit.new()\nvar _value_up_button := TextureButton.new()\nvar _value_down_button := TextureButton.new()\nvar _timer := Timer.new()\n\n\nfunc _init() -> void:\n\tnine_patch_stretch = true\n\tstretch_margin_left = 3\n\tstretch_margin_top = 3\n\tstretch_margin_right = 3\n\tstretch_margin_bottom = 3\n\ttheme_type_variation = \"ValueSlider\"\n\tif is_layout_rtl():\n\t\tfill_mode = FILL_RIGHT_TO_LEFT\n\telse:\n\t\tfill_mode = FILL_LEFT_TO_RIGHT\n\n\nfunc _ready() -> void:\n\tvalue_changed.connect(_on_value_changed)\n\tset_process_unhandled_input(allow_global_input_events)\n\t_reset_display(true)\n\tif not Engine.is_editor_hint():  # Pixelorama specific code\n\t\t_value_up_button.modulate = Global.modulate_icon_color\n\t\t_value_down_button.modulate = Global.modulate_icon_color\n\t_setup_nodes()\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_THEME_CHANGED:\n\t\t_reset_display(true)\n\telif what == NOTIFICATION_TRANSLATION_CHANGED:\n\t\t_reset_display(false)\n\t\tif is_layout_rtl():\n\t\t\tfill_mode = FILL_RIGHT_TO_LEFT\n\t\telse:\n\t\t\tfill_mode = FILL_LEFT_TO_RIGHT\n\n\nfunc _unhandled_input(event: InputEvent) -> void:\n\tif not editable or not is_visible_in_tree():\n\t\treturn\n\tif (\n\t\tnot global_increment_action.is_empty()\n\t\tand event.is_action_pressed(global_increment_action, true)\n\t):\n\t\tif snap_by_default:\n\t\t\tvalue += step if event.ctrl_pressed else snap_step\n\t\telse:\n\t\t\tvalue += snap_step if event.ctrl_pressed else step\n\telif (\n\t\tnot global_decrement_action.is_empty()\n\t\tand event.is_action_pressed(global_decrement_action, true)\n\t):\n\t\tif snap_by_default:\n\t\t\tvalue -= step if event.ctrl_pressed else snap_step\n\t\telse:\n\t\t\tvalue -= snap_step if event.ctrl_pressed else step\n\n\nfunc _gui_input(event: InputEvent) -> void:\n\tif not editable:\n\t\treturn\n\tif state == NORMAL:\n\t\tif event is InputEventMouseButton and event.pressed:\n\t\t\tif event.button_index == MOUSE_BUTTON_LEFT:\n\t\t\t\tstate = HELD\n\t\t\t\tset_meta(\"mouse_start_position\", get_local_mouse_position())\n\t\t\telif event.button_index == MOUSE_BUTTON_WHEEL_UP:\n\t\t\t\tdrag_started.emit()\n\t\t\t\t_start_value = value\n\t\t\t\tif snap_by_default:\n\t\t\t\t\tvalue += step if event.ctrl_pressed else snap_step\n\t\t\t\telse:\n\t\t\t\t\tvalue += snap_step if event.ctrl_pressed else step\n\t\t\t\tdrag_ended.emit(not is_equal_approx(_start_value, value))\n\t\t\t\tget_viewport().set_input_as_handled()\n\t\t\telif event.button_index == MOUSE_BUTTON_WHEEL_DOWN:\n\t\t\t\tdrag_started.emit()\n\t\t\t\t_start_value = value\n\t\t\t\tif snap_by_default:\n\t\t\t\t\tvalue -= step if event.ctrl_pressed else snap_step\n\t\t\t\telse:\n\t\t\t\t\tvalue -= snap_step if event.ctrl_pressed else step\n\t\t\t\tdrag_ended.emit(not is_equal_approx(_start_value, value))\n\t\t\t\tget_viewport().set_input_as_handled()\n\telif state == HELD:\n\t\tif event.is_action_released(\"left_mouse\"):\n\t\t\tstate = TYPING\n\t\t\tdrag_started.emit()\n\t\t\t_start_value = value\n\t\t\t_line_edit.text = _format_float_string(true)\n\t\t\t_line_edit.editable = true\n\t\t\t_line_edit.grab_focus()\n\t\t\t_line_edit.selecting_enabled = true\n\t\t\t_line_edit.select_all()\n\t\t\t_line_edit.caret_column = _line_edit.text.length()\n\t\t\ttint_progress = Color.TRANSPARENT\n\t\telif event is InputEventMouseMotion:\n\t\t\tif get_meta(\"mouse_start_position\").distance_to(get_local_mouse_position()) > 2:\n\t\t\t\tstate = SLIDING\n\t\t\t\tdrag_started.emit()\n\t\t\t\tset_meta(\"shift_pressed\", event.shift_pressed)\n\t\t\t\tset_meta(\"start_ratio\", ratio)\n\t\t\t\t_start_value = value\n\telif state == SLIDING:\n\t\tif event.is_action_released(\"left_mouse\"):\n\t\t\tstate = NORMAL\n\t\t\tdrag_ended.emit(not is_equal_approx(_start_value, value))\n\t\t\tremove_meta(\"mouse_start_position\")\n\t\t\tremove_meta(\"start_ratio\")\n\t\t\tremove_meta(\"shift_pressed\")\n\t\tif event is InputEventMouseMotion:\n\t\t\t# When pressing/releasing Shift, reset starting values to prevent slider jumping around\n\t\t\tif get_meta(\"shift_pressed\") != event.shift_pressed:\n\t\t\t\tset_meta(\"mouse_start_position\", get_local_mouse_position())\n\t\t\t\tset_meta(\"start_ratio\", ratio)\n\t\t\t\t_start_value = value\n\t\t\t\tset_meta(\"shift_pressed\", event.shift_pressed)\n\t\t\tvar x_delta := 0.0\n\t\t\tif is_layout_rtl():\n\t\t\t\tx_delta = get_meta(\"mouse_start_position\").x - get_local_mouse_position().x\n\t\t\telse:\n\t\t\t\tx_delta = get_local_mouse_position().x - get_meta(\"mouse_start_position\").x\n\t\t\t# Slow down to allow for more precision\n\t\t\tif event.shift_pressed:\n\t\t\t\tx_delta *= 0.1\n\t\t\tif show_progress:\n\t\t\t\tratio = get_meta(\"start_ratio\") + x_delta / size.x\n\t\t\telse:\n\t\t\t\tvalue = _start_value + x_delta * step\n\t\t\t# Snap when snap_by_default is true, do the opposite when Control is pressed\n\t\t\tif snap_by_default:\n\t\t\t\tif not event.ctrl_pressed:\n\t\t\t\t\tvalue = roundf(value / snap_step) * snap_step\n\t\t\telse:\n\t\t\t\tif event.ctrl_pressed:\n\t\t\t\t\tvalue = roundf(value / snap_step) * snap_step\n\t\t\tget_viewport().set_input_as_handled()\n\n\nfunc _setup_nodes() -> void:  ## Only called once on _ready()\n\tfocus_mode = Control.FOCUS_ALL\n\t_line_edit.alignment = HORIZONTAL_ALIGNMENT_CENTER\n\t_line_edit.anchor_right = 1\n\t_line_edit.anchor_bottom = 1\n\t_line_edit.mouse_filter = Control.MOUSE_FILTER_IGNORE\n\t_line_edit.add_theme_stylebox_override(\"read_only\", StyleBoxEmpty.new())\n\t_line_edit.add_theme_stylebox_override(\"normal\", StyleBoxEmpty.new())\n\t_line_edit.text_submitted.connect(_on_LineEdit_text_entered)\n\t_line_edit.focus_exited.connect(_confirm_text)\n\t_line_edit.gui_input.connect(_on_LineEdit_gui_input)\n\tadd_child(_line_edit)\n\n\tvar value_up_texture_size := Vector2.ONE\n\tif is_instance_valid(_value_up_button.texture_normal):\n\t\tvalue_up_texture_size = _value_up_button.texture_normal.get_size()\n\t_value_up_button.scale.y = -1\n\t_value_up_button.anchor_left = 1\n\t_value_up_button.anchor_right = 1\n\t_value_up_button.offset_left = -value_up_texture_size.x - 3\n\t_value_up_button.offset_top = value_up_texture_size.y\n\t_value_up_button.offset_right = -3\n\t_value_up_button.offset_bottom = value_up_texture_size.y * 2\n\t_value_up_button.focus_mode = Control.FOCUS_NONE\n\t_value_up_button.add_to_group(\"UIButtons\")\n\t_value_up_button.button_down.connect(_on_value_button_down.bind(1))\n\t_value_up_button.button_up.connect(_on_value_button_up)\n\tadd_child(_value_up_button)\n\n\tvar value_down_texture_size := Vector2.ONE\n\tif is_instance_valid(_value_down_button.texture_normal):\n\t\tvalue_down_texture_size = _value_down_button.texture_normal.get_size()\n\t_value_down_button.anchor_left = 1\n\t_value_down_button.anchor_top = 1\n\t_value_down_button.anchor_right = 1\n\t_value_down_button.anchor_bottom = 1\n\t_value_down_button.offset_left = -value_down_texture_size.x - 3\n\t_value_down_button.offset_top = -value_up_texture_size.y\n\t_value_down_button.offset_right = -3\n\t_value_down_button.offset_bottom = 0\n\t_value_up_button.focus_mode = Control.FOCUS_NONE\n\t_value_down_button.add_to_group(\"UIButtons\")\n\t_value_down_button.button_down.connect(_on_value_button_down.bind(-1))\n\t_value_down_button.button_up.connect(_on_value_button_up)\n\tadd_child(_value_down_button)\n\n\t_timer.timeout.connect(_on_timer_timeout)\n\tadd_child(_timer)\n\n\nfunc _on_LineEdit_gui_input(event: InputEvent) -> void:\n\tif state == TYPING:\n\t\tif event is InputEventKey and event.keycode == KEY_ESCAPE:\n\t\t\t_confirm_text(false)  # Cancel\n\t\t\t_line_edit.release_focus()\n\n\nfunc _on_value_changed(_value: float) -> void:\n\t_reset_display()\n\n\n## When pressing enter, release focus, which will call _confirm_text on focus_exited signal\nfunc _on_LineEdit_text_entered(_new_text: String) -> void:\n\t_line_edit.release_focus()\n\n\n## Called on LineEdit's focus_exited signal\n## If confirm is false it will cancel setting value\nfunc _confirm_text(confirm := true) -> void:\n\tif state != TYPING:\n\t\treturn\n\tstate = NORMAL\n\tif confirm:\n\t\tvar expression := Expression.new()\n\t\tvar error := expression.parse(_line_edit.text, [])\n\t\tif error != OK:\n\t\t\t_reset_display(true)\n\t\t\treturn\n\t\tvar result = expression.execute([], null, true)\n\t\tif expression.has_execute_failed() or not (result is int or result is float):\n\t\t\t_reset_display(true)\n\t\t\treturn\n\t\tvalue = result\n\tdrag_ended.emit(not is_equal_approx(_start_value, value))\n\t_reset_display(true)\n\n\nfunc set_value_no_signal_update_display(new_value: float) -> void:\n\tset_value_no_signal(new_value)\n\t_reset_display()\n\n\nfunc _reset_display(theme_has_changed := false) -> void:\n\t_line_edit.selecting_enabled = false  # Remove the selection\n\t_line_edit.editable = false\n\tif theme_has_changed and not Engine.is_editor_hint():\n\t\ttexture_under = get_theme_icon(\"texture_under\", \"ValueSlider\")\n#\t\ttexture_over = get_theme_icon(\"texture_over\", \"ValueSlider\")\n\t\ttexture_progress = get_theme_icon(\"texture_progress\", \"ValueSlider\")\n\t\t_value_up_button.texture_normal = get_theme_icon(\"arrow_normal\", \"ValueSlider\")\n\t\t_value_up_button.texture_pressed = get_theme_icon(\"arrow_pressed\", \"ValueSlider\")\n\t\t_value_up_button.texture_hover = get_theme_icon(\"arrow_hover\", \"ValueSlider\")\n\n\t\t_value_down_button.texture_normal = get_theme_icon(\"arrow_normal\", \"ValueSlider\")\n\t\t_value_down_button.texture_pressed = get_theme_icon(\"arrow_pressed\", \"ValueSlider\")\n\t\t_value_down_button.texture_hover = get_theme_icon(\"arrow_hover\", \"ValueSlider\")\n\n\t\teditable = editable  # Call the setter\n\t\ttint_under = get_theme_color(\"under_color\", \"ValueSlider\")\n\t\tif show_progress:\n\t\t\ttint_progress = get_theme_color(\"progress_color\", \"ValueSlider\")\n\t\telse:\n\t\t\ttint_progress = Color.TRANSPARENT\n\t_line_edit.text = _format_float_string()\n\n\n## Format the value string so that integers won't appear as floats.\nfunc _format_float_string(is_typing := false) -> String:\n\tvar format_string := \"%*.*f\"\n\tvar split_str := str(minf(step, snap_step)).split(\".\")\n\tvar n_of_decimals := 0\n\tif split_str.size() > 1:\n\t\tvar decimal_str := split_str[1]\n\t\tif str_to_var(decimal_str) != 0:\n\t\t\tn_of_decimals = split_str[1].length()\n\tvar float_str := format_string % [0, n_of_decimals, value]\n\tif localize_numeral_system:\n\t\tfloat_str = text_server.format_number(float_str)\n\tif is_typing:\n\t\treturn float_str\n\treturn str(tr(prefix), \" \", float_str, \" \", tr(suffix)).strip_edges()\n\n\nfunc _on_value_button_down(direction: int) -> void:\n\tif not editable:\n\t\treturn\n\t_start_value = value\n\tdrag_started.emit()\n\t# Direction is either 1 or -1\n\tvalue += (snap_step if Input.is_action_pressed(\"ctrl\") else step) * direction\n\tarrow_is_held = direction\n\t_timer.wait_time = echo_arrow_time * 8  # 0.6 with the default value\n\t_timer.one_shot = true\n\t_timer.start()\n\n\nfunc _on_value_button_up() -> void:\n\tdrag_ended.emit(not is_equal_approx(_start_value, value))\n\tarrow_is_held = 0\n\t_timer.stop()\n\n\n## Echo behavior. If the user keeps pressing the button, the value keeps changing.\nfunc _on_timer_timeout() -> void:\n\tif arrow_is_held == 0:\n\t\t_timer.stop()\n\t\treturn\n\tvalue += (snap_step if Input.is_action_pressed(\"ctrl\") else step) * arrow_is_held\n\tif _timer.one_shot:\n\t\t_timer.wait_time = echo_arrow_time\n\t\t_timer.one_shot = false\n\t\t_timer.start()\n"
  },
  {
    "path": "src/UI/Nodes/Sliders/ValueSlider.gd.uid",
    "content": "uid://tfdhqto6j5j0\n"
  },
  {
    "path": "src/UI/Nodes/Sliders/ValueSlider.tscn",
    "content": "[gd_scene format=3 uid=\"uid://yjhp0ssng2mp\"]\n\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"1\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://c7u0yofrpm50a\" path=\"res://assets/graphics/misc/value_slider.png\" id=\"2\"]\n\n[node name=\"ValueSlider\" type=\"TextureProgressBar\" unique_id=1726316798]\ncustom_minimum_size = Vector2(32, 24)\noffset_right = 24.0\noffset_bottom = 24.0\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_filter = 0\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\ntexture_under = ExtResource(\"2\")\ntexture_progress = ExtResource(\"2\")\ntint_under = Color(0, 0, 0, 1)\ntint_progress = Color(0, 0, 0, 1)\nscript = ExtResource(\"1\")\n"
  },
  {
    "path": "src/UI/Nodes/Sliders/ValueSliderV2.gd",
    "content": "@tool\nclass_name ValueSliderV2\nextends HBoxContainer\n## A class that combines two ValueSlider nodes, for easy usage with Vector2 values.\n## Also supports aspect ratio locking.\n\nsignal value_changed(value: Vector2)\nsignal ratio_toggled(button_pressed: bool)\n## Emitted when the grabber starts being dragged.\n## This is emitted before the corresponding [signal value_changed] signal.\n@warning_ignore(\"unused_signal\")\nsignal drag_started\n## Emitted when the grabber stops being dragged.\n## If value_changed is true, [member value] is different from the value\n## when the dragging was started.\nsignal drag_ended(value_changed: bool)\n\n@export var editable := true:\n\tset(val):\n\t\teditable = val\n\t\tfor slider in get_sliders():\n\t\t\tslider.editable = val\n\t\t$\"%RatioButton\".disabled = not val\n@export var value := Vector2.ZERO:\n\tset(val):\n\t\tvalue = val\n\t\t$GridContainer/X.set_value_no_signal_update_display(value.x)\n\t\t$GridContainer/Y.set_value_no_signal_update_display(value.y)\n\t\tif _can_emit_signal:\n\t\t\tvalue_changed.emit(value)\n@export var min_value := Vector2.ZERO:\n\tset(val):\n\t\tmin_value = val\n\t\t$GridContainer/X.min_value = val.x\n\t\t$GridContainer/Y.min_value = val.y\n\t\tvalue = value  # Call value setter\n@export var max_value := Vector2(100.0, 100.0):\n\tset(val):\n\t\tmax_value = val\n\t\t$GridContainer/X.max_value = val.x\n\t\t$GridContainer/Y.max_value = val.y\n\t\tvalue = value  # Call value setter\n@export var step := 1.0:\n\tset(val):\n\t\tstep = val\n\t\tfor slider in get_sliders():\n\t\t\tslider.step = val\n@export var allow_greater := false:\n\tset(val):\n\t\tallow_greater = val\n\t\tfor slider in get_sliders():\n\t\t\tslider.allow_greater = val\n@export var allow_lesser := false:\n\tset(val):\n\t\tallow_lesser = val\n\t\tfor slider in get_sliders():\n\t\t\tslider.allow_lesser = val\n@export var show_ratio := false:\n\tset(val):\n\t\tshow_ratio = val\n\t\t$Ratio.visible = val\n@export var grid_columns := 1:\n\tset(val):\n\t\tgrid_columns = val\n\t\t$GridContainer.columns = val\n@export var slider_min_size := Vector2(32, 24):\n\tset(val):\n\t\tslider_min_size = val\n\t\tfor slider in get_sliders():\n\t\t\tslider.custom_minimum_size = val\n@export var snap_step := 1.0:\n\tset(val):\n\t\tsnap_step = val\n\t\tfor slider in get_sliders():\n\t\t\tslider.snap_step = val\n@export var snap_by_default := false:\n\tset(val):\n\t\tsnap_by_default = val\n\t\tfor slider in get_sliders():\n\t\t\tslider.snap_by_default = val\n@export var prefix_x := \"X:\":\n\tset(val):\n\t\tprefix_x = val\n\t\t$GridContainer/X.prefix = val\n@export var prefix_y := \"Y:\":\n\tset(val):\n\t\tprefix_y = val\n\t\t$GridContainer/Y.prefix = val\n@export var suffix_x := \"\":\n\tset(val):\n\t\tsuffix_x = val\n\t\t$GridContainer/X.suffix = val\n@export var suffix_y := \"\":\n\tset(val):\n\t\tsuffix_y = val\n\t\t$GridContainer/Y.suffix = val\n\nvar ratio := Vector2.ONE\nvar _locked_ratio := false\nvar _can_emit_signal := true\n\n\nfunc _ready() -> void:\n\tif not Engine.is_editor_hint():  # Pixelorama specific code\n\t\t$Ratio.modulate = Global.modulate_icon_color\n\t$Ratio/RatioGuides.scale.x = -1.0 if is_layout_rtl() else 1.0\n\tfor slider in get_sliders():\n\t\tslider.drag_started.connect(emit_signal.bind(&\"drag_started\"))\n\t\tslider.drag_ended.connect(func(changed: bool): drag_ended.emit(changed))\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_TRANSLATION_CHANGED:\n\t\t$Ratio/RatioGuides.scale.x = -1.0 if is_layout_rtl() else 1.0\n\n\nfunc get_sliders() -> Array[ValueSlider]:\n\treturn [$GridContainer/X, $GridContainer/Y]\n\n\nfunc press_ratio_button(pressed: bool) -> void:\n\t$\"%RatioButton\".button_pressed = pressed\n\n\nfunc set_value_no_signal(new_value: Vector2) -> void:\n\t_can_emit_signal = false\n\tvalue = new_value\n\t_can_emit_signal = true\n\n\n## Greatest common divisor\nfunc _gcd(a: int, b: int) -> int:\n\treturn a if b == 0 else _gcd(b, a % b)\n\n\nfunc _on_X_value_changed(val: float) -> void:\n\tvalue.x = val\n\tif _locked_ratio:\n\t\tvalue.y = maxf(min_value.y, (value.x / ratio.x) * ratio.y)\n\tvalue_changed.emit(value)\n\n\nfunc _on_Y_value_changed(val: float) -> void:\n\tvalue.y = val\n\tif _locked_ratio:\n\t\tvalue.x = maxf(min_value.x, (value.y / ratio.y) * ratio.x)\n\tvalue_changed.emit(value)\n\n\nfunc _on_RatioButton_toggled(button_pressed: bool) -> void:\n\t_locked_ratio = button_pressed\n\tvar divisor := _gcd(value.x, value.y)\n\tif divisor == 0:\n\t\tratio = Vector2.ONE\n\telse:\n\t\tratio = value / divisor\n\tratio_toggled.emit(button_pressed)\n"
  },
  {
    "path": "src/UI/Nodes/Sliders/ValueSliderV2.gd.uid",
    "content": "uid://oxv0tle867v3\n"
  },
  {
    "path": "src/UI/Nodes/Sliders/ValueSliderV2.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bbnqcxa20a5a5\"]\n\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://oxv0tle867v3\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.gd\" id=\"2\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://cancw70yw0pv7\" path=\"res://assets/graphics/misc/lock_aspect_2.png\" id=\"3\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://kd10jfc1dxf5\" path=\"res://assets/graphics/misc/lock_aspect_guides.png\" id=\"4\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://beqermx8s5q8y\" path=\"res://assets/graphics/misc/lock_aspect.png\" id=\"5\"]\n\n[node name=\"ValueSliderV2\" type=\"HBoxContainer\" unique_id=62854647]\noffset_right = 45.0\noffset_bottom = 52.0\nscript = ExtResource(\"2\")\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\".\" unique_id=856442517]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"X\" type=\"TextureProgressBar\" parent=\"GridContainer\" unique_id=2110274121]\ncustom_minimum_size = Vector2(32, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1\")\nprefix = \"X:\"\n\n[node name=\"Y\" type=\"TextureProgressBar\" parent=\"GridContainer\" unique_id=1672350223]\ncustom_minimum_size = Vector2(32, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1\")\nprefix = \"Y:\"\n\n[node name=\"Ratio\" type=\"Control\" parent=\".\" unique_id=566507468]\nvisible = false\ncustom_minimum_size = Vector2(16, 0)\nlayout_mode = 2\n\n[node name=\"RatioGuides\" type=\"NinePatchRect\" parent=\"Ratio\" unique_id=403778984 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(9, 0)\nlayout_mode = 1\nanchors_preset = 9\nanchor_bottom = 1.0\noffset_right = 9.0\ngrow_vertical = 2\npivot_offset = Vector2(4, 26)\ntexture = ExtResource(\"4\")\nregion_rect = Rect2(0, 0, 9, 44)\npatch_margin_top = 15\npatch_margin_bottom = 13\n\n[node name=\"RatioButton\" type=\"TextureButton\" parent=\"Ratio\" unique_id=1932303527 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -8.0\noffset_top = -8.0\noffset_right = 8.0\noffset_bottom = 8.0\ntooltip_text = \"Lock aspect ratio\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\ntexture_normal = ExtResource(\"3\")\ntexture_pressed = ExtResource(\"5\")\n\n[connection signal=\"value_changed\" from=\"GridContainer/X\" to=\".\" method=\"_on_X_value_changed\"]\n[connection signal=\"value_changed\" from=\"GridContainer/Y\" to=\".\" method=\"_on_Y_value_changed\"]\n[connection signal=\"toggled\" from=\"Ratio/RatioButton\" to=\".\" method=\"_on_RatioButton_toggled\"]\n"
  },
  {
    "path": "src/UI/Nodes/Sliders/ValueSliderV3.gd",
    "content": "@tool\nclass_name ValueSliderV3\nextends HBoxContainer\n## A class that combines three ValueSlider nodes, for easy usage with Vector3 values.\n## Also supports aspect ratio locking.\n\nsignal value_changed(value: Vector3)\nsignal ratio_toggled(button_pressed: bool)\n## Emitted when the grabber starts being dragged.\n## This is emitted before the corresponding [signal value_changed] signal.\n@warning_ignore(\"unused_signal\")\nsignal drag_started\n## Emitted when the grabber stops being dragged.\n## If value_changed is true, [member value] is different from the value\n## when the dragging was started.\nsignal drag_ended(value_changed: bool)\n\n@export var editable := true:\n\tset(val):\n\t\teditable = val\n\t\tfor slider in get_sliders():\n\t\t\tslider.editable = val\n\t\t$\"%RatioButton\".disabled = not val\n@export var value := Vector3.ZERO:\n\tset(val):\n\t\tvalue = val\n\t\t$GridContainer/X.set_value_no_signal_update_display(value.x)\n\t\t$GridContainer/Y.set_value_no_signal_update_display(value.y)\n\t\t$GridContainer/Z.set_value_no_signal_update_display(value.z)\n\t\tif _can_emit_signal:\n\t\t\tvalue_changed.emit(value)\n@export var min_value := Vector3.ZERO:\n\tset(val):\n\t\tmin_value = val\n\t\t$GridContainer/X.min_value = val.x\n\t\t$GridContainer/Y.min_value = val.y\n\t\t$GridContainer/Z.min_value = val.z\n\t\tvalue = value  # Call value setter\n@export var max_value := Vector3(100.0, 100.0, 100.0):\n\tset(val):\n\t\tmax_value = val\n\t\t$GridContainer/X.max_value = val.x\n\t\t$GridContainer/Y.max_value = val.y\n\t\t$GridContainer/Z.max_value = val.z\n\t\tvalue = value  # Call value setter\n@export var step := 1.0:\n\tset(val):\n\t\tstep = val\n\t\tfor slider in get_sliders():\n\t\t\tslider.step = val\n@export var allow_greater := false:\n\tset(val):\n\t\tallow_greater = val\n\t\tfor slider in get_sliders():\n\t\t\tslider.allow_greater = val\n@export var allow_lesser := false:\n\tset(val):\n\t\tallow_lesser = val\n\t\tfor slider in get_sliders():\n\t\t\tslider.allow_lesser = val\n@export var show_ratio := false:\n\tset(val):\n\t\tshow_ratio = val\n\t\t$Ratio.visible = val\n@export var grid_columns := 1:\n\tset(val):\n\t\tgrid_columns = val\n\t\t$GridContainer.columns = val\n@export var slider_min_size := Vector2(32, 24):\n\tset(val):\n\t\tslider_min_size = val\n\t\tfor slider in get_sliders():\n\t\t\tslider.custom_minimum_size = val\n@export var snap_step := 1.0:\n\tset(val):\n\t\tsnap_step = val\n\t\tfor slider in get_sliders():\n\t\t\tslider.snap_step = val\n@export var snap_by_default := false:\n\tset(val):\n\t\tsnap_by_default = val\n\t\tfor slider in get_sliders():\n\t\t\tslider.snap_by_default = val\n@export var prefix_x := \"X:\":\n\tset(val):\n\t\tprefix_x = val\n\t\t$GridContainer/X.prefix = val\n@export var prefix_y := \"Y:\":\n\tset(val):\n\t\tprefix_y = val\n\t\t$GridContainer/Y.prefix = val\n@export var prefix_z := \"Z:\":\n\tset(val):\n\t\tprefix_z = val\n\t\t$GridContainer/Z.prefix = val\n@export var suffix_x := \"\":\n\tset(val):\n\t\tsuffix_x = val\n\t\t$GridContainer/X.suffix = val\n@export var suffix_y := \"\":\n\tset(val):\n\t\tsuffix_y = val\n\t\t$GridContainer/Y.suffix = val\n@export var suffix_z := \"\":\n\tset(val):\n\t\tsuffix_z = val\n\t\t$GridContainer/Z.suffix = val\n\nvar ratio := Vector3.ONE\nvar _locked_ratio := false\nvar _can_emit_signal := true\n\n\nfunc _ready() -> void:\n\tif not Engine.is_editor_hint():  # Pixelorama specific code\n\t\t$Ratio.modulate = Global.modulate_icon_color\n\t$Ratio/RatioGuides.scale.x = -1.0 if is_layout_rtl() else 1.0\n\tfor slider in get_sliders():\n\t\tslider.drag_started.connect(emit_signal.bind(&\"drag_started\"))\n\t\tslider.drag_ended.connect(func(changed: bool): drag_ended.emit(changed))\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_TRANSLATION_CHANGED:\n\t\t$Ratio/RatioGuides.scale.x = -1.0 if is_layout_rtl() else 1.0\n\n\nfunc get_sliders() -> Array[ValueSlider]:\n\treturn [$GridContainer/X, $GridContainer/Y, $GridContainer/Z]\n\n\nfunc press_ratio_button(pressed: bool) -> void:\n\t$\"%RatioButton\".button_pressed = pressed\n\n\nfunc set_value_no_signal(new_value: Vector3) -> void:\n\t_can_emit_signal = false\n\tvalue = new_value\n\t_can_emit_signal = true\n\n\n## Greatest common divisor\nfunc _gcd(a: int, b: int) -> int:\n\treturn a if b == 0 else _gcd(b, a % b)\n\n\nfunc _on_X_value_changed(val: float) -> void:\n\tvalue.x = val\n\tif _locked_ratio:\n\t\tvalue.y = maxf(min_value.y, (value.x / ratio.x) * ratio.y)\n\t\tvalue.z = maxf(min_value.z, (value.x / ratio.x) * ratio.z)\n\tvalue_changed.emit(value)\n\n\nfunc _on_Y_value_changed(val: float) -> void:\n\tvalue.y = val\n\tif _locked_ratio:\n\t\tvalue.x = maxf(min_value.x, (value.y / ratio.y) * ratio.x)\n\t\tvalue.z = maxf(min_value.z, (value.y / ratio.y) * ratio.z)\n\tvalue_changed.emit(value)\n\n\nfunc _on_Z_value_changed(val: float) -> void:\n\tvalue.z = val\n\tif _locked_ratio:\n\t\tvalue.x = maxf(min_value.x, (value.z / ratio.z) * ratio.x)\n\t\tvalue.y = maxf(min_value.y, (value.z / ratio.z) * ratio.y)\n\tvalue_changed.emit(value)\n\n\nfunc _on_RatioButton_toggled(button_pressed: bool) -> void:\n\t_locked_ratio = button_pressed\n\tvar divisor := _gcd(value.x, _gcd(value.y, value.z))\n\tif divisor == 0:\n\t\tratio = Vector3.ONE\n\telse:\n\t\tratio = value / divisor\n\tratio_toggled.emit(button_pressed)\n"
  },
  {
    "path": "src/UI/Nodes/Sliders/ValueSliderV3.gd.uid",
    "content": "uid://bh0j3xuxipol2\n"
  },
  {
    "path": "src/UI/Nodes/Sliders/ValueSliderV3.tscn",
    "content": "[gd_scene format=3 uid=\"uid://dpoteid430evf\"]\n\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://bh0j3xuxipol2\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV3.gd\" id=\"2\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://cancw70yw0pv7\" path=\"res://assets/graphics/misc/lock_aspect_2.png\" id=\"3\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://kd10jfc1dxf5\" path=\"res://assets/graphics/misc/lock_aspect_guides.png\" id=\"4\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://beqermx8s5q8y\" path=\"res://assets/graphics/misc/lock_aspect.png\" id=\"5\"]\n\n[node name=\"ValueSliderV3\" type=\"HBoxContainer\" unique_id=1598144620]\noffset_right = 45.0\noffset_bottom = 52.0\nscript = ExtResource(\"2\")\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\".\" unique_id=1139624135]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"X\" type=\"TextureProgressBar\" parent=\"GridContainer\" unique_id=848475342]\ncustom_minimum_size = Vector2(32, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1\")\nprefix = \"X:\"\n\n[node name=\"Y\" type=\"TextureProgressBar\" parent=\"GridContainer\" unique_id=309494055]\ncustom_minimum_size = Vector2(32, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1\")\nprefix = \"Y:\"\n\n[node name=\"Z\" type=\"TextureProgressBar\" parent=\"GridContainer\" unique_id=1287811694]\ncustom_minimum_size = Vector2(32, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1\")\nprefix = \"Z:\"\n\n[node name=\"Ratio\" type=\"Control\" parent=\".\" unique_id=1219824224]\nvisible = false\ncustom_minimum_size = Vector2(16, 0)\nlayout_mode = 2\n\n[node name=\"RatioGuides\" type=\"NinePatchRect\" parent=\"Ratio\" unique_id=340187576 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(9, 0)\nlayout_mode = 0\nanchor_bottom = 1.0\noffset_right = 9.0\npivot_offset = Vector2(4, 40)\ntexture = ExtResource(\"4\")\nregion_rect = Rect2(0, 0, 9, 44)\npatch_margin_top = 15\npatch_margin_bottom = 13\n\n[node name=\"RatioButton\" type=\"TextureButton\" parent=\"Ratio\" unique_id=1253633895 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -8.0\noffset_top = -8.0\noffset_right = 8.0\noffset_bottom = 8.0\ntooltip_text = \"Lock aspect ratio\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\ntexture_normal = ExtResource(\"3\")\ntexture_pressed = ExtResource(\"5\")\n\n[connection signal=\"value_changed\" from=\"GridContainer/X\" to=\".\" method=\"_on_X_value_changed\"]\n[connection signal=\"value_changed\" from=\"GridContainer/Y\" to=\".\" method=\"_on_Y_value_changed\"]\n[connection signal=\"value_changed\" from=\"GridContainer/Z\" to=\".\" method=\"_on_Z_value_changed\"]\n[connection signal=\"toggled\" from=\"Ratio/RatioButton\" to=\".\" method=\"_on_RatioButton_toggled\"]\n"
  },
  {
    "path": "src/UI/Nodes/TextToolEdit.gd",
    "content": "class_name TextToolEdit\nextends TextEdit\n\nvar font: Font:\n\tset(value):\n\t\tfont = value\n\t\tadd_theme_font_override(&\"font\", font)\nvar _border_node := Control.new()\n\n\nfunc _ready() -> void:\n\tgrab_focus()\n\tGlobal.camera.zoom_changed.connect(func(): _border_node.queue_redraw())\n\t_border_node.draw.connect(_on_border_redraw)\n\t_border_node.set_anchors_preset(Control.PRESET_FULL_RECT)\n\t_border_node.mouse_filter = Control.MOUSE_FILTER_IGNORE\n\tadd_child(_border_node)\n\tcaret_blink = true\n\tvar stylebox := StyleBoxFlat.new()\n\tstylebox.draw_center = false\n\tadd_theme_stylebox_override(&\"normal\", stylebox)\n\tadd_theme_stylebox_override(&\"focus\", stylebox)\n\tadd_theme_constant_override(&\"line_spacing\", 0)\n\ttext_changed.connect(_on_text_changed)\n\ttheme = Global.control.theme\n\tif is_instance_valid(font):\n\t\tvar font_size := get_theme_font_size(&\"font_size\")\n\t\tcustom_minimum_size = Vector2(32, maxf(32, font.get_height(font_size)))\n\t\tsize.y = (get_line_count() + 1) * font.get_height(font_size)\n\n\nfunc _get_max_line() -> int:\n\tvar max_line := 0\n\tvar max_string := get_line(0).length()\n\tfor i in get_line_count():\n\t\tvar line := get_line(i)\n\t\tif line.length() > max_string:\n\t\t\tmax_string = line.length()\n\t\t\tmax_line = i\n\treturn max_line\n\n\nfunc _on_text_changed() -> void:\n\tif not is_instance_valid(font):\n\t\treturn\n\tvar font_size := get_theme_font_size(&\"font_size\")\n\tvar max_line := get_line(_get_max_line())\n\tvar string_size := font.get_string_size(max_line, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size)\n\tsize.x = font_size + string_size.x\n\tsize.y = (get_line_count() + 1) * font.get_height(font_size)\n\t_border_node.queue_redraw()\n\n\nfunc _on_border_redraw() -> void:\n\tvar border_width := (1.0 / Global.camera.zoom.x) * 2.0 + 1.0\n\t_border_node.draw_rect(_border_node.get_rect(), Color.WHITE, false, border_width)\n"
  },
  {
    "path": "src/UI/Nodes/TextToolEdit.gd.uid",
    "content": "uid://mw0oadyvdpwx\n"
  },
  {
    "path": "src/UI/Nodes/TransparentChecker.gd",
    "content": "@tool\nclass_name TransparentChecker\nextends ColorRect\n\nconst TRANSPARENT_CHECKER := preload(\"uid://c50kmfvf635kb\")\n\n\nfunc _init() -> void:\n\tmaterial = ShaderMaterial.new()\n\tmaterial.shader = TRANSPARENT_CHECKER\n\tmouse_filter = Control.MOUSE_FILTER_IGNORE\n\tlayout_direction = Control.LAYOUT_DIRECTION_LTR\n\tresized.connect(_on_resized)\n\n\nfunc _ready() -> void:\n\tupdate_rect()\n\n\nfunc update_rect() -> void:\n\tif Engine.is_editor_hint():\n\t\treturn\n\tif not get_parent() is Control:\n\t\t# Set the size to be the same as the project size if the parent is a SubViewport\n\t\tset_bounds(Global.current_project.size)\n\tif self == Global.transparent_checker:\n\t\tfit_rect(Global.current_project.tiles.get_bounding_rect())\n\t\tfor canvas_preview in get_tree().get_nodes_in_group(\"CanvasPreviews\"):\n\t\t\tcanvas_preview.get_viewport().get_node(\"TransparentChecker\").update_rect()\n\tmaterial.set_shader_parameter(&\"size\", Global.checker_size)\n\tmaterial.set_shader_parameter(&\"color1\", Global.checker_color_1)\n\tmaterial.set_shader_parameter(&\"color2\", Global.checker_color_2)\n\tmaterial.set_shader_parameter(&\"follow_movement\", Global.checker_follow_movement)\n\tmaterial.set_shader_parameter(&\"follow_scale\", Global.checker_follow_scale)\n\n\nfunc update_offset(offset: Vector2, canvas_scale: Vector2) -> void:\n\tmaterial.set_shader_parameter(&\"offset\", offset)\n\tmaterial.set_shader_parameter(&\"scale\", canvas_scale)\n\n\nfunc _on_resized() -> void:\n\tmaterial.set_shader_parameter(&\"rect_size\", size)\n\n\nfunc set_bounds(bounds: Vector2) -> void:\n\toffset_right = bounds.x\n\toffset_bottom = bounds.y\n\n\nfunc fit_rect(rect: Rect2) -> void:\n\toffset_left = rect.position.x\n\toffset_right = rect.position.x + rect.size.x\n\toffset_top = rect.position.y\n\toffset_bottom = rect.position.y + rect.size.y\n\n\nfunc update_transparency(value: float) -> void:\n\t# Change the transparency status of the parent viewport and the root viewport\n\tif value == 1.0:\n\t\tget_parent().transparent_bg = false\n\t\tget_window().transparent_bg = false\n\telse:\n\t\tget_parent().transparent_bg = true\n\t\tget_window().transparent_bg = true\n\n\t# Set a minimum amount for the fade so the canvas won't disappear\n\tmaterial.set_shader_parameter(&\"alpha\", clampf(value, 0.1, 1))\n"
  },
  {
    "path": "src/UI/Nodes/TransparentChecker.gd.uid",
    "content": "uid://idvb5vdtc6vy\n"
  },
  {
    "path": "src/UI/Nodes/TransparentChecker.tscn",
    "content": "[gd_scene format=3 uid=\"uid://3pmb60gpst7b\"]\n\n[ext_resource type=\"Shader\" uid=\"uid://c50kmfvf635kb\" path=\"res://src/Shaders/TransparentChecker.gdshader\" id=\"1_b6eda\"]\n[ext_resource type=\"Script\" uid=\"uid://idvb5vdtc6vy\" path=\"res://src/UI/Nodes/TransparentChecker.gd\" id=\"2\"]\n\n[sub_resource type=\"ShaderMaterial\" id=\"ShaderMaterial_b6eda\"]\nshader = ExtResource(\"1_b6eda\")\nshader_parameter/size = 10.0\nshader_parameter/alpha = 1.0\nshader_parameter/color1 = Color(0.7, 0.7, 0.7, 1)\nshader_parameter/color2 = Color(1, 1, 1, 1)\nshader_parameter/offset = Vector2(0, 0)\nshader_parameter/scale = Vector2(0, 0)\nshader_parameter/rect_size = Vector2(0, 0)\nshader_parameter/follow_movement = false\nshader_parameter/follow_scale = false\n\n[node name=\"TransparentChecker\" type=\"ColorRect\" unique_id=296956342]\nmaterial = SubResource(\"ShaderMaterial_b6eda\")\nlayout_direction = 2\nmouse_filter = 2\nscript = ExtResource(\"2\")\nmetadata/_edit_use_anchors_ = true\n"
  },
  {
    "path": "src/UI/PerspectiveEditor/LineButton.tscn",
    "content": "[gd_scene format=3 uid=\"uid://collailpx6ft5\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"1\"]\n\n[node name=\"LineButton\" type=\"FoldableContainer\" unique_id=1220517884]\noffset_right = 159.0\noffset_bottom = 84.0\ntheme_type_variation = &\"CollapsibleContainer\"\nfolded = true\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\".\" unique_id=673847790]\nvisible = false\nlayout_mode = 2\n\n[node name=\"Spacer\" type=\"Control\" parent=\"HBoxContainer\" unique_id=2009568549]\ncustom_minimum_size = Vector2(20, 0)\nlayout_mode = 2\n\n[node name=\"VSeparator\" type=\"VSeparator\" parent=\"HBoxContainer\" unique_id=855574873]\nlayout_mode = 2\n\n[node name=\"Properties\" type=\"VBoxContainer\" parent=\"HBoxContainer\" unique_id=1523513639]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"AngleSlider\" parent=\"HBoxContainer/Properties\" unique_id=537797659 instance=ExtResource(\"1\")]\nlayout_mode = 2\nmax_value = 359.999\nstep = 0.001\nallow_greater = true\nprefix = \"Angle:\"\nsuffix = \"°\"\n\n[node name=\"LengthSlider\" parent=\"HBoxContainer/Properties\" unique_id=130890077 instance=ExtResource(\"1\")]\nunique_name_in_owner = true\nlayout_mode = 2\nmin_value = 1.0\nmax_value = 19999.0\nvalue = 19999.0\nallow_greater = true\nprefix = \"Length:\"\nsuffix = \"px\"\n\n[node name=\"Delete\" type=\"Button\" parent=\"HBoxContainer\" unique_id=1799368192]\nlayout_mode = 2\ntext = \"Remove\"\n\n[node name=\"VSeparator2\" type=\"VSeparator\" parent=\"HBoxContainer\" unique_id=803068629]\nlayout_mode = 2\n"
  },
  {
    "path": "src/UI/PerspectiveEditor/PerspectiveEditor.gd",
    "content": "extends PanelContainer\n\nvar axes: Node2D\nvar do_pool := []  ## A pool that stores data of points removed by undo\nvar delete_pool := []  ## A pool that contains deleted data and their index\n## The vanishing point UI resource\nvar vanishing_point_res := preload(\"res://src/UI/PerspectiveEditor/VanishingPoint.tscn\")\n## Option to show/hide tracker guides. (guides whose end points follow the mouse)\nvar tracker_disabled := false\n@onready var vanishing_point_container = $\"%VanishingPointContainer\"\n\n\nfunc _ready() -> void:\n\tGlobal.project_switched.connect(_update_points)\n\t$VBoxContainer/TrackerLines.button_pressed = !tracker_disabled\n\n\nfunc _on_AddPoint_pressed() -> void:\n\tdo_pool.clear()  # Reset (clears Redo history of vanishing points)\n\tvar project := Global.current_project\n\tproject.undo_redo.create_action(\"Add Vanishing Point\")\n\tproject.undo_redo.add_do_method(add_vanishing_point.bind(true))\n\tproject.undo_redo.add_undo_method(undo_add_vanishing_point)\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_TrackerLines_toggled(button_pressed: bool) -> void:\n\ttracker_disabled = !button_pressed\n\n\nfunc add_vanishing_point(is_redo := false) -> void:\n\tvar vanishing_point := vanishing_point_res.instantiate()\n\tvanishing_point_container.add_child(vanishing_point)\n\tif is_redo and !do_pool.is_empty():\n\t\t# if it's a redo then initialize it with the redo data\n\t\tvanishing_point.initiate(do_pool.pop_back())\n\t\tvanishing_point.update_data_to_project()\n\telse:\n\t\tvanishing_point.initiate()\n\n\nfunc undo_add_vanishing_point() -> void:\n\tvar point = vanishing_point_container.get_child(vanishing_point_container.get_child_count() - 1)\n\tpoint.queue_free()\n\tdo_pool.append(point.serialize())\n\tpoint.update_data_to_project(true)\n\n\nfunc delete_point(idx: int) -> void:\n\tvar project := Global.current_project\n\tproject.undo_redo.create_action(\"Delete Vanishing Point\")\n\tproject.undo_redo.add_do_method(do_delete_point.bind(idx))\n\tproject.undo_redo.add_undo_method(undo_delete_point.bind(idx))\n\tproject.undo_redo.commit_action()\n\n\nfunc do_delete_point(idx: int) -> void:\n\tvar point := vanishing_point_container.get_child(idx)\n\tdelete_pool.append(point.serialize())\n\tpoint.queue_free()\n\tpoint.update_data_to_project(true)\n\n\nfunc undo_delete_point(idx: int) -> void:\n\tvar point = delete_pool.pop_back()\n\tGlobal.current_project.vanishing_points.insert(idx, point)\n\t_update_points()\n\n\nfunc _update_points() -> void:\n\t# Delete old vanishing points\n\tfor c in vanishing_point_container.get_children():\n\t\tc.queue_free()\n\t# Add the \"updated\" vanishing points from the current_project\n\tfor idx in Global.current_project.vanishing_points.size():\n\t\t# Create the point\n\t\tvar vanishing_point := vanishing_point_res.instantiate()\n\t\tvanishing_point_container.add_child(vanishing_point)\n\t\t# Initialize it\n\t\tvar point_data = Global.current_project.vanishing_points[idx]\n\t\tvanishing_point.initiate(point_data, idx)\n"
  },
  {
    "path": "src/UI/PerspectiveEditor/PerspectiveEditor.gd.uid",
    "content": "uid://okyo6k7lrdnn\n"
  },
  {
    "path": "src/UI/PerspectiveEditor/PerspectiveEditor.tscn",
    "content": "[gd_scene format=3 uid=\"uid://cap1bhavhi33g\"]\n\n[ext_resource type=\"Script\" uid=\"uid://okyo6k7lrdnn\" path=\"res://src/UI/PerspectiveEditor/PerspectiveEditor.gd\" id=\"1\"]\n\n[node name=\"PerspectiveEditor\" type=\"PanelContainer\" unique_id=2027870115]\ncustom_minimum_size = Vector2(270, 10)\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_right = -1013.0\noffset_bottom = -510.0\ngrow_horizontal = 2\ngrow_vertical = 2\nscript = ExtResource(\"1\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=1423715990]\nself_modulate = Color(0.698039, 0.698039, 0.698039, 0.698039)\nclip_contents = true\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"Header\" type=\"HBoxContainer\" parent=\"VBoxContainer\" unique_id=1264982951]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"VBoxContainer/Header\" unique_id=1800024056]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Perspective Editor\"\n\n[node name=\"AddPoint\" type=\"Button\" parent=\"VBoxContainer/Header\" unique_id=1721908663]\ncustom_minimum_size = Vector2(30, 30)\nlayout_mode = 2\ntext = \"+\"\nclip_text = true\n\n[node name=\"TrackerLines\" type=\"CheckButton\" parent=\"VBoxContainer\" unique_id=1028185828]\nlayout_mode = 2\ntext = \"Tracker Lines\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"VBoxContainer\" unique_id=736235058]\nlayout_mode = 2\n\n[node name=\"Content\" type=\"ScrollContainer\" parent=\"VBoxContainer\" unique_id=487326006]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"VanishingPointContainer\" type=\"VBoxContainer\" parent=\"VBoxContainer/Content\" unique_id=79121185]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\ntheme_override_constants/separation = 5\n\n[connection signal=\"pressed\" from=\"VBoxContainer/Header/AddPoint\" to=\".\" method=\"_on_AddPoint_pressed\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/TrackerLines\" to=\".\" method=\"_on_TrackerLines_toggled\"]\n"
  },
  {
    "path": "src/UI/PerspectiveEditor/PerspectiveLine.gd",
    "content": "class_name PerspectiveLine\nextends Line2D\n\nconst LINE_WIDTH := 2\nconst CIRCLE_RAD := 4\n\nvar angle: float = 0.0\nvar length: float = 19999.0\n\nvar is_hidden := false\nvar has_focus := false\nvar track_mouse := false\nvar change_length := false\n\nvar line_button: Node\nvar _vanishing_point: Node\n\n\nfunc serialize() -> Dictionary:\n\treturn {\"angle\": angle, \"length\": length}\n\n\nfunc deserialize(data: Dictionary) -> void:\n\tif data.has(\"angle\"):\n\t\tangle = data.angle\n\tif data.has(\"length\"):\n\t\tlength = data.length\n\n\nfunc initiate(data: Dictionary, vanishing_point: Node) -> void:\n\t_vanishing_point = vanishing_point\n\tGlobal.canvas.add_child(self)\n\tdeserialize(data)\n\t# a small delay is needed for Global.camera.zoom to have correct value\n\tawait get_tree().process_frame\n\twidth = LINE_WIDTH / Global.camera.zoom.x\n\trefresh()\n\n\nfunc refresh() -> void:\n\tdefault_color = _vanishing_point.color\n\tdraw_perspective_line()\n\n\nfunc draw_perspective_line() -> void:\n\tvar start := Vector2(_vanishing_point.pos_x.value, _vanishing_point.pos_y.value)\n\tpoints[0] = start\n\tif is_hidden:\n\t\tpoints[1] = start\n\telse:\n\t\tpoints[1] = (\n\t\t\tstart + Vector2(length * cos(deg_to_rad(angle)), length * sin(deg_to_rad(angle)))\n\t\t)\n\n\nfunc hide_perspective_line() -> void:\n\tvar start := Vector2(_vanishing_point.pos_x.value, _vanishing_point.pos_y.value)\n\tpoints[1] = start\n\tis_hidden = true\n\n\nfunc _input(event: InputEvent) -> void:\n\tif event is InputEventMouse:\n\t\tvar mouse_point := Global.canvas.current_pixel\n\t\tvar project_size := Global.current_project.size\n\n\t\tif track_mouse:\n\t\t\tif !Global.can_draw or _vanishing_point.perspective_editor.tracker_disabled:\n\t\t\t\thide_perspective_line()\n\t\t\t\treturn\n\t\t\tdefault_color.a = 0.5\n\t\t\tif Rect2(Vector2.ZERO, project_size).has_point(mouse_point):\n\t\t\t\tvar start := Vector2(_vanishing_point.pos_x.value, _vanishing_point.pos_y.value)\n\t\t\t\tis_hidden = false\n\t\t\t\tdraw_perspective_line()\n\t\t\t\tangle = rad_to_deg(points[0].angle_to_point(mouse_point))\n\t\t\t\tif angle < 0:\n\t\t\t\t\tangle += 360\n\n\t\t\t\tpoints[1] = (\n\t\t\t\t\tstart\n\t\t\t\t\t+ Vector2(length * cos(deg_to_rad(angle)), length * sin(deg_to_rad(angle)))\n\t\t\t\t)\n\t\t\telse:\n\t\t\t\thide_perspective_line()\n\t\telse:\n\t\t\ttry_rotate_scale()\n\t\tqueue_redraw()\n\n\nfunc try_rotate_scale() -> void:\n\tvar mouse_point := Global.canvas.current_pixel\n\tvar project_size := Global.current_project.size\n\tvar test_line := (points[1] - points[0]).rotated(deg_to_rad(90)).normalized()\n\tvar from_a := mouse_point - test_line * CIRCLE_RAD * 2 / Global.camera.zoom.x\n\tvar from_b := mouse_point + test_line * CIRCLE_RAD * 2 / Global.camera.zoom.x\n\tif Input.is_action_just_pressed(\"left_mouse\") and Global.can_draw:\n\t\tif (\n\t\t\tGeometry2D.segment_intersects_segment(from_a, from_b, points[0], points[1])\n\t\t\tor mouse_point.distance_to(points[1]) < CIRCLE_RAD * 2 / Global.camera.zoom.x\n\t\t):\n\t\t\tif (\n\t\t\t\t!Rect2(Vector2.ZERO, project_size).has_point(mouse_point)\n\t\t\t\tor Global.move_guides_on_canvas\n\t\t\t):\n\t\t\t\tif mouse_point.distance_to(points[1]) < CIRCLE_RAD * 2 / Global.camera.zoom.x:\n\t\t\t\t\tchange_length = true\n\t\t\t\thas_focus = true\n\t\t\t\tGlobal.can_draw = false\n\t\t\t\tqueue_redraw()\n\tif has_focus:\n\t\tif Input.is_action_pressed(\"left_mouse\"):\n\t\t\t# rotation code here\n\t\t\tif line_button:\n\t\t\t\tvar new_angle := rad_to_deg(points[0].angle_to_point(mouse_point))\n\t\t\t\tif new_angle < 0:\n\t\t\t\t\tnew_angle += 360\n\t\t\t\t_vanishing_point.angle_changed(new_angle, line_button)\n\t\t\t\tif change_length:\n\t\t\t\t\tvar new_length := mouse_point.distance_to(points[0])\n\t\t\t\t\t_vanishing_point.length_changed(new_length, line_button)\n\n\t\telif Input.is_action_just_released(\"left_mouse\"):\n\t\t\tGlobal.can_draw = true\n\t\t\thas_focus = false\n\t\t\tchange_length = false\n\t\t\tqueue_redraw()\n\n\nfunc _draw() -> void:\n\twidth = LINE_WIDTH / Global.camera.zoom.x\n\tvar mouse_point := Global.canvas.current_pixel\n\tvar arc_points := PackedVector2Array()\n\tdraw_circle(points[0], CIRCLE_RAD / Global.camera.zoom.x, default_color)  # Starting circle\n\tif !track_mouse and mouse_point.distance_to(points[0]) < CIRCLE_RAD * 2 / Global.camera.zoom.x:\n\t\tif (\n\t\t\t!Rect2(Vector2.ZERO, Global.current_project.size).has_point(mouse_point)\n\t\t\tor Global.move_guides_on_canvas\n\t\t\tor has_focus\n\t\t):\n\t\t\tarc_points.append(points[0])\n\tif (\n\t\tmouse_point.distance_to(points[1]) < CIRCLE_RAD * 2 / Global.camera.zoom.x\n\t\tor (has_focus and Input.is_action_pressed(\"left_mouse\"))\n\t):\n\t\tif (\n\t\t\t!Rect2(Vector2.ZERO, Global.current_project.size).has_point(mouse_point)\n\t\t\tor Global.move_guides_on_canvas\n\t\t\tor has_focus\n\t\t):\n\t\t\tif !arc_points.has(points[0]):\n\t\t\t\tarc_points.append(points[0])\n\t\t\tarc_points.append(points[1])\n\n\tfor point in arc_points:\n\t\t# if we put width <= -1, then the arc line will automatically adjust itself to remain thin\n\t\t# in 0.x this behavior was achieved at  width <= 1\n\t\tdraw_arc(point, CIRCLE_RAD * 2 / Global.camera.zoom.x, 0, 360, 360, default_color)\n"
  },
  {
    "path": "src/UI/PerspectiveEditor/PerspectiveLine.gd.uid",
    "content": "uid://cky8v02mkhfyr\n"
  },
  {
    "path": "src/UI/PerspectiveEditor/PerspectiveLine.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bft8ul5o3c75v\"]\n\n[ext_resource type=\"Script\" uid=\"uid://cky8v02mkhfyr\" path=\"res://src/UI/PerspectiveEditor/PerspectiveLine.gd\" id=\"1\"]\n\n[node name=\"PerspectiveLine\" type=\"Line2D\" unique_id=1212249950]\npoints = PackedVector2Array(0, 0, 64, 0)\nscript = ExtResource(\"1\")\n"
  },
  {
    "path": "src/UI/PerspectiveEditor/PointCollapseContainer.gd",
    "content": "extends Button\n\n## This is NOT related to the CollapsibleContainer class (though it behaves similarly)\n## It was done like this because the \"Content\" is part of a different node\n\n@export var point_text := \"\":\n\tset(value):\n\t\t$Label.text = value\n\t\tcustom_minimum_size = $Label.size\n@export var visible_content := false:\n\tset(value):\n\t\tvisible_content = value\n\t\tbutton_pressed = value\n@onready var content := $\"%Content\"\n\n\nfunc _ready() -> void:\n\t_set_visible(button_pressed)\n\tcontent.visibility_changed.connect(_child_visibility_changed)\n\n\nfunc _on_Button_toggled(press: bool) -> void:\n\t_set_visible(press)\n\n\nfunc _set_visible(press: bool) -> void:\n\tif press:\n\t\t$TextureRect.rotation = 0\n\telse:\n\t\t$TextureRect.rotation = -PI / 2\n\tcontent.visible = press\n\n\n## Checks if a child becomes visible from another source and ensures\n## it remains invisible if the button is not pressed\nfunc _child_visibility_changed() -> void:\n\tif not button_pressed:\n\t\tcontent.visible = false\n"
  },
  {
    "path": "src/UI/PerspectiveEditor/PointCollapseContainer.gd.uid",
    "content": "uid://36g7rc3uvfqv\n"
  },
  {
    "path": "src/UI/PerspectiveEditor/VanishingPoint.gd",
    "content": "extends VBoxContainer\n\nconst LINE_BUTTON_TSCN := preload(\"res://src/UI/PerspectiveEditor/LineButton.tscn\")\n\nvar is_focused := false\nvar perspective_lines := []\nvar color := Color(randf(), randf(), randf(), 1)\n\nvar tracker_line: PerspectiveLine\n@onready var perspective_editor := get_parent().get_parent().get_parent().get_parent()\n@onready var color_picker_button := %ColorPickerButton as ColorPickerButton\n@onready var title := %PointCollapseContainer\n@onready var pos_y := %Y as ValueSlider\n@onready var pos_x := %X as ValueSlider\n@onready var line_buttons_container := %LinesContainer\n@onready var boundary_l := $Content/BoundaryL\n@onready var boundary_r := $Content/BoundaryR\n@onready var boundary_b := $Content/VBoxContainer/BoundaryB\n\n\nfunc serialize() -> Dictionary:\n\tvar lines_data := []\n\tfor line in perspective_lines:\n\t\tlines_data.append(line.serialize())\n\tvar data := {\n\t\t\"pos_x\": pos_x.value,\n\t\t\"pos_y\": pos_y.value,\n\t\t\"lines\": lines_data,\n\t\t\"color\": color.to_html(),\n\t}\n\treturn data\n\n\nfunc deserialize(start_data: Dictionary) -> void:\n\tif start_data:  # Data is not {} means the project knows about this point\n\t\tif start_data.has(\"pos_x\") and start_data.has(\"pos_y\"):\n\t\t\tpos_x.value = start_data.pos_x\n\t\t\tpos_y.value = start_data.pos_y\n\t\tif start_data.has(\"color\"):\n\t\t\tcolor = Color(start_data.color)\n\t\t# Add lines if their data is provided\n\t\tif start_data.has(\"lines\"):\n\t\t\tfor line_data in start_data[\"lines\"]:\n\t\t\t\tadd_line(line_data)\n\telse:  # If the project doesn't know about this point\n\t\tupdate_data_to_project()\n\n\tadd_line({}, true)  # This is a tracker line (Always follows mouse)\n\tcolor_picker_button.color = color\n\tupdate_boundary_color()\n\n\nfunc initiate(start_data := {}, idx := -1) -> void:\n\tdeserialize(start_data)\n\t# Title of Vanishing point button\n\tif idx != -1:  # If the initialization is part of a Redo\n\t\ttitle.point_text = str(\"Point: \", idx + 1)\n\telse:\n\t\ttitle.point_text = str(\"Point: \", get_parent().get_child_count())\n\t# connect signals\n\tcolor_picker_button.color_changed.connect(_on_color_changed)\n\tpos_x.value_changed.connect(_on_pos_value_changed)\n\tpos_y.value_changed.connect(_on_pos_value_changed)\n\tpos_x.max_value = Global.current_project.size.x\n\tpos_y.max_value = Global.current_project.size.y\n\n\nfunc update_boundary_color() -> void:\n\tvar luminance := (0.2126 * color.r) + (0.7152 * color.g) + (0.0722 * color.b)\n\tcolor.a = 0.9 - luminance * 0.4  # Interpolates between 0.5 to 0.9\n\tboundary_l.color = color\n\tboundary_r.color = color\n\tboundary_b.color = color\n\n\nfunc _input(_event: InputEvent) -> void:\n\tvar mouse_point := Global.canvas.current_pixel\n\tvar project_size := Global.current_project.size\n\tvar start := Vector2(pos_x.value, pos_y.value)\n\tif (\n\t\tInput.is_action_just_pressed(\"left_mouse\")\n\t\tand Global.can_draw\n\t\tand mouse_point.distance_to(start) < 8 / Global.camera.zoom.x\n\t):\n\t\tif (\n\t\t\t!Rect2(Vector2.ZERO, project_size).has_point(Global.canvas.current_pixel)\n\t\t\tor Global.move_guides_on_canvas\n\t\t):\n\t\t\tis_focused = true\n\t\t\tGlobal.can_draw = false\n\tif is_focused:\n\t\tif Input.is_action_pressed(\"left_mouse\"):\n\t\t\t# rotation code here\n\t\t\tpos_x.value = mouse_point.x\n\t\t\tpos_y.value = mouse_point.y\n\n\t\telif Input.is_action_just_released(\"left_mouse\"):\n\t\t\tGlobal.can_draw = true\n\t\t\tis_focused = false\n\n\n# Signals\nfunc _on_AddLine_pressed() -> void:\n\tadd_line()\n\tupdate_data_to_project()\n\n\nfunc _on_Delete_pressed() -> void:\n\tperspective_editor.delete_point(get_index())\n\n\nfunc _on_color_changed(_color: Color) -> void:\n\tupdate_boundary_color()\n\tcolor = _color\n\trefresh(-1)\n\tupdate_data_to_project()\n\n\nfunc _on_pos_value_changed(_value: float) -> void:\n\trefresh(-1)\n\tupdate_data_to_project()\n\n\nfunc angle_changed(value: float, line_button: Node) -> void:\n\t# check if the properties are changing the line or is the line changing properties\n\tvar angle_slider := line_button.find_child(\"AngleSlider\")\n\tif angle_slider.value != value:  # the line is changing the properties\n\t\tangle_slider.value = value\n\telse:\n\t\tvar line_index := line_button.get_index()\n\t\tperspective_lines[line_index].angle = value\n\t\trefresh(line_index)\n\tupdate_data_to_project()\n\n\nfunc length_changed(value: float, line_button: Node) -> void:\n\t# check if the properties are changing the line or is the line changing properties\n\tvar length_slider := line_button.find_child(\"LengthSlider\")\n\tif length_slider.value != value:  # the line is changing the properties\n\t\tlength_slider.value = value\n\telse:\n\t\tvar line_index := line_button.get_index()\n\t\tperspective_lines[line_index].length = value\n\t\trefresh(line_index)\n\tupdate_data_to_project()\n\n\nfunc _remove_line_pressed(line_button: Node) -> void:\n\tvar index := line_button.get_index()\n\tremove_line(index)\n\tline_button.queue_free()\n\tupdate_data_to_project()\n\n\n# Methods\nfunc generate_line_data(initial_data: Dictionary = {}) -> Dictionary:\n\t# The default data\n\tvar line_data = {\"angle\": 0, \"length\": 19999}\n\t# If any data needs to be changed by initial_data from project (or possibly by redo data)\n\tif initial_data.has(\"angle\"):\n\t\tline_data.angle = initial_data[\"angle\"]\n\tif initial_data.has(\"length\"):\n\t\tline_data.length = initial_data[\"length\"]\n\treturn line_data\n\n\nfunc add_line(loaded_line_data := {}, is_tracker := false) -> void:\n\tvar p_size := Global.current_project.size  # for use later in function\n\n\t# Note: line_data will automatically get default values if loaded_line_data = {}\n\tvar line_data := generate_line_data(loaded_line_data)\n\n\t# This code in if block is purely for beautification\n\tif pos_x.value > p_size.x / 2 and !loaded_line_data:\n\t\t# If new line is created ahead of half project distance then\n\t\t# reverse its angle\n\t\tline_data.angle = 180\n\n\tif is_tracker:  # if we are creating tracker line then length adjustment is not required\n\t\tif tracker_line != null:  # Also if the tracker line already exists then cancel creation\n\t\t\treturn\n\telse:  # If we are not creating a perspective line then adjust its length\n\t\tif !loaded_line_data:\n\t\t\tline_data.length = p_size.x\n\n\t# Create the visual line\n\tvar line := preload(\"res://src/UI/PerspectiveEditor/PerspectiveLine.tscn\").instantiate()\n\tline.initiate(line_data, self)\n\n\t# Set its mode accordingly\n\tif is_tracker:  # Settings for Tracker mode\n\t\tline.track_mouse = true\n\t\ttracker_line = line\n\t\t# The tracker line is initially always hidden when a new point is added because\n\t\t# mouse is outside of canvas during that time.\n\t\t# This is not related to the disable tracker toggle in perspective editor\n\t\ttracker_line.hide_perspective_line()\n\telse:  # Settings for Normal mode\n\t\tvar line_button := LINE_BUTTON_TSCN.instantiate() as FoldableContainer\n\t\tline_buttons_container.add_child(line_button)\n\t\tvar index := line_button.get_parent().get_child_count() - 2\n\t\tline_button.get_parent().move_child(line_button, index)\n\n\t\tvar line_name := str(\"Line\", line_button.get_index() + 1, \" (\", absi(line_data.angle), \"°)\")\n\t\tline_button.title = line_name\n\n\t\tvar remove_button := line_button.find_child(\"Delete\")\n\t\tvar angle_slider := line_button.find_child(\"AngleSlider\")\n\t\tvar length_slider := line_button.find_child(\"LengthSlider\")\n\n\t\tangle_slider.value = absf(line_data.angle)\n\t\tlength_slider.value = line_data.length\n\n\t\tline.line_button = line_button  # In case we need to change properties from line\n\t\tangle_slider.value_changed.connect(angle_changed.bind(line_button))\n\t\tlength_slider.value_changed.connect(length_changed.bind(line_button))\n\t\tremove_button.pressed.connect(_remove_line_pressed.bind(line_button))\n\t\tperspective_lines.append(line)\n\n\nfunc remove_line(line_index: int) -> void:\n\tvar line_to_remove = perspective_lines[line_index]\n\tperspective_lines.remove_at(line_index)\n\tline_to_remove.queue_free()\n\n\nfunc update_data_to_project(removal := false) -> void:\n\tvar project := Global.current_project\n\tvar idx := get_index()\n\t# If deletion is requested\n\tif removal:\n\t\tproject.vanishing_points.remove_at(idx)\n\t\treturn\n\t# If project knows about this vanishing point then update it\n\tvar data := serialize()\n\tif idx < project.vanishing_points.size():\n\t\tproject.vanishing_points[idx] = data\n\t# If project doesn't know about this vanishing point then NOW it knows\n\telse:\n\t\tproject.vanishing_points.append(data)\n\tGlobal.current_project.has_changed = true\n\n\nfunc refresh(index: int) -> void:\n\tif index == -1:  # means all lines should be refreshed (including the tracker line)\n\t\trefresh_tracker()\n\t\tfor i in perspective_lines.size():\n\t\t\trefresh_line(i)\n\telse:\n\t\trefresh_line(index)\n\n\nfunc refresh_line(index: int) -> void:\n\tvar line_button := line_buttons_container.get_child(index)\n\tvar line_data = perspective_lines[index].serialize()\n\tvar line_name := str(\"Line\", line_button.get_index() + 1, \" (\", absi(line_data.angle), \"°)\")\n\tline_button.title = line_name\n\tperspective_lines[index].refresh()\n\n\nfunc refresh_tracker() -> void:\n\ttracker_line.refresh()\n\n\nfunc _exit_tree() -> void:\n\tif tracker_line:\n\t\ttracker_line.queue_free()\n\t\ttracker_line = null\n\tfor idx in perspective_lines.size():\n\t\tperspective_lines[idx].queue_free()\n"
  },
  {
    "path": "src/UI/PerspectiveEditor/VanishingPoint.gd.uid",
    "content": "uid://dngll5lpmi016\n"
  },
  {
    "path": "src/UI/PerspectiveEditor/VanishingPoint.tscn",
    "content": "[gd_scene format=3 uid=\"uid://calecly82t1aw\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://dngll5lpmi016\" path=\"res://src/UI/PerspectiveEditor/VanishingPoint.gd\" id=\"2\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ct8wn8m6x4m54\" path=\"res://assets/graphics/misc/value_arrow.svg\" id=\"4\"]\n[ext_resource type=\"Script\" uid=\"uid://36g7rc3uvfqv\" path=\"res://src/UI/PerspectiveEditor/PointCollapseContainer.gd\" id=\"5\"]\n\n[node name=\"VanishingPoint\" type=\"VBoxContainer\" unique_id=1334512387 groups=[\"Entry\"]]\noffset_right = 261.0\noffset_bottom = 145.0\nscript = ExtResource(\"2\")\n\n[node name=\"TitleContainer\" type=\"HBoxContainer\" parent=\".\" unique_id=480446575]\nlayout_mode = 2\n\n[node name=\"PointCollapseContainer\" type=\"Button\" parent=\"TitleContainer\" unique_id=2041490981]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"CollapsibleCheckBox\"\ntoggle_mode = true\nscript = ExtResource(\"5\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TitleContainer/PointCollapseContainer\" unique_id=184328559 groups=[\"UIButtons\"]]\nlayout_mode = 0\nanchor_top = 0.5\nanchor_bottom = 0.5\noffset_left = 2.0\noffset_top = -6.0\noffset_right = 14.0\noffset_bottom = 6.0\npivot_offset = Vector2(6, 6)\ntexture = ExtResource(\"4\")\n\n[node name=\"Label\" type=\"Label\" parent=\"TitleContainer/PointCollapseContainer\" unique_id=341882812]\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 14.0\ntheme_type_variation = &\"HeaderSmall\"\n\n[node name=\"ColorPickerButton\" type=\"ColorPickerButton\" parent=\"TitleContainer\" unique_id=491751808]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(50, 0)\nlayout_mode = 2\n\n[node name=\"Content\" type=\"HBoxContainer\" parent=\".\" unique_id=543459346]\nunique_name_in_owner = true\nlayout_mode = 2\n\n[node name=\"Spacer\" type=\"Control\" parent=\"Content\" unique_id=1698893326]\ncustom_minimum_size = Vector2(5, 0)\nlayout_mode = 2\n\n[node name=\"BoundaryL\" type=\"ColorRect\" parent=\"Content\" unique_id=538716831]\ncustom_minimum_size = Vector2(2, 0)\nlayout_mode = 2\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"Content\" unique_id=1331952315]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"PointInfo\" type=\"HBoxContainer\" parent=\"Content/VBoxContainer\" unique_id=1528290598]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"Content/VBoxContainer/PointInfo\" unique_id=2121844557]\nlayout_mode = 2\nsize_flags_vertical = 5\ntext = \"Position:\"\n\n[node name=\"Position\" type=\"VBoxContainer\" parent=\"Content/VBoxContainer/PointInfo\" unique_id=1558655428]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"X\" parent=\"Content/VBoxContainer/PointInfo/Position\" unique_id=2004551248 instance=ExtResource(\"1\")]\nunique_name_in_owner = true\nlayout_mode = 2\nstep = 0.5\nallow_greater = true\nallow_lesser = true\nprefix = \"X :\"\n\n[node name=\"Y\" parent=\"Content/VBoxContainer/PointInfo/Position\" unique_id=1905569593 instance=ExtResource(\"1\")]\nunique_name_in_owner = true\nlayout_mode = 2\nstep = 0.5\nallow_greater = true\nallow_lesser = true\nprefix = \"Y :\"\n\n[node name=\"FoldableContainer\" type=\"FoldableContainer\" parent=\"Content/VBoxContainer\" unique_id=1307960044]\nlayout_mode = 2\ntheme_type_variation = &\"CollapsibleContainer\"\nfolded = true\ntitle = \"Lines\"\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"Content/VBoxContainer/FoldableContainer\" unique_id=177318029]\nvisible = false\nlayout_mode = 2\n\n[node name=\"Spacer\" type=\"Control\" parent=\"Content/VBoxContainer/FoldableContainer/HBoxContainer\" unique_id=1923423455]\ncustom_minimum_size = Vector2(20, 0)\nlayout_mode = 2\n\n[node name=\"VSeparator\" type=\"VSeparator\" parent=\"Content/VBoxContainer/FoldableContainer/HBoxContainer\" unique_id=1216153123]\nlayout_mode = 2\n\n[node name=\"LinesContainer\" type=\"VBoxContainer\" parent=\"Content/VBoxContainer/FoldableContainer/HBoxContainer\" unique_id=1379111252]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"AddLine\" type=\"Button\" parent=\"Content/VBoxContainer/FoldableContainer/HBoxContainer/LinesContainer\" unique_id=1649017075]\nlayout_mode = 2\ntext = \"Add Line\"\n\n[node name=\"Delete\" type=\"Button\" parent=\"Content/VBoxContainer\" unique_id=272520964]\ncustom_minimum_size = Vector2(40, 0)\nlayout_mode = 2\ntext = \"Delete Point\"\n\n[node name=\"BoundaryB\" type=\"ColorRect\" parent=\"Content/VBoxContainer\" unique_id=802640058]\ncustom_minimum_size = Vector2(0, 2)\nlayout_mode = 2\n\n[node name=\"BoundaryR\" type=\"ColorRect\" parent=\"Content\" unique_id=1439651156]\ncustom_minimum_size = Vector2(2, 0)\nlayout_mode = 2\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\".\" unique_id=1456852361]\nlayout_mode = 2\ntheme_override_constants/separation = 10\n\n[connection signal=\"toggled\" from=\"TitleContainer/PointCollapseContainer\" to=\"TitleContainer/PointCollapseContainer\" method=\"_on_Button_toggled\"]\n[connection signal=\"pressed\" from=\"Content/VBoxContainer/FoldableContainer/HBoxContainer/LinesContainer/AddLine\" to=\".\" method=\"_on_AddLine_pressed\"]\n[connection signal=\"pressed\" from=\"Content/VBoxContainer/Delete\" to=\".\" method=\"_on_Delete_pressed\"]\n"
  },
  {
    "path": "src/UI/Recorder/Recorder.gd",
    "content": "class_name RecorderPanel\nextends PanelContainer\n\nenum CaptureMethod { ACTIONS, MOUSE_MOTION, SECONDS }\nenum RecordType { CANVAS, REGION }\nenum FFmpegExportBy { FPS_DETERMINES_DURATION, DURATION_DETERMINES_FPS }\n\nvar capture_method := CaptureMethod.ACTIONS\nvar record_type := RecordType.CANVAS\nvar save_dir := \"\"\nvar chosen_dir := \"\":\n\tset(value):\n\t\tchosen_dir = value\n\t\tif chosen_dir.ends_with(\"/\"):  # Remove end back-slashes if present\n\t\t\tchosen_dir[-1] = \"\"\nvar start_after_delay_seconds: int = 0\nvar action_interval: int = 1  ## Number of \"do\" actions after which a frame can be captured.\nvar mouse_displacement: int = 100  ## Mouse displacement after which a frame can be captured.\nvar seconds_interval: float = 1  ## Number of seconds after which a frame can be captured.\nvar record_area := Rect2i(0, 0, 1, 1)\nvar area_follows_mouse := false\nvar scaling_enabled := true\nvar scale_percent := 100\nvar should_export_gif := false\nvar export_fps: float = 10\nvar export_duretion: float = 20\nvar target_window_idx := 0  # index of\nvar export_by := FFmpegExportBy.FPS_DETERMINES_DURATION\nvar recorded_projects: Dictionary[Project, Recorder] = {}\n\nvar _path_dialog: FileDialog:\n\tget:\n\t\tif not is_instance_valid(_path_dialog):\n\t\t\t_path_dialog = FileDialog.new()\n\t\t\t_path_dialog.exclusive = false\n\t\t\t_path_dialog.popup_window = true\n\t\t\t_path_dialog.file_mode = FileDialog.FILE_MODE_OPEN_DIR\n\t\t\t_path_dialog.access = FileDialog.ACCESS_FILESYSTEM\n\t\t\t_path_dialog.use_native_dialog = Global.use_native_file_dialogs\n\t\t\t_path_dialog.add_to_group(&\"FileDialogs\")\n\t\t\t_path_dialog.dir_selected.connect(_on_path_dialog_dir_selected)\n\t\t\tadd_child(_path_dialog)\n\t\treturn _path_dialog\nvar _gif_start_frame: int = 0\nvar _gif_end_frame: int = -1\n## Performance variables\nvar _old_preview_region: Rect2i\nvar _old_last_position := Vector2.INF\n\n@onready var start_delay_slider: ValueSlider = %StartDelaySlider\n# Interval options\n@onready var capture_method_option: OptionButton = %CaptureMethodOption\n@onready var capture_actions: ValueSlider = %CaptureActions\n@onready var capture_mouse_distance: ValueSlider = %MouseDistance\n@onready var capture_seconds: ValueSlider = %CaptureSconds\n# Record type options\n@onready var record_type_option: OptionButton = %RecordTypeOption\n@onready var area_options: VBoxContainer = %AreaOptions\n@onready var rect_texture: TextureRect = %RectTexture\n@onready var preview_aspect_ratio_container: AspectRatioContainer = %PreviewAspectRatioContainer\n@onready var target_screen_option: OptionButton = %TargetScreen\n@onready var rect_positon_slider: ValueSliderV2 = %RectPositonSlider\n@onready var rect_size_slider: ValueSliderV2 = %RectSizeSlider\n@onready var follow_mouse_checkbox: CheckBox = %FollowMouse\n# Scaling\n@onready var scale_output_checkbox: CheckBox = %ScaleOutputCheckbox\n@onready var output_scale_container: HBoxContainer = %OutputScale\n@onready var scale_value_slider: ValueSlider = %ScaleValueSlider\n@onready var size_label := %SizePreviewLabel as Label\n# FFmpeg\n@onready var ffmpeg_options: VBoxContainer = %FFmpegOptions\n@onready var export_gif_checkbox: CheckBox = %ExportGifCheckbox\n@onready var ffmpeg_export_by_option: OptionButton = %FFmpegExportByOption\n@onready var fps_value_slider: ValueSlider = %FPSValueSlider\n@onready var ffmpeg_sconds_slider: ValueSlider = %FFmpegScondsSlider\n\n# Output\n@onready var path_field := %Path as LineEdit\n@onready var options_container := %OptionsContainer as VBoxContainer\n\n# Panel elements\n@onready var captured_label := %CapturedLabel as Label\n@onready var start_button := %Start as Button\n@onready var capture_timer: Timer = %CaptureTimer\n@onready var preview_timer: Timer = %PreviewTimer\n@onready var options_dialog := $OptionsDialog as AcceptDialog\n\n\nclass Recorder:\n\tvar project: Project\n\tvar recorder_panel: RecorderPanel\n\tvar actions_done := -1\n\tvar frames_captured := 0\n\tvar save_directory := \"\"\n\tvar cursor_image: Image\n\tvar mouse_sprite := preload(\"res://assets/graphics/cursor.png\")\n\tvar _last_mouse_position := Vector2i.MAX\n\tvar _start_size := Vector2i.ZERO\n\n\tfunc _init(_project: Project, _recorder_panel: RecorderPanel) -> void:\n\t\tproject = _project\n\t\trecorder_panel = _recorder_panel\n\t\t# Create a new directory based on time\n\t\tvar time_dict := Time.get_time_dict_from_system()\n\t\tvar folder := str(\n\t\t\tproject.name, time_dict.hour, \"_\", time_dict.minute, \"_\", time_dict.second\n\t\t)\n\t\tvar dir := DirAccess.open(recorder_panel.chosen_dir)\n\t\tsave_directory = recorder_panel.chosen_dir.path_join(folder)\n\t\tdir.make_dir_recursive(save_directory)\n\t\tproject.removed.connect(recorder_panel.finalize_recording.bind(project))\n\t\tcursor_image = mouse_sprite.get_image()\n\t\tupdate_settings()\n\t\trecorder_panel.captured_label.text = \"\"\n\t\t_start_size = recorder_panel.record_area.size\n\n\tfunc _notification(what: int) -> void:\n\t\tif what == NOTIFICATION_PREDELETE:\n\t\t\t# Needed so that the project won't be forever remained in memory because of bind().\n\t\t\tproject.removed.disconnect(recorder_panel.finalize_recording)\n\n\tfunc update_settings():\n\t\tif project.undo_redo.version_changed.is_connected(capture_frame):\n\t\t\tproject.undo_redo.version_changed.disconnect(capture_frame)\n\t\tif recorder_panel.capture_timer.timeout.is_connected(capture_frame):\n\t\t\trecorder_panel.capture_timer.timeout.disconnect(capture_frame)\n\t\tmatch recorder_panel.capture_method:\n\t\t\tRecorderPanel.CaptureMethod.ACTIONS:\n\t\t\t\tproject.undo_redo.version_changed.connect(capture_frame)\n\t\t\tRecorderPanel.CaptureMethod.MOUSE_MOTION:\n\t\t\t\t# _input() won't work properly, so i use wait_time with a low value\n\t\t\t\trecorder_panel.capture_timer.wait_time = 0.05\n\t\t\t\trecorder_panel.capture_timer.timeout.connect(capture_frame)\n\t\t\t\trecorder_panel.capture_timer.start()\n\t\t\tRecorderPanel.CaptureMethod.SECONDS:\n\t\t\t\trecorder_panel.capture_timer.wait_time = recorder_panel.seconds_interval\n\t\t\t\trecorder_panel.capture_timer.timeout.connect(capture_frame)\n\t\t\t\trecorder_panel.capture_timer.start()\n\n\tstatic func get_base_region(target_window_idx: int, screen_optionbutton: OptionButton) -> Array:\n\t\tvar screen_image: Image\n\t\tvar screen_idx := DisplayServer.INVALID_SCREEN\n\t\tvar base_region := Rect2i()\n\t\tvar screen_offset := Vector2i.ZERO\n\t\tif target_window_idx < screen_optionbutton.item_count:\n\t\t\tvar metadata = screen_optionbutton.get_item_metadata(target_window_idx)\n\t\t\tif typeof(metadata) == TYPE_ARRAY:\n\t\t\t\tif metadata.size() == 2:\n\t\t\t\t\tvar idx: int = metadata[0]\n\t\t\t\t\tvar is_window: bool = metadata[1]\n\t\t\t\t\tif is_window and DisplayServer.get_window_list().has(idx):\n\t\t\t\t\t\tbase_region = Rect2i(\n\t\t\t\t\t\t\tDisplayServer.window_get_position(idx),\n\t\t\t\t\t\t\tDisplayServer.window_get_size(idx)\n\t\t\t\t\t\t)\n\t\t\t\t\t\tscreen_idx = DisplayServer.window_get_current_screen(idx)\n\t\t\t\t\telse:\n\t\t\t\t\t\tif idx < DisplayServer.get_screen_count():\n\t\t\t\t\t\t\tscreen_idx = idx\n\t\tif screen_idx != DisplayServer.INVALID_SCREEN:\n\t\t\tscreen_image = DisplayServer.screen_get_image(screen_idx)\n\t\t\tif base_region.has_area() and screen_image:\n\t\t\t\tscreen_image = screen_image.get_region(base_region)\n\t\t\telse:\n\t\t\t\tscreen_offset = screen_optionbutton.get_tree().root.get_window().position\n\t\treturn [screen_image, screen_offset]\n\n\tfunc capture_frame() -> void:\n\t\tif Global.current_project != project:\n\t\t\treturn\n\t\tif not recorder_panel.get_window():\n\t\t\treturn\n\t\tif recorder_panel.options_dialog.visible:\n\t\t\treturn\n\t\tmatch recorder_panel.capture_method:\n\t\t\tRecorderPanel.CaptureMethod.ACTIONS:\n\t\t\t\tactions_done += 1\n\t\t\t\tif actions_done % recorder_panel.action_interval != 0:\n\t\t\t\t\treturn\n\t\t\tRecorderPanel.CaptureMethod.MOUSE_MOTION:\n\t\t\t\tvar mouse_pos := recorder_panel.get_global_mouse_position()\n\t\t\t\tvar disp := _last_mouse_position.distance_to(mouse_pos)\n\t\t\t\tif disp < recorder_panel.mouse_displacement:\n\t\t\t\t\treturn\n\t\t\t\t_last_mouse_position = recorder_panel.get_global_mouse_position()\n\t\tvar image: Image\n\t\tmatch recorder_panel.record_type:\n\t\t\tRecorderPanel.RecordType.REGION:\n\t\t\t\tvar base_area: Array = Recorder.get_base_region(\n\t\t\t\t\trecorder_panel.target_window_idx, recorder_panel.target_screen_option\n\t\t\t\t)\n\t\t\t\timage = base_area[0]\n\t\t\t\tif !image:  # Error encountered (Image not found)\n\t\t\t\t\trecorder_panel.finalize_recording(project)\n\t\t\t\t\treturn\n\t\t\t\tvar region = Rect2i(\n\t\t\t\t\trecorder_panel.record_area.position, recorder_panel.record_area.size\n\t\t\t\t)\n\t\t\t\t# Capture the cursor image\n\t\t\t\tvar mouse_pos: Vector2i = recorder_panel.get_global_mouse_position()\n\t\t\t\tvar mouse_point: Vector2i = mouse_pos - (cursor_image.get_size() / 2) + base_area[1]\n\t\t\t\tcursor_image.convert(image.get_format())\n\t\t\t\timage.blend_rect(\n\t\t\t\t\tcursor_image, Rect2i(Vector2i.ZERO, cursor_image.get_size()), mouse_point\n\t\t\t\t)\n\t\t\t\tif recorder_panel.area_follows_mouse:\n\t\t\t\t\tvar offset = (region.size / 2) - base_area[1]\n\t\t\t\t\tregion.position = (mouse_pos - offset).clamp(\n\t\t\t\t\t\tVector2i.ZERO, image.get_size() - region.size\n\t\t\t\t\t)\n\t\t\t\tif region != Rect2i(Vector2i.ZERO, image.get_size()):\n\t\t\t\t\timage = image.get_region(region)\n\t\t\tRecorderPanel.RecordType.CANVAS:\n\t\t\t\tvar frame := project.frames[project.current_frame]\n\t\t\t\timage = project.new_empty_image()\n\t\t\t\tDrawingAlgos.blend_layers(image, frame, Vector2i.ZERO, project)\n\t\tif image.get_size() != _start_size:  # Resize image if it is different than intended\n\t\t\timage.resize(_start_size.x, _start_size.y, Image.INTERPOLATE_NEAREST)\n\t\tif recorder_panel.scaling_enabled:\n\t\t\t@warning_ignore(\"integer_division\")\n\t\t\tvar resize := recorder_panel.scale_percent / 100\n\t\t\tvar new_width := image.get_width() * resize\n\t\t\tvar new_height := image.get_height() * resize\n\t\t\timage.resize(new_width, new_height, Image.INTERPOLATE_NEAREST)\n\t\tvar save_file := str(project.name, \"_\", frames_captured, \".png\")\n\t\timage.save_png(save_directory.path_join(save_file))\n\t\tframes_captured += 1\n\t\trecorder_panel.captured_label.text = str(\"Saved: \", frames_captured)\n\n\nfunc _ready() -> void:\n\tif OS.get_name() == \"Web\":\n\t\tExtensionsApi.panel.remove_node_from_tab.call_deferred(self)\n\t\treturn\n\trecord_type_option.add_item(\"Canvas Only\", RecordType.CANVAS)\n\trecord_type_option.add_item(\"Custom Area\", RecordType.REGION)\n\tcapture_method_option.add_item(\"By Actions\", CaptureMethod.ACTIONS)\n\tcapture_method_option.add_item(\"By Mouse Motion\", CaptureMethod.MOUSE_MOTION)\n\tcapture_method_option.add_item(\"By Seconds\", CaptureMethod.SECONDS)\n\tffmpeg_export_by_option.add_item(\"FPS decides duration\", FFmpegExportBy.FPS_DETERMINES_DURATION)\n\tffmpeg_export_by_option.add_item(\"Duration decides fps\", FFmpegExportBy.DURATION_DETERMINES_FPS)\n\tGlobal.project_switched.connect(_on_project_switched)\n\t# Make a recordings folder if there isn't one\n\tchosen_dir = Global.home_data_directory.path_join(\"Recordings\")\n\tDirAccess.make_dir_recursive_absolute(chosen_dir)\n\tpath_field.text = chosen_dir\n\t# Temp assignment (remove later)\n\tvar config = Global.config_cache.get_value(\"RecorderPanel\", \"settings\", {})\n\tset_config(config)\n\tupdate_config()\n\trepopulate_screen_options()\n\n\nfunc initialize_recording() -> void:\n\t# disable some options that are not required during recording\n\tcaptured_label.visible = true\n\tcaptured_label.text = \"Initializing\"\n\tvar group_nodes := get_tree().get_nodes_in_group(\"hidden during recording\")\n\tif group_nodes:\n\t\tfor child: Control in group_nodes:\n\t\t\tchild.visible = false\n\n\nfunc finalize_recording(project := Global.current_project) -> void:\n\tif recorded_projects.has(project) and Export.is_ffmpeg_installed() and should_export_gif:\n\t\texport_gif(project)\n\t\trecorded_projects.erase(project)\n\tif project == Global.current_project:\n\t\tcaptured_label.visible = false\n\t\tif get_tree():\n\t\t\tvar group_nodes := get_tree().get_nodes_in_group(\"hidden during recording\")\n\t\t\tif group_nodes:\n\t\t\t\tfor child: Control in group_nodes:\n\t\t\t\t\tchild.visible = true\n\t\t\tupdate_config()\n\n\nfunc export_gif(project: Project) -> void:\n\tvar recorder := recorded_projects[project]\n\tvar path := recorder.save_directory\n\tvar frame_count: int = recorder.frames_captured - _gif_start_frame\n\tif _gif_end_frame != -1:\n\t\tframe_count = _gif_end_frame - _gif_start_frame\n\tvar palette_generation: PackedStringArray = [\n\t\t\"-y\",\n\t\t\"-start_number\",\n\t\tstr(_gif_start_frame),\n\t\t\"-i\",\n\t\tpath.path_join(project.name + \"_%d.png\"),\n\t\t\"-frames:v\",\n\t\tstr(frame_count),\n\t\t\"-filter_complex\",\n\t\t\"[0:v] palettegen\",\n\t\tpath.path_join(\"palette.png\")\n\t]\n\tvar success := OS.execute(Global.ffmpeg_path, palette_generation, [], true)\n\tvar clip_fps := export_fps\n\tif export_by == FFmpegExportBy.DURATION_DETERMINES_FPS:\n\t\tclip_fps = frame_count / export_duretion\n\tvar ffmpeg_execute: PackedStringArray = [\n\t\t\"-y\",\n\t\t\"-framerate\",\n\t\tstr(clip_fps),\n\t\t\"-start_number\",\n\t\tstr(_gif_start_frame),\n\t\t\"-i\",\n\t\tpath.path_join(project.name + \"_%d.png\"),\n\t\t\"-i\",\n\t\tpath.path_join(\"palette.png\"),\n\t\t\"-filter_complex\",\n\t\t\"paletteuse\",\n\t\t\"-frames:v\",\n\t\tstr(frame_count),\n\t\tpath.path_join(project.name + \".gif\")\n\t]\n\tsuccess = OS.execute(Global.ffmpeg_path, ffmpeg_execute, [], true)\n\tif success < 0 or success > 1:\n\t\tvar fail_text := \"\"\"Video failed to export. Make sure you have FFMPEG installed\n\t\t\tand have set the correct path in the preferences.\"\"\"\n\t\tGlobal.popup_error(tr(fail_text))\n\tif FileAccess.file_exists(path.path_join(\"palette.png\")):\n\t\tDirAccess.remove_absolute(path.path_join(\"palette.png\"))\n\n\nfunc _on_settings_pressed() -> void:\n\toptions_dialog.popup_centered_clamped(options_dialog.size)\n\n\nfunc _on_open_folder_pressed() -> void:\n\tOS.shell_open(path_field.text)\n\n\nfunc _on_start_recording_toggled(button_pressed: bool) -> void:\n\tif button_pressed and captured_label.visible == false:\n\t\tinitialize_recording()\n\t\tif start_after_delay_seconds > 0:\n\t\t\tawait get_tree().create_timer(start_after_delay_seconds).timeout\n\t\trecorded_projects[Global.current_project] = Recorder.new(Global.current_project, self)\n\t\tGlobal.change_button_texturerect(start_button.get_child(0), \"stop.png\")\n\telse:\n\t\tif recorded_projects.has(Global.current_project):  # prevents reaching here during await\n\t\t\tfinalize_recording()\n\t\t\tGlobal.change_button_texturerect(start_button.get_child(0), \"start.png\")\n\n\nfunc _on_project_switched() -> void:\n\tif recorded_projects.has(Global.current_project):\n\t\tinitialize_recording()\n\t\tstart_button.set_pressed_no_signal(true)\n\t\tGlobal.change_button_texturerect(start_button.get_child(0), \"stop.png\")\n\t\tcaptured_label.text = str(\n\t\t\t\"Saved: \", recorded_projects[Global.current_project].frames_captured\n\t\t)\n\telse:\n\t\tfinalize_recording()\n\t\tstart_button.set_pressed_no_signal(false)\n\t\tGlobal.change_button_texturerect(start_button.get_child(0), \"start.png\")\n\n\n# Option Dialog methods & Signals\n\n\nfunc save_config() -> void:\n\tGlobal.config_cache.set_value(\"RecorderPanel\", \"settings\", get_config())\n\n\nfunc get_config() -> Dictionary:\n\treturn {\n\t\t\"start_after_delay_seconds\": start_after_delay_seconds,\n\t\t\"capture_method\": capture_method,\n\t\t\"action_interval\": action_interval,\n\t\t\"mouse_displacement\": mouse_displacement,\n\t\t\"seconds_interval\": seconds_interval,\n\t\t\"record_type\": record_type,\n\t\t\"target_window_idx\": target_window_idx,\n\t\t\"record_area\": record_area,\n\t\t\"area_follows_mouse\": area_follows_mouse,\n\t\t\"scaling_enabled\": scaling_enabled,\n\t\t\"scale_percent\": scale_percent,\n\t\t\"should_export_gif\": should_export_gif,\n\t\t\"export_by\": export_by,\n\t\t\"export_fps\": export_fps,\n\t\t\"export_duretion\": export_duretion,\n\t}\n\n\nfunc set_config(config: Dictionary) -> void:\n\trecord_area.size = get_window().size\n\tstart_after_delay_seconds = config.get(\"start_after_delay_seconds\", start_after_delay_seconds)\n\tcapture_method = config.get(\"capture_method\", capture_method)\n\taction_interval = config.get(\"action_interval\", action_interval)\n\tmouse_displacement = config.get(\"mouse_displacement\", mouse_displacement)\n\tseconds_interval = config.get(\"seconds_interval\", seconds_interval)\n\trecord_type = config.get(\"record_type\", record_type)\n\ttarget_window_idx = config.get(\"target_window_idx\", target_window_idx)\n\trecord_area = config.get(\"record_area\", record_area)\n\tarea_follows_mouse = config.get(\"area_follows_mouse\", area_follows_mouse)\n\tscaling_enabled = config.get(\"scaling_enabled\", scaling_enabled)\n\tscale_percent = config.get(\"scale_percent\", scale_percent)\n\tshould_export_gif = config.get(\"should_export_gif\", should_export_gif)\n\texport_by = config.get(\"export_by\", export_by)\n\texport_fps = config.get(\"export_fps\", export_fps)\n\texport_duretion = config.get(\"export_duretion\", export_duretion)\n\n\nfunc update_config():\n\tstart_delay_slider.set_value_no_signal(start_after_delay_seconds)\n\tcapture_method_option.selected = capture_method_option.get_item_index(capture_method)\n\tcapture_actions.set_value_no_signal(action_interval)\n\tcapture_mouse_distance.set_value_no_signal(mouse_displacement)\n\tcapture_seconds.set_value_no_signal(seconds_interval)\n\n\trecord_type_option.selected = record_type_option.get_item_index(record_type)\n\tif target_window_idx < target_screen_option.item_count:  # Fixes if window count suddenly changes\n\t\trepopulate_screen_options()\n\telse:\n\t\ttarget_screen_option.selected = target_window_idx\n\tfollow_mouse_checkbox.set_pressed_no_signal(area_follows_mouse)\n\trect_positon_slider.set_value_no_signal(record_area.position)\n\trect_size_slider.set_value_no_signal(record_area.size)\n\n\tif area_follows_mouse:\n\t\tif preview_timer.is_stopped():\n\t\t\tpreview_timer.start()\n\telse:\n\t\tif not preview_timer.is_stopped():\n\t\t\tpreview_timer.stop()\n\n\tscale_output_checkbox.set_pressed_no_signal(scaling_enabled)\n\tscale_value_slider.set_value_no_signal(scale_percent)\n\tvar new_size: Vector2i = Global.current_project.size * (scale_percent / 100.0)\n\tsize_label.text = str(\"(\", new_size.x, \"×\", new_size.y, \")\")\n\n\texport_gif_checkbox.set_pressed_no_signal(should_export_gif)\n\tffmpeg_export_by_option.selected = ffmpeg_export_by_option.get_item_index(export_by)\n\tfps_value_slider.set_value_no_signal(export_fps)\n\tffmpeg_sconds_slider.set_value_no_signal(export_duretion)\n\n\tcapture_actions.visible = capture_method == CaptureMethod.ACTIONS\n\tcapture_mouse_distance.visible = capture_method == CaptureMethod.MOUSE_MOTION\n\tcapture_seconds.visible = capture_method == CaptureMethod.SECONDS\n\ttarget_screen_option.visible = record_type == RecordType.REGION\n\tarea_options.visible = record_type == RecordType.REGION\n\trect_positon_slider.visible = not follow_mouse_checkbox.button_pressed\n\toutput_scale_container.visible = scaling_enabled\n\tscale_value_slider.visible = scaling_enabled\n\tffmpeg_export_by_option.visible = should_export_gif\n\tfps_value_slider.visible = (\n\t\tshould_export_gif and export_by == FFmpegExportBy.FPS_DETERMINES_DURATION\n\t)\n\tffmpeg_sconds_slider.visible = (\n\t\tshould_export_gif and export_by == FFmpegExportBy.DURATION_DETERMINES_FPS\n\t)\n\n\tfor recorder: Recorder in recorded_projects.values():\n\t\trecorder.update_settings()\n\n\nfunc repopulate_screen_options():\n\ttarget_screen_option.clear()\n\tvar entry_id: int = 0\n\tfor i in DisplayServer.get_screen_count():\n\t\ttarget_screen_option.add_item(\"Screen %s\" % str(i), entry_id)\n\t\ttarget_screen_option.set_item_metadata(entry_id, [i, false])\n\t\tentry_id += 1\n\tfor i in DisplayServer.get_window_list():\n\t\tif options_dialog.get_window_id() == i:\n\t\t\tcontinue\n\t\ttarget_screen_option.add_item(\"Window %s\" % str(entry_id), entry_id)\n\t\ttarget_screen_option.set_item_metadata(entry_id, [i, true])\n\t\tentry_id += 1\n\ttarget_screen_option.select(clampi(target_window_idx, 0, target_screen_option.item_count - 1))\n\n\nfunc update_preview(reset_region := false):\n\tif record_type != RecordType.REGION:\n\t\treturn\n\tvar preview = Recorder.get_base_region(target_window_idx, target_screen_option)\n\tif preview[0]:\n\t\tvar mouse_pos: Vector2i = get_global_mouse_position()\n\t\tif reset_region:\n\t\t\trecord_area = Rect2i(Vector2i.ZERO, preview[0].get_size())\n\t\tvar region = Rect2i(record_area.position, record_area.size)\n\t\tvar offset = (region.size / 2) - preview[1]\n\t\tregion.position = (mouse_pos - offset).clamp(\n\t\t\tVector2i.ZERO, preview[0].get_size() - region.size\n\t\t)\n\t\tif _old_preview_region != region:\n\t\t\t_old_preview_region = region\n\t\t\tvar texture = ImageTexture.create_from_image(preview[0].get_region(region))\n\t\t\trect_texture.texture = texture\n\t\t\tpreview_aspect_ratio_container.ratio = float(record_area.size.x) / record_area.size.y\n\telse:\n\t\trepopulate_screen_options()\n\n\nfunc _on_options_dialog_visibility_changed() -> void:\n\tif visible:\n\t\tffmpeg_options.visible = Export.is_ffmpeg_installed()\n\t\toptions_dialog.size.y = 0\n\t\tupdate_preview()\n\telse:\n\t\tif rect_texture:\n\t\t\trect_texture.texture = null\n\n\nfunc _on_start_delay_slider_value_changed(value: int) -> void:\n\tstart_after_delay_seconds = value\n\tupdate_config()\n\tsave_config()\n\n\nfunc _update_follow_mouse_preview() -> void:\n\tif area_follows_mouse and options_dialog.visible:\n\t\tvar mouse_pos := get_global_mouse_position()\n\t\tif _old_last_position.distance_to(mouse_pos) < 20:\n\t\t\treturn\n\t\t_old_last_position = mouse_pos\n\t\tif follow_mouse_checkbox and rect_texture.is_visible_in_tree():\n\t\t\tvar offset = record_area.size / 2\n\t\t\tvar new_position = (Vector2i(get_global_mouse_position()) - offset).clamp(\n\t\t\t\tVector2i.ZERO, get_window().size - record_area.size\n\t\t\t)\n\t\t\tif record_area.position != new_position:\n\t\t\t\trecord_area.position = new_position\n\t\t\t\tupdate_preview()\n\n\nfunc _on_capture_method_option_item_selected(index: int) -> void:\n\tcapture_method = capture_method_option.get_item_id(index) as CaptureMethod\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_action_interval_value_changed(value: int) -> void:\n\taction_interval = value\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_mouse_distance_value_changed(value: int) -> void:\n\tmouse_displacement = value\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_seconds_interval_value_changed(value: float) -> void:\n\tseconds_interval = value\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_record_type_option_item_selected(index: int) -> void:\n\trecord_type = record_type_option.get_item_id(index) as RecordType\n\tupdate_preview()\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_target_screen_item_selected(index: int) -> void:\n\ttarget_window_idx = index\n\tupdate_preview(true)\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_rect_positon_slider_value_changed(value: Vector2i) -> void:\n\trecord_area.position = value\n\tupdate_preview()\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_full_region_button_pressed() -> void:\n\trecord_area = Rect2i(Vector2i.ZERO, get_window().size)\n\tupdate_preview()\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_rect_size_slider_value_changed(value: Vector2i) -> void:\n\trecord_area.size = value\n\tupdate_preview()\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_follow_mouse_toggled(toggled_on: bool) -> void:\n\tarea_follows_mouse = toggled_on\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_scale_output_checkbox_toggled(toggled_on: bool) -> void:\n\tscaling_enabled = toggled_on\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_output_scale_value_changed(value: int) -> void:\n\tscale_percent = value\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_export_gif_checkbox_toggled(toggled_on: bool) -> void:\n\tshould_export_gif = toggled_on\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_fps_value_value_changed(value: float) -> void:\n\texport_fps = value\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_ffmpeg_sconds_slider_value_changed(value: float) -> void:\n\texport_duretion = value\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_ffmpeg_export_by_option_item_selected(index: int) -> void:\n\texport_by = ffmpeg_export_by_option.get_item_id(index) as FFmpegExportBy\n\tupdate_config()\n\tsave_config()\n\n\nfunc _on_Choose_pressed() -> void:\n\t_path_dialog.popup_centered_clamped()\n\t_path_dialog.current_dir = chosen_dir\n\n\nfunc _on_path_dialog_dir_selected(dir: String) -> void:\n\tchosen_dir = dir\n\tpath_field.text = chosen_dir\n\tstart_button.disabled = false\n\n\nfunc _on_gif_start_frame_value_changed(value: int) -> void:\n\t_gif_start_frame = value\n\n\nfunc _on_gif_end_frame_value_changed(value: int) -> void:\n\t_gif_end_frame = value\n"
  },
  {
    "path": "src/UI/Recorder/Recorder.gd.uid",
    "content": "uid://h0nqlme6nopg\n"
  },
  {
    "path": "src/UI/Recorder/Recorder.tscn",
    "content": "[gd_scene format=3 uid=\"uid://dl6ook010q86o\"]\n\n[ext_resource type=\"Texture2D\" uid=\"uid://bgfqvkmstecr5\" path=\"res://assets/graphics/recorder/start.png\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://h0nqlme6nopg\" path=\"res://src/UI/Recorder/Recorder.gd\" id=\"2\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dinubfua8gqhw\" path=\"res://assets/graphics/timeline/expandable.png\" id=\"3\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://b0gbmkb8xwksb\" path=\"res://addons/keychain/assets/folder.svg\" id=\"4\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"5_gel1w\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://3pmb60gpst7b\" path=\"res://src/UI/Nodes/TransparentChecker.tscn\" id=\"6_uegas\"]\n[ext_resource type=\"Shader\" uid=\"uid://c50kmfvf635kb\" path=\"res://src/Shaders/TransparentChecker.gdshader\" id=\"7_4flx0\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bbnqcxa20a5a5\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\" id=\"8_4flx0\"]\n\n[sub_resource type=\"ShaderMaterial\" id=\"ShaderMaterial_i12tv\"]\nshader = ExtResource(\"7_4flx0\")\nshader_parameter/size = 10.0\nshader_parameter/alpha = 1.0\nshader_parameter/color1 = Color(0.7, 0.7, 0.7, 1)\nshader_parameter/color2 = Color(1, 1, 1, 1)\nshader_parameter/offset = Vector2(0, 0)\nshader_parameter/scale = Vector2(0, 0)\nshader_parameter/rect_size = Vector2(134, 134)\nshader_parameter/follow_movement = false\nshader_parameter/follow_scale = false\n\n[node name=\"Recorder\" type=\"PanelContainer\" unique_id=1162713892]\ncustom_minimum_size = Vector2(0, 36)\noffset_left = 1.0\noffset_right = 195.0\noffset_bottom = 50.0\nscript = ExtResource(\"2\")\n\n[node name=\"ScrollContainer\" type=\"ScrollContainer\" parent=\".\" unique_id=1778362664]\ncustom_minimum_size = Vector2(36, 36)\nlayout_mode = 2\n\n[node name=\"CenterContainer\" type=\"CenterContainer\" parent=\"ScrollContainer\" unique_id=626864701]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"ScrollContainer/CenterContainer\" unique_id=922983542]\nlayout_mode = 2\nsize_flags_vertical = 0\ncolumns = 4\n\n[node name=\"CapturedLabel\" type=\"Label\" parent=\"ScrollContainer/CenterContainer/GridContainer\" unique_id=2075131810]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\n\n[node name=\"Start\" type=\"Button\" parent=\"ScrollContainer/CenterContainer/GridContainer\" unique_id=1648185818 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\ntooltip_text = \"Capture .png frames\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ScrollContainer/CenterContainer/GridContainer/Start\" unique_id=295478838]\nlayout_mode = 1\nanchors_preset = 8\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -11.0\noffset_top = -11.0\noffset_right = 11.0\noffset_bottom = 11.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"1\")\nexpand_mode = 1\nstretch_mode = 5\n\n[node name=\"Settings\" type=\"Button\" parent=\"ScrollContainer/CenterContainer/GridContainer\" unique_id=360775600 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\ntooltip_text = \"Settings\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ScrollContainer/CenterContainer/GridContainer/Settings\" unique_id=1456935118]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -10.0\noffset_top = -10.5\noffset_right = 10.0\noffset_bottom = 10.5\ntexture = ExtResource(\"3\")\nstretch_mode = 5\n\n[node name=\"OpenFolder\" type=\"Button\" parent=\"ScrollContainer/CenterContainer/GridContainer\" unique_id=299055574 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\ntooltip_text = \"Open Folder\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ScrollContainer/CenterContainer/GridContainer/OpenFolder\" unique_id=276627407]\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 3.0\noffset_top = 3.0\noffset_right = -3.0\noffset_bottom = -3.0\ntexture = ExtResource(\"4\")\nstretch_mode = 5\n\n[node name=\"OptionsDialog\" type=\"AcceptDialog\" parent=\".\" unique_id=1173670583]\noversampling_override = 1.0\ntitle = \"Capture Options\"\nposition = Vector2i(0, 36)\nsize = Vector2i(400, 848)\n\n[node name=\"PanelContainer\" type=\"MarginContainer\" parent=\"OptionsDialog\" unique_id=2140569201]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 8.0\noffset_top = 8.0\noffset_right = -8.0\noffset_bottom = -49.0\n\n[node name=\"OptionsContainer\" type=\"VBoxContainer\" parent=\"OptionsDialog/PanelContainer\" unique_id=434466719]\nunique_name_in_owner = true\nlayout_mode = 2\n\n[node name=\"StartDelaySlider\" parent=\"OptionsDialog/PanelContainer/OptionsContainer\" unique_id=1699444678 groups=[\"hidden during recording\"] instance=ExtResource(\"5_gel1w\")]\nunique_name_in_owner = true\nlayout_mode = 2\nallow_greater = true\nprefix = \"Start after delay:\"\nsuffix = \"seconds\"\n\n[node name=\"IntervalOptions\" type=\"VBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer\" unique_id=1981757594]\nlayout_mode = 2\n\n[node name=\"IntervalHeader\" type=\"HBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/IntervalOptions\" unique_id=848294781]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/IntervalOptions/IntervalHeader\" unique_id=1098802124]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Interval\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/IntervalOptions/IntervalHeader\" unique_id=657342285]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"CaptureMethod\" type=\"VBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/IntervalOptions\" unique_id=856628180]\nlayout_mode = 2\nalignment = 1\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/IntervalOptions/CaptureMethod\" unique_id=1658963001]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/IntervalOptions/CaptureMethod/HBoxContainer\" unique_id=348376657]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Capture Method:\"\n\n[node name=\"CaptureMethodOption\" type=\"OptionButton\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/IntervalOptions/CaptureMethod/HBoxContainer\" unique_id=651715341]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"CaptureActions\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/IntervalOptions/CaptureMethod\" unique_id=1793458035 instance=ExtResource(\"5_gel1w\")]\nunique_name_in_owner = true\nlayout_mode = 2\nmin_value = 1.0\nvalue = 1.0\nallow_greater = true\nprefix = \"Capture frame every:\"\nsuffix = \"Actions\"\n\n[node name=\"MouseDistance\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/IntervalOptions/CaptureMethod\" unique_id=389299342 instance=ExtResource(\"5_gel1w\")]\nunique_name_in_owner = true\nlayout_mode = 2\nmin_value = 1.0\nvalue = 10.0\nallow_greater = true\nprefix = \"Capture frame every:\"\nsuffix = \"px displacement\"\n\n[node name=\"CaptureSconds\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/IntervalOptions/CaptureMethod\" unique_id=297871267 instance=ExtResource(\"5_gel1w\")]\nunique_name_in_owner = true\nlayout_mode = 2\nmin_value = 0.05\nmax_value = 10.0\nstep = 0.01\nvalue = 1.0\nallow_greater = true\nprefix = \"Capture frame every:\"\nsuffix = \"Seconds\"\n\n[node name=\"FFmpegOptions\" type=\"VBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer\" unique_id=1042645115]\nunique_name_in_owner = true\nlayout_mode = 2\n\n[node name=\"IntervalHeader\" type=\"HBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/FFmpegOptions\" unique_id=1695858121]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/FFmpegOptions/IntervalHeader\" unique_id=349327139]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"FFmpeg\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/FFmpegOptions/IntervalHeader\" unique_id=691670789]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/FFmpegOptions\" unique_id=219842800]\nlayout_mode = 2\n\n[node name=\"ExportGifCheckbox\" type=\"CheckBox\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/FFmpegOptions/HBoxContainer\" unique_id=2083856940]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Export as gif\"\n\n[node name=\"FFmpegExportByOption\" type=\"OptionButton\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/FFmpegOptions/HBoxContainer\" unique_id=1642509900]\nunique_name_in_owner = true\nlayout_mode = 2\n\n[node name=\"FPSValueSlider\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/FFmpegOptions\" unique_id=979610264 instance=ExtResource(\"5_gel1w\")]\nunique_name_in_owner = true\nlayout_mode = 2\nmin_value = 1.0\nstep = 0.1\nvalue = 10.0\nprefix = \"Clip FPS:\"\n\n[node name=\"FFmpegScondsSlider\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/FFmpegOptions\" unique_id=1770967919 instance=ExtResource(\"5_gel1w\")]\nunique_name_in_owner = true\nlayout_mode = 2\nmin_value = 1.0\nmax_value = 20.0\nstep = 0.1\nvalue = 20.0\nallow_greater = true\nprefix = \"Clip Duration:\"\nsuffix = \"Seconds\"\n\n[node name=\"CropOptions\" type=\"VBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/FFmpegOptions\" unique_id=1707727102]\nlayout_mode = 2\n\n[node name=\"GifStartFrame\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/FFmpegOptions/CropOptions\" unique_id=1324902824 instance=ExtResource(\"5_gel1w\")]\nlayout_mode = 2\nprefix = \"Start Gif at frame:\"\n\n[node name=\"GifEndFrame\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/FFmpegOptions/CropOptions\" unique_id=811754211 instance=ExtResource(\"5_gel1w\")]\nlayout_mode = 2\nmin_value = -1.0\nvalue = -1.0\nprefix = \"End Gif at frame:\"\n\n[node name=\"CaptureModeOptions\" type=\"VBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer\" unique_id=1704496282]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"ModeHeader\" type=\"HBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions\" unique_id=149992466]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/ModeHeader\" unique_id=324090945]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Capture Mode\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/ModeHeader\" unique_id=439244338]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"AreaTypeOption\" type=\"HBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions\" unique_id=1038486671 groups=[\"hidden during recording\"]]\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaTypeOption\" unique_id=91132164]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Record type: \"\n\n[node name=\"RecordTypeOption\" type=\"OptionButton\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaTypeOption\" unique_id=867033300]\nunique_name_in_owner = true\nlayout_mode = 2\n\n[node name=\"TargetScreen\" type=\"OptionButton\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaTypeOption\" unique_id=722241195]\nunique_name_in_owner = true\nlayout_mode = 2\nallow_reselect = true\n\n[node name=\"AreaOptions\" type=\"VBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions\" unique_id=1813312221]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_vertical = 3\nalignment = 1\n\n[node name=\"PanelContainer\" type=\"PanelContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaOptions\" unique_id=78720608]\nself_modulate = Color(0.7666196, 0.76661956, 0.76661956, 1)\nlayout_mode = 2\n\n[node name=\"PreviewAspectRatioContainer\" type=\"AspectRatioContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaOptions/PanelContainer\" unique_id=1580570260]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(0, 100)\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"RectTexture\" type=\"TextureRect\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaOptions/PanelContainer/PreviewAspectRatioContainer\" unique_id=578837397]\nunique_name_in_owner = true\ntexture_filter = 1\nlayout_mode = 2\nexpand_mode = 1\nstretch_mode = 5\n\n[node name=\"TransparentChecker\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaOptions/PanelContainer/PreviewAspectRatioContainer\" unique_id=1465196560 instance=ExtResource(\"6_uegas\")]\nunique_name_in_owner = true\nshow_behind_parent = true\nmaterial = SubResource(\"ShaderMaterial_i12tv\")\nlayout_mode = 2\n\n[node name=\"Label\" type=\"Label\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaOptions\" unique_id=276820511]\nlayout_mode = 2\ntext = \"Preview\"\nhorizontal_alignment = 1\n\n[node name=\"RectOptions\" type=\"HBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaOptions\" unique_id=832534224 groups=[\"hidden during recording\"]]\nlayout_mode = 2\n\n[node name=\"RectPositonSlider\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaOptions/RectOptions\" unique_id=803049451 instance=ExtResource(\"8_4flx0\")]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmax_value = Vector2(1000, 1000)\nallow_greater = true\nshow_ratio = true\nprefix_x = \"Position X:\"\nprefix_y = \"Position Y:\"\nsuffix_x = \"px\"\nsuffix_y = \"px\"\n\n[node name=\"RectSizeSlider\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaOptions/RectOptions\" unique_id=1236015352 instance=ExtResource(\"8_4flx0\")]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nvalue = Vector2(10, 10)\nmin_value = Vector2(1, 1)\nmax_value = Vector2(1280, 720)\nallow_greater = true\nshow_ratio = true\nprefix_x = \"Size X:\"\nprefix_y = \"Size Y:\"\nsuffix_x = \"px\"\nsuffix_y = \"px\"\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaOptions\" unique_id=364951554]\nlayout_mode = 2\n\n[node name=\"FollowMouse\" type=\"CheckBox\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaOptions/HBoxContainer\" unique_id=242213587]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Follow Mouse\"\n\n[node name=\"ScaleOutputCheckbox\" type=\"CheckBox\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions\" unique_id=57015305 groups=[\"hidden during recording\"]]\nunique_name_in_owner = true\nlayout_mode = 2\ntext = \"Scale Output\"\n\n[node name=\"OutputScale\" type=\"HBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions\" unique_id=508124431 groups=[\"hidden during recording\"]]\nunique_name_in_owner = true\nlayout_mode = 2\nalignment = 1\n\n[node name=\"ScaleValueSlider\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/OutputScale\" unique_id=884748903 instance=ExtResource(\"5_gel1w\")]\nunique_name_in_owner = true\nlayout_mode = 2\nmin_value = 50.0\nmax_value = 1000.0\nvalue = 100.0\nallow_greater = true\nprefix = \"Output Scale:\"\nsuffix = \"%\"\n\n[node name=\"SizePreviewLabel\" type=\"Label\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/OutputScale\" unique_id=867324551]\nunique_name_in_owner = true\nlayout_mode = 2\n\n[node name=\"OutputPath\" type=\"VBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer\" unique_id=638164747 groups=[\"hidden during recording\"]]\nlayout_mode = 2\n\n[node name=\"PathHeader\" type=\"HBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/OutputPath\" unique_id=72588278]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/OutputPath/PathHeader\" unique_id=1034564213]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Path\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/OutputPath/PathHeader\" unique_id=874818297]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"PathContainer\" type=\"HBoxContainer\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/OutputPath\" unique_id=773925093]\nlayout_mode = 2\n\n[node name=\"Path\" type=\"LineEdit\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/OutputPath/PathContainer\" unique_id=2059965536]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nplaceholder_text = \"Choose destination\"\neditable = false\n\n[node name=\"Choose\" type=\"Button\" parent=\"OptionsDialog/PanelContainer/OptionsContainer/OutputPath/PathContainer\" unique_id=423863408]\nlayout_mode = 2\ntext = \"Choose\"\n\n[node name=\"PreviewTimer\" type=\"Timer\" parent=\".\" unique_id=711615223]\nunique_name_in_owner = true\nwait_time = 0.1\n\n[node name=\"CaptureTimer\" type=\"Timer\" parent=\".\" unique_id=41738170]\nunique_name_in_owner = true\n\n[connection signal=\"toggled\" from=\"ScrollContainer/CenterContainer/GridContainer/Start\" to=\".\" method=\"_on_start_recording_toggled\"]\n[connection signal=\"pressed\" from=\"ScrollContainer/CenterContainer/GridContainer/Settings\" to=\".\" method=\"_on_settings_pressed\"]\n[connection signal=\"pressed\" from=\"ScrollContainer/CenterContainer/GridContainer/OpenFolder\" to=\".\" method=\"_on_open_folder_pressed\"]\n[connection signal=\"visibility_changed\" from=\"OptionsDialog\" to=\".\" method=\"_on_options_dialog_visibility_changed\"]\n[connection signal=\"value_changed\" from=\"OptionsDialog/PanelContainer/OptionsContainer/StartDelaySlider\" to=\".\" method=\"_on_start_delay_slider_value_changed\"]\n[connection signal=\"item_selected\" from=\"OptionsDialog/PanelContainer/OptionsContainer/IntervalOptions/CaptureMethod/HBoxContainer/CaptureMethodOption\" to=\".\" method=\"_on_capture_method_option_item_selected\"]\n[connection signal=\"value_changed\" from=\"OptionsDialog/PanelContainer/OptionsContainer/IntervalOptions/CaptureMethod/CaptureActions\" to=\".\" method=\"_on_action_interval_value_changed\"]\n[connection signal=\"value_changed\" from=\"OptionsDialog/PanelContainer/OptionsContainer/IntervalOptions/CaptureMethod/MouseDistance\" to=\".\" method=\"_on_mouse_distance_value_changed\"]\n[connection signal=\"value_changed\" from=\"OptionsDialog/PanelContainer/OptionsContainer/IntervalOptions/CaptureMethod/CaptureSconds\" to=\".\" method=\"_on_seconds_interval_value_changed\"]\n[connection signal=\"toggled\" from=\"OptionsDialog/PanelContainer/OptionsContainer/FFmpegOptions/HBoxContainer/ExportGifCheckbox\" to=\".\" method=\"_on_export_gif_checkbox_toggled\"]\n[connection signal=\"item_selected\" from=\"OptionsDialog/PanelContainer/OptionsContainer/FFmpegOptions/HBoxContainer/FFmpegExportByOption\" to=\".\" method=\"_on_ffmpeg_export_by_option_item_selected\"]\n[connection signal=\"value_changed\" from=\"OptionsDialog/PanelContainer/OptionsContainer/FFmpegOptions/FPSValueSlider\" to=\".\" method=\"_on_fps_value_value_changed\"]\n[connection signal=\"value_changed\" from=\"OptionsDialog/PanelContainer/OptionsContainer/FFmpegOptions/FFmpegScondsSlider\" to=\".\" method=\"_on_ffmpeg_sconds_slider_value_changed\"]\n[connection signal=\"value_changed\" from=\"OptionsDialog/PanelContainer/OptionsContainer/FFmpegOptions/CropOptions/GifStartFrame\" to=\".\" method=\"_on_gif_start_frame_value_changed\"]\n[connection signal=\"value_changed\" from=\"OptionsDialog/PanelContainer/OptionsContainer/FFmpegOptions/CropOptions/GifEndFrame\" to=\".\" method=\"_on_gif_end_frame_value_changed\"]\n[connection signal=\"item_selected\" from=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaTypeOption/RecordTypeOption\" to=\".\" method=\"_on_record_type_option_item_selected\"]\n[connection signal=\"item_selected\" from=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaTypeOption/TargetScreen\" to=\".\" method=\"_on_target_screen_item_selected\"]\n[connection signal=\"value_changed\" from=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaOptions/RectOptions/RectPositonSlider\" to=\".\" method=\"_on_rect_positon_slider_value_changed\"]\n[connection signal=\"value_changed\" from=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaOptions/RectOptions/RectSizeSlider\" to=\".\" method=\"_on_rect_size_slider_value_changed\"]\n[connection signal=\"toggled\" from=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/AreaOptions/HBoxContainer/FollowMouse\" to=\".\" method=\"_on_follow_mouse_toggled\"]\n[connection signal=\"toggled\" from=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/ScaleOutputCheckbox\" to=\".\" method=\"_on_scale_output_checkbox_toggled\"]\n[connection signal=\"value_changed\" from=\"OptionsDialog/PanelContainer/OptionsContainer/CaptureModeOptions/OutputScale/ScaleValueSlider\" to=\".\" method=\"_on_output_scale_value_changed\"]\n[connection signal=\"pressed\" from=\"OptionsDialog/PanelContainer/OptionsContainer/OutputPath/PathContainer/Choose\" to=\".\" method=\"_on_Choose_pressed\"]\n[connection signal=\"timeout\" from=\"PreviewTimer\" to=\".\" method=\"_update_follow_mouse_preview\"]\n"
  },
  {
    "path": "src/UI/ReferenceImages/ReferenceEdit.gd",
    "content": "extends VBoxContainer\n\n@export var references_panel: ReferencesPanel\nvar undo_data: Dictionary\nvar _prev_index: int = -1\nvar _ignore_spinbox_changes: bool = false\n\n@onready var confirm_remove_dialog := $ConfirmRemoveDialog as ConfirmationDialog\n@onready var timer := $Timer as Timer\n@onready var references_container := Global.canvas.reference_image_container as Node2D\n\n\nfunc _ready() -> void:\n\treferences_container.reference_image_changed.connect(_on_reference_image_changed)\n\n\nfunc _update_properties() -> void:\n\tvar ri: ReferenceImage = Global.current_project.get_current_reference_image()\n\tif !ri:\n\t\treturn\n\t# This is because otherwise a little dance will occur.\n\t# This also breaks non-uniform scales (not supported UI-wise, but...)\n\t_ignore_spinbox_changes = true\n\n\t# Image Path\n\tif OS.get_name() == \"Web\":\n\t\t$ImageOptions/ImagePath.disabled = true\n\telse:\n\t\t$ImageOptions/ImagePath.disabled = false\n\n\tif ri.image_path.is_empty():\n\t\t$ImageOptions/ImagePath.text = \"(No Path)\"\n\t\t$ImageOptions/ImagePath.tooltip_text = \"(No Path)\"\n\telse:\n\t\t$ImageOptions/ImagePath.text = ri.image_path\n\t\t$ImageOptions/ImagePath.tooltip_text = ri.image_path\n\n\tif !ri.texture:\n\t\t$ImageOptions/WarningLabel.visible = true\n\t\t$ImageOptions/ImagePath.visible = false\n\telse:\n\t\t$ImageOptions/WarningLabel.visible = false\n\t\t$ImageOptions/ImagePath.visible = true\n\t# Transform\n\t$Options/Position/X.value = ri.position.x\n\t$Options/Position/Y.value = ri.position.y\n\t$Options/Position/X.max_value = ri.project.size.x\n\t$Options/Position/Y.max_value = ri.project.size.y\n\t$Options/Scale.value = ri.scale.x * 100\n\t$Options/Rotation.value = ri.rotation_degrees\n\t# Color\n\t$Options/Filter.button_pressed = ri.filter\n\t$Options/Monochrome.button_pressed = ri.monochrome\n\t$Options/Overlay.color = Color(ri.overlay_color, 1.0)\n\t$Options/Opacity.value = ri.overlay_color.a * 100\n\t$Options/ColorClamping.value = ri.color_clamping * 100\n\t_ignore_spinbox_changes = false\n\n\t# Fore update the \"gizmo\" drawing\n\treferences_container.queue_redraw()\n\n\nfunc _reset_properties() -> void:\n\t# This is because otherwise a little dance will occur.\n\t# This also breaks non-uniform scales (not supported UI-wise, but...)\n\t_ignore_spinbox_changes = true\n\t$ImageOptions/ImagePath.text = \"None\"\n\t$ImageOptions/ImagePath.tooltip_text = \"None\"\n\t$ImageOptions/ImagePath.disabled = true\n\t$ImageOptions/WarningLabel.visible = false\n\t$ImageOptions/ImagePath.visible = true\n\t# Transform\n\t$Options/Position/X.value = 0.0\n\t$Options/Position/Y.value = 0.0\n\t$Options/Position/X.max_value = 0.0\n\t$Options/Position/Y.max_value = 0.0\n\t$Options/Scale.value = 0.0\n\t$Options/Rotation.value = 0.0\n\t# Color\n\t$Options/Filter.button_pressed = false\n\t$Options/Monochrome.button_pressed = false\n\t$Options/Overlay.color = Color.WHITE\n\t$Options/Opacity.value = 0.0\n\t$Options/ColorClamping.value = 0.0\n\t_ignore_spinbox_changes = false\n\t# Fore update the \"gizmo\" drawing\n\treferences_container.queue_redraw()\n\n\nfunc _on_image_path_pressed() -> void:\n\tvar ri: ReferenceImage = Global.current_project.get_current_reference_image()\n\tif !ri:\n\t\treturn\n\tif ri.image_path.is_empty():\n\t\tprint(\"No path for this image\")\n\t\treturn\n\tOS.shell_open(ri.image_path.get_base_dir())\n\n\nfunc _on_Monochrome_toggled(pressed: bool) -> void:\n\tif _ignore_spinbox_changes:\n\t\treturn\n\tvar ri: ReferenceImage = Global.current_project.get_current_reference_image()\n\tif !ri:\n\t\treturn\n\tif timer.is_stopped():\n\t\tundo_data = references_container.get_undo_data()\n\ttimer.start()\n\tri.monochrome = pressed\n\n\nfunc _on_Filter_toggled(pressed: bool) -> void:\n\tif _ignore_spinbox_changes:\n\t\treturn\n\tvar ri: ReferenceImage = Global.current_project.get_current_reference_image()\n\tif !ri:\n\t\treturn\n\tif timer.is_stopped():\n\t\tundo_data = references_container.get_undo_data()\n\ttimer.start()\n\tri.filter = pressed\n\n\nfunc _on_Reset_pressed() -> void:\n\tvar ri: ReferenceImage = Global.current_project.get_current_reference_image()\n\tif !ri:\n\t\treturn\n\tvar undo_data_tmp = references_container.get_undo_data()\n\tri.position_reset()\n\treferences_container.commit_undo(\"Reset Reference Image Position\", undo_data_tmp)\n\n\nfunc _on_Remove_pressed() -> void:\n\tvar ri: ReferenceImage = Global.current_project.get_current_reference_image()\n\tif !ri:\n\t\treturn\n\tvar index: int = Global.current_project.reference_index\n\tif index > -1:\n\t\t# If shift is pressed we just remove it without a dialog\n\t\tif Input.is_action_pressed(\"shift\"):\n\t\t\treferences_container.remove_reference_image(index)\n\t\t\treferences_panel._on_references_changed()\n\t\telse:\n\t\t\tvar popup_position := Global.control.get_global_mouse_position()\n\t\t\tconfirm_remove_dialog.popup_on_parent(Rect2i(popup_position, Vector2i.ONE))\n\t\t\tGlobal.dialog_open(true)\n\n\nfunc _on_X_value_changed(value: float) -> void:\n\tif _ignore_spinbox_changes:\n\t\treturn\n\tvar ri: ReferenceImage = Global.current_project.get_current_reference_image()\n\tif !ri:\n\t\treturn\n\tif timer.is_stopped():\n\t\tundo_data = references_container.get_undo_data()\n\ttimer.start()\n\tri.position.x = value\n\n\nfunc _on_Y_value_changed(value: float) -> void:\n\tif _ignore_spinbox_changes:\n\t\treturn\n\tvar ri: ReferenceImage = Global.current_project.get_current_reference_image()\n\tif !ri:\n\t\treturn\n\tif timer.is_stopped():\n\t\tundo_data = references_container.get_undo_data()\n\ttimer.start()\n\tri.position.y = value\n\n\nfunc _on_Scale_value_changed(value: float) -> void:\n\tif _ignore_spinbox_changes:\n\t\treturn\n\tvar ri: ReferenceImage = Global.current_project.get_current_reference_image()\n\tif !ri:\n\t\treturn\n\tif timer.is_stopped():\n\t\tundo_data = references_container.get_undo_data()\n\ttimer.start()\n\tri.scale.x = value / 100\n\tri.scale.y = value / 100\n\n\nfunc _on_Rotation_value_changed(value: float) -> void:\n\tif _ignore_spinbox_changes:\n\t\treturn\n\tvar ri: ReferenceImage = Global.current_project.get_current_reference_image()\n\tif !ri:\n\t\treturn\n\tif timer.is_stopped():\n\t\tundo_data = references_container.get_undo_data()\n\ttimer.start()\n\tri.rotation_degrees = value\n\n\nfunc _on_Overlay_color_changed(color: Color) -> void:\n\tif _ignore_spinbox_changes:\n\t\treturn\n\tvar ri: ReferenceImage = Global.current_project.get_current_reference_image()\n\tif !ri:\n\t\treturn\n\tif timer.is_stopped():\n\t\tundo_data = references_container.get_undo_data()\n\ttimer.start()\n\tri.overlay_color = Color(color, ri.overlay_color.a)\n\n\nfunc _on_Opacity_value_changed(value: float) -> void:\n\tif _ignore_spinbox_changes:\n\t\treturn\n\tvar ri: ReferenceImage = Global.current_project.get_current_reference_image()\n\tif !ri:\n\t\treturn\n\tif timer.is_stopped():\n\t\tundo_data = references_container.get_undo_data()\n\ttimer.start()\n\tri.overlay_color.a = value / 100\n\n\nfunc _on_ColorClamping_value_changed(value: float) -> void:\n\tif _ignore_spinbox_changes:\n\t\treturn\n\tvar ri: ReferenceImage = Global.current_project.get_current_reference_image()\n\tif !ri:\n\t\treturn\n\tif timer.is_stopped():\n\t\tundo_data = references_container.get_undo_data()\n\ttimer.start()\n\tri.color_clamping = value / 100\n\n\nfunc _on_timer_timeout() -> void:\n\treferences_container.commit_undo(\"Reference Image Changed\", undo_data)\n\n\nfunc _on_confirm_remove_dialog_confirmed() -> void:\n\tvar index: int = Global.current_project.reference_index\n\tif index > -1:\n\t\treferences_container.remove_reference_image(index)\n\t\treferences_panel._on_references_changed()\n\t\tGlobal.dialog_open(false)\n\n\nfunc _on_confirm_remove_dialog_canceled() -> void:\n\tGlobal.dialog_open(false)\n\n\nfunc _on_reference_image_porperties_changed() -> void:\n\t_update_properties()\n\n\nfunc _on_reference_image_changed(index: int) -> void:\n\t# This is a check to make sure that the index is not more than the amount of references\n\tif _prev_index > Global.current_project.reference_images.size() - 1:\n\t\treturn\n\t# Disconnect the previously selected one\n\tif _prev_index > -1:\n\t\tvar prev_ri: ReferenceImage = Global.current_project.get_reference_image(_prev_index)\n\t\tif prev_ri.properties_changed.is_connected(_on_reference_image_porperties_changed):\n\t\t\tprev_ri.properties_changed.disconnect(_on_reference_image_porperties_changed)\n\t# Connect the new Reference image (if it is one)\n\tif index > -1:\n\t\tGlobal.current_project.reference_images[index].properties_changed.connect(\n\t\t\t_on_reference_image_porperties_changed\n\t\t)\n\n\t_prev_index = index\n\n\tif index < 0:\n\t\t_reset_properties()\n\telse:\n\t\t_update_properties()\n"
  },
  {
    "path": "src/UI/ReferenceImages/ReferenceEdit.gd.uid",
    "content": "uid://bymmbs22ijgoj\n"
  },
  {
    "path": "src/UI/ReferenceImages/ReferenceImage.gd",
    "content": "class_name ReferenceImage\nextends Sprite2D\n## A class describing a reference image\n\nsignal properties_changed\n\nvar project := Global.current_project\nvar shader := preload(\"res://src/Shaders/ReferenceImageShader.gdshader\")\nvar image_path := \"\"\nvar filter := false:\n\tset(value):\n\t\tfilter = value\n\t\tif value:\n\t\t\ttexture_filter = CanvasItem.TEXTURE_FILTER_LINEAR\n\t\telse:\n\t\t\ttexture_filter = CanvasItem.TEXTURE_FILTER_NEAREST\nvar monochrome := false:\n\tset(value):\n\t\tmonochrome = value\n\t\tif material:\n\t\t\tget_material().set_shader_parameter(\"monochrome\", value)\nvar overlay_color := Color.WHITE:\n\tset(value):\n\t\toverlay_color = value\n\t\tmodulate = value\n\t\tif material:\n\t\t\tget_material().set_shader_parameter(\"monchrome_color\", value)\nvar color_clamping := 0.0:\n\tset(value):\n\t\tcolor_clamping = value\n\t\tif material:\n\t\t\tget_material().set_shader_parameter(\"clamping\", value)\n\n@onready var parent := get_parent()\n\n\nfunc _ready() -> void:\n\tGlobal.project_switched.connect(_project_switched)\n\tproject.reference_images.append(self)\n\t# Make this show behind parent because we want to use _draw() to draw over it\n\tshow_behind_parent = true\n\n\nfunc change_properties() -> void:\n\tproperties_changed.emit()\n\n\n## Resets the position and scale of the reference image.\nfunc position_reset() -> void:\n\tposition = project.size / 2.0\n\trotation_degrees = 0.0\n\tif texture != null:\n\t\tscale = (\n\t\t\tVector2.ONE\n\t\t\t* minf(\n\t\t\t\tfloat(project.size.x) / texture.get_width(),\n\t\t\t\tfloat(project.size.y) / texture.get_height()\n\t\t\t)\n\t\t)\n\telse:\n\t\tscale = Vector2.ONE\n\n\n## Serialize details of the reference image.\nfunc serialize() -> Dictionary:\n\treturn {\n\t\t\"x\": position.x,\n\t\t\"y\": position.y,\n\t\t\"scale_x\": scale.x,\n\t\t\"scale_y\": scale.y,\n\t\t\"rotation_degrees\": rotation_degrees,\n\t\t\"overlay_color_r\": overlay_color.r,\n\t\t\"overlay_color_g\": overlay_color.g,\n\t\t\"overlay_color_b\": overlay_color.b,\n\t\t\"overlay_color_a\": overlay_color.a,\n\t\t\"filter\": filter,\n\t\t\"monochrome\": monochrome,\n\t\t\"color_clamping\": color_clamping,\n\t\t\"image_path\": image_path\n\t}\n\n\n## Load details of the reference image from a dictionary.\n## Be aware that new ReferenceImages are created via deserialization.\n## This is because deserialization sets up some nice defaults.\nfunc deserialize(d: Dictionary) -> void:\n\toverlay_color = Color(1, 1, 1, 0.5)\n\tif d.has(\"image_path\"):\n\t\t# Note that reference images are referred to by path.\n\t\t# These images may be rather big.\n\t\timage_path = d[\"image_path\"]\n\t\tvar img := Image.new()\n\t\tif img.load(image_path) == OK:\n\t\t\tvar itex := ImageTexture.create_from_image(img)\n\t\t\ttexture = itex\n\t\t# Apply the silhouette shader\n\t\tvar mat := ShaderMaterial.new()\n\t\tmat.shader = shader\n\t\tset_material(mat)\n\n\t# Now that the image may have been established...\n\tposition_reset()\n\tif d.has(\"x\"):\n\t\tposition.x = d[\"x\"]\n\tif d.has(\"y\"):\n\t\tposition.y = d[\"y\"]\n\tif d.has(\"scale_x\"):\n\t\tscale.x = d[\"scale_x\"]\n\tif d.has(\"rotation_degrees\"):\n\t\trotation_degrees = d[\"rotation_degrees\"]\n\tif d.has(\"scale_y\"):\n\t\tscale.y = d[\"scale_y\"]\n\tif d.has(\"overlay_color_r\"):\n\t\toverlay_color.r = d[\"overlay_color_r\"]\n\tif d.has(\"overlay_color_g\"):\n\t\toverlay_color.g = d[\"overlay_color_g\"]\n\tif d.has(\"overlay_color_b\"):\n\t\toverlay_color.b = d[\"overlay_color_b\"]\n\tif d.has(\"overlay_color_a\"):\n\t\toverlay_color.a = d[\"overlay_color_a\"]\n\tif d.has(\"filter\"):\n\t\tfilter = d[\"filter\"]\n\tif d.has(\"monochrome\"):\n\t\tmonochrome = d[\"monochrome\"]\n\tif d.has(\"color_clamping\"):\n\t\tcolor_clamping = d[\"color_clamping\"]\n\tchange_properties()\n\n\n## Useful for Web\nfunc create_from_image(image: Image) -> void:\n\tvar itex := ImageTexture.create_from_image(image)\n\ttexture = itex\n\tposition_reset()\n\n\nfunc _project_switched() -> void:\n\t# Remove from the tree if it doesn't belong to the current project.\n\t# It will still be in memory though.\n\tif Global.current_project.reference_images.has(self):\n\t\tif not is_inside_tree():\n\t\t\tparent.add_child(self)\n\telse:\n\t\tif is_inside_tree():\n\t\t\tparent.remove_child(self)\n"
  },
  {
    "path": "src/UI/ReferenceImages/ReferenceImage.gd.uid",
    "content": "uid://bs6wb7a67xvja\n"
  },
  {
    "path": "src/UI/ReferenceImages/ReferenceImageButton.gd",
    "content": "extends Button\n\nvar references_panel: ReferencesPanel\n\n\nfunc _get_drag_data(_at_position: Vector2) -> Variant:\n\tvar index := get_index() - 1\n\t# If the index < 0 then that means this button is the \"reset button\"\n\tif index < 0:\n\t\treturn null\n\n\tset_drag_preview(self.duplicate())\n\n\tvar data := [\"ReferenceImage\", index]\n\n\treturn data\n\n\nfunc _can_drop_data(_at_position: Vector2, data: Variant) -> bool:\n\tif typeof(data) != TYPE_ARRAY:\n\t\treferences_panel.drag_highlight.visible = false\n\t\treturn false\n\tif data[0] != \"ReferenceImage\":\n\t\treferences_panel.drag_highlight.visible = false\n\t\treturn false\n\n\tvar index := get_index() - 1\n\tvar from_index: int = data[1]\n\t# If the index < 0 then that means this button is the \"reset button\"\n\t# Or we are trying to drop on the same button\n\tif index < 0 or index == from_index:\n\t\treferences_panel.drag_highlight.visible = false\n\t\treturn false\n\n\tvar side: int = -1\n\tif get_local_mouse_position().x > size.x / 2:\n\t\tside = 1\n\n\tvar region := Rect2(global_position + Vector2(3, 0), Vector2(6, size.y))\n\n\t# Get the side\n\tif side == 1:\n\t\tregion.position.x = (size.x + global_position.x) - 3\n\n\treferences_panel.drag_highlight.visible = true\n\treferences_panel.drag_highlight.position = region.position\n\treferences_panel.drag_highlight.size = region.size\n\n\treturn true\n\n\nfunc _drop_data(_at_position: Vector2, data: Variant) -> void:\n\tvar from_index: int = data[1]\n\tvar to_index := get_index()\n\n\tif get_local_mouse_position().x > size.x / 2:\n\t\tif from_index > to_index:\n\t\t\tto_index += 1\n\t\t\tprint(\"Help mee\")\n\telse:\n\t\tif from_index < to_index:\n\t\t\tto_index -= 1\n\n\treferences_panel.reorder_reference_image(from_index, to_index - 1, false)\n"
  },
  {
    "path": "src/UI/ReferenceImages/ReferenceImageButton.gd.uid",
    "content": "uid://4uxpn601pvm4\n"
  },
  {
    "path": "src/UI/ReferenceImages/ReferenceImageButton.tscn",
    "content": "[gd_scene format=3 uid=\"uid://by3300fom3plf\"]\n\n[ext_resource type=\"Script\" uid=\"uid://4uxpn601pvm4\" path=\"res://src/UI/ReferenceImages/ReferenceImageButton.gd\" id=\"1_nf0dd\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://3pmb60gpst7b\" path=\"res://src/UI/Nodes/TransparentChecker.tscn\" id=\"2_mf5ob\"]\n[ext_resource type=\"Shader\" uid=\"uid://c50kmfvf635kb\" path=\"res://src/Shaders/TransparentChecker.gdshader\" id=\"3_rgm5p\"]\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_ytt38\"]\nbg_color = Color(0, 0, 0, 0.470588)\n\n[sub_resource type=\"StyleBoxFlat\" id=\"StyleBoxFlat_53xjd\"]\ndraw_center = false\nborder_width_left = 2\nborder_width_top = 2\nborder_width_right = 2\nborder_width_bottom = 2\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"StyleBoxEmpty_tuwm6\"]\n\n[sub_resource type=\"ShaderMaterial\" id=\"ShaderMaterial_l3nwx\"]\nshader = ExtResource(\"3_rgm5p\")\nshader_parameter/size = 10.0\nshader_parameter/alpha = 1.0\nshader_parameter/color1 = Color(0.7, 0.7, 0.7, 1)\nshader_parameter/color2 = Color(1, 1, 1, 1)\nshader_parameter/offset = Vector2(0, 0)\nshader_parameter/scale = Vector2(0, 0)\nshader_parameter/rect_size = Vector2(64, 64)\nshader_parameter/follow_movement = false\nshader_parameter/follow_scale = false\n\n[node name=\"ReferenceImageButton\" type=\"Button\" unique_id=2024515045]\ncustom_minimum_size = Vector2(64, 64)\ntheme_override_styles/normal = SubResource(\"StyleBoxFlat_ytt38\")\ntheme_override_styles/pressed = SubResource(\"StyleBoxFlat_53xjd\")\ntheme_override_styles/hover = SubResource(\"StyleBoxFlat_ytt38\")\ntheme_override_styles/focus = SubResource(\"StyleBoxEmpty_tuwm6\")\ntoggle_mode = true\nicon_alignment = 1\nexpand_icon = true\nscript = ExtResource(\"1_nf0dd\")\n\n[node name=\"TransparentChecker\" parent=\".\" unique_id=1028790428 instance=ExtResource(\"2_mf5ob\")]\nshow_behind_parent = true\nmaterial = SubResource(\"ShaderMaterial_l3nwx\")\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\n"
  },
  {
    "path": "src/UI/ReferenceImages/ReferencesPanel.gd",
    "content": "class_name ReferencesPanel\nextends PanelContainer\n## Panel for reference image management\n\nconst REFERENCE_IMAGE_BUTTON := preload(\"res://src/UI/ReferenceImages/ReferenceImageButton.tscn\")\n\nvar list_btn_group := ButtonGroup.new()\nvar transform_button_group: ButtonGroup\n\n@onready var list := %List as HFlowContainer\n@onready var drag_highlight := $Overlay/DragHighlight as ColorRect\n@onready var remove_btn := $ScrollContainer/Container/ReferenceEdit/ImageOptions/Remove as Button\n@onready var transform_tools_btns := $ScrollContainer/Container/Tools/TransformTools\n\n# these will change their visibility if there are no references\n@onready var tip: Label = $ScrollContainer/Container/Tip\n@onready var import_tip: Label = $ScrollContainer/Container/Images/ImportTip\n@onready var reference_edit: VBoxContainer = $ScrollContainer/Container/ReferenceEdit\n@onready var tools: HBoxContainer = $ScrollContainer/Container/Tools\n\n\nfunc _ready() -> void:\n\tGlobal.project_switched.connect(project_changed)\n\tOpenSave.reference_image_imported.connect(_on_references_changed)\n\ttransform_button_group = transform_tools_btns.get_child(0).button_group\n\ttransform_button_group.pressed.connect(_on_transform_tool_button_group_pressed)\n\tlist_btn_group.pressed.connect(_on_reference_image_button_pressed)\n\tGlobal.canvas.reference_image_container.reference_image_changed.connect(\n\t\t_on_reference_image_changed\n\t)\n\t# We call this function to update the buttons\n\t_on_references_changed()\n\t_update_ui()\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_DRAG_END:\n\t\tdrag_highlight.hide()\n\n\nfunc _on_transform_tool_button_group_pressed(button: Button) -> void:\n\tGlobal.canvas.reference_image_container.mode = button.get_index()\n\n\nfunc _on_move_image_left_pressed() -> void:\n\tvar index: int = Global.current_project.reference_index\n\treorder_reference_image(index, index - 1)\n\n\nfunc _on_move_image_right_pressed() -> void:\n\tvar index: int = Global.current_project.reference_index\n\treorder_reference_image(index, index + 1)\n\n\n## This method allows you to reoreder reference image with undo redo support\n## Please use this and not the method with the same name in project.gd\nfunc reorder_reference_image(from: int, to: int, update_reference_index := true) -> void:\n\tvar project := Global.current_project\n\tproject.undo_redo.create_action(\"Reorder Reference Image\")\n\tproject.undo_redo.add_do_method(project.reorder_reference_image.bind(from, to))\n\tproject.undo_redo.add_do_method(_on_references_changed)\n\tif update_reference_index:\n\t\tproject.undo_redo.add_do_method(project.set_reference_image_index.bind(to))\n\telse:\n\t\tproject.undo_redo.add_undo_method(\n\t\t\tproject.set_reference_image_index.bind(project.reference_index)\n\t\t)\n\tproject.undo_redo.add_do_method(_update_ui)\n\n\tproject.undo_redo.add_undo_method(project.reorder_reference_image.bind(to, from))\n\tproject.undo_redo.add_undo_method(_on_references_changed)\n\tif update_reference_index:\n\t\tproject.undo_redo.add_undo_method(project.set_reference_image_index.bind(from))\n\telse:\n\t\tproject.undo_redo.add_undo_method(\n\t\t\tproject.set_reference_image_index.bind(project.reference_index)\n\t\t)\n\n\tproject.undo_redo.add_undo_method(_update_ui)\n\n\tproject.undo_redo.commit_action()\n\n\nfunc _update_ui() -> void:\n\tvar index: int = Global.current_project.reference_index\n\n\t# Enable the buttons as a default\n\t%MoveImageRightBtn.disabled = false\n\t%MoveImageLeftBtn.disabled = false\n\treference_edit.visible = true\n\n\tif index == -1:\n\t\t%MoveImageLeftBtn.disabled = true\n\t\t%MoveImageRightBtn.disabled = true\n\t\treference_edit.visible = false\n\tif index == 0:\n\t\t%MoveImageLeftBtn.disabled = true\n\tif index == Global.current_project.reference_images.size() - 1:\n\t\t%MoveImageRightBtn.disabled = true\n\n\tif %MoveImageLeftBtn.disabled:\n\t\t%MoveImageLeftBtn.mouse_default_cursor_shape = CURSOR_FORBIDDEN\n\telse:\n\t\t%MoveImageLeftBtn.mouse_default_cursor_shape = CURSOR_POINTING_HAND\n\n\tif %MoveImageRightBtn.disabled:\n\t\t%MoveImageRightBtn.mouse_default_cursor_shape = CURSOR_FORBIDDEN\n\telse:\n\t\t%MoveImageRightBtn.mouse_default_cursor_shape = CURSOR_POINTING_HAND\n\n\t# Update the remove button\n\tremove_btn.disabled = index == -1\n\tif remove_btn.disabled:\n\t\tremove_btn.mouse_default_cursor_shape = CURSOR_FORBIDDEN\n\telse:\n\t\tremove_btn.mouse_default_cursor_shape = CURSOR_POINTING_HAND\n\n\nfunc _on_reference_image_button_pressed(button: Button) -> void:\n\t# We subtract 1 because we already have a default button to \"select no reference image\n\tGlobal.current_project.set_reference_image_index(button.get_index() - 1)\n\n\n# In case the signal is emitted for another node and not from a pressed button\nfunc _on_reference_image_changed(index: int) -> void:\n\t_update_ui()\n\t# Update the buttons to show which one is pressed\n\tif list_btn_group.get_buttons().size() > 0:\n\t\t# First we loop through the buttons to \"unpress them all\"\n\t\tfor b: Button in list_btn_group.get_buttons():\n\t\t\tb.set_pressed_no_signal(false)\n\t\t# Then we get the wanted button and we press it\n\t\t# NOTE: using list_btn_group.get_buttons()[index + 1] here was causing a bug that\n\t\t# if you re-arrange by drag and drop, then click on a button, then button before it\n\t\t# becomes selected instead of the clicked button\n\t\tif index + 1 < list.get_child_count():\n\t\t\tlist.get_child(index + 1).set_pressed_no_signal(true)\n\n\nfunc project_changed() -> void:\n\tvar project_reference_index := Global.current_project.reference_index\n\t_on_references_changed()\n\t_update_ui()\n\tGlobal.current_project.set_reference_image_index(project_reference_index)\n\n\nfunc _on_references_changed() -> void:\n\t# When we change the project we set the default\n\tGlobal.current_project.set_reference_image_index(-1)\n\n\tfor c in list.get_children():\n\t\tif c is Button:\n\t\t\tc.button_group = null\n\t\tc.queue_free()\n\n\t# The default button\n\tvar default := REFERENCE_IMAGE_BUTTON.instantiate()\n\tdefault.references_panel = self\n\tdefault.button_group = list_btn_group\n\tdefault.text = \"none\"\n\tdefault.get_child(0).visible = false  # Hide it's transparent checker\n\tdefault.button_pressed = true\n\tlist.add_child(default)\n\n\t# if there are no references, hide the none button and show message\n\ttools.visible = true\n\ttip.visible = true\n\timport_tip.visible = false\n\treference_edit.visible = true\n\tif Global.current_project.reference_images.size() == 0:\n\t\tdefault.visible = false\n\t\ttip.visible = false\n\t\timport_tip.visible = true\n\t\treference_edit.visible = false\n\n\t# And update.\n\tfor ref in Global.current_project.reference_images:\n\t\tvar l: Button = REFERENCE_IMAGE_BUTTON.instantiate()\n\t\tl.references_panel = self\n\t\tl.button_group = list_btn_group\n\t\tif ref.texture:\n\t\t\tl.icon = ref.texture\n\t\tlist.add_child(l)\n"
  },
  {
    "path": "src/UI/ReferenceImages/ReferencesPanel.gd.uid",
    "content": "uid://b3cwrpq6hfckk\n"
  },
  {
    "path": "src/UI/ReferenceImages/ReferencesPanel.tscn",
    "content": "[gd_scene format=3 uid=\"uid://cxhs8qy5ilufv\"]\n\n[ext_resource type=\"Script\" uid=\"uid://b3cwrpq6hfckk\" path=\"res://src/UI/ReferenceImages/ReferencesPanel.gd\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"2_1qu4x\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://d1oxrkwndy5fi\" path=\"res://assets/graphics/timeline/move_arrow.png\" id=\"2_uqbp6\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"3_1w6gu\"]\n[ext_resource type=\"Script\" uid=\"uid://bymmbs22ijgoj\" path=\"res://src/UI/ReferenceImages/ReferenceEdit.gd\" id=\"3_skjtb\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://d2m7enib3dplc\" path=\"res://assets/graphics/reference_images/select.png\" id=\"3_us8st\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://cedsyi8gf2n2i\" path=\"res://assets/graphics/reference_images/move.png\" id=\"4_8mlcg\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dtd43nvphu3jj\" path=\"res://assets/graphics/reference_images/rotate.png\" id=\"5_ifey7\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://nfabwr5mgdir\" path=\"res://assets/graphics/reference_images/scale.png\" id=\"6_7v0q5\"]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_unp5j\"]\naction = &\"move_frame_right\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_uucm4\"]\nevents = [SubResource(\"InputEventAction_unp5j\")]\n\n[sub_resource type=\"ButtonGroup\" id=\"ButtonGroup_adw61\"]\n\n[node name=\"Reference Images\" type=\"PanelContainer\" unique_id=1910121871]\ncustom_minimum_size = Vector2(300, 0)\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nscript = ExtResource(\"1\")\n\n[node name=\"ScrollContainer\" type=\"ScrollContainer\" parent=\".\" unique_id=1913945326]\nlayout_mode = 2\nhorizontal_scroll_mode = 0\n\n[node name=\"Container\" type=\"VBoxContainer\" parent=\"ScrollContainer\" unique_id=346113183]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"Header\" type=\"HBoxContainer\" parent=\"ScrollContainer/Container\" unique_id=640638121]\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"Label\" type=\"Label\" parent=\"ScrollContainer/Container/Header\" unique_id=2106618956]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Reference Images\"\n\n[node name=\"Tip\" type=\"Label\" parent=\"ScrollContainer/Container\" unique_id=1667876678]\ncustom_minimum_size = Vector2(10, 0)\nlayout_mode = 2\ntext = \"Select an image below to change its properties.\nNote that you cannot draw while a reference image is selected.\"\nautowrap_mode = 2\n\n[node name=\"Tools\" type=\"HBoxContainer\" parent=\"ScrollContainer/Container\" unique_id=741164240]\nlayout_mode = 2\n\n[node name=\"MoveImageLeftBtn\" type=\"Button\" parent=\"ScrollContainer/Container/Tools\" unique_id=325721617 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(31, 31)\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Move the selected reference image to the left\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_uucm4\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ScrollContainer/Container/Tools/MoveImageLeftBtn\" unique_id=895397785]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -7.5\noffset_top = -5.5\noffset_right = 7.5\noffset_bottom = 5.5\ntexture = ExtResource(\"2_uqbp6\")\nflip_h = true\n\n[node name=\"MoveImageRightBtn\" type=\"Button\" parent=\"ScrollContainer/Container/Tools\" unique_id=1606810987 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(31, 31)\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Move the selected reference image to the right\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_uucm4\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ScrollContainer/Container/Tools/MoveImageRightBtn\" unique_id=2011126893]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -7.5\noffset_top = -5.5\noffset_right = 7.5\noffset_bottom = 5.5\ntexture = ExtResource(\"2_uqbp6\")\n\n[node name=\"Spacer\" type=\"Control\" parent=\"ScrollContainer/Container/Tools\" unique_id=1284902068]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"TransformTools\" type=\"HBoxContainer\" parent=\"ScrollContainer/Container/Tools\" unique_id=2059969212]\nlayout_mode = 2\n\n[node name=\"Select\" type=\"Button\" parent=\"ScrollContainer/Container/Tools/TransformTools\" unique_id=2086598219 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(31, 31)\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Selects a reference image on the canvas\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_pressed = true\nbutton_group = SubResource(\"ButtonGroup_adw61\")\nshortcut = SubResource(\"Shortcut_uucm4\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ScrollContainer/Container/Tools/TransformTools/Select\" unique_id=2074858137]\nlayout_mode = 1\nanchors_preset = 8\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -12.0\noffset_top = -12.0\noffset_right = 12.0\noffset_bottom = 12.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"3_us8st\")\n\n[node name=\"Move\" type=\"Button\" parent=\"ScrollContainer/Container/Tools/TransformTools\" unique_id=1010360614 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(31, 31)\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Move the selected reference image\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_adw61\")\nshortcut = SubResource(\"Shortcut_uucm4\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ScrollContainer/Container/Tools/TransformTools/Move\" unique_id=964923268]\nlayout_mode = 1\nanchors_preset = 8\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -12.0\noffset_top = -12.0\noffset_right = 12.0\noffset_bottom = 12.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"4_8mlcg\")\n\n[node name=\"Rotate\" type=\"Button\" parent=\"ScrollContainer/Container/Tools/TransformTools\" unique_id=1887348652 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(31, 31)\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Rotate the selected reference image\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_adw61\")\nshortcut = SubResource(\"Shortcut_uucm4\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ScrollContainer/Container/Tools/TransformTools/Rotate\" unique_id=2053129697]\nlayout_mode = 1\nanchors_preset = 8\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -12.0\noffset_top = -12.0\noffset_right = 12.0\noffset_bottom = 12.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"5_ifey7\")\n\n[node name=\"Scale\" type=\"Button\" parent=\"ScrollContainer/Container/Tools/TransformTools\" unique_id=1466428717 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(31, 31)\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Scale the selected reference image\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_adw61\")\nshortcut = SubResource(\"Shortcut_uucm4\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"ScrollContainer/Container/Tools/TransformTools/Scale\" unique_id=502800015]\nlayout_mode = 1\nanchors_preset = 8\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -12.0\noffset_top = -12.0\noffset_right = 12.0\noffset_bottom = 12.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"6_7v0q5\")\n\n[node name=\"Images\" type=\"Panel\" parent=\"ScrollContainer/Container\" unique_id=819465132]\nclip_contents = true\ncustom_minimum_size = Vector2(0, 200)\nlayout_mode = 2\nmouse_filter = 1\n\n[node name=\"ImportTip\" type=\"Label\" parent=\"ScrollContainer/Container/Images\" unique_id=1582779925]\ncustom_minimum_size = Vector2(10, 0)\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntext = \"When opening an image, it may be imported as a reference.\"\nautowrap_mode = 2\n\n[node name=\"ScrollContainer\" type=\"ScrollContainer\" parent=\"ScrollContainer/Container/Images\" unique_id=1509542747]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\n\n[node name=\"List\" type=\"HFlowContainer\" parent=\"ScrollContainer/Container/Images/ScrollContainer\" unique_id=662381946]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(0, 64)\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"ReferenceEdit\" type=\"VBoxContainer\" parent=\"ScrollContainer/Container\" unique_id=1402913626 node_paths=PackedStringArray(\"references_panel\")]\nlayout_mode = 2\nscript = ExtResource(\"3_skjtb\")\nreferences_panel = NodePath(\"../../..\")\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"ScrollContainer/Container/ReferenceEdit\" unique_id=558166546]\nlayout_mode = 2\n\n[node name=\"ImageOptions\" type=\"HBoxContainer\" parent=\"ScrollContainer/Container/ReferenceEdit\" unique_id=2128356201]\nlayout_mode = 2\n\n[node name=\"WarningLabel\" type=\"Label\" parent=\"ScrollContainer/Container/ReferenceEdit/ImageOptions\" unique_id=1216242850]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntheme_override_colors/font_color = Color(0.972549, 1, 0.545098, 1)\ntext = \"Image not found!\"\ntext_overrun_behavior = 3\n\n[node name=\"ImagePath\" type=\"Button\" parent=\"ScrollContainer/Container/ReferenceEdit/ImageOptions\" unique_id=1116905021]\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 4\ntext = \"Image Path\"\nalignment = 0\ntext_overrun_behavior = 3\n\n[node name=\"Remove\" type=\"Button\" parent=\"ScrollContainer/Container/ReferenceEdit/ImageOptions\" unique_id=840500749]\nlayout_mode = 2\ntooltip_text = \"Hold Shift while pressing to instantly remove.\"\ntheme_override_colors/font_color = Color(1, 0.490196, 0.419608, 1)\ntext = \"Remove\"\n\n[node name=\"Options\" type=\"GridContainer\" parent=\"ScrollContainer/Container/ReferenceEdit\" unique_id=859156728]\nlayout_mode = 2\nsize_flags_horizontal = 3\ncolumns = 2\n\n[node name=\"TransformLabel\" type=\"Label\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=216669364]\nlayout_mode = 2\ntext = \"Transform\"\n\n[node name=\"Reset\" type=\"Button\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=1600882682]\nlayout_mode = 2\ntext = \"Reset Transform\"\n\n[node name=\"PosLabel\" type=\"Label\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=1242060368]\ncustom_minimum_size = Vector2(115, 0)\nlayout_mode = 2\ntext = \"Position\"\n\n[node name=\"Position\" type=\"HBoxContainer\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=345550437]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"X\" parent=\"ScrollContainer/Container/ReferenceEdit/Options/Position\" unique_id=1154386615 instance=ExtResource(\"3_1w6gu\")]\nlayout_mode = 2\nallow_greater = true\nallow_lesser = true\n\n[node name=\"Y\" parent=\"ScrollContainer/Container/ReferenceEdit/Options/Position\" unique_id=1257980441 instance=ExtResource(\"3_1w6gu\")]\nlayout_mode = 2\nallow_greater = true\nallow_lesser = true\n\n[node name=\"ScaleLabel\" type=\"Label\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=1274897389]\ncustom_minimum_size = Vector2(115, 0)\nlayout_mode = 2\ntext = \"Scale\"\n\n[node name=\"Scale\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=1228250765 instance=ExtResource(\"3_1w6gu\")]\nlayout_mode = 2\nallow_greater = true\nallow_lesser = true\n\n[node name=\"RotationLabel\" type=\"Label\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=1574450380]\ncustom_minimum_size = Vector2(115, 0)\nlayout_mode = 2\ntext = \"Rotation\"\n\n[node name=\"Rotation\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=1970090158 instance=ExtResource(\"3_1w6gu\")]\nlayout_mode = 2\nmin_value = -180.0\nmax_value = 180.0\nstep = 0.01\n\n[node name=\"ColorLabel\" type=\"Label\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=308576516]\nlayout_mode = 2\ntext = \"Color options\"\n\n[node name=\"Spacer2\" type=\"Control\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=446641858]\nlayout_mode = 2\n\n[node name=\"FilterLabel\" type=\"Label\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=70809167]\ncustom_minimum_size = Vector2(115, 0)\nlayout_mode = 2\ntext = \"Filter\"\n\n[node name=\"Filter\" type=\"CheckButton\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=2078777763]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Enabled\"\n\n[node name=\"MonochromeLabel\" type=\"Label\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=1241234474]\ncustom_minimum_size = Vector2(115, 0)\nlayout_mode = 2\ntext = \"Monochrome\"\n\n[node name=\"Monochrome\" type=\"CheckButton\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=441390147]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Enabled\"\n\n[node name=\"OverlayLabel\" type=\"Label\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=695979314]\ncustom_minimum_size = Vector2(115, 0)\nlayout_mode = 2\ntext = \"Overlay\"\n\n[node name=\"Overlay\" type=\"ColorPickerButton\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=1594200672]\ncustom_minimum_size = Vector2(48, 28)\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_stretch_ratio = 0.25\nedit_alpha = false\n\n[node name=\"OpacityLabel\" type=\"Label\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=1461708378]\ncustom_minimum_size = Vector2(115, 0)\nlayout_mode = 2\ntext = \"Opacity\"\n\n[node name=\"Opacity\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=60287637 instance=ExtResource(\"3_1w6gu\")]\nlayout_mode = 2\n\n[node name=\"ColorClampingLabel\" type=\"Label\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=1968415575]\ncustom_minimum_size = Vector2(115, 0)\nlayout_mode = 2\ntext = \"Color Clamping\"\n\n[node name=\"ColorClamping\" type=\"TextureProgressBar\" parent=\"ScrollContainer/Container/ReferenceEdit/Options\" unique_id=1554443056]\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\ntheme_type_variation = &\"ValueSlider\"\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"2_1qu4x\")\n\n[node name=\"Timer\" type=\"Timer\" parent=\"ScrollContainer/Container/ReferenceEdit\" unique_id=2093083081]\nwait_time = 0.2\none_shot = true\n\n[node name=\"ConfirmRemoveDialog\" type=\"ConfirmationDialog\" parent=\"ScrollContainer/Container/ReferenceEdit\" unique_id=1592631916]\nposition = Vector2i(0, 36)\nsize = Vector2i(454, 106)\ndialog_text = \"Are you sure you want to remove this reference image? It will not be deleted from your file system.\"\ndialog_autowrap = true\n\n[node name=\"Overlay\" type=\"CanvasLayer\" parent=\".\" unique_id=1572617690]\n\n[node name=\"DragHighlight\" type=\"ColorRect\" parent=\"Overlay\" unique_id=1311141168]\ncolor = Color(0, 0.741176, 1, 0.501961)\n\n[connection signal=\"pressed\" from=\"ScrollContainer/Container/Tools/MoveImageLeftBtn\" to=\".\" method=\"_on_move_image_left_pressed\"]\n[connection signal=\"pressed\" from=\"ScrollContainer/Container/Tools/MoveImageRightBtn\" to=\".\" method=\"_on_move_image_right_pressed\"]\n[connection signal=\"pressed\" from=\"ScrollContainer/Container/ReferenceEdit/ImageOptions/Remove\" to=\"ScrollContainer/Container/ReferenceEdit\" method=\"_on_Remove_pressed\"]\n[connection signal=\"pressed\" from=\"ScrollContainer/Container/ReferenceEdit/Options/Reset\" to=\"ScrollContainer/Container/ReferenceEdit\" method=\"_on_Reset_pressed\"]\n[connection signal=\"value_changed\" from=\"ScrollContainer/Container/ReferenceEdit/Options/Position/X\" to=\"ScrollContainer/Container/ReferenceEdit\" method=\"_on_X_value_changed\"]\n[connection signal=\"value_changed\" from=\"ScrollContainer/Container/ReferenceEdit/Options/Position/Y\" to=\"ScrollContainer/Container/ReferenceEdit\" method=\"_on_Y_value_changed\"]\n[connection signal=\"value_changed\" from=\"ScrollContainer/Container/ReferenceEdit/Options/Scale\" to=\"ScrollContainer/Container/ReferenceEdit\" method=\"_on_Scale_value_changed\"]\n[connection signal=\"value_changed\" from=\"ScrollContainer/Container/ReferenceEdit/Options/Rotation\" to=\"ScrollContainer/Container/ReferenceEdit\" method=\"_on_Rotation_value_changed\"]\n[connection signal=\"toggled\" from=\"ScrollContainer/Container/ReferenceEdit/Options/Filter\" to=\"ScrollContainer/Container/ReferenceEdit\" method=\"_on_Filter_toggled\"]\n[connection signal=\"toggled\" from=\"ScrollContainer/Container/ReferenceEdit/Options/Monochrome\" to=\"ScrollContainer/Container/ReferenceEdit\" method=\"_on_Monochrome_toggled\"]\n[connection signal=\"color_changed\" from=\"ScrollContainer/Container/ReferenceEdit/Options/Overlay\" to=\"ScrollContainer/Container/ReferenceEdit\" method=\"_on_Overlay_color_changed\"]\n[connection signal=\"value_changed\" from=\"ScrollContainer/Container/ReferenceEdit/Options/Opacity\" to=\"ScrollContainer/Container/ReferenceEdit\" method=\"_on_Opacity_value_changed\"]\n[connection signal=\"value_changed\" from=\"ScrollContainer/Container/ReferenceEdit/Options/ColorClamping\" to=\"ScrollContainer/Container/ReferenceEdit\" method=\"_on_ColorClamping_value_changed\"]\n[connection signal=\"timeout\" from=\"ScrollContainer/Container/ReferenceEdit/Timer\" to=\"ScrollContainer/Container/ReferenceEdit\" method=\"_on_timer_timeout\"]\n[connection signal=\"canceled\" from=\"ScrollContainer/Container/ReferenceEdit/ConfirmRemoveDialog\" to=\"ScrollContainer/Container/ReferenceEdit\" method=\"_on_confirm_remove_dialog_canceled\"]\n[connection signal=\"confirmed\" from=\"ScrollContainer/Container/ReferenceEdit/ConfirmRemoveDialog\" to=\"ScrollContainer/Container/ReferenceEdit\" method=\"_on_confirm_remove_dialog_confirmed\"]\n"
  },
  {
    "path": "src/UI/Tabs.gd",
    "content": "extends TabBar\n\n@onready var main := get_tree().current_scene\n@onready var unsaved_changes_dialog: ConfirmationDialog = main.find_child(\"UnsavedCanvasDialog\")\n\n\nfunc _ready() -> void:\n\tmain.save_file_dialog_opened.connect(_disable_tabs)\n\n\nfunc _input(_event: InputEvent) -> void:\n\t# NOTE: This feature has an unavoidable bug which sometimes causes the undoredo\n\t# system to fail, because user is trying to draw while switching project simultaneously.\n\t# This is because the current project has changed and the system tries to commit to the\n\t# wrong undoredo.\n\t# If a project is currently worked upon, then don't switch it.\n\t# This doesn't stop the bug completely but significantly reduces its chances\n\t# of appearing.\n\tif (\n\t\tInput.is_action_pressed(\"activate_left_tool\")\n\t\tor Input.is_action_pressed(\"activate_right_tool\")\n\t):\n\t\treturn\n\t# Due to the bug mentioned above, we will use is_action_just_released\n\t# instead of is_action_just_pressed. This won't remove the bug completely\n\t# but it will significantly reduce its chance of appearing.\n\tvar tab_idx := current_tab\n\tif Input.is_action_just_released(&\"next_project\", true):\n\t\ttab_idx += 1\n\t\tif tab_idx >= tab_count:\n\t\t\ttab_idx = 0\n\telif Input.is_action_just_released(&\"previous_project\", true):\n\t\ttab_idx -= 1\n\t\tif tab_idx < 0:\n\t\t\ttab_idx = tab_count - 1\n\tif tab_idx != current_tab:\n\t\tcurrent_tab = tab_idx\n\n\nfunc _on_Tabs_tab_changed(tab: int) -> void:\n\tGlobal.current_project_index = tab\n\n\nfunc _on_tab_close_pressed(tab: int) -> void:\n\tif Global.projects.size() == 1:\n\t\treturn\n\n\tif Global.projects[tab].has_changed:\n\t\tif !unsaved_changes_dialog.confirmed.is_connected(delete_tab):\n\t\t\tunsaved_changes_dialog.confirmed.connect(delete_tab.bind(tab))\n\t\tunsaved_changes_dialog.popup_centered_clamped()\n\t\tGlobal.dialog_open(true)\n\telse:\n\t\tdelete_tab(tab)\n\n\nfunc _on_active_tab_rearranged(idx_to: int) -> void:\n\tvar temp := Global.projects[Global.current_project_index]\n\tGlobal.projects.erase(temp)\n\tGlobal.projects.insert(idx_to, temp)\n\n\nfunc _disable_tabs(should_disable: bool) -> void:\n\tfor i in tab_count:\n\t\tset_tab_disabled(i, should_disable)\n\n\nfunc delete_tab(tab: int) -> void:\n\tremove_tab(tab)\n\tGlobal.projects[tab].remove()\n\tif Global.current_project_index == tab:\n\t\tif tab > 0:\n\t\t\tGlobal.current_project_index -= 1\n\t\telse:\n\t\t\tGlobal.current_project_index = 0\n\telse:\n\t\tif tab < Global.current_project_index:\n\t\t\tGlobal.current_project_index -= 1\n\tif unsaved_changes_dialog.confirmed.is_connected(delete_tab):\n\t\tunsaved_changes_dialog.confirmed.disconnect(delete_tab)\n"
  },
  {
    "path": "src/UI/Tabs.gd.uid",
    "content": "uid://dta2gofr682t4\n"
  },
  {
    "path": "src/UI/TilesPanel.gd",
    "content": "class_name TileSetPanel\nextends PanelContainer\n\nenum TileEditingMode { MANUAL, AUTO, STACK }\n\nconst TRANSPARENT_CHECKER := preload(\"res://src/UI/Nodes/TransparentChecker.tscn\")\nconst MIN_BUTTON_SIZE := 36\nconst MAX_BUTTON_SIZE := 144\n## A matrix with every possible flip/transpose combination,\n## sorted by what comes next when you rotate.\n## Taken from Godot's rotation matrix found in:\n## https://github.com/godotengine/godot/blob/master/editor/plugins/tiles/tile_map_layer_editor.cpp\nconst ROTATION_MATRIX: Array[bool] = [\n\t0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1\n]\n\nstatic var placing_tiles := false:\n\tset(value):\n\t\tplacing_tiles = value\n\t\t_call_update_brushes()\nstatic var tile_editing_mode := TileEditingMode.AUTO\nstatic var selected_tile_index := 0:\n\tset(value):\n\t\tselected_tiles = [value]\n\t\t_call_update_brushes()\n\tget:\n\t\tif is_instance_valid(current_tileset):\n\t\t\treturn current_tileset.pick_random_tile(selected_tiles)\n\t\treturn selected_tiles[0]\nstatic var selected_tiles: Array[int] = [0]\nstatic var is_flipped_h := false:\n\tset(value):\n\t\tis_flipped_h = value\n\t\t_call_update_brushes()\nstatic var is_flipped_v := false:\n\tset(value):\n\t\tis_flipped_v = value\n\t\t_call_update_brushes()\nstatic var is_transposed := false:\n\tset(value):\n\t\tis_transposed = value\n\t\t_call_update_brushes()\nstatic var current_tileset: TileSetCustom\nvar button_size := 36:\n\tset(value):\n\t\tif button_size == value:\n\t\t\treturn\n\t\tbutton_size = clampi(value, MIN_BUTTON_SIZE, MAX_BUTTON_SIZE)\n\t\ttile_size_slider.value = button_size\n\t\tupdate_minimum_size()\n\t\tGlobal.config_cache.set_value(\"tileset_panel\", \"button_size\", button_size)\n\t\tfor button: Control in tile_button_container.get_children():\n\t\t\tbutton.custom_minimum_size = Vector2(button_size, button_size)\n\t\t\tbutton.size = Vector2(button_size, button_size)\nvar show_empty_tile := true\nvar tile_index_menu_popped := 0\nvar _tileset_updated_this_frame := false\n\n@onready var place_tiles: Button = %PlaceTiles\n@onready var transform_buttons_container: HFlowContainer = %TransformButtonsContainer\n@onready var tile_button_container: HFlowContainer = %TileButtonContainer\n@onready var mode_buttons_container: HFlowContainer = %ModeButtonsContainer\n@onready var option_button: Button = %OptionButton\n@onready var options: Popup = $Options\n@onready var tile_size_slider: ValueSlider = %TileSizeSlider\n@onready var tile_button_popup_menu: PopupMenu = $TileButtonPopupMenu\n@onready var tile_properties: AcceptDialog = $TileProperties\n@onready var tile_probability_slider: ValueSlider = %TileProbabilitySlider\n@onready var tile_user_data_text_edit: TextEdit = %TileUserDataTextEdit\n\n\nfunc _ready() -> void:\n\tTools.selected_tile_index_changed.connect(select_tile)\n\tGlobal.cel_switched.connect(_on_cel_switched)\n\tfor child: Button in transform_buttons_container.get_children():\n\t\tGlobal.disable_button(child, true)\n\tupdate_tip()\n\ttile_size_slider.min_value = MIN_BUTTON_SIZE\n\ttile_size_slider.max_value = MAX_BUTTON_SIZE\n\ttile_size_slider.value = button_size\n\n\nfunc _gui_input(event: InputEvent) -> void:\n\tif Input.is_key_pressed(KEY_CTRL):\n\t\tvar zoom := 2 * int(event.is_action(\"zoom_in\")) - 2 * int(event.is_action(\"zoom_out\"))\n\t\tbutton_size += zoom\n\t\tif zoom != 0:\n\t\t\tget_viewport().set_input_as_handled()\n\n\nfunc set_tileset(tileset: TileSetCustom) -> void:\n\tif tileset == current_tileset:\n\t\treturn\n\tif is_instance_valid(current_tileset) and current_tileset.updated.is_connected(_update_tileset):\n\t\tcurrent_tileset.updated.disconnect(_update_tileset)\n\t\tcurrent_tileset.tile_added.disconnect(_update_tileset_dummy_params)\n\t\tcurrent_tileset.tile_removed.disconnect(_update_tileset_dummy_params)\n\t\tcurrent_tileset.tile_replaced.disconnect(_update_tileset_dummy_params)\n\t\tcurrent_tileset.resized_content.disconnect(_call_update_brushes)\n\tcurrent_tileset = tileset\n\tif (\n\t\tis_instance_valid(current_tileset)\n\t\tand not current_tileset.updated.is_connected(_update_tileset)\n\t):\n\t\tcurrent_tileset.updated.connect(_update_tileset)\n\t\tcurrent_tileset.tile_added.connect(_update_tileset_dummy_params)\n\t\tcurrent_tileset.tile_removed.connect(_update_tileset_dummy_params)\n\t\tcurrent_tileset.tile_replaced.connect(_update_tileset_dummy_params)\n\t\tcurrent_tileset.resized_content.connect(_call_update_brushes)\n\n\nfunc update_tip() -> void:\n\tvar tip := %Tip\n\ttip.get_parent().visible = true\n\tif placing_tiles:\n\t\ttip.text = tr(\"Select a tile to place it on the canvas.\")\n\telse:\n\t\ttip.text = tr(\"Modify tiles on the canvas.\")\n\n\nfunc _on_cel_switched() -> void:\n\tif Global.current_project.get_current_cel() is not CelTileMap:\n\t\tset_tileset(null)\n\t\t_clear_tile_buttons()\n\t\treturn\n\tvar cel := Global.current_project.get_current_cel() as CelTileMap\n\tset_tileset(cel.tileset)\n\t_update_tileset()\n\tif cel.place_only_mode:\n\t\tplace_tiles.button_pressed = true\n\tplace_tiles.visible = not cel.place_only_mode\n\n\nfunc _update_tileset() -> void:\n\t_tileset_updated_this_frame = false\n\t_clear_tile_buttons()\n\tfor tile_index in selected_tiles:\n\t\tif tile_index >= current_tileset.tiles.size():\n\t\t\tselected_tiles.erase(tile_index)\n\tif selected_tiles.is_empty():\n\t\tselected_tile_index = 0\n\tfor i in current_tileset.tiles.size():\n\t\tvar tile := current_tileset.tiles[i]\n\t\tvar texture := ImageTexture.create_from_image(tile.image)\n\t\tvar button := _create_tile_button(texture, i)\n\t\tif i in selected_tiles:\n\t\t\tbutton.set_pressed_no_signal(true)\n\t\ttile_button_container.add_child(button)\n\n\nstatic func _modify_texture_resource(tile_idx, tileset: TileSetCustom, project: Project) -> void:\n\tvar tile = tileset.tiles[tile_idx]\n\tif tile.image:\n\t\tvar v_proj_name = str(tileset.name, \" Tile: \", tile_idx)\n\t\tvar resource_proj := ResourceProject.new([], v_proj_name, tile.image.get_size())\n\t\tresource_proj.layers.append(PixelLayer.new(resource_proj))\n\t\tresource_proj.frames.append(resource_proj.new_empty_frame())\n\t\tresource_proj.frames[0].cels[0].set_content(tile.image)\n\t\tresource_proj.resource_updated.connect(_update_tile.bind(project, tileset, tile_idx))\n\t\tGlobal.projects.append(resource_proj)\n\t\tGlobal.tabs.current_tab = Global.tabs.get_tab_count() - 1\n\t\tGlobal.canvas.camera_zoom()\n\n\nstatic func _update_tile(\n\tresource_proj: ResourceProject, target_project: Project, tileset: TileSetCustom, tile_idx: int\n) -> void:\n\tvar warnings := \"\"\n\tif resource_proj.frames.size() > 1:\n\t\twarnings += \"This resource is intended to have 1 frame only. Extra frames will be ignored.\"\n\tif resource_proj.layers.size() > 1:\n\t\twarnings += \"\\nThis resource is intended to have 1 layer only. layers will be blended.\"\n\n\tvar updated_image := resource_proj.get_frame_image(0)\n\tif is_instance_valid(target_project) and is_instance_valid(tileset):\n\t\tif tile_idx < tileset.tiles.size():\n\t\t\tif !tileset.tiles[tile_idx].image:\n\t\t\t\treturn\n\t\t\tif updated_image.get_data() == tileset.tiles[tile_idx].image.get_data():\n\t\t\t\treturn\n\t\t\ttileset.tiles[tile_idx].image = updated_image\n\t\t\ttileset.updated.emit()\n\t\t\tfor cel in target_project.get_all_pixel_cels():\n\t\t\t\tif cel is not CelTileMap:\n\t\t\t\t\tcontinue\n\t\t\t\tif cel.tileset == tileset:\n\t\t\t\t\tvar has_tile := false\n\t\t\t\t\tfor cell in cel.cells.values():\n\t\t\t\t\t\tif cell.index == tile_idx:\n\t\t\t\t\t\t\thas_tile = true\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\tif has_tile:\n\t\t\t\t\t\tcel.image.fill(Color(0, 0, 0, 0))\n\t\t\t\t\t\tif cel.place_only_mode:\n\t\t\t\t\t\t\tcel.queue_update_cel_portions()\n\t\t\t\t\t\telse:\n\t\t\t\t\t\t\tcel.update_cel_portions()\n\tif not warnings.is_empty():\n\t\tGlobal.popup_error(warnings)\n\n\nfunc _update_tileset_dummy_params(_cel: BaseCel, _index: int) -> void:\n\tif _tileset_updated_this_frame:\n\t\treturn\n\t_tileset_updated_this_frame = true\n\t_update_tileset.call_deferred()\n\n\nfunc _create_tile_button(texture: Texture2D, index: int) -> Button:\n\tvar button := Button.new()\n\tbutton.toggle_mode = true\n\tbutton.custom_minimum_size = Vector2(button_size, button_size)\n\tbutton.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\tvar texture_rect := TextureRect.new()\n\ttexture_rect.texture = texture\n\ttexture_rect.expand_mode = TextureRect.EXPAND_IGNORE_SIZE\n\ttexture_rect.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_CENTERED\n\ttexture_rect.set_anchor_and_offset(SIDE_LEFT, 0, 6)\n\ttexture_rect.set_anchor_and_offset(SIDE_RIGHT, 1, -6)\n\ttexture_rect.set_anchor_and_offset(SIDE_TOP, 0, 6)\n\ttexture_rect.set_anchor_and_offset(SIDE_BOTTOM, 1, -6)\n\ttexture_rect.grow_horizontal = Control.GROW_DIRECTION_BOTH\n\ttexture_rect.grow_vertical = Control.GROW_DIRECTION_BOTH\n\tvar transparent_checker := TRANSPARENT_CHECKER.instantiate() as ColorRect\n\ttransparent_checker.set_anchors_preset(Control.PRESET_FULL_RECT)\n\ttransparent_checker.show_behind_parent = true\n\ttexture_rect.add_child(transparent_checker)\n\tbutton.add_child(texture_rect)\n\tbutton.tooltip_text = str(index)\n\tbutton.toggled.connect(_on_tile_button_toggled.bind(index))\n\tbutton.gui_input.connect(_on_tile_button_gui_input.bind(index))\n\tif index == 0 and not show_empty_tile:\n\t\tbutton.visible = false\n\treturn button\n\n\nfunc select_tile(tile_index: int) -> void:\n\ttile_button_container.get_child(tile_index).button_pressed = true\n\n\nstatic func _call_update_brushes() -> void:\n\tfor slot in Tools._slots.values():\n\t\tif slot.tool_node is BaseDrawTool:\n\t\t\tslot.tool_node.update_brush()\n\n\nfunc _on_tile_button_toggled(_toggled_on: bool, index: int) -> void:\n\tif Input.is_action_pressed(\"shift\"):\n\t\tselected_tiles.sort()\n\t\tvar diff_sign := signi(index - selected_tiles[-1])\n\t\tif diff_sign == 0:\n\t\t\tdiff_sign = 1\n\t\tfor i in range(selected_tiles[-1], index + diff_sign, diff_sign):\n\t\t\tif not selected_tiles.has(i):\n\t\t\t\tselected_tiles.append(i)\n\t\t\t\ttile_button_container.get_child(i).set_pressed_no_signal(true)\n\telif Input.is_action_pressed(\"ctrl\"):\n\t\tif selected_tiles.has(index):\n\t\t\tif selected_tiles.size() > 1:\n\t\t\t\tselected_tiles.erase(index)\n\t\telse:\n\t\t\tselected_tiles.append(index)\n\telse:\n\t\tselected_tile_index = index\n\t\tfor i in tile_button_container.get_child_count():\n\t\t\tvar child_button := tile_button_container.get_child(i) as BaseButton\n\t\t\tchild_button.set_pressed_no_signal(i == index)\n\tplace_tiles.button_pressed = true\n\n\nfunc _on_tile_button_gui_input(event: InputEvent, index: int) -> void:\n\tif event.is_action(&\"right_mouse\"):\n\t\ttile_button_popup_menu.popup_on_parent(Rect2(get_global_mouse_position(), Vector2.ONE))\n\t\ttile_index_menu_popped = index\n\t\ttile_button_popup_menu.set_item_disabled(1, tile_index_menu_popped == 0)\n\t\ttile_button_popup_menu.set_item_disabled(\n\t\t\t2, not current_tileset.tiles[index].can_be_removed()\n\t\t)\n\n\nfunc _clear_tile_buttons() -> void:\n\tfor child in tile_button_container.get_children():\n\t\tchild.queue_free()\n\n\nfunc _on_place_tiles_toggled(toggled_on: bool) -> void:\n\tplacing_tiles = toggled_on\n\ttransform_buttons_container.visible = placing_tiles\n\tmode_buttons_container.visible = !placing_tiles\n\tfor child: Button in transform_buttons_container.get_children():\n\t\tGlobal.disable_button(child, not toggled_on)\n\tupdate_tip()\n\n\nfunc _on_manual_toggled(toggled_on: bool) -> void:\n\tplace_tiles.button_pressed = false\n\tif toggled_on:\n\t\ttile_editing_mode = TileEditingMode.MANUAL\n\n\nfunc _on_auto_toggled(toggled_on: bool) -> void:\n\tplace_tiles.button_pressed = false\n\tif toggled_on:\n\t\ttile_editing_mode = TileEditingMode.AUTO\n\n\nfunc _on_stack_toggled(toggled_on: bool) -> void:\n\tplace_tiles.button_pressed = false\n\tif toggled_on:\n\t\ttile_editing_mode = TileEditingMode.STACK\n\n\nfunc _on_flip_horizontal_button_pressed() -> void:\n\tis_flipped_h = not is_flipped_h\n\n\nfunc _on_flip_vertical_button_pressed() -> void:\n\tis_flipped_v = not is_flipped_v\n\n\nfunc _on_rotate_pressed(clockwise: bool) -> void:\n\tfor i in ROTATION_MATRIX.size():\n\t\tvar final_i := i\n\t\tif (\n\t\t\tis_flipped_h == ROTATION_MATRIX[i * 3]\n\t\t\t&& is_flipped_v == ROTATION_MATRIX[i * 3 + 1]\n\t\t\t&& is_transposed == ROTATION_MATRIX[i * 3 + 2]\n\t\t):\n\t\t\tif clockwise:\n\t\t\t\t@warning_ignore(\"integer_division\")\n\t\t\t\tfinal_i = i / 4 * 4 + posmod(i - 1, 4)\n\t\t\telse:\n\t\t\t\t@warning_ignore(\"integer_division\")\n\t\t\t\tfinal_i = i / 4 * 4 + (i + 1) % 4\n\t\t\tis_flipped_h = ROTATION_MATRIX[final_i * 3]\n\t\t\tis_flipped_v = ROTATION_MATRIX[final_i * 3 + 1]\n\t\t\tis_transposed = ROTATION_MATRIX[final_i * 3 + 2]\n\t\t\tbreak\n\n\nfunc _on_option_button_pressed() -> void:\n\tvar pos := Vector2i(option_button.global_position) - options.size\n\toptions.popup_on_parent(Rect2i(pos.x - 16, pos.y + 32, options.size.x, options.size.y))\n\n\nfunc _on_tile_size_slider_value_changed(value: float) -> void:\n\tbutton_size = value\n\n\nfunc _on_show_empty_tile_toggled(toggled_on: bool) -> void:\n\tshow_empty_tile = toggled_on\n\tif tile_button_container.get_child_count() > 0:\n\t\ttile_button_container.get_child(0).visible = show_empty_tile\n\n\nfunc _on_tile_button_popup_menu_index_pressed(index: int) -> void:\n\tvar selected_tile := current_tileset.tiles[tile_index_menu_popped]\n\tif index == 0:  # Properties\n\t\ttile_probability_slider.value = selected_tile.probability\n\t\ttile_user_data_text_edit.text = selected_tile.user_data\n\t\ttile_properties.popup_centered_clamped()\n\tif index == 1:  # Edit tile\n\t\t_modify_texture_resource(tile_index_menu_popped, current_tileset, Global.current_project)\n\telif index == 2:  # Delete\n\t\tif tile_index_menu_popped == 0:\n\t\t\treturn\n\t\tvar select_copy := selected_tiles.duplicate()\n\t\tif tile_index_menu_popped in select_copy:\n\t\t\tselect_copy.sort()\n\t\t\tselect_copy.reverse()\n\t\telse:\n\t\t\tselect_copy = [tile_index_menu_popped]\n\t\tvar action_started := false\n\t\tvar project := Global.current_project\n\t\tvar undo_data_tileset := current_tileset.serialize_undo_data()\n\t\tvar tilemap_cels: Array[CelTileMap] = []\n\t\tvar redo_data_tilemaps := {}\n\t\tvar undo_data_tilemaps := {}\n\t\tfor i in select_copy:\n\t\t\tselected_tile = current_tileset.tiles[i]\n\t\t\tif selected_tile.can_be_removed():\n\t\t\t\tif !action_started:\n\t\t\t\t\taction_started = true\n\t\t\t\t\tproject.undo_redo.create_action(\"Delete tile\")\n\t\t\t\tfor cel in project.get_all_pixel_cels():\n\t\t\t\t\tif cel is not CelTileMap:\n\t\t\t\t\t\tcontinue\n\t\t\t\t\tif cel.tileset == current_tileset:\n\t\t\t\t\t\ttilemap_cels.append(cel)\n\t\t\t\tfor cel in tilemap_cels:\n\t\t\t\t\tundo_data_tilemaps[cel] = cel.serialize_undo_data(true)\n\t\t\t\tcurrent_tileset.remove_tile_at_index(i, null)\n\t\t\t\tfor cel in tilemap_cels:\n\t\t\t\t\tredo_data_tilemaps[cel] = cel.serialize_undo_data(true)\n\t\tif action_started:\n\t\t\tvar redo_data_tileset := current_tileset.serialize_undo_data()\n\t\t\tproject.undo_redo.add_undo_method(\n\t\t\t\tcurrent_tileset.deserialize_undo_data.bind(undo_data_tileset, null)\n\t\t\t)\n\t\t\tproject.undo_redo.add_do_method(\n\t\t\t\tcurrent_tileset.deserialize_undo_data.bind(redo_data_tileset, null)\n\t\t\t)\n\t\t\tfor cel in tilemap_cels:\n\t\t\t\tcel.deserialize_undo_data(redo_data_tilemaps[cel], project.undo_redo, false)\n\t\t\t\tcel.deserialize_undo_data(undo_data_tilemaps[cel], project.undo_redo, true)\n\t\t\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\t\t\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\t\tproject.undo_redo.commit_action()\n\telif index == 3:  # Duplicate tile\n\t\tvar project = Global.current_project\n\t\tvar undo_data_tileset := current_tileset.serialize_undo_data()\n\t\tvar tilemap_cels: Array[CelTileMap] = []\n\t\tvar redo_data_tilemaps := {}\n\t\tvar undo_data_tilemaps := {}\n\t\tproject.undo_redo.create_action(\"Duplicate tile\")\n\t\tfor cel in project.get_all_pixel_cels():\n\t\t\tif cel is not CelTileMap:\n\t\t\t\tcontinue\n\t\t\tif cel.tileset == current_tileset:\n\t\t\t\ttilemap_cels.append(cel)\n\t\tfor cel in tilemap_cels:\n\t\t\tundo_data_tilemaps[cel] = cel.serialize_undo_data(true)\n\t\tvar variant := Image.create_from_data(\n\t\t\tselected_tile.image.get_width(),\n\t\t\tselected_tile.image.get_height(),\n\t\t\tselected_tile.image.has_mipmaps(),\n\t\t\tselected_tile.image.get_format(),\n\t\t\tselected_tile.image.get_data()\n\t\t)\n\t\tcurrent_tileset.add_tile(variant, null, 0)\n\t\tfor cel in tilemap_cels:\n\t\t\tredo_data_tilemaps[cel] = cel.serialize_undo_data(true)\n\t\tvar redo_data_tileset := current_tileset.serialize_undo_data()\n\t\tproject.undo_redo.add_undo_method(\n\t\t\tcurrent_tileset.deserialize_undo_data.bind(undo_data_tileset, null)\n\t\t)\n\t\tproject.undo_redo.add_do_method(\n\t\t\tcurrent_tileset.deserialize_undo_data.bind(redo_data_tileset, null)\n\t\t)\n\t\tfor cel in tilemap_cels:\n\t\t\tcel.deserialize_undo_data(redo_data_tilemaps[cel], project.undo_redo, false)\n\t\t\tcel.deserialize_undo_data(undo_data_tilemaps[cel], project.undo_redo, true)\n\t\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\t\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\tproject.undo_redo.commit_action()\n\n\nfunc _on_tile_probability_slider_value_changed(value: float) -> void:\n\tcurrent_tileset.tiles[tile_index_menu_popped].probability = value\n\n\nfunc _on_tile_user_data_text_edit_text_changed() -> void:\n\tcurrent_tileset.tiles[tile_index_menu_popped].user_data = tile_user_data_text_edit.text\n"
  },
  {
    "path": "src/UI/TilesPanel.gd.uid",
    "content": "uid://du80jly0inq1u\n"
  },
  {
    "path": "src/UI/TilesPanel.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bfbragmmdwfbl\"]\n\n[ext_resource type=\"Script\" uid=\"uid://du80jly0inq1u\" path=\"res://src/UI/TilesPanel.gd\" id=\"1_d2oc5\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://d4by47alul2qw\" path=\"res://assets/graphics/tiles_panel/tiles_draw.png\" id=\"2_h0p0x\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bv7ldl8obhawm\" path=\"res://assets/graphics/misc/icon_reload.png\" id=\"2_r1kie\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bpsfilx47bw3r\" path=\"res://assets/graphics/misc/mirror_x.svg\" id=\"3_5o62r\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bk6iaxiyl74ih\" path=\"res://assets/graphics/misc/mirror_y.svg\" id=\"4_2xhnr\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dfq0wpxsd51co\" path=\"res://assets/graphics/tiles_panel/tiles_manual.png\" id=\"6_gwj5u\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://7m4hln3mo2e5\" path=\"res://assets/graphics/tiles_panel/tiles_auto.png\" id=\"7_afsgi\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://uo1ikty26del\" path=\"res://assets/graphics/tiles_panel/tiles_stack.png\" id=\"8_yoaya\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dwoilatxfh1s7\" path=\"res://assets/graphics/misc/options.png\" id=\"9_macrc\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"10_wfr6s\"]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_klv67\"]\naction = &\"toggle_draw_tiles_mode\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_6ebuw\"]\nevents = [SubResource(\"InputEventAction_klv67\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_yr0lx\"]\naction = &\"tile_rotate_left\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_yas23\"]\nevents = [SubResource(\"InputEventAction_yr0lx\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_g6d5p\"]\naction = &\"tile_rotate_right\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_cmy2w\"]\nevents = [SubResource(\"InputEventAction_g6d5p\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_yh67l\"]\naction = &\"tile_flip_horizontal\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_ouoxo\"]\nevents = [SubResource(\"InputEventAction_yh67l\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_18g3a\"]\naction = &\"tile_flip_vertical\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_jj4yy\"]\nevents = [SubResource(\"InputEventAction_18g3a\")]\n\n[sub_resource type=\"ButtonGroup\" id=\"ButtonGroup_uxnt0\"]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_mhgo3\"]\naction = &\"tile_edit_mode_manual\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_pgg48\"]\nevents = [SubResource(\"InputEventAction_mhgo3\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_h1wos\"]\naction = &\"tile_edit_mode_auto\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_a0fx5\"]\nevents = [SubResource(\"InputEventAction_h1wos\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_i4ufh\"]\naction = &\"tile_edit_mode_stack\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_ysxej\"]\nevents = [SubResource(\"InputEventAction_i4ufh\")]\n\n[node name=\"Tiles\" type=\"PanelContainer\" unique_id=1013550967]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nscript = ExtResource(\"1_d2oc5\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=1085994690]\nlayout_mode = 2\n\n[node name=\"MarginContainer\" type=\"MarginContainer\" parent=\"VBoxContainer\" unique_id=1932700056]\nlayout_mode = 2\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"VBoxContainer/MarginContainer\" unique_id=1711827435]\nlayout_mode = 2\n\n[node name=\"Buttons\" type=\"HBoxContainer\" parent=\"VBoxContainer/MarginContainer/VBoxContainer\" unique_id=378990844]\nlayout_mode = 2\n\n[node name=\"PlaceTiles\" type=\"Button\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons\" unique_id=1321436253 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(25, 25)\nlayout_mode = 2\nsize_flags_vertical = 0\ntooltip_text = \"Draw tiles\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nshortcut = SubResource(\"Shortcut_6ebuw\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/PlaceTiles\" unique_id=257991797]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"2_h0p0x\")\nexpand_mode = 1\nstretch_mode = 3\n\n[node name=\"VSeparator\" type=\"VSeparator\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons\" unique_id=1857657053]\nlayout_mode = 2\n\n[node name=\"TransformButtonsContainer\" type=\"HFlowContainer\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons\" unique_id=34624794]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"RotateLeftButton\" type=\"Button\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer\" unique_id=1438236183 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Rotate tile left (counterclockwise)\"\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_yas23\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer/RotateLeftButton\" unique_id=1599070227]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"2_r1kie\")\nstretch_mode = 3\n\n[node name=\"RotateRightButton\" type=\"Button\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer\" unique_id=1705161702 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Rotate tile right (clockwise)\"\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_cmy2w\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer/RotateRightButton\" unique_id=1162591364]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"2_r1kie\")\nstretch_mode = 3\nflip_h = true\n\n[node name=\"FlipHorizontalButton\" type=\"Button\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer\" unique_id=1640910582 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Flip tile horizontally\"\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_ouoxo\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer/FlipHorizontalButton\" unique_id=969873415]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"3_5o62r\")\nstretch_mode = 3\n\n[node name=\"FlipVerticalButton\" type=\"Button\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer\" unique_id=1503902280 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Flip tile vertically\"\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_jj4yy\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer/FlipVerticalButton\" unique_id=773495880]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"4_2xhnr\")\nstretch_mode = 3\n\n[node name=\"ModeButtonsContainer\" type=\"HFlowContainer\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons\" unique_id=397692909]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"Manual\" type=\"Button\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/ModeButtonsContainer\" unique_id=1724458427 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Manual\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_uxnt0\")\nshortcut = SubResource(\"Shortcut_pgg48\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/ModeButtonsContainer/Manual\" unique_id=854823293]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"6_gwj5u\")\nexpand_mode = 1\nstretch_mode = 3\n\n[node name=\"Auto\" type=\"Button\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/ModeButtonsContainer\" unique_id=1962781409 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Auto\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_pressed = true\nbutton_group = SubResource(\"ButtonGroup_uxnt0\")\nshortcut = SubResource(\"Shortcut_a0fx5\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/ModeButtonsContainer/Auto\" unique_id=1723591758]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"7_afsgi\")\nexpand_mode = 1\nstretch_mode = 3\n\n[node name=\"Stack\" type=\"Button\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/ModeButtonsContainer\" unique_id=878662054 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Stack\"\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nbutton_group = SubResource(\"ButtonGroup_uxnt0\")\nshortcut = SubResource(\"Shortcut_ysxej\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/ModeButtonsContainer/Stack\" unique_id=2048933049]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"8_yoaya\")\nexpand_mode = 1\nstretch_mode = 3\n\n[node name=\"OptionButton\" type=\"Button\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons\" unique_id=2011776412 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nsize_flags_vertical = 4\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/OptionButton\" unique_id=1157475373]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"9_macrc\")\nexpand_mode = 1\nstretch_mode = 3\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"VBoxContainer/MarginContainer/VBoxContainer\" unique_id=512585254]\nlayout_mode = 2\n\n[node name=\"Tip\" type=\"Label\" parent=\"VBoxContainer/MarginContainer/VBoxContainer\" unique_id=1642305841]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(20, 0)\nlayout_mode = 2\nautowrap_mode = 3\n\n[node name=\"HSeparator2\" type=\"HSeparator\" parent=\"VBoxContainer/MarginContainer/VBoxContainer\" unique_id=1667799599]\nlayout_mode = 2\n\n[node name=\"ScrollContainer\" type=\"ScrollContainer\" parent=\"VBoxContainer\" unique_id=1630802036]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"MarginContainer\" type=\"MarginContainer\" parent=\"VBoxContainer/ScrollContainer\" unique_id=2127573069]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"TileButtonContainer\" type=\"HFlowContainer\" parent=\"VBoxContainer/ScrollContainer/MarginContainer\" unique_id=870544287]\nunique_name_in_owner = true\nlayout_mode = 2\n\n[node name=\"Options\" type=\"Popup\" parent=\".\" unique_id=583438229]\nposition = Vector2i(0, 36)\nsize = Vector2i(210, 100)\nunresizable = false\nborderless = false\n\n[node name=\"MarginContainer\" type=\"MarginContainer\" parent=\"Options\" unique_id=1946984773]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\n\n[node name=\"ScrollContainer\" type=\"ScrollContainer\" parent=\"Options/MarginContainer\" unique_id=1174421718]\nlayout_mode = 2\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"Options/MarginContainer/ScrollContainer\" unique_id=766335397]\nlayout_mode = 2\nsize_flags_horizontal = 3\ncolumns = 2\n\n[node name=\"TileSizeLabel\" type=\"Label\" parent=\"Options/MarginContainer/ScrollContainer/GridContainer\" unique_id=258276035]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Tile button size:\"\n\n[node name=\"TileSizeSlider\" type=\"TextureProgressBar\" parent=\"Options/MarginContainer/ScrollContainer/GridContainer\" unique_id=948811297]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 36.0\nmax_value = 144.0\nvalue = 36.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"10_wfr6s\")\n\n[node name=\"ShowEmptyTileLabel\" type=\"Label\" parent=\"Options/MarginContainer/ScrollContainer/GridContainer\" unique_id=1992071113]\nlayout_mode = 2\ntext = \"Show empty tile:\"\n\n[node name=\"ShowEmptyTile\" type=\"CheckBox\" parent=\"Options/MarginContainer/ScrollContainer/GridContainer\" unique_id=1181971006]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"On\"\n\n[node name=\"TileButtonPopupMenu\" type=\"PopupMenu\" parent=\".\" unique_id=100162540]\nitem_count = 4\nitem_0/text = \"Properties\"\nitem_0/id = 0\nitem_1/text = \"Edit tile\"\nitem_1/id = 1\nitem_2/text = \"Delete\"\nitem_2/id = 2\nitem_3/text = \"Duplicate tile\"\nitem_3/id = 3\n\n[node name=\"TileProperties\" type=\"AcceptDialog\" parent=\".\" unique_id=1556161164]\ntitle = \"Tile properties\"\nsize = Vector2i(300, 200)\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"TileProperties\" unique_id=429541067]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 8.0\noffset_top = 8.0\noffset_right = -8.0\noffset_bottom = -49.0\ngrow_horizontal = 2\ngrow_vertical = 2\ncolumns = 2\n\n[node name=\"TileProbabilityLabel\" type=\"Label\" parent=\"TileProperties/GridContainer\" unique_id=2147068159]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Probability:\"\n\n[node name=\"TileProbabilitySlider\" type=\"TextureProgressBar\" parent=\"TileProperties/GridContainer\" unique_id=16835786]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmax_value = 10.0\nstep = 0.001\nvalue = 1.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"10_wfr6s\")\n\n[node name=\"TileUserDataLabel\" type=\"Label\" parent=\"TileProperties/GridContainer\" unique_id=1040829843]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"User data:\"\n\n[node name=\"TileUserDataTextEdit\" type=\"TextEdit\" parent=\"TileProperties/GridContainer\" unique_id=1137237139]\nunique_name_in_owner = true\nlayout_mode = 2\nscroll_fit_content_height = true\n\n[connection signal=\"toggled\" from=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/PlaceTiles\" to=\".\" method=\"_on_place_tiles_toggled\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer/RotateLeftButton\" to=\".\" method=\"_on_rotate_pressed\" binds= [false]]\n[connection signal=\"pressed\" from=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer/RotateRightButton\" to=\".\" method=\"_on_rotate_pressed\" binds= [true]]\n[connection signal=\"pressed\" from=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer/FlipHorizontalButton\" to=\".\" method=\"_on_flip_horizontal_button_pressed\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer/FlipVerticalButton\" to=\".\" method=\"_on_flip_vertical_button_pressed\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/ModeButtonsContainer/Manual\" to=\".\" method=\"_on_manual_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/ModeButtonsContainer/Auto\" to=\".\" method=\"_on_auto_toggled\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/ModeButtonsContainer/Stack\" to=\".\" method=\"_on_stack_toggled\"]\n[connection signal=\"pressed\" from=\"VBoxContainer/MarginContainer/VBoxContainer/Buttons/OptionButton\" to=\".\" method=\"_on_option_button_pressed\"]\n[connection signal=\"value_changed\" from=\"Options/MarginContainer/ScrollContainer/GridContainer/TileSizeSlider\" to=\".\" method=\"_on_tile_size_slider_value_changed\"]\n[connection signal=\"toggled\" from=\"Options/MarginContainer/ScrollContainer/GridContainer/ShowEmptyTile\" to=\".\" method=\"_on_show_empty_tile_toggled\"]\n[connection signal=\"index_pressed\" from=\"TileButtonPopupMenu\" to=\".\" method=\"_on_tile_button_popup_menu_index_pressed\"]\n[connection signal=\"value_changed\" from=\"TileProperties/GridContainer/TileProbabilitySlider\" to=\".\" method=\"_on_tile_probability_slider_value_changed\"]\n[connection signal=\"text_changed\" from=\"TileProperties/GridContainer/TileUserDataTextEdit\" to=\".\" method=\"_on_tile_user_data_text_edit_text_changed\"]\n"
  },
  {
    "path": "src/UI/Timeline/AnimationTagUI.gd",
    "content": "extends Control\n\nenum Drag { NONE, FROM, TO }\n\nvar tag: AnimationTag\nvar dragging_tag: AnimationTag\nvar dragged_initial := 0\nvar is_dragging := Drag.NONE\n@onready var tag_properties := Global.control.find_child(\"TagProperties\") as ConfirmationDialog\n\n\nfunc _ready() -> void:\n\tif not is_instance_valid(tag):\n\t\treturn\n\t$Button.text = tag.name\n\t$Button.modulate = tag.color\n\t$Line2D.default_color = tag.color\n\tupdate_position_and_size()\n\n\nfunc update_position_and_size(from_tag := tag) -> void:\n\tposition = from_tag.get_position()\n\tcustom_minimum_size.x = from_tag.get_minimum_size()\n\tsize.x = custom_minimum_size.x\n\t$Line2D.points[2].x = custom_minimum_size.x\n\t$Line2D.points[3].x = custom_minimum_size.x\n\n\nfunc _on_button_pressed() -> void:\n\tvar tag_id := Global.current_project.animation_tags.find(tag)\n\ttag_properties.show_dialog(Rect2i(), tag_id, true)\n\n\nfunc _resize_tag(resize: Drag, value: int) -> void:\n\tvar new_animation_tags: Array[AnimationTag] = []\n\t# Loop through the tags to create new classes for them, so that they won't be the same\n\t# as Global.current_project.animation_tags's classes. Needed for undo/redo to work properly.\n\tfor frame_tag in Global.current_project.animation_tags:\n\t\tnew_animation_tags.append(frame_tag.duplicate())\n\n\tvar tag_id := Global.current_project.animation_tags.find(tag)\n\tif resize == Drag.FROM:\n\t\tif new_animation_tags[tag_id].from == value:\n\t\t\treturn\n\t\tnew_animation_tags[tag_id].from = value\n\telif resize == Drag.TO:\n\t\tif new_animation_tags[tag_id].to == value:\n\t\t\treturn\n\t\tnew_animation_tags[tag_id].to = value\n\n\t# Handle Undo/Redo\n\tGlobal.current_project.undo_redo.create_action(\"Resize Frame Tag\")\n\tGlobal.current_project.undo_redo.add_do_method(Global.general_redo)\n\tGlobal.current_project.undo_redo.add_undo_method(Global.general_undo)\n\tGlobal.current_project.undo_redo.add_do_property(\n\t\tGlobal.current_project, &\"animation_tags\", new_animation_tags\n\t)\n\tGlobal.current_project.undo_redo.add_undo_property(\n\t\tGlobal.current_project, &\"animation_tags\", Global.current_project.animation_tags\n\t)\n\tGlobal.current_project.undo_redo.commit_action()\n\n\nfunc _on_resize_from_gui_input(event: InputEvent) -> void:\n\tvar cel_size: int = Global.animation_timeline.cel_size\n\tif event is InputEventMouseButton:\n\t\tif event.pressed:\n\t\t\tis_dragging = Drag.FROM\n\t\t\tdragging_tag = tag.duplicate()\n\t\t\tdragged_initial = global_position.x\n\t\telse:\n\t\t\t_resize_tag(is_dragging, dragging_tag.from)\n\t\t\tis_dragging = Drag.NONE\n\t\t\tdragging_tag = null\n\telif event is InputEventMouseMotion:\n\t\tif is_dragging == Drag.FROM:\n\t\t\tvar dragged_offset := snappedi(event.global_position.x, cel_size)\n\t\t\tvar diff := roundi(float(dragged_offset - dragged_initial) / cel_size)\n\t\t\tdragging_tag.from = clampi(tag.from + diff, 1, tag.to)\n\t\t\tupdate_position_and_size(dragging_tag)\n\n\nfunc _on_resize_to_gui_input(event: InputEvent) -> void:\n\tvar cel_size: int = Global.animation_timeline.cel_size\n\tif event is InputEventMouseButton:\n\t\tif event.pressed:\n\t\t\tis_dragging = Drag.TO\n\t\t\tdragging_tag = tag.duplicate()\n\t\t\tdragged_initial = global_position.x + size.x\n\t\telse:\n\t\t\t_resize_tag(is_dragging, dragging_tag.to)\n\t\t\tis_dragging = Drag.NONE\n\t\t\tdragging_tag = null\n\telif event is InputEventMouseMotion:\n\t\tif is_dragging == Drag.TO:\n\t\t\tvar dragged_offset := snappedi(event.global_position.x, cel_size)\n\t\t\tvar diff := roundi(float(dragged_offset - dragged_initial) / cel_size)\n\t\t\tdragging_tag.to = clampi(tag.to + diff, tag.from, Global.current_project.frames.size())\n\t\t\tupdate_position_and_size(dragging_tag)\n"
  },
  {
    "path": "src/UI/Timeline/AnimationTagUI.gd.uid",
    "content": "uid://bdanox8olumam\n"
  },
  {
    "path": "src/UI/Timeline/AnimationTagUI.tscn",
    "content": "[gd_scene format=3 uid=\"uid://dxjxve3gmc8h4\"]\n\n[ext_resource type=\"Script\" uid=\"uid://bdanox8olumam\" path=\"res://src/UI/Timeline/AnimationTagUI.gd\" id=\"1\"]\n\n[node name=\"AnimationTagUI\" type=\"Control\" unique_id=382197172]\ncustom_minimum_size = Vector2(39, 32)\nlayout_mode = 3\nanchors_preset = 0\noffset_right = 39.0\noffset_bottom = 32.0\nmouse_filter = 2\nscript = ExtResource(\"1\")\n\n[node name=\"Line2D\" type=\"Line2D\" parent=\".\" unique_id=1702022453]\npoints = PackedVector2Array(0, 32, 0, 0, 39, 0, 39, 32)\nwidth = 1.0\njoint_mode = 2\nbegin_cap_mode = 2\nend_cap_mode = 2\n\n[node name=\"Button\" type=\"Button\" parent=\".\" unique_id=1781189922]\nauto_translate_mode = 2\nlayout_mode = 1\nanchors_preset = 8\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -18.5\noffset_top = -16.0\noffset_right = 18.5\noffset_bottom = 16.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 4\nsize_flags_vertical = 3\nmouse_default_cursor_shape = 2\ntext = \"Idle\"\nflat = true\n\n[node name=\"ResizeFrom\" type=\"Button\" parent=\".\" unique_id=1343822366]\nmodulate = Color(1, 1, 1, 0)\nlayout_mode = 0\noffset_left = -4.0\noffset_right = 4.0\noffset_bottom = 32.0\nmouse_default_cursor_shape = 10\nkeep_pressed_outside = true\nflat = true\n\n[node name=\"ResizeTo\" type=\"Button\" parent=\".\" unique_id=646892030]\nmodulate = Color(1, 1, 1, 0)\nlayout_mode = 1\nanchors_preset = 1\nanchor_left = 1.0\nanchor_right = 1.0\noffset_left = -4.0\noffset_right = 4.0\noffset_bottom = 32.0\ngrow_horizontal = 0\nmouse_default_cursor_shape = 10\nkeep_pressed_outside = true\nflat = true\n\n[connection signal=\"pressed\" from=\"Button\" to=\".\" method=\"_on_button_pressed\"]\n[connection signal=\"gui_input\" from=\"ResizeFrom\" to=\".\" method=\"_on_resize_from_gui_input\"]\n[connection signal=\"gui_input\" from=\"ResizeTo\" to=\".\" method=\"_on_resize_to_gui_input\"]\n"
  },
  {
    "path": "src/UI/Timeline/AnimationTimeline.gd",
    "content": "extends Panel\n\n## Emitted when the animation starts playing.\nsignal animation_started(forward: bool)\n## Emitted when the animation reaches the final frame and is not looping,\n## or if the animation is manually paused.\n## Note: This signal is not emitted if the animation is looping.\nsignal animation_finished\n## Emitted when the animation loops, meaning when it reaches the final frame\n## and the animation keeps playing.\nsignal animation_looped\n\nenum LoopType { NO, CYCLE, PINGPONG }\n\nconst FRAME_BUTTON_TSCN := preload(\"res://src/UI/Timeline/FrameButton.tscn\")\nconst ANIMATION_TAG_TSCN := preload(\"res://src/UI/Timeline/AnimationTagUI.tscn\")\nconst LAYER_FX_SCENE_PATH := \"res://src/UI/Timeline/LayerEffects/LayerEffectsSettings.tscn\"\nconst CEL_MIN_SIZE_OFFSET := 15\n\nvar is_animation_running := false\nvar animation_loop := LoopType.CYCLE\nvar animation_forward := true\nvar first_frame := 0\n## Keeps track of the frame idx that is \"supposed\" to be currently shown frame in the animation.\nvar animation_canon_frame: int = 0\nvar last_frame := 0\nvar is_mouse_hover := false\nvar cel_size := 36:\n\tset = _cel_size_changed\nvar min_cel_size := 36:\n\tset(value):\n\t\tmin_cel_size = value\n\t\tif is_instance_valid(cel_size_slider):\n\t\t\tcel_size_slider.min_value = min_cel_size\nvar max_cel_size := 144\nvar past_above_canvas := true\nvar future_above_canvas := true\nvar layer_effect_settings: AcceptDialog:\n\tget:\n\t\tif not is_instance_valid(layer_effect_settings):\n\t\t\tlayer_effect_settings = load(LAYER_FX_SCENE_PATH).instantiate()\n\t\t\tadd_child(layer_effect_settings)\n\t\treturn layer_effect_settings\nvar global_layer_visibility := true\nvar global_layer_lock := false\nvar global_layer_expand := true\n\n@onready var animation_timer := $AnimationTimer as Timer\n@onready var tag_spacer := %TagSpacer as Control\n@onready var layer_settings_container := %LayerSettingsContainer as VBoxContainer\n@onready var layer_container := %LayerContainer as VBoxContainer\n@onready var layer_vbox := %LayerVBox as VBoxContainer  ## Contains the layer buttons.\n@onready var frame_hbox := %FrameHBox as HBoxContainer  ## Contains the frame buttons.\n## Contains HBoxContainers, which contain cel buttons.\n@onready var cel_vbox := %CelVBox as VBoxContainer\n@onready var layer_header_container := %LayerHeaderContainer as HBoxContainer\n@onready var add_layer_list := %AddLayerList as MenuButton\n@onready var remove_layer := %RemoveLayer as Button\n@onready var move_up_layer := %MoveUpLayer as Button\n@onready var move_down_layer := %MoveDownLayer as Button\n@onready var merge_down_layer := %MergeDownLayer as Button\n@onready var layer_fx := %LayerFX as Button\n@onready var blend_modes_button := %BlendModes as OptionButton\n@onready var opacity_slider := %OpacitySlider as ValueSlider\n@onready var frame_scroll_container := %FrameScrollContainer as Control\n@onready var timeline_scroll := %TimelineScroll as ScrollContainer\n@onready var frame_scroll_bar := %FrameScrollBar as HScrollBar\n@onready var tag_scroll_container := %TagScroll as ScrollContainer\n@onready var tag_container: Control = %TagContainer\n@onready var layer_frame_h_split := %LayerFrameHSplit as HSplitContainer\n@onready var layer_frame_header_h_split := %LayerFrameHeaderHSplit as HSplitContainer\n@onready var delete_frame := %DeleteFrame as Button\n@onready var move_frame_left := %MoveFrameLeft as Button\n@onready var move_frame_right := %MoveFrameRight as Button\n@onready var play_backwards := %PlayBackwards as Button\n@onready var play_forward := %PlayForward as Button\n@onready var fps_spinbox := %FPSValue as ValueSlider\n@onready var onion_skinning_button := %OnionSkinning as BaseButton\n@onready var cel_size_slider := %CelSizeSlider as ValueSlider\n@onready var loop_animation_button := %LoopAnim as BaseButton\n@onready var timeline_settings := $TimelineSettings as Popup\n@onready var new_tile_map_layer_dialog := $NewTileMapLayerDialog as ConfirmationDialog\n@onready var drag_highlight := $DragHighlight as ColorRect\n\n\nfunc _ready() -> void:\n\tvar layer_properties_dialog := Global.control.find_child(\"LayerProperties\")\n\tlayer_properties_dialog.layer_property_changed.connect(_update_layer_settings_ui)\n\tlayer_container.custom_minimum_size.x = layer_settings_container.size.x + 12\n\tlayer_header_container.custom_minimum_size.x = layer_container.custom_minimum_size.x\n\tvar loaded_cel_size: int = Global.config_cache.get_value(\"timeline\", \"cel_size\", 40)\n\tmin_cel_size = get_tree().current_scene.theme.default_font_size + CEL_MIN_SIZE_OFFSET\n\tcel_size_slider.max_value = max_cel_size\n\tcel_size = loaded_cel_size\n\tadd_layer_list.get_popup().id_pressed.connect(on_add_layer_list_id_pressed)\n\tframe_scroll_bar.value_changed.connect(_frame_scroll_changed)\n\tanimation_timer.wait_time = 1 / Global.current_project.fps\n\tfps_spinbox.value = Global.current_project.fps\n\t_fill_blend_modes_option_button()\n\t# Config loading.\n\tlayer_frame_h_split.split_offset = Global.config_cache.get_value(\"timeline\", \"layer_size\", 0)\n\tlayer_frame_header_h_split.split_offset = layer_frame_h_split.split_offset\n\tvar past_rate = Global.config_cache.get_value(\n\t\t\"timeline\", \"past_rate\", Global.onion_skinning_past_rate\n\t)\n\tvar future_rate = Global.config_cache.get_value(\n\t\t\"timeline\", \"future_rate\", Global.onion_skinning_future_rate\n\t)\n\tvar blue_red = Global.config_cache.get_value(\n\t\t\"timeline\", \"blue_red\", Global.onion_skinning_blue_red\n\t)\n\tvar past_above = Global.config_cache.get_value(\n\t\t\"timeline\", \"past_above_canvas\", past_above_canvas\n\t)\n\tvar future_above = Global.config_cache.get_value(\n\t\t\"timeline\", \"future_above_canvas\", future_above_canvas\n\t)\n\tvar onion_skinning_opacity = Global.config_cache.get_value(\n\t\t\"timeline\", \"onion_skinning_opacity\", 0.6\n\t)\n\t%OnionSkinningOpacity.value = onion_skinning_opacity * 100.0\n\t%PastOnionSkinning.value = past_rate\n\t%FutureOnionSkinning.value = future_rate\n\t%BlueRedMode.button_pressed = blue_red\n\t%PastPlacement.select(0 if past_above else 1)\n\t%FuturePlacement.select(0 if future_above else 1)\n\t# Emit signals that were supposed to be emitted.\n\t%PastPlacement.item_selected.emit(0 if past_above else 1)\n\t%FuturePlacement.item_selected.emit(0 if future_above else 1)\n\tGlobal.project_about_to_switch.connect(_on_project_about_to_switch)\n\tGlobal.project_switched.connect(_on_project_switched)\n\tGlobal.cel_switched.connect(_cel_switched)\n\t# Makes sure that the frame and tag scroll bars are in the right place:\n\tlayer_vbox.emit_signal.call_deferred(\"resized\")\n\tdrag_highlight.visibility_changed.connect(clear_highlight)\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_DRAG_END:\n\t\tdrag_highlight.hide()\n\telif what == NOTIFICATION_THEME_CHANGED or what == NOTIFICATION_TRANSLATION_CHANGED:\n\t\tawait get_tree().process_frame\n\t\tmin_cel_size = get_tree().current_scene.theme.default_font_size + CEL_MIN_SIZE_OFFSET\n\t\tif is_instance_valid(layer_settings_container):\n\t\t\tlayer_container.custom_minimum_size.x = layer_settings_container.size.x + 12\n\t\t\tlayer_header_container.custom_minimum_size.x = layer_container.custom_minimum_size.x\n\n\nfunc clear_highlight():\n\tif not drag_highlight.visible:\n\t\tfor connection: Dictionary in drag_highlight.draw.get_connections():\n\t\t\tvar callable: Callable = connection.get(\"callable\", null)\n\t\t\tif callable:\n\t\t\t\tdrag_highlight.draw.disconnect(callable)\n\t\tawait get_tree().process_frame\n\t\tdrag_highlight.queue_redraw()\n\n\n## Manages frame highlighting during drag and drop.\nfunc set_frames_highlight(frame_indices: Array, offset: int) -> void:\n\tif drag_highlight.draw.is_connected(_draw_highlight_frames):\n\t\tdrag_highlight.draw.disconnect(_draw_highlight_frames)\n\tdrag_highlight.draw.connect(_draw_highlight_frames.bind(frame_indices, offset))\n\tdrag_highlight.queue_redraw()\n\n\n## Draws frame highlighting during drag and drop.\nfunc _draw_highlight_frames(frame_indices: Array, offset: int) -> void:\n\tfor frame in frame_indices:\n\t\tvar frame_drop: int = frame + offset\n\t\tif frame_drop < frame_hbox.get_child_count() and frame_drop >= 0:\n\t\t\tvar frame_button: BaseButton = frame_hbox.get_child(frame_drop)\n\t\t\tvar frame_rect: Rect2i = frame_button.get_global_rect()\n\t\t\tframe_rect.position -= Vector2i(drag_highlight.global_position)\n\t\t\tdrag_highlight.draw_rect(frame_rect, drag_highlight.color)\n\tframe_indices.clear()\n\n\n## Manages cel highlighting during drag and drop.\nfunc set_cels_highlight(cel_coords: Array, offset: Vector2i) -> void:\n\tif drag_highlight.draw.is_connected(_draw_highlight_cels):\n\t\tdrag_highlight.draw.disconnect(_draw_highlight_cels)\n\tdrag_highlight.draw.connect(_draw_highlight_cels.bind(cel_coords, offset))\n\tdrag_highlight.queue_redraw()\n\n\n## Draws cel highlighting during drag and drop.\nfunc _draw_highlight_cels(cel_coords: Array, offset: Vector2i) -> void:\n\tfor cel in cel_coords:  # Press selected buttons\n\t\tvar frame: int = cel[0] + offset.x\n\t\tvar layer: int = cel[1] + offset.y\n\t\tvar cel_vbox_child_count: int = cel_vbox.get_child_count()\n\t\tif layer < cel_vbox_child_count and layer >= 0:\n\t\t\tvar cel_hbox: Container = cel_vbox.get_child(cel_vbox_child_count - 1 - layer)\n\t\t\tif frame < cel_hbox.get_child_count() and frame >= 0:\n\t\t\t\tvar cel_button: BaseButton = cel_hbox.get_child(frame)\n\t\t\t\tvar cel_rect: Rect2i = cel_button.get_global_rect()\n\t\t\t\tcel_rect.position -= Vector2i(drag_highlight.global_position)\n\t\t\t\tdrag_highlight.draw_rect(cel_rect, drag_highlight.color)\n\tcel_coords.clear()\n\n\nfunc _input(event: InputEvent) -> void:\n\tvar project := Global.current_project\n\tif event.is_action_pressed(&\"go_to_previous_layer\"):\n\t\tGlobal.canvas.selection.transform_content_confirm()\n\t\tproject.selected_cels.clear()\n\t\tif project.current_layer > 0:\n\t\t\tproject.change_cel(-1, project.current_layer - 1)\n\t\telse:\n\t\t\tproject.change_cel(-1, project.layers.size() - 1)\n\telif event.is_action_pressed(&\"go_to_next_layer\"):\n\t\tGlobal.canvas.selection.transform_content_confirm()\n\t\tproject.selected_cels.clear()\n\t\tif project.current_layer < project.layers.size() - 1:\n\t\t\tproject.change_cel(-1, project.current_layer + 1)\n\t\telse:\n\t\t\tproject.change_cel(-1, 0)\n\telif event.is_action_pressed(&\"go_to_next_frame_with_same_tag\"):\n\t\tGlobal.canvas.selection.transform_content_confirm()\n\t\tproject.selected_cels.clear()\n\t\tvar from := 0\n\t\tvar to := project.frames.size() - 1\n\t\tfor tag in project.animation_tags:\n\t\t\tif project.current_frame + 1 >= tag.from && project.current_frame + 1 <= tag.to:\n\t\t\t\tfrom = tag.from - 1\n\t\t\t\tto = mini(to, tag.to - 1)\n\t\tif project.current_frame < to:\n\t\t\tproject.change_cel(project.current_frame + 1, -1)\n\t\telse:\n\t\t\tproject.change_cel(from, -1)\n\telif event.is_action_pressed(&\"go_to_previous_frame_with_same_tag\"):\n\t\tGlobal.canvas.selection.transform_content_confirm()\n\t\tproject.selected_cels.clear()\n\t\tvar from := 0\n\t\tvar to := project.frames.size() - 1\n\t\tfor tag in project.animation_tags:\n\t\t\tif project.current_frame + 1 >= tag.from && project.current_frame + 1 <= tag.to:\n\t\t\t\tfrom = tag.from - 1\n\t\t\t\tto = mini(to, tag.to - 1)\n\t\tif project.current_frame > from:\n\t\t\tproject.change_cel(project.current_frame - 1, -1)\n\t\telse:\n\t\t\tproject.change_cel(to, -1)\n\n\tvar mouse_pos := get_global_mouse_position()\n\tvar timeline_rect := Rect2(global_position, size)\n\tif timeline_rect.has_point(mouse_pos):\n\t\tif Input.is_key_pressed(KEY_CTRL):\n\t\t\tvar zoom := 2 * int(event.is_action(\"zoom_in\")) - 2 * int(event.is_action(\"zoom_out\"))\n\t\t\tcel_size += zoom\n\t\t\tif zoom != 0:\n\t\t\t\tget_viewport().set_input_as_handled()\n\n\nfunc reset_settings() -> void:\n\tcel_size = 36\n\t%OnionSkinningOpacity.value = 60.0\n\t%PastOnionSkinning.value = 1\n\t%FutureOnionSkinning.value = 1\n\t%BlueRedMode.button_pressed = false\n\t%PastPlacement.select(0)\n\t%FuturePlacement.select(0)\n\t%PastPlacement.item_selected.emit(0)\n\t%FuturePlacement.item_selected.emit(0)\n\tfor onion_skinning_node: Node2D in get_tree().get_nodes_in_group(\"canvas_onion_skinning\"):\n\t\tonion_skinning_node.opacity = 0.6\n\t\tonion_skinning_node.queue_redraw()\n\n\nfunc _get_minimum_size() -> Vector2:\n\t# X targets enough to see layers, 1 frame, vertical scrollbar, and padding\n\t# Y targets enough to see 1 layer\n\tif not is_instance_valid(layer_vbox):\n\t\treturn Vector2.ZERO\n\treturn Vector2(layer_vbox.size.x + cel_size + 26, cel_size + 105)\n\n\nfunc _frame_scroll_changed(_value: float) -> void:\n\t# Update the tag scroll as well:\n\tadjust_scroll_container()\n\n\nfunc _on_LayerVBox_resized() -> void:\n\tframe_scroll_bar.offset_left = frame_scroll_container.position.x\n\t# It doesn't update properly without awaits (for the first time after Pixelorama starts)\n\tawait get_tree().process_frame\n\tawait get_tree().process_frame\n\tadjust_scroll_container()\n\n\nfunc adjust_scroll_container() -> void:\n\ttag_spacer.custom_minimum_size.x = (\n\t\tframe_scroll_container.global_position.x - tag_scroll_container.global_position.x\n\t)\n\ttag_scroll_container.get_child(0).custom_minimum_size.x = frame_hbox.size.x\n\ttag_container.custom_minimum_size = frame_hbox.size\n\ttag_scroll_container.scroll_horizontal = frame_scroll_bar.value\n\n\nfunc _on_LayerFrameSplitContainer_gui_input(event: InputEvent) -> void:\n\tGlobal.config_cache.set_value(\"timeline\", \"layer_size\", layer_frame_h_split.split_offset)\n\tif (\n\t\tevent is InputEventMouseButton\n\t\tand event.button_index == MOUSE_BUTTON_LEFT\n\t\tand not event.pressed\n\t):\n\t\tupdate_minimum_size()  # After you're done resizing the layers, update min size\n\n\nfunc _cel_size_changed(value: int) -> void:\n\tif cel_size == value:\n\t\treturn\n\tcel_size = clampi(value, min_cel_size, max_cel_size)\n\tcel_size_slider.value = cel_size\n\tupdate_minimum_size()\n\tGlobal.config_cache.set_value(\"timeline\", \"cel_size\", cel_size)\n\tfor layer_button: Control in layer_vbox.get_children():\n\t\tlayer_button.custom_minimum_size.y = cel_size\n\t\tlayer_button.size.y = cel_size\n\tfor cel_hbox: Control in cel_vbox.get_children():\n\t\tfor cel_button: Control in cel_hbox.get_children():\n\t\t\tcel_button.custom_minimum_size.x = cel_size\n\t\t\tcel_button.custom_minimum_size.y = cel_size\n\t\t\tcel_button.size.x = cel_size\n\t\t\tcel_button.size.y = cel_size\n\n\tfor frame_id: Control in frame_hbox.get_children():\n\t\tframe_id.custom_minimum_size.x = cel_size\n\t\tframe_id.size.x = cel_size\n\n\tfor tag_c: Control in tag_container.get_children():\n\t\ttag_c.update_position_and_size()\n\n\n## Fill the blend modes OptionButton with items\nfunc _fill_blend_modes_option_button() -> void:\n\tblend_modes_button.clear()\n\tvar selected_layers_are_groups := true\n\tif Global.current_project.layers.size() == 0:\n\t\tselected_layers_are_groups = false\n\telse:\n\t\tfor idx_pair in Global.current_project.selected_cels:\n\t\t\tvar layer := Global.current_project.layers[idx_pair[1]]\n\t\t\tif not layer is GroupLayer:\n\t\t\t\tselected_layers_are_groups = false\n\t\t\t\tbreak\n\tif selected_layers_are_groups:\n\t\t# Special blend mode that appears only when group layers are selected\n\t\tblend_modes_button.add_item(\"Pass through\", BaseLayer.BlendModes.PASS_THROUGH)\n\tblend_modes_button.add_item(\"Normal\", BaseLayer.BlendModes.NORMAL)\n\tblend_modes_button.add_item(\"Erase\", BaseLayer.BlendModes.ERASE)\n\tblend_modes_button.add_separator(\"Darken\")\n\tblend_modes_button.add_item(\"Darken\", BaseLayer.BlendModes.DARKEN)\n\tblend_modes_button.add_item(\"Multiply\", BaseLayer.BlendModes.MULTIPLY)\n\tblend_modes_button.add_item(\"Color burn\", BaseLayer.BlendModes.COLOR_BURN)\n\tblend_modes_button.add_item(\"Linear burn\", BaseLayer.BlendModes.LINEAR_BURN)\n\tblend_modes_button.add_separator(\"Lighten\")\n\tblend_modes_button.add_item(\"Lighten\", BaseLayer.BlendModes.LIGHTEN)\n\tblend_modes_button.add_item(\"Screen\", BaseLayer.BlendModes.SCREEN)\n\tblend_modes_button.add_item(\"Color dodge\", BaseLayer.BlendModes.COLOR_DODGE)\n\tblend_modes_button.add_item(\"Add\", BaseLayer.BlendModes.ADD)\n\tblend_modes_button.add_separator(\"Contrast\")\n\tblend_modes_button.add_item(\"Overlay\", BaseLayer.BlendModes.OVERLAY)\n\tblend_modes_button.add_item(\"Soft light\", BaseLayer.BlendModes.SOFT_LIGHT)\n\tblend_modes_button.add_item(\"Hard light\", BaseLayer.BlendModes.HARD_LIGHT)\n\tblend_modes_button.add_separator(\"Inversion\")\n\tblend_modes_button.add_item(\"Difference\", BaseLayer.BlendModes.DIFFERENCE)\n\tblend_modes_button.add_item(\"Exclusion\", BaseLayer.BlendModes.EXCLUSION)\n\tblend_modes_button.add_item(\"Subtract\", BaseLayer.BlendModes.SUBTRACT)\n\tblend_modes_button.add_item(\"Divide\", BaseLayer.BlendModes.DIVIDE)\n\tblend_modes_button.add_separator(\"Component\")\n\tblend_modes_button.add_item(\"Hue\", BaseLayer.BlendModes.HUE)\n\tblend_modes_button.add_item(\"Saturation\", BaseLayer.BlendModes.SATURATION)\n\tblend_modes_button.add_item(\"Color\", BaseLayer.BlendModes.COLOR)\n\tblend_modes_button.add_item(\"Luminosity\", BaseLayer.BlendModes.LUMINOSITY)\n\n\nfunc _on_blend_modes_item_selected(index: int) -> void:\n\tvar project := Global.current_project\n\tvar current_mode := blend_modes_button.get_item_id(index)\n\tproject.undo_redo.create_action(\"Set Blend Mode\")\n\tfor idx_pair in project.selected_cels:\n\t\tvar layer := project.layers[idx_pair[1]]\n\t\tvar previous_mode := layer.blend_mode\n\t\tproject.undo_redo.add_do_property(layer, \"blend_mode\", current_mode)\n\t\tproject.undo_redo.add_undo_property(layer, \"blend_mode\", previous_mode)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_do_method(_update_layer_settings_ui)\n\tproject.undo_redo.add_do_method(_update_layers)\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_undo_method(_update_layer_settings_ui)\n\tproject.undo_redo.add_undo_method(_update_layers)\n\tproject.undo_redo.commit_action()\n\n\nfunc _update_layers() -> void:\n\tGlobal.canvas.update_all_layers = true\n\tGlobal.canvas.draw_layers()\n\n\nfunc add_frame() -> void:\n\tvar project := Global.current_project\n\tvar frame_add_index := project.current_frame + 1\n\tvar frame := project.new_empty_frame()\n\tproject.undo_redo.create_action(\"Add Frame\")\n\tfor l in range(project.layers.size()):\n\t\tif project.layers[l].new_cels_linked:  # If the link button is pressed\n\t\t\tvar prev_cel := project.frames[project.current_frame].cels[l]\n\t\t\tif prev_cel.link_set == null:\n\t\t\t\tprev_cel.link_set = {}\n\t\t\t\tproject.undo_redo.add_do_method(\n\t\t\t\t\tproject.layers[l].link_cel.bind(prev_cel, prev_cel.link_set)\n\t\t\t\t)\n\t\t\t\tproject.undo_redo.add_undo_method(project.layers[l].link_cel.bind(prev_cel, null))\n\t\t\tframe.cels[l].set_content(prev_cel.get_content(), prev_cel.image_texture)\n\t\t\tframe.cels[l].link_set = prev_cel.link_set\n\n\t# Code to PUSH AHEAD tags starting after the frame\n\tvar new_animation_tags := project.animation_tags.duplicate()\n\t# Loop through the tags to create new classes for them, so that they won't be the same\n\t# as Global.current_project.animation_tags's classes. Needed for undo/redo to work properly.\n\tfor i in new_animation_tags.size():\n\t\tnew_animation_tags[i] = new_animation_tags[i].duplicate()\n\t# Loop through the tags to see if the frame is in one\n\tfor tag in new_animation_tags:\n\t\tif frame_add_index >= tag.from && frame_add_index <= tag.to:\n\t\t\ttag.to += 1\n\t\telif (frame_add_index) < tag.from:\n\t\t\ttag.from += 1\n\t\t\ttag.to += 1\n\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_do_method(project.add_frames.bind([frame], [frame_add_index]))\n\tproject.undo_redo.add_undo_method(project.remove_frames.bind([frame_add_index]))\n\tproject.undo_redo.add_do_property(project, \"animation_tags\", new_animation_tags)\n\tproject.undo_redo.add_undo_property(project, \"animation_tags\", project.animation_tags)\n\tproject.undo_redo.add_do_method(project.change_cel.bind(project.current_frame + 1))\n\tproject.undo_redo.add_undo_method(project.change_cel.bind(project.current_frame))\n\tproject.undo_redo.commit_action()\n\t# It doesn't update properly without awaits\n\tawait get_tree().process_frame\n\tawait get_tree().process_frame\n\tadjust_scroll_container()\n\n\nfunc _on_DeleteFrame_pressed() -> void:\n\tdelete_frames()\n\n\nfunc delete_frames(indices: PackedInt32Array = []) -> void:\n\tvar project := Global.current_project\n\tif project.frames.size() == 1:\n\t\treturn\n\n\tif indices.size() == 0:\n\t\tfor cel in Global.current_project.selected_cels:\n\t\t\tvar f: int = cel[0]\n\t\t\tif not f in indices:\n\t\t\t\tindices.append(f)\n\t\tindices.sort()\n\n\tif indices.size() == project.frames.size():\n\t\tindices.remove_at(indices.size() - 1)  # Ensure the project has at least 1 frame\n\n\tvar current_frame := mini(project.current_frame, project.frames.size() - indices.size() - 1)\n\tvar frames: Array[Frame] = []\n\tvar frame_correction := 0  # Only needed for tag adjustment\n\n\tvar new_animation_tags := project.animation_tags.duplicate()\n\t# Loop through the tags to create new classes for them, so that they won't be the same\n\t# as Global.current_project.animation_tags's classes. Needed for undo/redo to work properly.\n\tfor i in new_animation_tags.size():\n\t\tnew_animation_tags[i] = new_animation_tags[i].duplicate()\n\n\tfor f in indices:\n\t\tframes.append(project.frames[f])\n\n\t\t# Loop through the tags to see if the frame is in one\n\t\tf -= frame_correction  # Erasing made frames indexes 1 step ahead their intended tags\n\t\tvar tag_correction := 0  # needed when tag is erased\n\t\tfor tag_ind in new_animation_tags.size():\n\t\t\tvar tag = new_animation_tags[tag_ind - tag_correction]\n\t\t\tif f + 1 >= tag.from && f + 1 <= tag.to:\n\t\t\t\tif tag.from == tag.to:  # If we're deleting the only frame in the tag\n\t\t\t\t\tnew_animation_tags.erase(tag)\n\t\t\t\t\ttag_correction += 1\n\t\t\t\telse:\n\t\t\t\t\ttag.to -= 1\n\t\t\telif f + 1 < tag.from:\n\t\t\t\ttag.from -= 1\n\t\t\t\ttag.to -= 1\n\t\tframe_correction += 1  # Compensation for the next batch\n\n\tproject.undo_redo.create_action(\"Remove Frame\")\n\tproject.undo_redo.add_do_method(project.remove_frames.bind(indices))\n\tproject.undo_redo.add_undo_method(project.add_frames.bind(frames, indices))\n\tproject.undo_redo.add_do_property(project, \"animation_tags\", new_animation_tags)\n\tproject.undo_redo.add_undo_property(project, \"animation_tags\", project.animation_tags)\n\tproject.undo_redo.add_do_method(project.change_cel.bind(current_frame))\n\tproject.undo_redo.add_undo_method(project.change_cel.bind(project.current_frame))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.commit_action()\n\t# It doesn't update properly without awaits\n\tawait get_tree().process_frame\n\tawait get_tree().process_frame\n\tadjust_scroll_container()\n\n\nfunc _on_CopyFrame_pressed() -> void:\n\tcopy_frames([], -1, false)\n\n\n## Copies frames located at [param indices] and inserts them at [param destination].\n## When [param destination] is -1, the new frames will be placed right next to the last frame in\n## [param destination]. if [param select_all_cels] is [code]true[/code] then all of the new copied\n## cels will be selected, otherwise only the cels corresponding to the original selected cels will\n## get selected. if [param tag_name_from] holds an animation tag then a tag of it's name will be\n## created over the new frames.\n## [br]Note: [param indices] must be in ascending order\nfunc copy_frames(\n\tindices := [], destination := -1, select_all_cels := true, tag_name_from: AnimationTag = null\n) -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tvar project := Global.current_project\n\n\tif indices.size() == 0:\n\t\tfor cel in Global.current_project.selected_cels:\n\t\t\tvar f: int = cel[0]\n\t\t\tif not f in indices:\n\t\t\t\tindices.append(f)\n\t\tindices.sort()\n\n\tvar copied_frames: Array[Frame] = []\n\tvar copied_indices := PackedInt32Array()  # the indices of newly copied frames\n\n\tif destination != -1:\n\t\tcopied_indices = range(destination + 1, (destination + 1) + indices.size())\n\telse:\n\t\tcopied_indices = range(indices[-1] + 1, indices[-1] + 1 + indices.size())\n\tvar new_animation_tags := project.animation_tags.duplicate()\n\t# Loop through the tags to create new classes for them, so that they won't be the same\n\t# as project.animation_tags's classes. Needed for undo/redo to work properly.\n\tfor i in new_animation_tags.size():\n\t\tnew_animation_tags[i] = new_animation_tags[i].duplicate()\n\tproject.undo_redo.create_action(\"Add Frame\")\n\tvar last_focus_cels := []\n\tfor f in indices:\n\t\tvar src_frame := project.frames[f]\n\t\tvar new_frame := Frame.new()\n\t\tcopied_frames.append(new_frame)\n\n\t\tnew_frame.duration = src_frame.duration\n\t\tfor l in range(project.layers.size()):\n\t\t\tif [f, l] in project.selected_cels:\n\t\t\t\tlast_focus_cels.append([copied_indices[indices.find(f)], l])\n\t\t\tvar src_cel := project.frames[f].cels[l]  # Cel we're copying from, the source\n\t\t\tvar new_cel := src_cel.duplicate_cel()\n\t\t\tif project.layers[l].new_cels_linked:\n\t\t\t\tif src_cel.link_set == null:\n\t\t\t\t\tsrc_cel.link_set = {}\n\t\t\t\t\tproject.undo_redo.add_do_method(\n\t\t\t\t\t\tproject.layers[l].link_cel.bind(src_cel, src_cel.link_set)\n\t\t\t\t\t)\n\t\t\t\t\tproject.undo_redo.add_undo_method(\n\t\t\t\t\t\tproject.layers[l].link_cel.bind(src_cel, null)\n\t\t\t\t\t)\n\t\t\t\tnew_cel.set_content(src_cel.get_content(), src_cel.image_texture)\n\t\t\t\tnew_cel.link_set = src_cel.link_set\n\t\t\telse:\n\t\t\t\tnew_cel.set_content(src_cel.copy_content())\n\n\t\t\tnew_frame.cels.append(new_cel)\n\n\t\t# After adding one frame, loop through the tags to see if the frame was in an animation tag\n\t\tfor tag in new_animation_tags:\n\t\t\tif copied_indices[0] >= tag.from && copied_indices[0] <= tag.to:\n\t\t\t\ttag.to += 1\n\t\t\telif copied_indices[0] < tag.from:\n\t\t\t\ttag.from += 1\n\t\t\t\ttag.to += 1\n\tif tag_name_from:\n\t\tnew_animation_tags.append(\n\t\t\tAnimationTag.new(\n\t\t\t\ttag_name_from.name,\n\t\t\t\ttag_name_from.color,\n\t\t\t\tcopied_indices[0] + 1,\n\t\t\t\tcopied_indices[-1] + 1\n\t\t\t)\n\t\t)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\t# Note: temporarily set the selected cels to an empty array (needed for undo/redo)\n\tproject.undo_redo.add_do_property(project, \"selected_cels\", [])\n\tproject.undo_redo.add_undo_property(project, \"selected_cels\", [])\n\tproject.undo_redo.add_do_method(project.add_frames.bind(copied_frames, copied_indices))\n\tproject.undo_redo.add_undo_method(project.remove_frames.bind(copied_indices))\n\tif select_all_cels:\n\t\tvar all_new_cels := []\n\t\t# Select all the new frames so that it is easier to move/offset collectively if user wants\n\t\t# To ease animation workflow, new current frame is the first copied frame instead of the last\n\t\tvar range_start := copied_indices[-1]\n\t\tvar range_end := copied_indices[0]\n\t\tvar frame_diff_sign := signi(range_end - range_start)\n\t\tif frame_diff_sign == 0:\n\t\t\tframe_diff_sign = 1\n\t\tfor i in range(range_start, range_end + frame_diff_sign, frame_diff_sign):\n\t\t\tfor j in range(0, project.layers.size()):\n\t\t\t\tvar frame_layer := [i, j]\n\t\t\t\tif !all_new_cels.has(frame_layer):\n\t\t\t\t\tall_new_cels.append(frame_layer)\n\t\tproject.undo_redo.add_do_property(project, \"selected_cels\", all_new_cels)\n\t\tproject.undo_redo.add_do_method(project.change_cel.bind(range_end))\n\telse:\n\t\tproject.undo_redo.add_do_property(project, \"selected_cels\", last_focus_cels)\n\t\tproject.undo_redo.add_do_method(project.change_cel.bind(copied_indices[0]))\n\tproject.undo_redo.add_undo_property(project, \"selected_cels\", project.selected_cels)\n\tproject.undo_redo.add_undo_method(project.change_cel.bind(project.current_frame))\n\tproject.undo_redo.add_do_property(project, \"animation_tags\", new_animation_tags)\n\tproject.undo_redo.add_undo_property(project, \"animation_tags\", project.animation_tags)\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_MoveLeft_pressed() -> void:\n\tif Global.current_project.current_frame == 0:\n\t\treturn\n\tmove_frames(Global.current_project.current_frame, -1)\n\n\nfunc _on_MoveRight_pressed() -> void:\n\tif Global.current_project.current_frame == Global.current_project.frames.size() - 1:\n\t\treturn\n\tmove_frames(Global.current_project.current_frame, 1)\n\n\nfunc move_frames(frame: int, rate: int) -> void:\n\tvar project := Global.current_project\n\tvar frame_indices: PackedInt32Array = []\n\tvar moved_frame_indices: PackedInt32Array = []\n\tfor cel in project.selected_cels:\n\t\tvar frame_index: int = cel[0]\n\t\tif not frame_indices.has(frame_index):\n\t\t\tframe_indices.append(frame_index)\n\t\t\tmoved_frame_indices.append(frame_index + rate)\n\tframe_indices.sort()\n\tmoved_frame_indices.sort()\n\tif not frame in frame_indices:\n\t\tframe_indices = [frame]\n\t\tmoved_frame_indices = [frame + rate]\n\tfor moved_index in moved_frame_indices:\n\t\t# Don't allow frames to be moved if they are out of bounds\n\t\tif moved_index < 0 or moved_index >= project.frames.size():\n\t\t\treturn\n\n\t# Code to RECALCULATE tags due to frame movement\n\tvar new_animation_tags := project.animation_tags.duplicate()\n\t# Loop through the tags to create new classes for them, so that they won't be the same\n\t# as Global.current_project.animation_tags's classes. Needed for undo/redo to work properly.\n\tfor i in new_animation_tags.size():\n\t\tnew_animation_tags[i] = new_animation_tags[i].duplicate()\n\tfor tag: AnimationTag in new_animation_tags:\n\t\tif tag.from - 1 in frame_indices:  # check if the calculation is needed\n\t\t\t# move tag if all it's frames are moved\n\t\t\tif tag.frames_array().all(func(element): return element in frame_indices):\n\t\t\t\ttag.from += moved_frame_indices[0] - frame_indices[0]\n\t\t\t\ttag.to += moved_frame_indices[0] - frame_indices[0]\n\t\t\t\tcontinue\n\t\tvar new_from := tag.from\n\t\tvar new_to := tag.to\n\t\tfor i in frame_indices:  # calculation of new tag positions (When frames are taken away)\n\t\t\tif tag.has_frame(i):\n\t\t\t\tnew_to -= 1\n\t\t\telif i < tag.to - 1:\n\t\t\t\tnew_from -= 1\n\t\t\t\tnew_to -= 1\n\t\ttag.from = new_from\n\t\ttag.to = new_to\n\t\t# calculation of new tag positions (When frames are added back)\n\t\tfor i in moved_frame_indices:\n\t\t\tif tag.has_frame(i) or i == tag.to:\n\t\t\t\ttag.to += 1\n\t\t\telif i < tag.from - 1:\n\t\t\t\ttag.from += 1\n\t\t\t\ttag.to += 1\n\n\tproject.undo_redo.create_action(\"Change Frame Order\")\n\tproject.undo_redo.add_do_method(project.move_frames.bind(frame_indices, moved_frame_indices))\n\tproject.undo_redo.add_undo_method(project.move_frames.bind(moved_frame_indices, frame_indices))\n\tproject.undo_redo.add_do_property(project, \"animation_tags\", new_animation_tags)\n\tproject.undo_redo.add_undo_property(project, \"animation_tags\", project.animation_tags)\n\n\t# If current frame was part of the moved frames (select all  frames)\n\tif project.current_frame in frame_indices:\n\t\tvar all_new_cels := []\n\t\t# Select all the new frames so that it is easier to move/offset collectively if user wants\n\t\t# To ease animation workflow, new current frame is the first copied frame instead of the last\n\t\tvar range_start := moved_frame_indices[-1]\n\t\tvar range_end := moved_frame_indices[0]\n\t\tvar frame_diff_sign := signi(range_end - range_start)\n\t\tif frame_diff_sign == 0:\n\t\t\tframe_diff_sign = 1\n\t\tfor i in range(range_start, range_end + frame_diff_sign, frame_diff_sign):\n\t\t\tfor j in range(0, project.layers.size()):\n\t\t\t\tvar frame_layer := [i, j]\n\t\t\t\tif !all_new_cels.has(frame_layer):\n\t\t\t\t\tall_new_cels.append(frame_layer)\n\t\tproject.undo_redo.add_do_property(project, \"selected_cels\", all_new_cels)\n\t\tproject.undo_redo.add_do_method(project.change_cel.bind(frame + rate))\n\telse:\n\t\tproject.undo_redo.add_do_method(project.change_cel.bind(project.current_frame))\n\tproject.undo_redo.add_undo_method(project.change_cel.bind(project.current_frame))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.commit_action()\n\n\nfunc reverse_frames(indices: PackedInt32Array = []) -> void:\n\tvar project := Global.current_project\n\tproject.undo_redo.create_action(\"Change Frame Order\")\n\tproject.undo_redo.add_do_method(project.reverse_frames.bind(indices))\n\tproject.undo_redo.add_undo_method(project.reverse_frames.bind(indices))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_OnionSkinning_pressed() -> void:\n\tGlobal.onion_skinning = !Global.onion_skinning\n\tGlobal.canvas.refresh_onion()\n\tvar texture_button: TextureRect = onion_skinning_button.get_child(0)\n\tif Global.onion_skinning:\n\t\tGlobal.change_button_texturerect(texture_button, \"onion_skinning.png\")\n\telse:\n\t\tGlobal.change_button_texturerect(texture_button, \"onion_skinning_off.png\")\n\n\nfunc _on_timeline_settings_button_pressed() -> void:\n\tvar pos := Vector2i(onion_skinning_button.global_position) - timeline_settings.size\n\ttimeline_settings.popup_on_parent(Rect2i(pos.x - 16, pos.y + 32, 136, 126))\n\n\nfunc _on_LoopAnim_pressed() -> void:\n\tvar texture_button: TextureRect = loop_animation_button.get_child(0)\n\tmatch animation_loop:\n\t\tLoopType.NO:\n\t\t\tanimation_loop = LoopType.CYCLE\n\t\t\tGlobal.change_button_texturerect(texture_button, \"loop.png\")\n\t\t\tloop_animation_button.tooltip_text = \"Cycle loop\"\n\t\tLoopType.CYCLE:\n\t\t\tanimation_loop = LoopType.PINGPONG\n\t\t\tGlobal.change_button_texturerect(texture_button, \"loop_pingpong.png\")\n\t\t\tloop_animation_button.tooltip_text = \"Ping-pong loop\"\n\t\tLoopType.PINGPONG:\n\t\t\tanimation_loop = LoopType.NO\n\t\t\tGlobal.change_button_texturerect(texture_button, \"loop_none.png\")\n\t\t\tloop_animation_button.tooltip_text = \"No loop\"\n\n\nfunc _on_PlayForward_toggled(button_pressed: bool) -> void:\n\tif button_pressed:\n\t\tGlobal.change_button_texturerect(play_forward.get_child(0), \"pause.png\")\n\telse:\n\t\tGlobal.change_button_texturerect(play_forward.get_child(0), \"play.png\")\n\tplay_animation(button_pressed, true)\n\n\nfunc _on_PlayBackwards_toggled(button_pressed: bool) -> void:\n\tif button_pressed:\n\t\tGlobal.change_button_texturerect(play_backwards.get_child(0), \"pause.png\")\n\telse:\n\t\tGlobal.change_button_texturerect(play_backwards.get_child(0), \"play_backwards.png\")\n\tplay_animation(button_pressed, false)\n\n\n## Called on each frame of the animation\nfunc _on_AnimationTimer_timeout() -> void:\n\tif first_frame == last_frame:\n\t\tplay_forward.button_pressed = false\n\t\tplay_backwards.button_pressed = false\n\t\tanimation_timer.stop()\n\t\treturn\n\n\tGlobal.canvas.selection.transform_content_confirm()\n\tvar project := Global.current_project\n\tvar fps := project.fps\n\t# Recalculate start and end points if user deliberately changed the frame.\n\tif project.current_frame != animation_canon_frame:\n\t\tcalculate_start_end(project)\n\tif animation_forward:\n\t\tif project.current_frame < last_frame:\n\t\t\tproject.selected_cels.clear()\n\t\t\tproject.change_cel(project.current_frame + 1, -1)\n\t\t\tanimation_timer.wait_time = (\n\t\t\t\tproject.frames[project.current_frame].get_duration_in_seconds(fps)\n\t\t\t)\n\t\t\tanimation_timer.start()  # Change the frame, change the wait time and start a cycle\n\t\telse:\n\t\t\tmatch animation_loop:\n\t\t\t\tLoopType.NO:\n\t\t\t\t\tplay_forward.button_pressed = false\n\t\t\t\t\tplay_backwards.button_pressed = false\n\t\t\t\t\tanimation_timer.stop()\n\t\t\t\t\tanimation_finished.emit()\n\t\t\t\t\tis_animation_running = false\n\t\t\t\tLoopType.CYCLE:\n\t\t\t\t\tproject.selected_cels.clear()\n\t\t\t\t\tproject.change_cel(first_frame, -1)\n\t\t\t\t\tanimation_timer.wait_time = (\n\t\t\t\t\t\tproject.frames[project.current_frame].get_duration_in_seconds(fps)\n\t\t\t\t\t)\n\t\t\t\t\tanimation_looped.emit()\n\t\t\t\t\tanimation_timer.start()\n\t\t\t\tLoopType.PINGPONG:\n\t\t\t\t\tanimation_forward = false\n\t\t\t\t\tanimation_looped.emit()\n\t\t\t\t\t_on_AnimationTimer_timeout()\n\n\telse:\n\t\tif project.current_frame > first_frame:\n\t\t\tproject.selected_cels.clear()\n\t\t\tproject.change_cel(project.current_frame - 1, -1)\n\t\t\tanimation_timer.wait_time = (\n\t\t\t\tproject.frames[project.current_frame].get_duration_in_seconds(fps)\n\t\t\t)\n\t\t\tanimation_timer.start()\n\t\telse:\n\t\t\tmatch animation_loop:\n\t\t\t\tLoopType.NO:\n\t\t\t\t\tplay_backwards.button_pressed = false\n\t\t\t\t\tplay_forward.button_pressed = false\n\t\t\t\t\tanimation_timer.stop()\n\t\t\t\t\tanimation_finished.emit()\n\t\t\t\t\tis_animation_running = false\n\t\t\t\tLoopType.CYCLE:\n\t\t\t\t\tproject.selected_cels.clear()\n\t\t\t\t\tproject.change_cel(last_frame, -1)\n\t\t\t\t\tanimation_timer.wait_time = (\n\t\t\t\t\t\tproject.frames[project.current_frame].get_duration_in_seconds(fps)\n\t\t\t\t\t)\n\t\t\t\t\tanimation_looped.emit()\n\t\t\t\t\tanimation_timer.start()\n\t\t\t\tLoopType.PINGPONG:\n\t\t\t\t\tanimation_forward = true\n\t\t\t\t\tanimation_looped.emit()\n\t\t\t\t\t_on_AnimationTimer_timeout()\n\tanimation_canon_frame = project.current_frame\n\n\nfunc calculate_start_end(project: Project) -> void:\n\tfirst_frame = 0\n\tlast_frame = project.frames.size() - 1\n\tif Global.play_only_tags:\n\t\tfor tag in project.animation_tags:\n\t\t\tif project.current_frame + 1 >= tag.from && project.current_frame + 1 <= tag.to:\n\t\t\t\tfirst_frame = tag.from - 1\n\t\t\t\tlast_frame = mini(project.frames.size() - 1, tag.to - 1)\n\n\nfunc play_animation(play: bool, forward_dir: bool) -> void:\n\tvar project := Global.current_project\n\tcalculate_start_end(project)\n\n\tif first_frame == last_frame:\n\t\tif forward_dir:\n\t\t\tplay_forward.button_pressed = false\n\t\telse:\n\t\t\tplay_backwards.button_pressed = false\n\t\treturn\n\n\tif forward_dir:\n\t\tplay_backwards.toggled.disconnect(_on_PlayBackwards_toggled)\n\t\tplay_backwards.button_pressed = false\n\t\tGlobal.change_button_texturerect(play_backwards.get_child(0), \"play_backwards.png\")\n\t\tplay_backwards.toggled.connect(_on_PlayBackwards_toggled)\n\telse:\n\t\tplay_forward.toggled.disconnect(_on_PlayForward_toggled)\n\t\tplay_forward.button_pressed = false\n\t\tGlobal.change_button_texturerect(play_forward.get_child(0), \"play.png\")\n\t\tplay_forward.toggled.connect(_on_PlayForward_toggled)\n\n\tif play:\n\t\tanimation_timer.set_one_shot(true)  # wait_time can't change correctly if it's playing\n\t\tvar frame := project.frames[project.current_frame]\n\t\tanimation_canon_frame = project.current_frame\n\t\tanimation_timer.wait_time = frame.get_duration_in_seconds(project.fps)\n\t\tanimation_timer.start()\n\t\tanimation_forward = forward_dir\n\t\tanimation_started.emit(forward_dir)\n\telse:\n\t\tanimation_timer.stop()\n\t\tanimation_finished.emit()\n\n\tis_animation_running = play\n\n\nfunc _on_NextFrame_pressed() -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tvar project := Global.current_project\n\tproject.selected_cels.clear()\n\tif project.current_frame < project.frames.size() - 1:\n\t\tproject.change_cel(project.current_frame + 1, -1)\n\telse:\n\t\tproject.change_cel(0, -1)\n\n\nfunc _on_PreviousFrame_pressed() -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tvar project := Global.current_project\n\tproject.selected_cels.clear()\n\tif project.current_frame > 0:\n\t\tproject.change_cel(project.current_frame - 1, -1)\n\telse:\n\t\tproject.change_cel(project.frames.size() - 1, -1)\n\n\nfunc _on_LastFrame_pressed() -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tGlobal.current_project.selected_cels.clear()\n\tGlobal.current_project.change_cel(Global.current_project.frames.size() - 1, -1)\n\n\nfunc _on_FirstFrame_pressed() -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tGlobal.current_project.selected_cels.clear()\n\tGlobal.current_project.change_cel(0, -1)\n\n\nfunc _on_FPSValue_value_changed(value: float) -> void:\n\tGlobal.current_project.fps = value\n\tanimation_timer.wait_time = 1.0 / Global.current_project.fps\n\n\nfunc _on_PastOnionSkinning_value_changed(value: float) -> void:\n\tGlobal.onion_skinning_past_rate = int(value)\n\tGlobal.config_cache.set_value(\"timeline\", \"past_rate\", Global.onion_skinning_past_rate)\n\tGlobal.canvas.queue_redraw()\n\n\nfunc _on_FutureOnionSkinning_value_changed(value: float) -> void:\n\tGlobal.onion_skinning_future_rate = int(value)\n\tGlobal.config_cache.set_value(\"timeline\", \"future_rate\", Global.onion_skinning_future_rate)\n\tGlobal.canvas.queue_redraw()\n\n\nfunc _on_BlueRedMode_toggled(button_pressed: bool) -> void:\n\tGlobal.onion_skinning_blue_red = button_pressed\n\tGlobal.config_cache.set_value(\"timeline\", \"blue_red\", Global.onion_skinning_blue_red)\n\tGlobal.canvas.queue_redraw()\n\n\nfunc _on_play_only_tags_toggled(toggled_on: bool) -> void:\n\tGlobal.play_only_tags = toggled_on\n\n\nfunc _on_PastPlacement_item_selected(index: int) -> void:\n\tpast_above_canvas = (index == 0)\n\tGlobal.config_cache.set_value(\"timeline\", \"past_above_canvas\", past_above_canvas)\n\tGlobal.canvas.get_node(\"OnionPast\").set(\"show_behind_parent\", !past_above_canvas)\n\n\nfunc _on_FuturePlacement_item_selected(index: int) -> void:\n\tfuture_above_canvas = (index == 0)\n\tGlobal.config_cache.set_value(\"timeline\", \"future_above_canvas\", future_above_canvas)\n\tGlobal.canvas.get_node(\"OnionFuture\").set(\"show_behind_parent\", !future_above_canvas)\n\n\n# Layer buttons\nfunc _on_add_layer_pressed() -> void:\n\tvar project := Global.current_project\n\tvar layer := PixelLayer.new(project)\n\tadd_layer(layer, project)\n\n\nfunc on_add_layer_list_id_pressed(id: int) -> void:\n\tif id == Global.LayerTypes.TILEMAP:\n\t\tnew_tile_map_layer_dialog.popup_centered_clamped()\n\telse:\n\t\tvar project := Global.current_project\n\t\tvar layer: BaseLayer\n\t\tmatch id:\n\t\t\tGlobal.LayerTypes.PIXEL:\n\t\t\t\tlayer = PixelLayer.new(project)\n\t\t\tGlobal.LayerTypes.GROUP:\n\t\t\t\tlayer = GroupLayer.new(project)\n\t\t\tGlobal.LayerTypes.THREE_D:\n\t\t\t\tlayer = Layer3D.new(project)\n\t\t\t\tSteamManager.set_achievement(\"ACH_3D_LAYER\")\n\t\t\tGlobal.LayerTypes.AUDIO:\n\t\t\t\tlayer = AudioLayer.new(project)\n\t\tadd_layer(layer, project)\n\n\nfunc add_layer(layer: BaseLayer, project: Project) -> void:\n\tvar current_layer := project.layers[project.current_layer]\n\tvar cels := []\n\tfor f in project.frames:\n\t\tcels.append(layer.new_empty_cel())\n\n\tvar new_layer_idx := project.current_layer + 1\n\tif current_layer is GroupLayer:\n\t\tnew_layer_idx = project.current_layer\n\t\tif !current_layer.expanded:\n\t\t\tcurrent_layer.expanded = true\n\t\t\tfor layer_button: LayerButton in layer_vbox.get_children():\n\t\t\t\tlayer_button.update_buttons()\n\t\t\t\tvar expanded := project.layers[layer_button.layer_index].is_expanded_in_hierarchy()\n\t\t\t\tlayer_button.visible = expanded\n\t\t\t\tcel_vbox.get_child(layer_button.get_index()).visible = expanded\n\t\t# Make layer child of group.\n\t\tlayer.parent = project.layers[project.current_layer]\n\telse:\n\t\t# Set the parent of layer to be the same as the layer below it.\n\t\tlayer.parent = project.layers[project.current_layer].parent\n\n\tproject.undo_redo.create_action(\"Add Layer\")\n\tproject.undo_redo.add_do_method(project.add_layers.bind([layer], [new_layer_idx], [cels]))\n\tproject.undo_redo.add_undo_method(project.remove_layers.bind([new_layer_idx]))\n\tproject.undo_redo.add_do_method(project.change_cel.bind(-1, new_layer_idx))\n\tproject.undo_redo.add_undo_method(project.change_cel.bind(-1, project.current_layer))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_CloneLayer_pressed() -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tvar project := Global.current_project\n\tvar source_layers := project.layers[project.current_layer].get_children(true)\n\tsource_layers.append(project.layers[project.current_layer])\n\n\tvar clones: Array[BaseLayer] = []\n\tvar cels := []  # 2D Array of Cels\n\tfor src_layer in source_layers:\n\t\tvar cl_layer: BaseLayer\n\t\tif src_layer is LayerTileMap:\n\t\t\tcl_layer = LayerTileMap.new(project, src_layer.tileset)\n\t\t\tcl_layer.place_only_mode = src_layer.place_only_mode\n\t\t\tcl_layer.tile_size = src_layer.tile_size\n\t\t\tcl_layer.tile_shape = src_layer.tile_shape\n\t\t\tcl_layer.tile_layout = src_layer.tile_layout\n\t\t\tcl_layer.tile_offset_axis = src_layer.tile_offset_axis\n\t\telse:\n\t\t\tcl_layer = src_layer.get_script().new(project)\n\t\t\tif src_layer is AudioLayer:\n\t\t\t\tcl_layer.audio = src_layer.audio\n\t\tcl_layer.project = project\n\t\tcl_layer.index = src_layer.index\n\t\tvar src_layer_data: Dictionary = src_layer.serialize()\n\t\tfor link_set in src_layer_data.get(\"link_sets\", []):\n\t\t\tlink_set[\"cels\"].clear()  # Clear away the indices\n\t\tcl_layer.deserialize(src_layer_data)\n\t\tclones.append(cl_layer)\n\n\t\tcels.append([])\n\n\t\tfor frame in project.frames:\n\t\t\tvar src_cel := frame.cels[src_layer.index]\n\t\t\tvar new_cel := src_cel.duplicate_cel()\n\n\t\t\tif src_cel.link_set == null:\n\t\t\t\tnew_cel.set_content(src_cel.copy_content())\n\t\t\telse:\n\t\t\t\tnew_cel.link_set = cl_layer.cel_link_sets[src_layer.cel_link_sets.find(\n\t\t\t\t\tsrc_cel.link_set\n\t\t\t\t)]\n\t\t\t\tif new_cel.link_set[\"cels\"].size() > 0:\n\t\t\t\t\tvar linked_cel: BaseCel = new_cel.link_set[\"cels\"][0]\n\t\t\t\t\tnew_cel.set_content(linked_cel.get_content(), linked_cel.image_texture)\n\t\t\t\telse:\n\t\t\t\t\tnew_cel.set_content(src_cel.copy_content())\n\t\t\t\tnew_cel.link_set[\"cels\"].append(new_cel)\n\n\t\t\tcels[-1].append(new_cel)\n\n\tfor cl_layer in clones:\n\t\tvar p := source_layers.find(cl_layer.parent)\n\t\tif p > -1:  # Swap parent with clone if the parent is one of the source layers\n\t\t\tcl_layer.parent = clones[p]\n\t\telse:  # Add (Copy) to the name if its not a child of another copied layer\n\t\t\tcl_layer.name = str(cl_layer.name, \" (\", tr(\"copy\"), \")\")\n\n\tvar indices: PackedInt32Array = range(\n\t\tproject.current_layer + 1, project.current_layer + clones.size() + 1\n\t)\n\n\tproject.undo_redo.create_action(\"Add Layer\")\n\tproject.undo_redo.add_do_method(project.add_layers.bind(clones, indices, cels))\n\tproject.undo_redo.add_undo_method(project.remove_layers.bind(indices))\n\tproject.undo_redo.add_do_method(\n\t\tproject.change_cel.bind(-1, project.current_layer + clones.size())\n\t)\n\tproject.undo_redo.add_undo_method(project.change_cel.bind(-1, project.current_layer))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_RemoveLayer_pressed() -> void:\n\tvar project := Global.current_project\n\tif project.layers.size() == 1:\n\t\treturn\n\n\tvar indices := PackedInt32Array()\n\tfor cel in project.selected_cels:\n\t\tvar layer_index: int = cel[1]\n\t\tvar layer := project.layers[layer_index]\n\t\tif not layer_index in indices:\n\t\t\tvar children := project.layers[layer_index].get_children(true)\n\t\t\tfor child in children:\n\t\t\t\tif not child.index in indices:\n\t\t\t\t\tindices.append(child.index)\n\t\t\tindices.append(layer.index)\n\tindices.sort()\n\n\tvar layers: Array[BaseLayer]\n\tvar cels := []\n\tfor index in indices:\n\t\tlayers.append(project.layers[index])\n\t\tcels.append([])\n\t\tfor frame in project.frames:\n\t\t\tcels[-1].append(frame.cels[index])\n\n\tproject.undo_redo.create_action(\"Remove Layer\")\n\tproject.undo_redo.add_do_method(project.remove_layers.bind(indices))\n\tproject.undo_redo.add_undo_method(project.add_layers.bind(layers, indices, cels))\n\tproject.undo_redo.add_do_method(project.change_cel.bind(-1, maxi(indices[0] - 1, 0)))\n\tproject.undo_redo.add_undo_method(project.change_cel.bind(-1, project.current_layer))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.commit_action()\n\n\n## Move the layer up or down in layer order and/or reparent to be deeper/shallower in the\n## layer hierarchy depending on its current index and parent\nfunc change_layer_order(up: bool) -> void:\n\tvar project := Global.current_project\n\tvar layer := project.layers[project.current_layer]\n\tvar child_count := layer.get_child_count(true)\n\tvar from_indices: PackedInt32Array = range(layer.index - child_count, layer.index + 1)\n\tvar from_parents := []\n\tfor l in from_indices:\n\t\tfrom_parents.append(project.layers[l].parent)\n\tvar to_parents := from_parents.duplicate()\n\tvar to_index := layer.index - child_count  # the index where the LOWEST shifted layer should end up\n\n\tif up:\n\t\tvar above_layer := project.layers[project.current_layer + 1]\n\t\tif layer.parent == above_layer:  # Above is the parent, leave the parent and go up\n\t\t\tto_parents[-1] = above_layer.parent\n\t\t\tto_index = to_index + 1\n\t\telif layer.parent != above_layer.parent:  # Above layer must be deeper in the hierarchy\n\t\t\t# Move layer 1 level deeper in hierarchy. Done by setting its parent to the parent of\n\t\t\t# above_layer, and if that is multiple levels, drop levels until its just 1\n\t\t\tto_parents[-1] = above_layer.parent\n\t\t\twhile to_parents[-1].parent != layer.parent:\n\t\t\t\tto_parents[-1] = to_parents[-1].parent\n\t\telif above_layer.accepts_child(layer):\n\t\t\tto_parents[-1] = above_layer\n\t\telse:\n\t\t\tto_index = to_index + 1\n\telse:  # Down\n\t\tif layer.index == child_count:  # If at the very bottom of the layer stack\n\t\t\tif not is_instance_valid(layer.parent):\n\t\t\t\treturn\n\t\t\tto_parents[-1] = layer.parent.parent  # Drop a level in the hierarchy\n\t\telse:\n\t\t\tvar below_layer := project.layers[project.current_layer - 1 - child_count]\n\t\t\tif layer.parent != below_layer.parent:  # If there is a hierarchy change\n\t\t\t\tto_parents[-1] = layer.parent.parent  # Drop a level in the hierarchy\n\t\t\telif below_layer.accepts_child(layer):\n\t\t\t\tto_parents[-1] = below_layer\n\t\t\t\tto_index = to_index - 1\n\t\t\telse:\n\t\t\t\tto_index = to_index - 1\n\n\tvar to_indices: PackedInt32Array = range(to_index, to_index + child_count + 1)\n\n\tproject.undo_redo.create_action(\"Change Layer Order\")\n\tproject.undo_redo.add_do_method(project.move_layers.bind(from_indices, to_indices, to_parents))\n\tproject.undo_redo.add_undo_method(\n\t\tproject.move_layers.bind(to_indices, from_indices, from_parents)\n\t)\n\tproject.undo_redo.add_do_method(project.change_cel.bind(-1, to_index + child_count))\n\tproject.undo_redo.add_undo_method(project.change_cel.bind(-1, project.current_layer))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_MergeDownLayer_pressed() -> void:\n\tvar project := Global.current_project\n\tvar top_layer := project.layers[project.current_layer]\n\tvar bottom_layer := project.layers[project.current_layer - 1]\n\tif not bottom_layer is PixelLayer:\n\t\treturn\n\tvar top_cels := []\n\n\tproject.undo_redo.create_action(\"Merge Layer\")\n\tfor frame in project.frames:\n\t\tvar top_cel := frame.cels[top_layer.index]\n\t\ttop_cels.append(top_cel)  # Store for undo purposes\n\n\t\tvar top_image := top_layer.display_effects(top_cel)\n\t\tvar bottom_cel := frame.cels[bottom_layer.index] as PixelCel\n\t\tvar bottom_image := bottom_cel.get_image()\n\t\tvar textures: Array[Image] = []\n\t\ttextures.append(bottom_image)\n\t\ttextures.append(top_image)\n\t\tvar metadata_image := Image.create(2, 4, false, Image.FORMAT_R8)\n\t\tDrawingAlgos.set_layer_metadata_image(bottom_layer, bottom_cel, metadata_image, 0)\n\t\tmetadata_image.set_pixel(0, 1, Color(1.0, 0.0, 0.0, 0.0))\n\t\tDrawingAlgos.set_layer_metadata_image(top_layer, top_cel, metadata_image, 1)\n\t\tvar texture_array := Texture2DArray.new()\n\t\ttexture_array.create_from_images(textures)\n\t\tvar params := {\n\t\t\t\"layers\": texture_array, \"metadata\": ImageTexture.create_from_image(metadata_image)\n\t\t}\n\t\tvar new_bottom_image := ImageExtended.create_custom(\n\t\t\ttop_image.get_width(),\n\t\t\ttop_image.get_height(),\n\t\t\ttop_image.has_mipmaps(),\n\t\t\ttop_image.get_format(),\n\t\t\tproject.is_indexed()\n\t\t)\n\t\t# Merge the image itself.\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(new_bottom_image, DrawingAlgos.blend_layers_shader, params, project.size)\n\t\tnew_bottom_image.convert_rgb_to_indexed()\n\t\tif (\n\t\t\tbottom_cel.link_set != null\n\t\t\tand bottom_cel.link_set.size() > 1\n\t\t\tand not top_image.is_invisible()\n\t\t):\n\t\t\t# Unlink cel:\n\t\t\tproject.undo_redo.add_do_method(bottom_layer.link_cel.bind(bottom_cel, null))\n\t\t\tproject.undo_redo.add_undo_method(\n\t\t\t\tbottom_layer.link_cel.bind(bottom_cel, bottom_cel.link_set)\n\t\t\t)\n\t\t\tproject.undo_redo.add_do_property(bottom_cel, \"image\", new_bottom_image)\n\t\t\tproject.undo_redo.add_undo_property(bottom_cel, \"image\", bottom_cel.image)\n\t\telse:\n\t\t\tvar undo_data := {}\n\t\t\tvar redo_data := {}\n\t\t\tif bottom_cel is CelTileMap:\n\t\t\t\t(bottom_cel as CelTileMap).serialize_undo_data_source_image(\n\t\t\t\t\tnew_bottom_image, redo_data, undo_data, Vector2i.ZERO, true\n\t\t\t\t)\n\t\t\tnew_bottom_image.add_data_to_dictionary(redo_data, bottom_image)\n\t\t\tbottom_image.add_data_to_dictionary(undo_data)\n\t\t\tproject.deserialize_cel_undo_data(redo_data, undo_data)\n\n\tproject.undo_redo.add_do_method(project.remove_layers.bind([top_layer.index]))\n\tproject.undo_redo.add_undo_method(\n\t\tproject.add_layers.bind([top_layer], [top_layer.index], [top_cels])\n\t)\n\tproject.undo_redo.add_do_method(project.change_cel.bind(-1, bottom_layer.index))\n\tproject.undo_redo.add_undo_method(project.change_cel.bind(-1, top_layer.index))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.commit_action()\n\tbottom_layer.visible = true\n\n\nfunc flatten_layers(indices: PackedInt32Array, only_visible := false) -> void:\n\tvar project := Global.current_project\n\tif indices.size() <= 1:\n\t\t# If only the selected layer is about to be flattened,\n\t\t# flatten all of the layers in the project\n\t\t# If the selected layer is a group, flatten only its children.\n\t\tvar layer := project.layers[indices[0]]\n\t\tif layer is GroupLayer and not only_visible:\n\t\t\tvar child_count := layer.get_child_count(true)\n\t\t\tvar children := layer.get_children(true)\n\t\t\tindices.resize(child_count + 1)\n\t\t\tfor i in child_count:\n\t\t\t\tvar child_layer := children[i]\n\t\t\t\tindices[i] = child_layer.index\n\t\t\tindices[-1] = layer.index\n\t\telse:\n\t\t\tindices.resize(project.layers.size())\n\t\t\tfor l in project.layers:\n\t\t\t\tindices[l.index] = l.index\n\telse:\n\t\tfor i in indices.size():\n\t\t\tvar layer := project.layers[indices[i]]\n\t\t\tif layer is GroupLayer:\n\t\t\t\tfor child in layer.get_children(true):\n\t\t\t\t\tif not indices.has(child.index):\n\t\t\t\t\t\tindices.append(child.index)\n\t\tindices.sort()\n\tif only_visible:\n\t\tfor i in range(indices.size() - 1, -1, -1):\n\t\t\tvar layer := project.layers[indices[i]]\n\t\t\tvar layer_parent := layer.parent\n\t\t\tvar should_remove := true\n\t\t\twhile layer_parent != null:\n\t\t\t\tif indices.has(layer_parent.index):\n\t\t\t\t\tshould_remove = false\n\t\t\t\t\tbreak\n\t\t\t\tlayer_parent = layer_parent.parent\n\t\t\tif not layer.is_visible_in_hierarchy() and should_remove:\n\t\t\t\tindices.remove_at(i)\n\tif indices.size() == 0:\n\t\treturn\n\tvar new_layer := PixelLayer.new(project)\n\tnew_layer.name = \"Flattened\"\n\tnew_layer.index = indices[0]\n\tvar prev_layers := []\n\tvar prev_cels := []\n\tvar new_cels := []\n\tprev_cels.resize(indices.size())\n\tfor i in indices.size():\n\t\tprev_cels[i] = []\n\tfor frame_index in project.frames.size():\n\t\tvar frame := project.frames[frame_index]\n\t\tvar textures: Array[Image] = []\n\t\tvar metadata_image := Image.create(indices.size(), 4, false, Image.FORMAT_R8)\n\t\tfor i in indices.size():\n\t\t\tvar layer_index := indices[i]\n\t\t\tvar current_layer := project.layers[layer_index]\n\t\t\tprev_layers.append(current_layer)  # Store for undo purposes\n\t\t\tvar current_cel := frame.cels[layer_index]\n\t\t\tprev_cels[i].append(current_cel)  # Store for undo purposes\n\t\t\tvar current_image := current_layer.display_effects(current_cel)\n\t\t\ttextures.append(current_image)\n\t\t\tDrawingAlgos.set_layer_metadata_image(current_layer, current_cel, metadata_image, i)\n\t\t\tif not only_visible:\n\t\t\t\t# Ensure that non-visible layers are still flattened.\n\t\t\t\tvar opacity := current_cel.get_final_opacity(current_layer)\n\t\t\t\tmetadata_image.set_pixel(i, 1, Color(opacity, 0.0, 0.0, 0.0))\n\t\tvar texture_array := Texture2DArray.new()\n\t\ttexture_array.create_from_images(textures)\n\t\tvar params := {\n\t\t\t\"layers\": texture_array, \"metadata\": ImageTexture.create_from_image(metadata_image)\n\t\t}\n\t\tvar new_image := ImageExtended.create_custom(\n\t\t\tproject.size.x, project.size.y, false, project.get_image_format(), project.is_indexed()\n\t\t)\n\t\t# Flatten the image.\n\t\tvar gen := ShaderImageEffect.new()\n\t\tgen.generate_image(new_image, DrawingAlgos.blend_layers_shader, params, project.size)\n\t\tnew_image.convert_rgb_to_indexed()\n\t\tvar new_cel := new_layer.new_cel_from_image(new_image)\n\t\tnew_cels.append(new_cel)\n\tvar bottom_layer := project.layers[indices[0]]\n\twhile bottom_layer.parent != null:\n\t\tif not indices.has(bottom_layer.parent.index):\n\t\t\tnew_layer.parent = bottom_layer.parent\n\t\t\tbreak\n\t\tbottom_layer = bottom_layer.parent\n\tproject.undo_redo.create_action(\"Flatten layers\")\n\tproject.undo_redo.add_do_method(project.remove_layers.bind(indices))\n\tproject.undo_redo.add_do_method(\n\t\tproject.add_layers.bind([new_layer], [new_layer.index], [new_cels])\n\t)\n\tproject.undo_redo.add_undo_method(project.remove_layers.bind([new_layer.index]))\n\tproject.undo_redo.add_undo_method(project.add_layers.bind(prev_layers, indices, prev_cels))\n\tproject.undo_redo.add_do_method(project.change_cel.bind(-1, maxi(new_layer.index, 0)))\n\tproject.undo_redo.add_undo_method(project.change_cel.bind(-1, project.current_layer))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_opacity_slider_value_changed(value: float) -> void:\n\tvar new_opacity := value / 100.0\n\n\tvar project: Project = Global.current_project\n\tproject.undo_redo.create_action(\"Change Layer Opacity\", UndoRedo.MergeMode.MERGE_ENDS)\n\tfor idx_pair in Global.current_project.selected_cels:\n\t\tvar layer := Global.current_project.layers[idx_pair[1]]\n\n\t\tproject.undo_redo.add_do_property(layer, \"opacity\", new_opacity)\n\t\tproject.undo_redo.add_undo_property(layer, \"opacity\", layer.opacity)\n\t\tproject.undo_redo.add_do_method(Global.canvas.queue_redraw)\n\t\tproject.undo_redo.add_undo_method(Global.canvas.queue_redraw)\n\t\tproject.undo_redo.add_do_method(_update_layer_settings_ui)\n\t\tproject.undo_redo.add_undo_method(_update_layer_settings_ui)\n\t\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_timeline_settings_close_requested() -> void:\n\ttimeline_settings.hide()\n\n\nfunc _on_timeline_settings_visibility_changed() -> void:\n\tGlobal.can_draw = not timeline_settings.visible\n\n\nfunc _on_project_about_to_switch() -> void:\n\tvar project := Global.current_project\n\tproject.layers_updated.disconnect(_update_layer_ui)\n\tproject.frames_updated.disconnect(_update_frame_ui)\n\tproject.tags_changed.disconnect(_on_animation_tags_changed)\n\n\nfunc _on_project_switched() -> void:\n\tvar project := Global.current_project\n\tproject_changed()\n\tif not project.layers_updated.is_connected(_update_layer_ui):\n\t\tproject.layers_updated.connect(_update_layer_ui)\n\tif not project.frames_updated.is_connected(_update_frame_ui):\n\t\tproject.frames_updated.connect(_update_frame_ui)\n\tif not project.tags_changed.is_connected(_on_animation_tags_changed):\n\t\tproject.tags_changed.connect(_on_animation_tags_changed)\n\n\n# Methods to update the UI in response to changes in the current project\n\n\nfunc _cel_switched() -> void:\n\t# Unpress all buttons\n\tfor i in Global.current_project.frames.size():\n\t\tvar frame_button: BaseButton = frame_hbox.get_child(i)\n\t\tframe_button.button_pressed = false  # Unpress all frame buttons\n\t\tfor cel_hbox in cel_vbox.get_children():\n\t\t\tif i < cel_hbox.get_child_count():\n\t\t\t\tcel_hbox.get_child(i).button_pressed = false  # Unpress all cel buttons\n\n\tfor layer_button in layer_vbox.get_children():\n\t\tlayer_button.button_pressed = false  # Unpress all layer buttons\n\n\tfor cel in Global.current_project.selected_cels:  # Press selected buttons\n\t\tvar frame: int = cel[0]\n\t\tvar layer: int = cel[1]\n\t\tif frame < frame_hbox.get_child_count():\n\t\t\tvar frame_button: BaseButton = frame_hbox.get_child(frame)\n\t\t\tframe_button.button_pressed = true  # Press selected frame buttons\n\n\t\tvar layer_vbox_child_count: int = layer_vbox.get_child_count()\n\t\tif layer < layer_vbox_child_count:\n\t\t\tvar layer_button = layer_vbox.get_child(layer_vbox_child_count - 1 - layer)\n\t\t\tlayer_button.button_pressed = true  # Press selected layer buttons\n\n\t\tvar cel_vbox_child_count: int = cel_vbox.get_child_count()\n\t\tif layer < cel_vbox_child_count:\n\t\t\tvar cel_hbox: Container = cel_vbox.get_child(cel_vbox_child_count - 1 - layer)\n\t\t\tif frame < cel_hbox.get_child_count():\n\t\t\t\tvar cel_button: BaseButton = cel_hbox.get_child(frame)\n\t\t\t\tcel_button.button_pressed = true  # Press selected cel buttons\n\t_toggle_frame_buttons()\n\t_toggle_layer_buttons()\n\t_fill_blend_modes_option_button()\n\t_update_layer_settings_ui()\n\tvar project := Global.current_project\n\tframe_scroll_container.ensure_control_visible(frame_hbox.get_child(project.current_frame))\n\tvar layer_index := project.layers.size() - project.current_layer - 1\n\ttimeline_scroll.ensure_control_visible(layer_vbox.get_child(layer_index))\n\n\nfunc _update_layer_settings_ui() -> void:\n\tvar project := Global.current_project\n\tvar layer := project.layers[project.current_layer]\n\t# Temporarily disconnect it in order to prevent layer opacity changing\n\t# on different layers, or while undoing.\n\topacity_slider.value_changed.disconnect(_on_opacity_slider_value_changed)\n\topacity_slider.value = layer.opacity * 100\n\topacity_slider.value_changed.connect(_on_opacity_slider_value_changed)\n\tvar blend_mode_index := blend_modes_button.get_item_index(layer.blend_mode)\n\tblend_modes_button.selected = blend_mode_index\n\n\n## Update the layer indices and layer/cel buttons\nfunc _update_layer_ui() -> void:\n\tvar layers := Global.current_project.layers\n\tfor l in layers.size():\n\t\tlayers[l].index = l\n\t\tlayer_vbox.get_child(layers.size() - 1 - l).layer_index = l\n\t\tupdate_cel_button_ui(l)\n\n\nfunc _update_frame_ui() -> void:\n\tvar project := Global.current_project\n\tfor f in project.frames.size():  # Update the frames and frame buttons\n\t\tframe_hbox.get_child(f).frame = f\n\t\tframe_hbox.get_child(f).text = str(f + 1)\n\n\tfor l in project.layers.size():  # Update the cel buttons\n\t\tupdate_cel_button_ui(l)\n\tset_timeline_first_and_last_frames()\n\n\nfunc update_cel_button_ui(layer_index: int) -> void:\n\tvar project := Global.current_project\n\tvar cel_hbox: HBoxContainer = cel_vbox.get_child(project.layers.size() - 1 - layer_index)\n\tfor f in project.frames.size():\n\t\tcel_hbox.get_child(f).layer = layer_index\n\t\tcel_hbox.get_child(f).frame = f\n\t\tcel_hbox.get_child(f).button_setup()\n\n\nfunc _on_animation_tags_changed() -> void:\n\tvar project := Global.current_project\n\tfor child in tag_container.get_children():\n\t\tchild.queue_free()\n\n\tfor tag in project.animation_tags:\n\t\tvar tag_c := ANIMATION_TAG_TSCN.instantiate()\n\t\ttag_c.tag = tag\n\t\ttag_container.add_child(tag_c)\n\t\tvar tag_position := tag_container.get_child_count() - 1\n\t\ttag_container.move_child(tag_c, tag_position)\n\n\tset_timeline_first_and_last_frames()\n\n\n## This is useful in case tags get modified DURING the animation is playing\n## otherwise, this code is useless in this context, since these values are being set\n## when the play buttons get pressed anyway\nfunc set_timeline_first_and_last_frames() -> void:\n\tvar project := Global.current_project\n\tfirst_frame = 0\n\tlast_frame = project.frames.size() - 1\n\tif Global.play_only_tags:\n\t\tfor tag in project.animation_tags:\n\t\t\tif project.current_frame + 1 >= tag.from && project.current_frame + 1 <= tag.to:\n\t\t\t\tfirst_frame = tag.from - 1\n\t\t\t\tlast_frame = mini(project.frames.size() - 1, tag.to - 1)\n\n\nfunc _toggle_frame_buttons() -> void:\n\tvar project := Global.current_project\n\tGlobal.disable_button(delete_frame, project.frames.size() == 1)\n\tGlobal.disable_button(move_frame_left, project.current_frame == 0)\n\tGlobal.disable_button(move_frame_right, project.current_frame == project.frames.size() - 1)\n\n\nfunc _toggle_layer_buttons() -> void:\n\tvar project := Global.current_project\n\tif project.layers.is_empty() or project.current_layer >= project.layers.size():\n\t\treturn\n\tvar layer := project.layers[project.current_layer]\n\tvar child_count := layer.get_child_count(true)\n\n\tGlobal.disable_button(\n\t\tremove_layer, layer.is_locked_in_hierarchy() or project.layers.size() == child_count + 1\n\t)\n\tGlobal.disable_button(move_up_layer, project.current_layer == project.layers.size() - 1)\n\tGlobal.disable_button(\n\t\tmove_down_layer,\n\t\tproject.current_layer == child_count and not is_instance_valid(layer.parent)\n\t)\n\tvar below_layer: BaseLayer = null\n\tif project.current_layer - 1 >= 0:\n\t\tbelow_layer = project.layers[project.current_layer - 1]\n\tvar is_place_only_tilemap := (\n\t\tbelow_layer is LayerTileMap and (below_layer as LayerTileMap).place_only_mode\n\t)\n\tGlobal.disable_button(\n\t\tmerge_down_layer,\n\t\t(\n\t\t\tproject.current_layer == child_count\n\t\t\tor layer is GroupLayer\n\t\t\tor layer is AudioLayer\n\t\t\tor is_place_only_tilemap\n\t\t\tor below_layer is GroupLayer\n\t\t\tor below_layer is Layer3D\n\t\t\tor below_layer is AudioLayer\n\t\t)\n\t)\n\tGlobal.disable_button(layer_fx, layer is AudioLayer)\n\n\nfunc project_changed() -> void:\n\tvar project := Global.current_project\n\tfps_spinbox.value = project.fps\n\t_toggle_frame_buttons()\n\t_toggle_layer_buttons()\n\t# These must be removed from tree immediately to not mess up the indices of\n\t# the new buttons, so use either free or queue_free + parent.remove_child\n\tfor layer_button in layer_vbox.get_children():\n\t\tlayer_button.free()\n\tfor frame_button in frame_hbox.get_children():\n\t\tframe_button.free()\n\tfor cel_hbox in cel_vbox.get_children():\n\t\tcel_hbox.free()\n\n\tfor i in project.layers.size():\n\t\tproject_layer_added(i)\n\tfor f in project.frames.size():\n\t\tvar button := FRAME_BUTTON_TSCN.instantiate() as Button\n\t\tbutton.frame = f\n\t\tframe_hbox.add_child(button)\n\n\t# Press selected cel/frame/layer buttons\n\tfor cel_index in project.selected_cels:\n\t\tvar frame: int = cel_index[0]\n\t\tvar layer: int = cel_index[1]\n\t\tif frame < frame_hbox.get_child_count():\n\t\t\tvar frame_button: BaseButton = frame_hbox.get_child(frame)\n\t\t\tframe_button.button_pressed = true\n\n\t\tvar vbox_child_count: int = cel_vbox.get_child_count()\n\t\tif layer < vbox_child_count:\n\t\t\tvar cel_hbox: HBoxContainer = cel_vbox.get_child(vbox_child_count - 1 - layer)\n\t\t\tif frame < cel_hbox.get_child_count():\n\t\t\t\tvar cel_button := cel_hbox.get_child(frame)\n\t\t\t\tcel_button.button_pressed = true\n\n\t\t\tvar layer_button := layer_vbox.get_child(vbox_child_count - 1 - layer)\n\t\t\tlayer_button.button_pressed = true\n\t# Because we are re-creating the nodes, we need to wait one frame in order to call\n\t# ensure_control_visible. If waiting wasn't needed, this piece of code wouldn't be needed\n\t# anyway, since _cel_switched already calls ensure_control_visible.\n\tawait get_tree().process_frame\n\tif project != Global.current_project:\n\t\t# Needed in case we load multiple projects at once.\n\t\treturn\n\tframe_scroll_container.ensure_control_visible(frame_hbox.get_child(project.current_frame))\n\tvar layer_index := project.layers.size() - project.current_layer - 1\n\ttimeline_scroll.ensure_control_visible.call_deferred(layer_vbox.get_child(layer_index))\n\n\nfunc project_frame_added(frame: int) -> void:\n\tvar project := Global.current_project\n\tvar button := FRAME_BUTTON_TSCN.instantiate() as Button\n\tbutton.frame = frame\n\tframe_hbox.add_child(button)\n\tframe_hbox.move_child(button, frame)\n\tvar layer := cel_vbox.get_child_count() - 1\n\tfor cel_hbox in cel_vbox.get_children():\n\t\tvar cel_button := project.frames[frame].cels[layer].instantiate_cel_button()\n\t\tcel_button.frame = frame\n\t\tcel_button.layer = layer\n\t\tcel_hbox.add_child(cel_button)\n\t\tcel_hbox.move_child(cel_button, frame)\n\t\tlayer -= 1\n\tawait get_tree().process_frame\n\tframe_scroll_container.ensure_control_visible(button)\n\n\nfunc project_frame_removed(frame: int) -> void:\n\tframe_hbox.get_child(frame).queue_free()\n\tframe_hbox.remove_child(frame_hbox.get_child(frame))\n\tfor cel_hbox in cel_vbox.get_children():\n\t\tcel_hbox.get_child(frame).free()\n\n\nfunc project_layer_added(layer: int) -> void:\n\tvar project := Global.current_project\n\n\tvar layer_button := project.layers[layer].instantiate_layer_button() as LayerButton\n\tlayer_button.layer_index = layer\n\tif project.layers[layer].name == \"\":\n\t\tproject.layers[layer].set_name_to_default(project.layers.size())\n\n\tvar cel_hbox := HBoxContainer.new()\n\tcel_hbox.add_theme_constant_override(\"separation\", 0)\n\tfor f in project.frames.size():\n\t\tvar cel_button := project.frames[f].cels[layer].instantiate_cel_button()\n\t\tcel_button.frame = f\n\t\tcel_button.layer = layer\n\t\tcel_hbox.add_child(cel_button)\n\n\tlayer_button.visible = project.layers[layer].is_expanded_in_hierarchy()\n\tcel_hbox.visible = layer_button.visible\n\n\tlayer_vbox.add_child(layer_button)\n\tvar count := layer_vbox.get_child_count()\n\tlayer_vbox.move_child(layer_button, count - 1 - layer)\n\tcel_vbox.add_child(cel_hbox)\n\tcel_vbox.move_child(cel_hbox, count - 1 - layer)\n\tupdate_global_layer_buttons()\n\tawait get_tree().process_frame\n\tif not is_instance_valid(layer_button):\n\t\treturn\n\ttimeline_scroll.ensure_control_visible(layer_button)\n\n\nfunc project_layer_removed(layer: int) -> void:\n\tvar count := layer_vbox.get_child_count()\n\tvar layer_button := layer_vbox.get_child(count - 1 - layer)\n\tlayer_button.free()\n\tvar cel_hbox := cel_vbox.get_child(count - 1 - layer)\n\tcel_hbox.free()\n\tupdate_global_layer_buttons()\n\n\nfunc project_cel_added(frame: int, layer: int) -> void:\n\tvar cel_hbox := cel_vbox.get_child(cel_vbox.get_child_count() - 1 - layer)\n\tvar cel_button := Global.current_project.frames[frame].cels[layer].instantiate_cel_button()\n\tcel_button.frame = frame\n\tcel_button.layer = layer\n\tcel_hbox.add_child(cel_button)\n\tcel_hbox.move_child(cel_button, frame)\n\n\nfunc project_cel_removed(frame: int, layer: int) -> void:\n\tvar cel_hbox := cel_vbox.get_child(cel_vbox.get_child_count() - 1 - layer)\n\tcel_hbox.get_child(frame).queue_free()\n\tcel_hbox.remove_child(cel_hbox.get_child(frame))\n\n\nfunc _on_layer_fx_pressed() -> void:\n\tlayer_effect_settings.popup_centered_clamped()\n\tGlobal.dialog_open(true)\n\n\nfunc _on_cel_size_slider_value_changed(value: float) -> void:\n\tcel_size = value\n\n\nfunc _on_onion_skinning_opacity_value_changed(value: float) -> void:\n\tvar onion_skinning_opacity := value / 100.0\n\tGlobal.config_cache.set_value(\"timeline\", \"onion_skinning_opacity\", onion_skinning_opacity)\n\tfor onion_skinning_node: Node2D in get_tree().get_nodes_in_group(\"canvas_onion_skinning\"):\n\t\tonion_skinning_node.opacity = onion_skinning_opacity\n\t\tonion_skinning_node.queue_redraw()\n\n\nfunc _on_global_visibility_button_pressed() -> void:\n\tvar project = Global.current_project\n\tproject.undo_redo.create_action(\"Change Layer Visibility\")\n\n\tvar layer_visible := !global_layer_visibility\n\tvar mandatory_update := PackedInt32Array()\n\tfor layer_button: LayerButton in layer_vbox.get_children():\n\t\tvar layer: BaseLayer = Global.current_project.layers[layer_button.layer_index]\n\t\tif layer.parent == null and layer.visible != layer_visible:\n\t\t\tmandatory_update.append(layer.index)\n\t\t\tproject.undo_redo.add_do_property(layer, \"visible\", layer_visible)\n\t\t\tproject.undo_redo.add_undo_property(layer, \"visible\", layer.visible)\n\n\t# Multiple layers need to be redrawn\n\tproject.undo_redo.add_do_property(Global.canvas, \"mandatory_update_layers\", mandatory_update)\n\tproject.undo_redo.add_undo_property(Global.canvas, \"mandatory_update_layers\", mandatory_update)\n\n\tproject.undo_redo.add_do_method(update_global_layer_buttons)\n\tproject.undo_redo.add_undo_method(update_global_layer_buttons)\n\tproject.undo_redo.add_do_method(_toggle_layer_buttons)\n\tproject.undo_redo.add_undo_method(_toggle_layer_buttons)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_global_lock_button_pressed() -> void:\n\tvar project = Global.current_project\n\tproject.undo_redo.create_action(\"Change Layer Locked Status\")\n\n\tvar locked := !global_layer_lock\n\tfor layer_button: LayerButton in layer_vbox.get_children():\n\t\tvar layer: BaseLayer = Global.current_project.layers[layer_button.layer_index]\n\t\tif layer.parent == null and layer.locked != locked:\n\t\t\tproject.undo_redo.add_do_property(layer, \"locked\", locked)\n\t\t\tproject.undo_redo.add_undo_property(layer, \"locked\", layer.locked)\n\n\tproject.undo_redo.add_do_method(update_global_layer_buttons)\n\tproject.undo_redo.add_undo_method(update_global_layer_buttons)\n\tproject.undo_redo.add_do_method(_toggle_layer_buttons)\n\tproject.undo_redo.add_undo_method(_toggle_layer_buttons)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_global_expand_button_pressed() -> void:\n\tvar expand := !global_layer_expand\n\tfor layer_button: LayerButton in layer_vbox.get_children():\n\t\tvar layer: BaseLayer = Global.current_project.layers[layer_button.layer_index]\n\t\tif layer.parent == null and layer is GroupLayer and layer.expanded != expand:\n\t\t\tlayer_button.expand_button.pressed.emit()\n\n\nfunc update_global_layer_buttons() -> void:\n\tglobal_layer_visibility = false\n\tglobal_layer_lock = true\n\tglobal_layer_expand = true\n\tfor layer: BaseLayer in Global.current_project.layers:\n\t\tif layer.parent == null:\n\t\t\tif layer.visible:\n\t\t\t\tglobal_layer_visibility = true\n\t\t\tif not layer.locked:\n\t\t\t\tglobal_layer_lock = false\n\t\t\tif layer is GroupLayer and not layer.expanded:\n\t\t\t\tglobal_layer_expand = false\n\t\t\tif global_layer_visibility and not global_layer_lock and not global_layer_expand:\n\t\t\t\tbreak\n\tif global_layer_visibility:\n\t\tGlobal.change_button_texturerect(%GlobalVisibilityButton.get_child(0), \"layer_visible.png\")\n\telse:\n\t\tGlobal.change_button_texturerect(\n\t\t\t%GlobalVisibilityButton.get_child(0), \"layer_invisible.png\"\n\t\t)\n\tif global_layer_lock:\n\t\tGlobal.change_button_texturerect(%GlobalLockButton.get_child(0), \"lock.png\")\n\telse:\n\t\tGlobal.change_button_texturerect(%GlobalLockButton.get_child(0), \"unlock.png\")\n\tif global_layer_expand:\n\t\tGlobal.change_button_texturerect(%GlobalExpandButton.get_child(0), \"group_expanded.png\")\n\telse:\n\t\tGlobal.change_button_texturerect(%GlobalExpandButton.get_child(0), \"group_collapsed.png\")\n\n\nfunc _on_layer_frame_h_split_dragged(offset: int) -> void:\n\tif layer_frame_header_h_split.split_offset != offset:\n\t\tlayer_frame_header_h_split.split_offset = offset\n\tif layer_frame_h_split.split_offset != offset:\n\t\tlayer_frame_h_split.split_offset = offset\n"
  },
  {
    "path": "src/UI/Timeline/AnimationTimeline.gd.uid",
    "content": "uid://bbphfji4k1f20\n"
  },
  {
    "path": "src/UI/Timeline/AnimationTimeline.tscn",
    "content": "[gd_scene format=3 uid=\"uid://dbr6mulku2qju\"]\n\n[ext_resource type=\"Script\" uid=\"uid://bbphfji4k1f20\" path=\"res://src/UI/Timeline/AnimationTimeline.gd\" id=\"1\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://d36mlbmq06q4e\" path=\"res://assets/graphics/layers/new.png\" id=\"2\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dmhauk0dee42v\" path=\"res://assets/graphics/layers/move_down.png\" id=\"3\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://c7bha4a6x4bav\" path=\"res://assets/graphics/layers/move_up.png\" id=\"4\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bx1xa5aacxfx4\" path=\"res://assets/graphics/layers/merge_down.png\" id=\"5\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://x2k652y15v04\" path=\"res://assets/graphics/layers/delete.png\" id=\"6\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://d3gx4phcox58s\" path=\"res://assets/graphics/layers/clone.png\" id=\"7\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://d1oxrkwndy5fi\" path=\"res://assets/graphics/timeline/move_arrow.png\" id=\"8\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://yjhp0ssng2mp\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.tscn\" id=\"9\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dt6cysvv1w77u\" path=\"res://assets/graphics/layers/fx.png\" id=\"9_yphnd\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ct8wn8m6x4m54\" path=\"res://assets/graphics/misc/value_arrow.svg\" id=\"10\"]\n[ext_resource type=\"Script\" uid=\"uid://ckaphkalax7bh\" path=\"res://src/UI/Timeline/FrameScrollContainer.gd\" id=\"11\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://d1urikaf1lxwl\" path=\"res://assets/graphics/timeline/new_frame.png\" id=\"19\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bt72662c3gp2f\" path=\"res://assets/graphics/timeline/remove_frame.png\" id=\"20\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bujrukk5ii3bi\" path=\"res://assets/graphics/timeline/go_to_first_frame.png\" id=\"21\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://c7smxwfa8826j\" path=\"res://assets/graphics/timeline/play.png\" id=\"22\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://cw7nn7360atot\" path=\"res://assets/graphics/timeline/previous_frame.png\" id=\"23\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://esistdjfbrc4\" path=\"res://assets/graphics/timeline/play_backwards.png\" id=\"24\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://c2b3htff5yox8\" path=\"res://assets/graphics/layers/layer_visible.png\" id=\"24_6ikqj\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://l4jj86y1hukm\" path=\"res://assets/graphics/timeline/go_to_last_frame.png\" id=\"25\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dhc0pnnqojd2m\" path=\"res://assets/graphics/layers/unlock.png\" id=\"25_7x5su\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://b2ndrc0cvy1m5\" path=\"res://assets/graphics/timeline/next_frame.png\" id=\"26\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"26_tfw1u\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://cerkv5yx4cqeh\" path=\"res://assets/graphics/timeline/copy_frame.png\" id=\"27\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dndlglvqc7v6a\" path=\"res://assets/graphics/layers/group_expanded.png\" id=\"27_lrc8y\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dukip7mvotxsp\" path=\"res://assets/graphics/timeline/onion_skinning_off.png\" id=\"29\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://hbgwxlin4jun\" path=\"res://src/UI/Timeline/NewTileMapLayerDialog.tscn\" id=\"29_t0mtf\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dinubfua8gqhw\" path=\"res://assets/graphics/timeline/expandable.png\" id=\"30\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://fbwld5ofmocm\" path=\"res://assets/graphics/timeline/loop.png\" id=\"31\"]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_r3l7p\"]\naction = &\"new_layer\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_tpvn2\"]\nevents = [SubResource(\"InputEventAction_r3l7p\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_n6pnq\"]\naction = &\"remove_layer\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_xar00\"]\nevents = [SubResource(\"InputEventAction_n6pnq\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_xm3sl\"]\naction = &\"move_layer_up\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_r300c\"]\nevents = [SubResource(\"InputEventAction_xm3sl\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_wqdok\"]\naction = &\"move_layer_down\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_763li\"]\nevents = [SubResource(\"InputEventAction_wqdok\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_4vegv\"]\naction = &\"clone_layer\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_0o4ap\"]\nevents = [SubResource(\"InputEventAction_4vegv\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_ihf65\"]\naction = &\"merge_down_layer\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_wbf7k\"]\nevents = [SubResource(\"InputEventAction_ihf65\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_sduor\"]\naction = &\"add_frame\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_mvoxm\"]\nevents = [SubResource(\"InputEventAction_sduor\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_ajjsq\"]\naction = &\"remove_frame\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_o40ql\"]\nevents = [SubResource(\"InputEventAction_ajjsq\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_yptjb\"]\naction = &\"clone_frame\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_5g7t7\"]\nevents = [SubResource(\"InputEventAction_yptjb\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_ar42u\"]\naction = &\"move_frame_left\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_kwn1u\"]\nevents = [SubResource(\"InputEventAction_ar42u\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_unp5j\"]\naction = &\"move_frame_right\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_m2mvi\"]\nevents = [SubResource(\"InputEventAction_unp5j\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_078hg\"]\naction = &\"go_to_first_frame\"\n\n[sub_resource type=\"Shortcut\" id=\"4\"]\nevents = [SubResource(\"InputEventAction_078hg\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_xpmmg\"]\naction = &\"go_to_previous_frame\"\n\n[sub_resource type=\"Shortcut\" id=\"6\"]\nevents = [SubResource(\"InputEventAction_xpmmg\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_vyfqb\"]\naction = &\"play_backwards\"\n\n[sub_resource type=\"Shortcut\" id=\"8\"]\nevents = [SubResource(\"InputEventAction_vyfqb\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_twfg8\"]\naction = &\"play_forward\"\n\n[sub_resource type=\"Shortcut\" id=\"10\"]\nevents = [SubResource(\"InputEventAction_twfg8\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_xvqer\"]\naction = &\"go_to_next_frame\"\n\n[sub_resource type=\"Shortcut\" id=\"12\"]\nevents = [SubResource(\"InputEventAction_xvqer\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_fcr04\"]\naction = &\"go_to_last_frame\"\n\n[sub_resource type=\"Shortcut\" id=\"14\"]\nevents = [SubResource(\"InputEventAction_fcr04\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_1xym1\"]\naction = &\"onion_skinning_settings\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_tke6v\"]\nevents = [SubResource(\"InputEventAction_1xym1\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_iu7kc\"]\naction = &\"onion_skinning_toggle\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_pouu1\"]\nevents = [SubResource(\"InputEventAction_iu7kc\")]\n\n[sub_resource type=\"InputEventAction\" id=\"InputEventAction_dmtwd\"]\naction = &\"loop_toggle\"\n\n[sub_resource type=\"Shortcut\" id=\"Shortcut_1onr8\"]\nevents = [SubResource(\"InputEventAction_dmtwd\")]\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"15\"]\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"16\"]\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"17\"]\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"18\"]\n\n[sub_resource type=\"StyleBoxEmpty\" id=\"19\"]\n\n[sub_resource type=\"Theme\" id=\"20\"]\nHScrollBar/icons/decrement = null\nHScrollBar/icons/decrement_highlight = null\nHScrollBar/icons/increment = null\nHScrollBar/icons/increment_highlight = null\nHScrollBar/styles/grabber = SubResource(\"15\")\nHScrollBar/styles/grabber_highlight = SubResource(\"16\")\nHScrollBar/styles/grabber_pressed = SubResource(\"17\")\nHScrollBar/styles/scroll = SubResource(\"18\")\nHScrollBar/styles/scroll_focus = SubResource(\"19\")\n\n[sub_resource type=\"ImageTexture\" id=\"ImageTexture_ku1qg\"]\n\n[node name=\"AnimationTimeline\" type=\"Panel\" unique_id=1992150777]\nclip_contents = true\noffset_right = 902.0\noffset_bottom = 160.0\nscript = ExtResource(\"1\")\n\n[node name=\"TimelineContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=1226898889]\nlayout_direction = 2\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\n\n[node name=\"TimelineButtons\" type=\"HBoxContainer\" parent=\"TimelineContainer\" unique_id=435138373]\nlayout_mode = 2\n\n[node name=\"LayerTools\" type=\"PanelContainer\" parent=\"TimelineContainer/TimelineButtons\" unique_id=723233168]\nlayout_mode = 2\n\n[node name=\"MarginContainer\" type=\"MarginContainer\" parent=\"TimelineContainer/TimelineButtons/LayerTools\" unique_id=64513370]\nlayout_mode = 2\n\n[node name=\"LayerSettingsContainer\" type=\"VBoxContainer\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer\" unique_id=711382551]\nunique_name_in_owner = true\nlayout_direction = 1\nlayout_mode = 2\n\n[node name=\"LayerButtons\" type=\"HBoxContainer\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer\" unique_id=220210738]\nlayout_mode = 2\ntheme_override_constants/separation = 9\n\n[node name=\"AddLayer\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons\" unique_id=1494923230 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(44, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 4\ntooltip_text = \"Create a new layer\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_tpvn2\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons/AddLayer\" unique_id=1925722374]\nlayout_mode = 1\nanchors_preset = 4\nanchor_top = 0.5\nanchor_bottom = 0.5\noffset_top = -11.0\noffset_right = 22.0\noffset_bottom = 11.0\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"2\")\nstretch_mode = 3\n\n[node name=\"AddLayerList\" type=\"MenuButton\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons/AddLayer\" unique_id=1744349213]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(22, 0)\nlayout_mode = 0\nanchor_left = 1.0\nanchor_top = 0.5\nanchor_right = 1.0\nanchor_bottom = 0.5\noffset_left = -22.0\noffset_top = -10.0\noffset_bottom = 10.0\nmouse_default_cursor_shape = 2\nitem_count = 5\npopup/item_0/text = \"Add Pixel Layer\"\npopup/item_0/id = 0\npopup/item_1/text = \"Add Group Layer\"\npopup/item_1/id = 1\npopup/item_2/text = \"Add 3D Layer\"\npopup/item_2/id = 2\npopup/item_3/text = \"Add Tilemap Layer\"\npopup/item_3/id = 3\npopup/item_4/text = \"Add Audio Layer\"\npopup/item_4/id = 4\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons/AddLayer/AddLayerList\" unique_id=893934433]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -6.0\noffset_top = -6.0\noffset_right = 6.0\noffset_bottom = 6.0\ntexture = ExtResource(\"10\")\n\n[node name=\"RemoveLayer\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons\" unique_id=1039823116 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 4\ntooltip_text = \"Remove current layer\"\nfocus_mode = 0\nmouse_default_cursor_shape = 8\ndisabled = true\nshortcut = SubResource(\"Shortcut_xar00\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons/RemoveLayer\" unique_id=342942872]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"6\")\nstretch_mode = 3\n\n[node name=\"MoveUpLayer\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons\" unique_id=804124114 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 4\ntooltip_text = \"Move up the current layer\"\nfocus_mode = 0\nmouse_default_cursor_shape = 8\ndisabled = true\nshortcut = SubResource(\"Shortcut_r300c\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons/MoveUpLayer\" unique_id=1281914436]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"4\")\nstretch_mode = 3\n\n[node name=\"MoveDownLayer\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons\" unique_id=70068085 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 4\ntooltip_text = \"Move down the current layer\"\nfocus_mode = 0\nmouse_default_cursor_shape = 8\ndisabled = true\nshortcut = SubResource(\"Shortcut_763li\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons/MoveDownLayer\" unique_id=1251429864]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"3\")\nstretch_mode = 3\n\n[node name=\"CloneLayer\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons\" unique_id=1756911821 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 4\ntooltip_text = \"Clone current layer\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_0o4ap\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons/CloneLayer\" unique_id=2093479732]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"7\")\nstretch_mode = 3\n\n[node name=\"MergeDownLayer\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons\" unique_id=406888475 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 4\ntooltip_text = \"Merge current layer with the one below\"\nfocus_mode = 0\nmouse_default_cursor_shape = 8\ndisabled = true\nshortcut = SubResource(\"Shortcut_wbf7k\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons/MergeDownLayer\" unique_id=89788549]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"5\")\nstretch_mode = 3\n\n[node name=\"LayerFX\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons\" unique_id=1009021747 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 4\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons/LayerFX\" unique_id=675181228]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"9_yphnd\")\nstretch_mode = 3\n\n[node name=\"BlendContainer\" type=\"HBoxContainer\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer\" unique_id=1117855833]\nlayout_mode = 2\n\n[node name=\"BlendModeLabel\" type=\"Label\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/BlendContainer\" unique_id=871028924]\nlayout_mode = 2\ntext = \"Blend mode:\"\n\n[node name=\"BlendModes\" type=\"OptionButton\" parent=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/BlendContainer\" unique_id=919390939]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"TimelineContainer/TimelineButtons\" unique_id=583995143]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"AnimationToolsScrollContainer\" type=\"ScrollContainer\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer\" unique_id=1168927755]\nlayout_mode = 2\nsize_flags_horizontal = 3\nvertical_scroll_mode = 0\n\n[node name=\"AnimationTools\" type=\"PanelContainer\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer\" unique_id=1203275709]\nlayout_mode = 2\nsize_flags_horizontal = 10\nmouse_filter = 2\n\n[node name=\"MarginContainer\" type=\"MarginContainer\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools\" unique_id=849922424]\nlayout_mode = 2\n\n[node name=\"AnimationButtons\" type=\"HBoxContainer\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer\" unique_id=151083535]\ncustom_minimum_size = Vector2(0, 24)\nlayout_direction = 1\nlayout_mode = 2\nsize_flags_horizontal = 3\ntheme_override_constants/separation = 24\nalignment = 2\n\n[node name=\"FrameButtons\" type=\"HBoxContainer\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons\" unique_id=1844719151]\nlayout_mode = 2\n\n[node name=\"AddFrame\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/FrameButtons\" unique_id=40682757 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Add a new frame\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_mvoxm\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/FrameButtons/AddFrame\" unique_id=919100264]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -6.0\noffset_top = -6.0\noffset_right = 6.0\noffset_bottom = 6.0\ntexture = ExtResource(\"19\")\n\n[node name=\"DeleteFrame\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/FrameButtons\" unique_id=914011003 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Remove Frame\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_o40ql\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/FrameButtons/DeleteFrame\" unique_id=1260974524]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -6.0\noffset_top = -1.0\noffset_right = 6.0\noffset_bottom = 1.0\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"20\")\n\n[node name=\"CopyFrame\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/FrameButtons\" unique_id=20037254 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Clone Frame\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_5g7t7\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/FrameButtons/CopyFrame\" unique_id=2020655103]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -5.0\noffset_top = -7.0\noffset_right = 5.0\noffset_bottom = 7.0\ntexture = ExtResource(\"27\")\n\n[node name=\"MoveFrameLeft\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/FrameButtons\" unique_id=1393414318 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Move the selected frame to the left.\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_kwn1u\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/FrameButtons/MoveFrameLeft\" unique_id=1219897083]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -7.5\noffset_top = -5.5\noffset_right = 7.5\noffset_bottom = 5.5\ntexture = ExtResource(\"8\")\nflip_h = true\n\n[node name=\"MoveFrameRight\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/FrameButtons\" unique_id=2083923603 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Move the selected frame to the right.\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_m2mvi\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/FrameButtons/MoveFrameRight\" unique_id=67082182]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -7.5\noffset_top = -5.5\noffset_right = 7.5\noffset_bottom = 5.5\ntexture = ExtResource(\"8\")\n\n[node name=\"PlaybackButtons\" type=\"HBoxContainer\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons\" unique_id=785192346]\nlayout_direction = 2\nlayout_mode = 2\n\n[node name=\"FirstFrame\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons\" unique_id=86879957 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Jump to the first frame\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"4\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons/FirstFrame\" unique_id=1479463637]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -5.5\noffset_top = -6.0\noffset_right = 5.5\noffset_bottom = 6.0\ntexture = ExtResource(\"21\")\n\n[node name=\"PreviousFrame\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons\" unique_id=539059977 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Go to the previous frame\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"6\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons/PreviousFrame\" unique_id=488137911]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -5.5\noffset_top = -6.0\noffset_right = 5.5\noffset_bottom = 6.0\ntexture = ExtResource(\"23\")\n\n[node name=\"PlayBackwards\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons\" unique_id=452320928 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Play the animation backwards\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nshortcut = SubResource(\"8\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons/PlayBackwards\" unique_id=685398150]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -4.0\noffset_top = -6.0\noffset_right = 3.0\noffset_bottom = 6.0\ntexture = ExtResource(\"24\")\n\n[node name=\"PlayForward\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons\" unique_id=583590309 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Play the animation forward\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\ntoggle_mode = true\nshortcut = SubResource(\"10\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons/PlayForward\" unique_id=493433301]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -3.5\noffset_top = -6.0\noffset_right = 3.5\noffset_bottom = 6.0\ntexture = ExtResource(\"22\")\n\n[node name=\"NextFrame\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons\" unique_id=252042535 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Go to the next frame\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"12\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons/NextFrame\" unique_id=246483697]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -5.5\noffset_top = -6.0\noffset_right = 5.5\noffset_bottom = 6.0\ntexture = ExtResource(\"26\")\n\n[node name=\"LastFrame\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons\" unique_id=2119509031 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Jump to the last frame\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"14\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons/LastFrame\" unique_id=976638170]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -5.5\noffset_top = -6.0\noffset_right = 5.5\noffset_bottom = 6.0\ntexture = ExtResource(\"25\")\n\n[node name=\"LoopButtons\" type=\"HBoxContainer\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons\" unique_id=1594261311]\nlayout_mode = 2\n\n[node name=\"TimelineSettingsButton\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/LoopButtons\" unique_id=2083264405 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"Timeline settings\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_tke6v\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/LoopButtons/TimelineSettingsButton\" unique_id=986402536]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -7.0\noffset_top = -7.0\noffset_right = 7.0\noffset_bottom = 7.0\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"30\")\n\n[node name=\"OnionSkinning\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/LoopButtons\" unique_id=1907320291 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Enable/disable Onion Skinning\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_pouu1\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/LoopButtons/OnionSkinning\" unique_id=571546854]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -7.0\noffset_top = -7.0\noffset_right = 7.0\noffset_bottom = 7.0\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"29\")\n\n[node name=\"LoopAnim\" type=\"Button\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/LoopButtons\" unique_id=224961371 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(24, 24)\nlayout_mode = 2\ntooltip_text = \"Cycle loop\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\nshortcut = SubResource(\"Shortcut_1onr8\")\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/LoopButtons/LoopAnim\" unique_id=1082095245]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -7.0\noffset_top = -7.0\noffset_right = 7.0\noffset_bottom = 7.0\ntexture = ExtResource(\"31\")\n\n[node name=\"FPSValue\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/LoopButtons\" unique_id=1984280144 instance=ExtResource(\"9\")]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(72, 24)\nlayout_mode = 2\nsize_flags_horizontal = 1\ntooltip_text = \"How many frames per second should the animation preview be?\nThe more FPS, the faster the animation plays.\"\nmin_value = 0.1\nmax_value = 50.0\nstep = 0.1\nvalue = 6.0\nallow_greater = true\nsuffix = \"FPS\"\n\n[node name=\"TagScroll\" type=\"ScrollContainer\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer\" unique_id=1020164255]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(0, 24)\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\nmouse_filter = 2\ntheme = SubResource(\"20\")\nvertical_scroll_mode = 3\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/TagScroll\" unique_id=241116579]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\ntheme_override_constants/separation = 0\n\n[node name=\"TagSpacer\" type=\"Control\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/TagScroll/HBoxContainer\" unique_id=1294642732]\nunique_name_in_owner = true\nlayout_mode = 2\n\n[node name=\"TagContainer\" type=\"Control\" parent=\"TimelineContainer/TimelineButtons/VBoxContainer/TagScroll/HBoxContainer\" unique_id=853419618]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"MainBodyPanel\" type=\"PanelContainer\" parent=\"TimelineContainer\" unique_id=1622778973]\nlayout_mode = 2\nsize_flags_vertical = 3\nmouse_filter = 1\n\n[node name=\"MainBodyVBoxContainer\" type=\"VBoxContainer\" parent=\"TimelineContainer/MainBodyPanel\" unique_id=1837193960]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntheme_override_constants/separation = 0\n\n[node name=\"MarginContainer\" type=\"MarginContainer\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer\" unique_id=448380985]\nclip_contents = true\ncustom_minimum_size = Vector2(0, 38)\nlayout_mode = 2\nsize_flags_horizontal = 3\ntheme_override_constants/margin_bottom = 0\n\n[node name=\"LayerFrameHeaderHSplit\" type=\"HSplitContainer\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer\" unique_id=50582571]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\ntheme_override_constants/separation = 6\ntheme_override_constants/minimum_grab_thickness = 12\ntheme_override_icons/grabber = SubResource(\"ImageTexture_ku1qg\")\n\n[node name=\"LayerHeaderContainer\" type=\"HBoxContainer\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit\" unique_id=1451916270]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(84, 0)\nlayout_mode = 2\nsize_flags_vertical = 0\ntheme_override_constants/separation = 0\n\n[node name=\"GlobalVisibilityButton\" type=\"Button\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit/LayerHeaderContainer\" unique_id=1495326896 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(28, 22)\nlayout_mode = 2\ntooltip_text = \"Toggle layer's visibility\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit/LayerHeaderContainer/GlobalVisibilityButton\" unique_id=1986654331]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -11.0\noffset_top = -11.0\noffset_right = 11.0\noffset_bottom = 11.0\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"24_6ikqj\")\n\n[node name=\"GlobalLockButton\" type=\"Button\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit/LayerHeaderContainer\" unique_id=1006989198 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(28, 22)\nlayout_mode = 2\ntooltip_text = \"Lock/unlock layer\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit/LayerHeaderContainer/GlobalLockButton\" unique_id=1044539]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -11.0\noffset_top = -11.0\noffset_right = 11.0\noffset_bottom = 11.0\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"25_7x5su\")\n\n[node name=\"GlobalExpandButton\" type=\"Button\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit/LayerHeaderContainer\" unique_id=1766777050 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(28, 22)\nlayout_mode = 2\ntooltip_text = \"Expand/collapse group\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit/LayerHeaderContainer/GlobalExpandButton\" unique_id=680647009]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -11.0\noffset_top = -11.0\noffset_right = 11.0\noffset_bottom = 11.0\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"27_lrc8y\")\n\n[node name=\"MarginContainer\" type=\"MarginContainer\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit/LayerHeaderContainer\" unique_id=103634087]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntheme_override_constants/margin_left = 0\ntheme_override_constants/margin_top = 2\ntheme_override_constants/margin_right = 1\ntheme_override_constants/margin_bottom = 0\n\n[node name=\"OpacitySlider\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit/LayerHeaderContainer/MarginContainer\" unique_id=1821816541 instance=ExtResource(\"9\")]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(0, 29)\nlayout_mode = 2\nsize_flags_vertical = 0\nvalue = 100.0\nprefix = \"Opacity:\"\n\n[node name=\"MarginContainer\" type=\"MarginContainer\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit\" unique_id=1354215387]\nlayout_mode = 2\ntheme_override_constants/margin_left = -2\ntheme_override_constants/margin_top = 0\ntheme_override_constants/margin_right = 0\ntheme_override_constants/margin_bottom = 0\n\n[node name=\"FrameScrollHeaderContainer\" type=\"Container\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit/MarginContainer\" unique_id=658562904 node_paths=PackedStringArray(\"h_scroll_bar\")]\nclip_contents = true\nlayout_mode = 2\nscript = ExtResource(\"11\")\nh_scroll_bar = NodePath(\"../../../../FrameScrollBar\")\n\n[node name=\"MarginContainer\" type=\"MarginContainer\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit/MarginContainer/FrameScrollHeaderContainer\" unique_id=1698370975]\nlayout_mode = 2\ntheme_override_constants/margin_left = 1\ntheme_override_constants/margin_top = 2\ntheme_override_constants/margin_right = 0\ntheme_override_constants/margin_bottom = 0\n\n[node name=\"FrameHBox\" type=\"HBoxContainer\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit/MarginContainer/FrameScrollHeaderContainer/MarginContainer\" unique_id=854846158]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(0, 30)\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"TimelineScroll\" type=\"ScrollContainer\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer\" unique_id=59121395]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"MarginContainer\" type=\"MarginContainer\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll\" unique_id=1101282400]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\ntheme_override_constants/margin_right = 0\n\n[node name=\"LayerFrameHSplit\" type=\"HSplitContainer\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/MarginContainer\" unique_id=908172013]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\ntheme_override_constants/separation = 6\ntheme_override_constants/minimum_grab_thickness = 12\ntheme_override_icons/grabber = SubResource(\"ImageTexture_ku1qg\")\n\n[node name=\"LayerContainer\" type=\"VBoxContainer\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/MarginContainer/LayerFrameHSplit\" unique_id=1617639588]\nunique_name_in_owner = true\nlayout_mode = 2\ntheme_override_constants/separation = 1\n\n[node name=\"LayerVBox\" type=\"VBoxContainer\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/MarginContainer/LayerFrameHSplit/LayerContainer\" unique_id=950081078]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\ntheme_override_constants/separation = 0\n\n[node name=\"MarginContainer\" type=\"MarginContainer\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/MarginContainer/LayerFrameHSplit\" unique_id=1805901018]\nlayout_mode = 2\ntheme_override_constants/margin_left = -2\ntheme_override_constants/margin_top = -2\ntheme_override_constants/margin_right = 0\ntheme_override_constants/margin_bottom = 0\n\n[node name=\"FrameScrollContainer\" type=\"Container\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/MarginContainer/LayerFrameHSplit/MarginContainer\" unique_id=586696063 node_paths=PackedStringArray(\"h_scroll_bar\")]\nunique_name_in_owner = true\nclip_contents = true\nlayout_mode = 2\nscript = ExtResource(\"11\")\nh_scroll_bar = NodePath(\"../../../../../FrameScrollBar\")\n\n[node name=\"MarginContainer\" type=\"MarginContainer\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/MarginContainer/LayerFrameHSplit/MarginContainer/FrameScrollContainer\" unique_id=138335349]\nlayout_mode = 2\ntheme_override_constants/margin_left = 1\ntheme_override_constants/margin_top = 2\ntheme_override_constants/margin_right = 0\ntheme_override_constants/margin_bottom = 0\n\n[node name=\"CelVBox\" type=\"VBoxContainer\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/MarginContainer/LayerFrameHSplit/MarginContainer/FrameScrollContainer/MarginContainer\" unique_id=1429760128]\nunique_name_in_owner = true\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"FrameScrollBar\" type=\"HScrollBar\" parent=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer\" unique_id=230896640]\nunique_name_in_owner = true\nz_index = 2\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"AnimationTimer\" type=\"Timer\" parent=\".\" unique_id=1942698422]\n\n[node name=\"TimelineSettings\" type=\"Popup\" parent=\".\" unique_id=1493703037]\nposition = Vector2i(0, 24)\nsize = Vector2i(296, 211)\nunresizable = false\nborderless = false\n\n[node name=\"MarginContainer\" type=\"MarginContainer\" parent=\"TimelineSettings\" unique_id=2050686844]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"TimelineSettings/MarginContainer\" unique_id=1990656436]\nlayout_mode = 2\n\n[node name=\"PlayOnlyTags\" type=\"CheckBox\" parent=\"TimelineSettings/MarginContainer/VBoxContainer\" unique_id=18406253]\nlayout_mode = 2\nsize_flags_horizontal = 0\ntooltip_text = \"If it's selected, the animation plays only on the frames that have the same tag.\nIf it's not, the animation will play for all frames, ignoring tags.\"\nmouse_default_cursor_shape = 2\nbutton_pressed = true\ntext = \"Animation plays only on frames of the same tag\"\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\"TimelineSettings/MarginContainer/VBoxContainer\" unique_id=1951047090]\nlayout_mode = 2\ncolumns = 2\n\n[node name=\"CelSizeLabel\" type=\"Label\" parent=\"TimelineSettings/MarginContainer/VBoxContainer/GridContainer\" unique_id=577665475]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Cel size:\"\n\n[node name=\"CelSizeSlider\" type=\"TextureProgressBar\" parent=\"TimelineSettings/MarginContainer/VBoxContainer/GridContainer\" unique_id=1128731487]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"26_tfw1u\")\n\n[node name=\"HeaderContainer\" type=\"HBoxContainer\" parent=\"TimelineSettings/MarginContainer/VBoxContainer\" unique_id=538406891]\nlayout_mode = 2\n\n[node name=\"HeaderLabel\" type=\"Label\" parent=\"TimelineSettings/MarginContainer/VBoxContainer/HeaderContainer\" unique_id=379889898]\nlayout_mode = 2\ntheme_type_variation = &\"HeaderSmall\"\ntext = \"Onion Skinning\"\n\n[node name=\"HSeparator\" type=\"HSeparator\" parent=\"TimelineSettings/MarginContainer/VBoxContainer/HeaderContainer\" unique_id=1667565135]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"OnionSkinningOptionsContainer\" type=\"GridContainer\" parent=\"TimelineSettings/MarginContainer/VBoxContainer\" unique_id=305156663]\nlayout_mode = 2\ntheme_override_constants/h_separation = 8\ncolumns = 2\n\n[node name=\"OnionSkinningPast\" type=\"Label\" parent=\"TimelineSettings/MarginContainer/VBoxContainer/OnionSkinningOptionsContainer\" unique_id=820038490]\nlayout_mode = 2\ntext = \"Past Frames\"\n\n[node name=\"PastOnionSkinning\" parent=\"TimelineSettings/MarginContainer/VBoxContainer/OnionSkinningOptionsContainer\" unique_id=1931683551 instance=ExtResource(\"9\")]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 1\nmax_value = 10.0\nvalue = 1.0\nallow_greater = true\nsuffix = \"Frames\"\n\n[node name=\"OnionSkinningFuture\" type=\"Label\" parent=\"TimelineSettings/MarginContainer/VBoxContainer/OnionSkinningOptionsContainer\" unique_id=227137587]\nlayout_mode = 2\ntext = \"Future Frames\"\n\n[node name=\"FutureOnionSkinning\" parent=\"TimelineSettings/MarginContainer/VBoxContainer/OnionSkinningOptionsContainer\" unique_id=2145075100 instance=ExtResource(\"9\")]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 1\nmax_value = 10.0\nvalue = 1.0\nallow_greater = true\nsuffix = \"Frames\"\n\n[node name=\"PastPlacementLabel\" type=\"Label\" parent=\"TimelineSettings/MarginContainer/VBoxContainer/OnionSkinningOptionsContainer\" unique_id=1579661711]\nlayout_mode = 2\ntext = \"Show past frames:\"\n\n[node name=\"PastPlacement\" type=\"OptionButton\" parent=\"TimelineSettings/MarginContainer/VBoxContainer/OnionSkinningOptionsContainer\" unique_id=126144176]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nitem_count = 2\npopup/item_0/text = \"Above canvas\"\npopup/item_0/id = 0\npopup/item_1/text = \"Below canvas\"\npopup/item_1/id = 1\n\n[node name=\"FuturePlacementLabel\" type=\"Label\" parent=\"TimelineSettings/MarginContainer/VBoxContainer/OnionSkinningOptionsContainer\" unique_id=997093966]\nlayout_mode = 2\ntext = \"Show future frames:\"\n\n[node name=\"FuturePlacement\" type=\"OptionButton\" parent=\"TimelineSettings/MarginContainer/VBoxContainer/OnionSkinningOptionsContainer\" unique_id=921574992]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nitem_count = 2\npopup/item_0/text = \"Above canvas\"\npopup/item_0/id = 0\npopup/item_1/text = \"Below canvas\"\npopup/item_1/id = 1\n\n[node name=\"OnionSkinningOpacityLabel\" type=\"Label\" parent=\"TimelineSettings/MarginContainer/VBoxContainer/OnionSkinningOptionsContainer\" unique_id=1111184768]\nlayout_mode = 2\ntext = \"Opacity\"\n\n[node name=\"OnionSkinningOpacity\" parent=\"TimelineSettings/MarginContainer/VBoxContainer/OnionSkinningOptionsContainer\" unique_id=1560348903 instance=ExtResource(\"9\")]\nunique_name_in_owner = true\nlayout_mode = 2\nsuffix = \"%\"\n\n[node name=\"BlueRedMode\" type=\"CheckBox\" parent=\"TimelineSettings/MarginContainer/VBoxContainer\" unique_id=1738888477]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 0\nmouse_default_cursor_shape = 2\ntext = \"Color mode\"\n\n[node name=\"NewTileMapLayerDialog\" parent=\".\" unique_id=1365970132 instance=ExtResource(\"29_t0mtf\")]\n\n[node name=\"DragHighlight\" type=\"ColorRect\" parent=\".\" unique_id=21883924]\nvisible = false\nz_index = 2\nlayout_mode = 0\noffset_right = 40.0\noffset_bottom = 40.0\nmouse_filter = 2\ncolor = Color(0, 0.741176, 1, 0.501961)\n\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons/AddLayer\" to=\".\" method=\"_on_add_layer_pressed\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons/RemoveLayer\" to=\".\" method=\"_on_RemoveLayer_pressed\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons/MoveUpLayer\" to=\".\" method=\"change_layer_order\" binds= [true]]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons/MoveDownLayer\" to=\".\" method=\"change_layer_order\" binds= [false]]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons/CloneLayer\" to=\".\" method=\"_on_CloneLayer_pressed\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons/MergeDownLayer\" to=\".\" method=\"_on_MergeDownLayer_pressed\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/LayerButtons/LayerFX\" to=\".\" method=\"_on_layer_fx_pressed\"]\n[connection signal=\"item_selected\" from=\"TimelineContainer/TimelineButtons/LayerTools/MarginContainer/LayerSettingsContainer/BlendContainer/BlendModes\" to=\".\" method=\"_on_blend_modes_item_selected\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/FrameButtons/AddFrame\" to=\".\" method=\"add_frame\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/FrameButtons/DeleteFrame\" to=\".\" method=\"_on_DeleteFrame_pressed\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/FrameButtons/CopyFrame\" to=\".\" method=\"_on_CopyFrame_pressed\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/FrameButtons/MoveFrameLeft\" to=\".\" method=\"_on_MoveLeft_pressed\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/FrameButtons/MoveFrameRight\" to=\".\" method=\"_on_MoveRight_pressed\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons/FirstFrame\" to=\".\" method=\"_on_FirstFrame_pressed\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons/PreviousFrame\" to=\".\" method=\"_on_PreviousFrame_pressed\"]\n[connection signal=\"toggled\" from=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons/PlayBackwards\" to=\".\" method=\"_on_PlayBackwards_toggled\"]\n[connection signal=\"toggled\" from=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons/PlayForward\" to=\".\" method=\"_on_PlayForward_toggled\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons/NextFrame\" to=\".\" method=\"_on_NextFrame_pressed\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/PlaybackButtons/LastFrame\" to=\".\" method=\"_on_LastFrame_pressed\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/LoopButtons/TimelineSettingsButton\" to=\".\" method=\"_on_timeline_settings_button_pressed\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/LoopButtons/OnionSkinning\" to=\".\" method=\"_on_OnionSkinning_pressed\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/LoopButtons/LoopAnim\" to=\".\" method=\"_on_LoopAnim_pressed\"]\n[connection signal=\"value_changed\" from=\"TimelineContainer/TimelineButtons/VBoxContainer/AnimationToolsScrollContainer/AnimationTools/MarginContainer/AnimationButtons/LoopButtons/FPSValue\" to=\".\" method=\"_on_FPSValue_value_changed\"]\n[connection signal=\"dragged\" from=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit\" to=\".\" method=\"_on_layer_frame_h_split_dragged\"]\n[connection signal=\"gui_input\" from=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit\" to=\".\" method=\"_on_LayerFrameSplitContainer_gui_input\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit/LayerHeaderContainer/GlobalVisibilityButton\" to=\".\" method=\"_on_global_visibility_button_pressed\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit/LayerHeaderContainer/GlobalLockButton\" to=\".\" method=\"_on_global_lock_button_pressed\"]\n[connection signal=\"pressed\" from=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit/LayerHeaderContainer/GlobalExpandButton\" to=\".\" method=\"_on_global_expand_button_pressed\"]\n[connection signal=\"value_changed\" from=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/MarginContainer/LayerFrameHeaderHSplit/LayerHeaderContainer/MarginContainer/OpacitySlider\" to=\".\" method=\"_on_opacity_slider_value_changed\"]\n[connection signal=\"dragged\" from=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/MarginContainer/LayerFrameHSplit\" to=\".\" method=\"_on_layer_frame_h_split_dragged\"]\n[connection signal=\"gui_input\" from=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/MarginContainer/LayerFrameHSplit\" to=\".\" method=\"_on_LayerFrameSplitContainer_gui_input\"]\n[connection signal=\"resized\" from=\"TimelineContainer/MainBodyPanel/MainBodyVBoxContainer/TimelineScroll/MarginContainer/LayerFrameHSplit/LayerContainer/LayerVBox\" to=\".\" method=\"_on_LayerVBox_resized\"]\n[connection signal=\"timeout\" from=\"AnimationTimer\" to=\".\" method=\"_on_AnimationTimer_timeout\"]\n[connection signal=\"close_requested\" from=\"TimelineSettings\" to=\".\" method=\"_on_timeline_settings_close_requested\"]\n[connection signal=\"visibility_changed\" from=\"TimelineSettings\" to=\".\" method=\"_on_timeline_settings_visibility_changed\"]\n[connection signal=\"toggled\" from=\"TimelineSettings/MarginContainer/VBoxContainer/PlayOnlyTags\" to=\".\" method=\"_on_play_only_tags_toggled\"]\n[connection signal=\"value_changed\" from=\"TimelineSettings/MarginContainer/VBoxContainer/GridContainer/CelSizeSlider\" to=\".\" method=\"_on_cel_size_slider_value_changed\"]\n[connection signal=\"value_changed\" from=\"TimelineSettings/MarginContainer/VBoxContainer/OnionSkinningOptionsContainer/PastOnionSkinning\" to=\".\" method=\"_on_PastOnionSkinning_value_changed\"]\n[connection signal=\"value_changed\" from=\"TimelineSettings/MarginContainer/VBoxContainer/OnionSkinningOptionsContainer/FutureOnionSkinning\" to=\".\" method=\"_on_FutureOnionSkinning_value_changed\"]\n[connection signal=\"item_selected\" from=\"TimelineSettings/MarginContainer/VBoxContainer/OnionSkinningOptionsContainer/PastPlacement\" to=\".\" method=\"_on_PastPlacement_item_selected\"]\n[connection signal=\"item_selected\" from=\"TimelineSettings/MarginContainer/VBoxContainer/OnionSkinningOptionsContainer/FuturePlacement\" to=\".\" method=\"_on_FuturePlacement_item_selected\"]\n[connection signal=\"value_changed\" from=\"TimelineSettings/MarginContainer/VBoxContainer/OnionSkinningOptionsContainer/OnionSkinningOpacity\" to=\".\" method=\"_on_onion_skinning_opacity_value_changed\"]\n[connection signal=\"toggled\" from=\"TimelineSettings/MarginContainer/VBoxContainer/BlueRedMode\" to=\".\" method=\"_on_BlueRedMode_toggled\"]\n"
  },
  {
    "path": "src/UI/Timeline/CelButton.gd",
    "content": "extends Button\n\nenum MenuOptions { PROPERTIES, SELECT_PIXELS, DELETE, LINK, UNLINK }\n\nvar frame := 0\nvar layer := 0\nvar cel: BaseCel\n\nvar _is_guide_stylebox := false\n\n@onready var popup_menu: PopupMenu = get_node_or_null(\"PopupMenu\")\n@onready var ui_color_rect: ColorRect = $UIColorRect\n@onready var linked_rect: ColorRect = $Linked\n@onready var cel_texture: TextureRect = $CelTexture\n@onready var transparent_checker: ColorRect = $CelTexture/TransparentChecker\n@onready var z_index_indicator: TextureRect = $ZIndexIndicator\n@onready var properties: AcceptDialog = Global.control.find_child(\"CelProperties\")\n\n\nfunc _ready() -> void:\n\tif DisplayServer.is_touchscreen_available():\n\t\tmouse_filter = Control.MOUSE_FILTER_PASS\n\tGlobal.cel_switched.connect(cel_switched)\n\tThemes.theme_switched.connect(cel_switched.bind(true))\n\tcel = Global.current_project.frames[frame].cels[layer]\n\tbutton_setup()\n\t_dim_checker()\n\tcel.texture_changed.connect(_dim_checker)\n\tz_index_indicator.visible = cel.z_index != 0\n\tui_color_rect.color = cel.ui_color\n\tcel.z_index_changed.connect(func(): z_index_indicator.visible = cel.z_index != 0)\n\tcel.ui_color_changed.connect(func(): ui_color_rect.color = cel.ui_color)\n\tfor selected in Global.current_project.selected_cels:\n\t\tif selected[1] == layer and selected[0] == frame:\n\t\t\tbutton_pressed = true\n\tif cel is AudioCel:\n\t\tpopup_menu.add_item(\"Play audio here\")\n\t\t_is_playing_audio()\n\t\tGlobal.cel_switched.connect(_is_playing_audio)\n\t\tThemes.theme_switched.connect(_is_playing_audio)\n\t\tGlobal.current_project.fps_changed.connect(_is_playing_audio)\n\t\tGlobal.current_project.layers[layer].audio_changed.connect(_is_playing_audio)\n\t\tGlobal.current_project.layers[layer].playback_frame_changed.connect(_is_playing_audio)\n\telse:\n\t\tpopup_menu.add_item(\"Select pixels\")\n\tif cel is PixelCel:\n\t\tpopup_menu.add_item(\"Delete\")\n\t\tpopup_menu.add_item(\"Link cels to\")\n\t\tpopup_menu.add_item(\"Unlink cels\")\n\telif cel is GroupCel:\n\t\ttransparent_checker.visible = false\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_TRANSLATION_CHANGED:\n\t\ttooltip_text = (\n\t\t\ttr(\"Frame: %s, Layer: %s\") % [frame + 1, Global.current_project.layers[layer].name]\n\t\t)\n\n\nfunc cel_switched(force_stylebox_change := false) -> void:\n\tz_index = 1 if button_pressed else 0\n\tvar current_theme := Global.control.theme\n\tvar is_guide := false\n\tfor selected in Global.current_project.selected_cels:\n\t\tif selected[1] == layer or selected[0] == frame:\n\t\t\tis_guide = true\n\t\t\tbreak\n\tif is_guide:\n\t\tif not _is_guide_stylebox or force_stylebox_change:\n\t\t\tvar guide_stylebox := current_theme.get_stylebox(\"guide\", \"CelButton\")\n\t\t\tadd_theme_stylebox_override(\"normal\", guide_stylebox)\n\t\t\t_is_guide_stylebox = true\n\telse:\n\t\tif _is_guide_stylebox or force_stylebox_change:\n\t\t\tvar normal_stylebox := current_theme.get_stylebox(\"normal\", \"CelButton\")\n\t\t\tadd_theme_stylebox_override(\"normal\", normal_stylebox)\n\t\t\t_is_guide_stylebox = false\n\n\nfunc button_setup() -> void:\n\tcustom_minimum_size.x = Global.animation_timeline.cel_size\n\tcustom_minimum_size.y = Global.animation_timeline.cel_size\n\n\tvar base_layer := Global.current_project.layers[layer]\n\ttooltip_text = tr(\"Frame: %s, Layer: %s\") % [frame + 1, base_layer.name]\n\tif cel is not AudioCel:\n\t\tcel_texture.texture = cel.image_texture\n\tif is_instance_valid(linked_rect):\n\t\tlinked_rect.visible = cel.link_set != null\n\t\tif cel.link_set != null:\n\t\t\tlinked_rect.color.h = cel.link_set[\"hue\"]\n\n\nfunc _on_CelButton_pressed() -> void:\n\tvar project := Global.current_project\n\tif Input.is_action_just_released(\"left_mouse\"):\n\t\tGlobal.canvas.selection.transform_content_confirm()\n\t\tvar change_cel := true\n\t\tif Input.is_action_pressed(\"shift\"):\n\t\t\tvar prev_curr_frame := project.current_frame\n\t\t\tvar prev_curr_layer := project.current_layer\n\t\t\tvar frame_diff_sign := signi(frame - prev_curr_frame)\n\t\t\tif frame_diff_sign == 0:\n\t\t\t\tframe_diff_sign = 1\n\t\t\tvar layer_diff_sign := signi(layer - prev_curr_layer)\n\t\t\tif layer_diff_sign == 0:\n\t\t\t\tlayer_diff_sign = 1\n\t\t\tfor i in range(prev_curr_frame, frame + frame_diff_sign, frame_diff_sign):\n\t\t\t\tfor j in range(prev_curr_layer, layer + layer_diff_sign, layer_diff_sign):\n\t\t\t\t\tvar frame_layer := [i, j]\n\t\t\t\t\tif !project.selected_cels.has(frame_layer):\n\t\t\t\t\t\tproject.selected_cels.append(frame_layer)\n\t\telif Input.is_action_pressed(\"ctrl\"):\n\t\t\tvar frame_layer := [frame, layer]\n\t\t\tif project.selected_cels.has(frame_layer):\n\t\t\t\tif project.selected_cels.size() > 1:\n\t\t\t\t\tproject.selected_cels.erase(frame_layer)\n\t\t\t\t\tchange_cel = false\n\t\t\telse:\n\t\t\t\tproject.selected_cels.append(frame_layer)\n\t\telse:  # If the button is pressed without Shift or Control\n\t\t\tproject.selected_cels.clear()\n\t\t\tvar frame_layer := [frame, layer]\n\t\t\tif !project.selected_cels.has(frame_layer):\n\t\t\t\tproject.selected_cels.append(frame_layer)\n\n\t\tif change_cel:\n\t\t\tproject.change_cel(frame, layer)\n\t\telse:\n\t\t\tproject.change_cel(project.selected_cels[0][0], project.selected_cels[0][1])\n\t\t\trelease_focus()\n\n\telif Input.is_action_just_released(\"right_mouse\"):\n\t\tpopup_menu.popup_on_parent(Rect2(get_global_mouse_position(), Vector2.ONE))\n\t\tbutton_pressed = !button_pressed\n\telif Input.is_action_just_released(\"middle_mouse\"):\n\t\tbutton_pressed = !button_pressed\n\t\t_delete_cel_content()\n\telse:  # An example of this would be Space\n\t\tbutton_pressed = !button_pressed\n\n\nfunc _on_PopupMenu_id_pressed(id: int) -> void:\n\tvar project := Global.current_project\n\tmatch id:\n\t\tMenuOptions.PROPERTIES:\n\t\t\tproperties.cel_indices = _get_cel_indices()\n\t\t\tproperties.popup_centered_clamped()\n\t\tMenuOptions.SELECT_PIXELS:\n\t\t\tvar layer_class := project.layers[layer]\n\t\t\tif layer_class is AudioLayer:\n\t\t\t\tlayer_class.playback_frame = frame\n\t\t\telse:\n\t\t\t\tGlobal.canvas.selection.select_cel_pixels(layer_class, project.frames[frame])\n\t\tMenuOptions.DELETE:\n\t\t\t_delete_cel_content()\n\n\t\tMenuOptions.LINK, MenuOptions.UNLINK:\n\t\t\tif id == MenuOptions.UNLINK:\n\t\t\t\tproject.undo_redo.create_action(\"Unlink Cel\")\n\t\t\t\tvar selected_cels := _get_cel_indices(true)\n\t\t\t\tif not selected_cels.has([frame, layer]):\n\t\t\t\t\tselected_cels.append([frame, layer])  # Include this cel with the selected ones\n\t\t\t\tfor cel_index in selected_cels:\n\t\t\t\t\tif layer != cel_index[1]:  # Skip selected cels not on the same layer\n\t\t\t\t\t\tcontinue\n\t\t\t\t\tvar s_cel := project.frames[cel_index[0]].cels[cel_index[1]]\n\t\t\t\t\tif s_cel.link_set == null:  # Skip cels that aren't linked\n\t\t\t\t\t\tcontinue\n\t\t\t\t\tproject.undo_redo.add_do_method(\n\t\t\t\t\t\tproject.layers[layer].link_cel.bind(s_cel, null)\n\t\t\t\t\t)\n\t\t\t\t\tproject.undo_redo.add_undo_method(\n\t\t\t\t\t\tproject.layers[layer].link_cel.bind(s_cel, s_cel.link_set)\n\t\t\t\t\t)\n\t\t\t\t\tif s_cel.link_set.size() > 1:  # Skip copying content if not linked to another\n\t\t\t\t\t\tproject.undo_redo.add_do_method(\n\t\t\t\t\t\t\ts_cel.set_content.bind(s_cel.copy_content(), ImageTexture.new())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tproject.undo_redo.add_undo_method(\n\t\t\t\t\t\t\ts_cel.set_content.bind(s_cel.get_content(), s_cel.image_texture)\n\t\t\t\t\t\t)\n\n\t\t\telif id == MenuOptions.LINK:\n\t\t\t\tproject.undo_redo.create_action(\"Link Cel\")\n\t\t\t\tvar link_set: Dictionary = {} if cel.link_set == null else cel.link_set\n\t\t\t\tif cel.link_set == null:\n\t\t\t\t\tproject.undo_redo.add_do_method(\n\t\t\t\t\t\tproject.layers[layer].link_cel.bind(cel, link_set)\n\t\t\t\t\t)\n\t\t\t\t\tproject.undo_redo.add_undo_method(\n\t\t\t\t\t\tproject.layers[layer].link_cel.bind(cel, null)\n\t\t\t\t\t)\n\n\t\t\t\tfor cel_index in project.selected_cels:\n\t\t\t\t\tif layer != cel_index[1]:  # Skip selected cels not on the same layer\n\t\t\t\t\t\tcontinue\n\t\t\t\t\tvar s_cel := project.frames[cel_index[0]].cels[cel_index[1]]\n\t\t\t\t\tif cel == s_cel:  # Don't need to link cel to itself\n\t\t\t\t\t\tcontinue\n\t\t\t\t\tif s_cel.link_set == link_set:  # Skip cels that were already linked\n\t\t\t\t\t\tcontinue\n\t\t\t\t\tproject.undo_redo.add_do_method(\n\t\t\t\t\t\tproject.layers[layer].link_cel.bind(s_cel, link_set)\n\t\t\t\t\t)\n\t\t\t\t\tproject.undo_redo.add_undo_method(\n\t\t\t\t\t\tproject.layers[layer].link_cel.bind(s_cel, s_cel.link_set)\n\t\t\t\t\t)\n\t\t\t\t\tproject.undo_redo.add_do_method(\n\t\t\t\t\t\ts_cel.set_content.bind(cel.get_content(), cel.image_texture)\n\t\t\t\t\t)\n\t\t\t\t\tproject.undo_redo.add_undo_method(\n\t\t\t\t\t\ts_cel.set_content.bind(s_cel.get_content(), s_cel.image_texture)\n\t\t\t\t\t)\n\n\t\t\t# Remove and add a new cel button to update appearance (can't use button_setup\n\t\t\t# because there is no guarantee that it will be the exact same cel button instance)\n\t\t\t# May be able to use button_setup with a lambda to find correct cel button in Godot 4\n\t\t\tfor f in project.frames.size():\n\t\t\t\tproject.undo_redo.add_do_method(\n\t\t\t\t\tGlobal.animation_timeline.project_cel_removed.bind(f, layer)\n\t\t\t\t)\n\t\t\t\tproject.undo_redo.add_undo_method(\n\t\t\t\t\tGlobal.animation_timeline.project_cel_removed.bind(f, layer)\n\t\t\t\t)\n\t\t\t\tproject.undo_redo.add_do_method(\n\t\t\t\t\tGlobal.animation_timeline.project_cel_added.bind(f, layer)\n\t\t\t\t)\n\t\t\t\tproject.undo_redo.add_undo_method(\n\t\t\t\t\tGlobal.animation_timeline.project_cel_added.bind(f, layer)\n\t\t\t\t)\n\n\t\t\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\t\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\t\t\tproject.undo_redo.commit_action()\n\n\nfunc _delete_cel_content() -> void:\n\tvar indices := _get_cel_indices()\n\tvar project := Global.current_project\n\tproject.undo_redo.create_action(\"Draw\")\n\tfor cel_index in indices:\n\t\tvar frame_index: int = cel_index[0]\n\t\tvar layer_index: int = cel_index[1]\n\t\tvar selected_cel := project.frames[frame_index].cels[layer_index]\n\t\tvar empty_content = selected_cel.create_empty_content()\n\t\tvar old_content = selected_cel.get_content()\n\t\tif selected_cel.link_set == null:\n\t\t\tproject.undo_redo.add_do_method(selected_cel.set_content.bind(empty_content))\n\t\t\tproject.undo_redo.add_undo_method(selected_cel.set_content.bind(old_content))\n\t\telse:\n\t\t\tfor linked_cel in selected_cel.link_set[\"cels\"]:\n\t\t\t\tproject.undo_redo.add_do_method(linked_cel.set_content.bind(empty_content))\n\t\t\t\tproject.undo_redo.add_undo_method(linked_cel.set_content.bind(old_content))\n\t\tproject.undo_redo.add_do_method(\n\t\t\tGlobal.undo_or_redo.bind(false, frame_index, layer_index, project)\n\t\t)\n\t\tproject.undo_redo.add_undo_method(\n\t\t\tGlobal.undo_or_redo.bind(true, frame_index, layer_index, project)\n\t\t)\n\tproject.undo_redo.commit_action()\n\n\nfunc _dim_checker() -> void:\n\tvar image := cel.get_image()\n\tif image == null:\n\t\treturn\n\tif image.is_empty() or image.is_invisible():\n\t\ttransparent_checker.visible = false\n\telse:\n\t\ttransparent_checker.visible = true\n\n\nfunc _get_drag_data(_position: Vector2) -> Variant:\n\tif DisplayServer.is_touchscreen_available() and not button_pressed:\n\t\treturn null\n\tvar button := Button.new()\n\tbutton.size = size\n\tbutton.theme = Global.control.theme\n\tvar texture_rect := TextureRect.new()\n\ttexture_rect.size = cel_texture.size\n\ttexture_rect.position = cel_texture.position\n\ttexture_rect.expand = true\n\ttexture_rect.texture = cel_texture.texture\n\tbutton.add_child(texture_rect)\n\tset_drag_preview(button)\n\treturn [\"Cel\", _get_cel_indices()]\n\n\nfunc _can_drop_data(pos: Vector2, data) -> bool:\n\tvar project := Global.current_project\n\tif typeof(data) != TYPE_ARRAY:\n\t\tGlobal.animation_timeline.drag_highlight.visible = false\n\t\treturn false\n\tif data[0] != \"Cel\":\n\t\tGlobal.animation_timeline.drag_highlight.visible = false\n\t\treturn false\n\t# Ensure that the target and its neighbors remain visible.\n\tGlobal.animation_timeline.frame_scroll_container.ensure_control_visible(self)\n\tvar frame_container := get_parent()\n\tif pos.x > size.x / 2.0 and get_index() + 1 < frame_container.get_child_count():\n\t\tGlobal.animation_timeline.frame_scroll_container.ensure_control_visible(\n\t\t\tframe_container.get_child(get_index() + 1)\n\t\t)\n\tif pos.x < size.x / 2.0 and get_index() - 1 >= 0:\n\t\tGlobal.animation_timeline.frame_scroll_container.ensure_control_visible(\n\t\t\tframe_container.get_child(get_index() - 1)\n\t\t)\n\tvar cel_vbox := frame_container.get_parent()\n\tvar frame_container_index := frame_container.get_index()\n\tif pos.y > size.y / 2.0 and frame_container_index + 1 < cel_vbox.get_child_count():\n\t\tGlobal.animation_timeline.timeline_scroll.ensure_control_visible(\n\t\t\tcel_vbox.get_child(frame_container_index + 1)\n\t\t)\n\tif pos.y < size.y / 2.0 and frame_container_index - 1 > 0:\n\t\tGlobal.animation_timeline.timeline_scroll.ensure_control_visible(\n\t\t\tcel_vbox.get_child(frame_container_index - 1)\n\t\t)\n\n\tvar drop_cels: Array = data[1]\n\tdrop_cels.sort_custom(_sort_cel_indices_by_frame)\n\tvar drop_frames: PackedInt32Array = []\n\tvar drop_layers: PackedInt32Array = []\n\tfor cel_idx in drop_cels:\n\t\tdrop_frames.append(cel_idx[0])\n\t\tdrop_layers.append(cel_idx[1])\n\n\t# Get offset\n\tvar offset: Vector2i = Vector2i.ZERO\n\tif drop_cels.size() > 0:\n\t\toffset.x = frame - drop_cels[0][0]  # We don't need a new array for this\n\t\toffset.y = layer - Array(drop_layers).max()\n\n\tvar drop_layer := drop_layers[0]\n\t# Check if all dropped cels are on the same layer\n\tvar different_layers := false\n\tfor l in drop_layers:\n\t\tif l != layer:\n\t\t\tdifferent_layers = true\n\tvar is_swapping := Input.is_action_pressed(\"ctrl\") or different_layers\n\n\tif is_swapping:\n\t\tfor cel_idx in drop_cels:\n\t\t\t# Can't move to the same cel\n\t\t\tif drop_cels.has([cel_idx[0] + offset.x, cel_idx[1] + offset.y]):\n\t\t\t\tGlobal.animation_timeline.drag_highlight.visible = false\n\t\t\t\treturn false\n\t\t\t# Can't move different types of layers between them\n\t\t\tif (\n\t\t\t\tproject.layers[cel_idx[1]].get_script()\n\t\t\t\t!= project.layers[cel_idx[1] + offset.y].get_script()\n\t\t\t):\n\t\t\t\tGlobal.animation_timeline.drag_highlight.visible = false\n\t\t\t\treturn false\n\telse:\n\t\t# Can't move to the same cel\n\t\tfor d_frame in drop_frames:\n\t\t\tif d_frame == frame and drop_layers[-1] == layer:\n\t\t\t\tGlobal.animation_timeline.drag_highlight.visible = false\n\t\t\t\treturn false\n\t\t# Can't move different types of layers between them\n\t\tfor d_layer in drop_layers:\n\t\t\tif project.layers[d_layer].get_script() != project.layers[layer].get_script():\n\t\t\t\tGlobal.animation_timeline.drag_highlight.visible = false\n\t\t\t\treturn false\n\n\t# Check if any of the dropped cels are linked\n\tvar are_dropped_cels_linked := false\n\tfor f in drop_frames:\n\t\tif project.frames[f].cels[drop_layer].link_set != null:\n\t\t\tare_dropped_cels_linked = true\n\n\tif (  # If both cels are on the same layer, or both are not linked\n\t\tdrop_layer == layer\n\t\tor (project.frames[frame].cels[layer].link_set == null and not are_dropped_cels_linked)\n\t):\n\t\tvar region: Rect2\n\t\tif is_swapping:  # Swap cels\n\t\t\tvar copy_drop_cels := drop_cels.duplicate()  # to prevent overriting original array.\n\t\t\t# Don't highlight this button right now (it is done later, a few lines ahead)\n\t\t\tGlobal.animation_timeline.set_cels_highlight(copy_drop_cels, offset)\n\t\telse:  # Move cels\n\t\t\tif _get_region_rect(0, 0.5).has_point(get_global_mouse_position()):  # Left\n\t\t\t\tregion = _get_region_rect(-0.125, 0.125)\n\t\t\t\tregion.position.x -= 2  # Container spacing\n\t\t\telse:  # Right\n\t\t\t\tregion = _get_region_rect(0.875, 1.125)\n\t\t\t\tregion.position.x += 2  # Container spacing\n\t\tGlobal.animation_timeline.drag_highlight.global_position = region.position\n\t\tGlobal.animation_timeline.drag_highlight.size = region.size\n\t\tGlobal.animation_timeline.drag_highlight.visible = true\n\t\treturn true\n\n\tGlobal.animation_timeline.drag_highlight.visible = false\n\treturn false\n\n\nfunc _drop_data(_pos: Vector2, data) -> void:\n\tvar drop_cels: Array = data[1]\n\tdrop_cels.sort_custom(_sort_cel_indices_by_frame)\n\tvar drop_frames: PackedInt32Array = []\n\tvar drop_layers: PackedInt32Array = []\n\tfor cel_idx in drop_cels:\n\t\tdrop_frames.append(cel_idx[0])\n\t\tdrop_layers.append(cel_idx[1])\n\tvar different_layers := false\n\tfor l in drop_layers:\n\t\tif l != layer:\n\t\t\tdifferent_layers = true\n\t# Get offset\n\tvar offset: Vector2i = Vector2i.ZERO\n\tif drop_cels.size() > 0:\n\t\toffset.x = frame - drop_cels[0][0]  # We don't need a new array for this\n\t\toffset.y = layer - Array(drop_layers).max()\n\tvar project := Global.current_project\n\tproject.undo_redo.create_action(\"Move Cels\")\n\tif Input.is_action_pressed(\"ctrl\") or different_layers:  # Swap cels\n\t\tvar swap_cel_positions := []\n\t\tfor cel_idx in drop_cels:\n\t\t\tvar drop_point_frame: int = cel_idx[0] + offset.x\n\t\t\tvar drop_point_layer: int = cel_idx[1] + offset.y\n\t\t\t# If Swapping is done with currently non-existing cels, ignore those\n\t\t\tif drop_point_frame < 0 or drop_point_frame >= project.frames.size():\n\t\t\t\tcontinue\n\t\t\tif drop_point_layer < 0 or drop_point_layer >= project.layers.size():\n\t\t\t\tcontinue\n\t\t\t# if layer types are incompatible\n\t\t\tif (\n\t\t\t\tproject.layers[drop_point_layer].get_layer_type()\n\t\t\t\t!= project.layers[cel_idx[1]].get_layer_type()\n\t\t\t):\n\t\t\t\tcontinue\n\t\t\tswap_cel_positions.append([drop_point_frame, drop_point_layer])\n\t\t\tproject.undo_redo.add_do_method(\n\t\t\t\tproject.swap_cel.bind(drop_point_frame, drop_point_layer, cel_idx[0], cel_idx[1])\n\t\t\t)\n\t\t\tproject.undo_redo.add_undo_method(\n\t\t\t\tproject.swap_cel.bind(drop_point_frame, drop_point_layer, cel_idx[0], cel_idx[1])\n\t\t\t)\n\t\tproject.undo_redo.add_do_property(project, \"selected_cels\", swap_cel_positions)\n\telse:  # Move cels\n\t\tvar to_frame: int\n\t\tif _get_region_rect(0, 0.5).has_point(get_global_mouse_position()):  # Left\n\t\t\tto_frame = frame\n\t\telse:  # Right\n\t\t\tto_frame = frame + 1\n\t\tfor drop_frame in drop_frames:\n\t\t\tif drop_frame < frame:\n\t\t\t\tto_frame -= 1\n\t\tvar to_frames := range(to_frame, to_frame + drop_frames.size())\n\t\tproject.undo_redo.add_do_method(\n\t\t\tproject.move_cels_same_layer.bind(drop_frames, to_frames, layer)\n\t\t)\n\t\tproject.undo_redo.add_undo_method(\n\t\t\tproject.move_cels_same_layer.bind(to_frames, drop_frames, layer)\n\t\t)\n\n\tproject.undo_redo.add_do_method(project.change_cel.bind(frame, layer))\n\tproject.undo_redo.add_undo_method(\n\t\tproject.change_cel.bind(project.current_frame, project.current_layer)\n\t)\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.commit_action()\n\n\nfunc _get_region_rect(x_begin: float, x_end: float) -> Rect2:\n\tvar rect := get_global_rect()\n\trect.position.x += rect.size.x * x_begin\n\trect.size.x *= x_end - x_begin\n\treturn rect\n\n\nfunc _get_cel_indices(add_current_cel := false) -> Array:\n\tvar indices := Global.current_project.selected_cels.duplicate()\n\tif not [frame, layer] in indices:\n\t\tif add_current_cel:\n\t\t\tindices.append([frame, layer])\n\t\telse:\n\t\t\tindices = [[frame, layer]]\n\treturn indices\n\n\nfunc _sort_cel_indices_by_frame(a: Array, b: Array) -> bool:\n\tvar frame_a: int = a[0]\n\tvar frame_b: int = b[0]\n\tif frame_a < frame_b:\n\t\treturn true\n\treturn false\n\n\nfunc _is_playing_audio() -> void:\n\tvar project := Global.current_project\n\tvar frame_class := project.frames[frame]\n\tvar layer_class := project.layers[layer] as AudioLayer\n\tvar audio_length := layer_class.get_audio_length()\n\tvar frame_pos := frame_class.position_in_seconds(project, layer_class.playback_frame)\n\tvar audio_color := Color.LIGHT_GRAY\n\tvar pressed_stylebox := Global.control.theme.get_stylebox(&\"pressed\", &\"CelButton\")\n\tif pressed_stylebox is StyleBoxFlat:\n\t\taudio_color = pressed_stylebox.border_color\n\tvar is_last_frame := frame + 1 >= project.frames.size()\n\tif not is_last_frame:\n\t\tis_last_frame = (\n\t\t\tproject.frames[frame + 1].position_in_seconds(project, layer_class.playback_frame)\n\t\t\t>= audio_length\n\t\t)\n\tif frame_pos == 0 or (is_last_frame and frame_pos < audio_length and audio_length >= 1.0):\n\t\tcel_texture.texture = preload(\"res://assets/graphics/misc/musical_note.png\")\n\t\tcel_texture.self_modulate = audio_color\n\t\tlinked_rect.visible = false\n\telse:\n\t\tlinked_rect.visible = frame_pos < audio_length and frame_pos > 0\n\t\tlinked_rect.color = audio_color\n\t\tcel_texture.texture = null\n"
  },
  {
    "path": "src/UI/Timeline/CelButton.gd.uid",
    "content": "uid://dgc2ea2ye53p8\n"
  },
  {
    "path": "src/UI/Timeline/CelButton.tscn",
    "content": "[gd_scene format=3 uid=\"uid://dw7ci3uixjuev\"]\n\n[ext_resource type=\"Script\" uid=\"uid://dgc2ea2ye53p8\" path=\"res://src/UI/Timeline/CelButton.gd\" id=\"1_iewgo\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://3pmb60gpst7b\" path=\"res://src/UI/Nodes/TransparentChecker.tscn\" id=\"2_mi8wp\"]\n[ext_resource type=\"Shader\" uid=\"uid://c50kmfvf635kb\" path=\"res://src/Shaders/TransparentChecker.gdshader\" id=\"3_qv21g\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bsnfsiytk8sbs\" path=\"res://assets/graphics/misc/z_index_indicator.png\" id=\"4_64heq\"]\n\n[sub_resource type=\"ShaderMaterial\" id=\"1\"]\nshader = ExtResource(\"3_qv21g\")\nshader_parameter/size = 10.0\nshader_parameter/alpha = 1.0\nshader_parameter/color1 = Color(0.7, 0.7, 0.7, 1)\nshader_parameter/color2 = Color(1, 1, 1, 1)\nshader_parameter/offset = Vector2(0, 0)\nshader_parameter/scale = Vector2(0, 0)\nshader_parameter/rect_size = Vector2(24, 24)\nshader_parameter/follow_movement = false\nshader_parameter/follow_scale = false\n\n[node name=\"CelButton\" type=\"Button\" unique_id=1806832353]\ncustom_minimum_size = Vector2(36, 36)\noffset_right = 36.0\noffset_bottom = 36.0\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\nfocus_mode = 0\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"CelButton\"\ntoggle_mode = true\nbutton_mask = 7\nscript = ExtResource(\"1_iewgo\")\n\n[node name=\"UIColorRect\" type=\"ColorRect\" parent=\".\" unique_id=1365619820]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nmouse_filter = 2\ncolor = Color(0, 0, 0, 0)\n\n[node name=\"Linked\" type=\"ColorRect\" parent=\".\" unique_id=274019792]\nvisible = false\ncustom_minimum_size = Vector2(0, 16)\nlayout_mode = 1\nanchors_preset = 14\nanchor_top = 0.5\nanchor_right = 1.0\nanchor_bottom = 0.5\noffset_left = 1.0\noffset_top = -8.0\noffset_right = -1.0\noffset_bottom = 8.0\ngrow_horizontal = 2\ngrow_vertical = 2\ncolor = Color(0.4, 1, 0.4, 1)\n\n[node name=\"CelTexture\" type=\"TextureRect\" parent=\".\" unique_id=2135915997]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 6.0\noffset_top = 6.0\noffset_right = -6.0\noffset_bottom = -6.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\nexpand_mode = 1\nstretch_mode = 5\n\n[node name=\"TransparentChecker\" parent=\"CelTexture\" unique_id=329876372 instance=ExtResource(\"2_mi8wp\")]\nshow_behind_parent = true\nmaterial = SubResource(\"1\")\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\n\n[node name=\"ZIndexIndicator\" type=\"TextureRect\" parent=\".\" unique_id=657643632]\nvisible = false\nlayout_mode = 1\nanchors_preset = 3\nanchor_left = 1.0\nanchor_top = 1.0\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = -18.0\noffset_top = -18.0\noffset_right = -3.0\noffset_bottom = -3.0\ngrow_horizontal = 0\ngrow_vertical = 0\ntexture = ExtResource(\"4_64heq\")\nstretch_mode = 5\n\n[node name=\"PopupMenu\" type=\"PopupMenu\" parent=\".\" unique_id=1219159384]\nitem_count = 1\nitem_0/text = \"Properties\"\nitem_0/id = 0\n\n[connection signal=\"pressed\" from=\".\" to=\".\" method=\"_on_CelButton_pressed\"]\n[connection signal=\"id_pressed\" from=\"PopupMenu\" to=\".\" method=\"_on_PopupMenu_id_pressed\"]\n"
  },
  {
    "path": "src/UI/Timeline/CelProperties.gd",
    "content": "extends AcceptDialog\n\nvar cel_indices: Array\n\n@onready var frame_num := $GridContainer/FrameNum as Label\n@onready var layer_num := $GridContainer/LayerNum as Label\n@onready var opacity_slider := $GridContainer/OpacitySlider as ValueSlider\n@onready var z_index_slider := $GridContainer/ZIndexSlider as ValueSlider\n@onready var user_data_text_edit := $GridContainer/UserDataTextEdit as TextEdit\n@onready var ui_color_picker_button := $GridContainer/UIColorPickerButton as ColorPickerButton\n\n\nfunc _on_visibility_changed() -> void:\n\tif cel_indices.size() == 0:\n\t\treturn\n\tGlobal.dialog_open(visible)\n\tvar first_cel := Global.current_project.frames[cel_indices[0][0]].cels[cel_indices[0][1]]\n\tif visible:\n\t\tvar first_layer := Global.current_project.layers[cel_indices[0][1]]\n\t\tif cel_indices.size() == 1:\n\t\t\tframe_num.text = str(cel_indices[0][0] + 1)\n\t\t\tlayer_num.text = first_layer.name\n\t\telse:\n\t\t\tvar last_layer := Global.current_project.layers[cel_indices[-1][1]]\n\t\t\tframe_num.text = \"[%s...%s]\" % [cel_indices[0][0] + 1, cel_indices[-1][0] + 1]\n\t\t\tlayer_num.text = \"[%s...%s]\" % [first_layer.name, last_layer.name]\n\t\topacity_slider.value = first_cel.opacity * 100.0\n\t\tz_index_slider.value = first_cel.z_index\n\t\tuser_data_text_edit.text = first_cel.user_data\n\t\tui_color_picker_button.color = first_cel.ui_color\n\t\tget_tree().set_group(&\"VisualCels\", \"visible\", first_layer is not AudioLayer)\n\telse:\n\t\tcel_indices = []\n\n\nfunc _on_opacity_slider_value_changed(value: float) -> void:\n\tif cel_indices.size() == 0:\n\t\treturn\n\tfor cel_index in cel_indices:\n\t\tvar cel := Global.current_project.frames[cel_index[0]].cels[cel_index[1]]\n\t\tcel.opacity = value / 100.0\n\tGlobal.canvas.update_all_layers = true\n\tGlobal.canvas.queue_redraw()\n\n\nfunc _on_z_index_slider_value_changed(value: float) -> void:\n\tif cel_indices.size() == 0:\n\t\treturn\n\tfor cel_index in cel_indices:\n\t\tvar cel := Global.current_project.frames[cel_index[0]].cels[cel_index[1]]\n\t\tcel.z_index = value\n\tGlobal.current_project.order_layers()\n\tGlobal.canvas.update_all_layers = true\n\tGlobal.canvas.queue_redraw()\n\n\nfunc _on_user_data_text_edit_text_changed() -> void:\n\tfor cel_index in cel_indices:\n\t\tvar cel := Global.current_project.frames[cel_index[0]].cels[cel_index[1]]\n\t\tcel.user_data = user_data_text_edit.text\n\n\nfunc _on_ui_color_picker_button_color_changed(color: Color) -> void:\n\tfor cel_index in cel_indices:\n\t\tvar cel := Global.current_project.frames[cel_index[0]].cels[cel_index[1]]\n\t\tcel.ui_color = color\n"
  },
  {
    "path": "src/UI/Timeline/CelProperties.gd.uid",
    "content": "uid://cgfqibodaesbs\n"
  },
  {
    "path": "src/UI/Timeline/CelProperties.tscn",
    "content": "[gd_scene format=3 uid=\"uid://clbjfkdupw52l\"]\n\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"1_85pb7\"]\n[ext_resource type=\"Script\" uid=\"uid://cgfqibodaesbs\" path=\"res://src/UI/Timeline/CelProperties.gd\" id=\"1_lyy7i\"]\n\n[node name=\"CelProperties\" type=\"AcceptDialog\" unique_id=72887414]\ntitle = \"Cel properties\"\nsize = Vector2i(300, 227)\nscript = ExtResource(\"1_lyy7i\")\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\".\" unique_id=958267295]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 292.0\noffset_bottom = 178.0\ncolumns = 2\n\n[node name=\"Frame\" type=\"Label\" parent=\"GridContainer\" unique_id=1135035970]\nlayout_mode = 2\ntext = \"Frame\"\n\n[node name=\"FrameNum\" type=\"Label\" parent=\"GridContainer\" unique_id=844340628]\nlayout_mode = 2\ntext = \"1\"\nhorizontal_alignment = 1\n\n[node name=\"Layer\" type=\"Label\" parent=\"GridContainer\" unique_id=1782215541]\nlayout_mode = 2\ntext = \"Layer\"\n\n[node name=\"LayerNum\" type=\"Label\" parent=\"GridContainer\" unique_id=1948007373]\nlayout_mode = 2\ntext = \"1\"\nhorizontal_alignment = 1\n\n[node name=\"OpacityLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=518808234 groups=[\"VisualCels\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Opacity:\"\n\n[node name=\"OpacitySlider\" type=\"TextureProgressBar\" parent=\"GridContainer\" unique_id=923000872 groups=[\"VisualCels\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nvalue = 100.0\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1_85pb7\")\n\n[node name=\"ZIndexLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=788528214 groups=[\"VisualCels\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Z-Index:\"\n\n[node name=\"ZIndexSlider\" type=\"TextureProgressBar\" parent=\"GridContainer\" unique_id=1620974568 groups=[\"VisualCels\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = -64.0\nmax_value = 64.0\nallow_greater = true\nallow_lesser = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1_85pb7\")\n\n[node name=\"UserDataLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=47118706]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 0\ntext = \"User data:\"\n\n[node name=\"UserDataTextEdit\" type=\"TextEdit\" parent=\"GridContainer\" unique_id=1453337817]\nlayout_mode = 2\nsize_flags_horizontal = 3\nscroll_fit_content_height = true\n\n[node name=\"UIColorLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=281573064]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 0\ntext = \"Color:\"\n\n[node name=\"UIColorPickerButton\" type=\"ColorPickerButton\" parent=\"GridContainer\" unique_id=1025398052]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\n\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_visibility_changed\"]\n[connection signal=\"value_changed\" from=\"GridContainer/OpacitySlider\" to=\".\" method=\"_on_opacity_slider_value_changed\"]\n[connection signal=\"value_changed\" from=\"GridContainer/ZIndexSlider\" to=\".\" method=\"_on_z_index_slider_value_changed\"]\n[connection signal=\"text_changed\" from=\"GridContainer/UserDataTextEdit\" to=\".\" method=\"_on_user_data_text_edit_text_changed\"]\n[connection signal=\"color_changed\" from=\"GridContainer/UIColorPickerButton\" to=\".\" method=\"_on_ui_color_picker_button_color_changed\"]\n"
  },
  {
    "path": "src/UI/Timeline/FrameButton.gd",
    "content": "extends Button\n\nenum { PROPERTIES, REMOVE, CLONE, MOVE_LEFT, MOVE_RIGHT, NEW_TAG, IMPORT_TAG, REVERSE, CENTER }\n\nvar frame := 0\n\n@onready var popup_menu: PopupMenu = $PopupMenu\n@onready var frame_properties := Global.control.find_child(\"FrameProperties\") as ConfirmationDialog\n@onready var tag_properties := Global.control.find_child(\"TagProperties\") as ConfirmationDialog\n@onready var append_tag_dialog := Global.control.find_child(\"ImportTagDialog\") as AcceptDialog\n\n\nfunc _ready() -> void:\n\tif DisplayServer.is_touchscreen_available():\n\t\tmouse_filter = Control.MOUSE_FILTER_PASS\n\tGlobal.cel_switched.connect(func(): z_index = 1 if button_pressed else 0)\n\tcustom_minimum_size.x = Global.animation_timeline.cel_size\n\ttext = str(frame + 1)\n\tif frame >= 99:\n\t\talignment = HORIZONTAL_ALIGNMENT_RIGHT\n\tpressed.connect(_button_pressed)\n\tmouse_entered.connect(_update_tooltip)\n\n\nfunc _update_tooltip() -> void:\n\tvar frame_class := Global.current_project.frames[frame]\n\tvar duration := frame_class.duration\n\tvar duration_sec := frame_class.get_duration_in_seconds(Global.current_project.fps)\n\tvar duration_str := str(duration_sec)\n\tif \".\" in duration_str:  # If its a decimal value\n\t\tduration_str = \"%.2f\" % duration_sec  # Up to 2 decimal places\n\ttooltip_text = \"%s: %sx (%s sec)\" % [tr(\"Duration\"), str(duration), duration_str]\n\n\nfunc _button_pressed() -> void:\n\tif Input.is_action_just_released(\"left_mouse\"):\n\t\tGlobal.canvas.selection.transform_content_confirm()\n\t\tvar prev_curr_frame := Global.current_project.current_frame\n\t\tif Input.is_action_pressed(\"shift\"):\n\t\t\tvar frame_diff_sign := signi(frame - prev_curr_frame)\n\t\t\tif frame_diff_sign == 0:\n\t\t\t\tframe_diff_sign = 1\n\t\t\tfor i in range(prev_curr_frame, frame + frame_diff_sign, frame_diff_sign):\n\t\t\t\tfor j in range(0, Global.current_project.layers.size()):\n\t\t\t\t\tvar frame_layer := [i, j]\n\t\t\t\t\tif !Global.current_project.selected_cels.has(frame_layer):\n\t\t\t\t\t\tGlobal.current_project.selected_cels.append(frame_layer)\n\t\telif Input.is_action_pressed(\"ctrl\"):\n\t\t\tfor j in range(0, Global.current_project.layers.size()):\n\t\t\t\tvar frame_layer := [frame, j]\n\t\t\t\tif !Global.current_project.selected_cels.has(frame_layer):\n\t\t\t\t\tGlobal.current_project.selected_cels.append(frame_layer)\n\t\telse:  # If the button is pressed without Shift or Control\n\t\t\tGlobal.current_project.selected_cels.clear()\n\t\t\tvar frame_layer := [frame, Global.current_project.current_layer]\n\t\t\tif !Global.current_project.selected_cels.has(frame_layer):\n\t\t\t\tGlobal.current_project.selected_cels.append(frame_layer)\n\n\t\tGlobal.current_project.change_cel(frame, -1)\n\n\telif Input.is_action_just_released(\"right_mouse\"):\n\t\tif Global.current_project.frames.size() == 1:\n\t\t\tpopup_menu.set_item_disabled(REMOVE, true)\n\t\t\tpopup_menu.set_item_disabled(MOVE_LEFT, true)\n\t\t\tpopup_menu.set_item_disabled(MOVE_RIGHT, true)\n\t\t\tpopup_menu.set_item_disabled(REVERSE, true)\n\t\telse:\n\t\t\tpopup_menu.set_item_disabled(REMOVE, false)\n\t\t\tif Global.current_project.selected_cels.size() > 1:\n\t\t\t\tpopup_menu.set_item_disabled(REVERSE, false)\n\t\t\telse:\n\t\t\t\tpopup_menu.set_item_disabled(REVERSE, true)\n\t\t\tif frame > 0:\n\t\t\t\tpopup_menu.set_item_disabled(MOVE_LEFT, false)\n\t\t\tif frame < Global.current_project.frames.size() - 1:\n\t\t\t\tpopup_menu.set_item_disabled(MOVE_RIGHT, false)\n\t\tpopup_menu.popup_on_parent(Rect2(get_global_mouse_position(), Vector2.ONE))\n\t\tbutton_pressed = !button_pressed\n\telif Input.is_action_just_released(\"middle_mouse\"):\n\t\tbutton_pressed = !button_pressed\n\t\tGlobal.animation_timeline.delete_frames(_get_frame_indices())\n\telse:  # An example of this would be Space\n\t\tbutton_pressed = !button_pressed\n\n\nfunc _on_PopupMenu_id_pressed(id: int) -> void:\n\tvar indices := _get_frame_indices()\n\tmatch id:\n\t\tPROPERTIES:\n\t\t\tframe_properties.frame_indices = indices\n\t\t\tframe_properties.popup_centered_clamped()\n\t\t\tGlobal.dialog_open(true)\n\t\tREMOVE:\n\t\t\tGlobal.animation_timeline.delete_frames(indices)\n\t\tCLONE:\n\t\t\tGlobal.animation_timeline.copy_frames(indices)\n\t\tMOVE_LEFT:\n\t\t\tGlobal.animation_timeline.move_frames(frame, -1)\n\t\tMOVE_RIGHT:\n\t\t\tGlobal.animation_timeline.move_frames(frame, 1)\n\t\tNEW_TAG:\n\t\t\tvar current_tag_id := Global.current_project.animation_tags.size()\n\t\t\ttag_properties.show_dialog(Rect2i(), current_tag_id, false, indices)\n\t\tIMPORT_TAG:\n\t\t\tappend_tag_dialog.prepare_and_show(frame)\n\t\tREVERSE:\n\t\t\tGlobal.animation_timeline.reverse_frames(indices)\n\t\tCENTER:\n\t\t\tDrawingAlgos.center(indices)\n\n\nfunc _get_drag_data(_position: Vector2) -> Variant:\n\tif DisplayServer.is_touchscreen_available() and not button_pressed:\n\t\treturn null\n\tvar button := Button.new()\n\tbutton.size = size\n\tbutton.theme = Global.control.theme\n\tbutton.text = text\n\tset_drag_preview(button)\n\n\treturn [\"Frame\", _get_frame_indices()]\n\n\nfunc _can_drop_data(pos: Vector2, data) -> bool:\n\tif typeof(data) != TYPE_ARRAY:\n\t\tGlobal.animation_timeline.drag_highlight.visible = false\n\t\treturn false\n\tif data[0] != \"Frame\":\n\t\tGlobal.animation_timeline.drag_highlight.visible = false\n\t\treturn false\n\t# Ensure that the target and its neighbors remain visible.\n\tGlobal.animation_timeline.frame_scroll_container.ensure_control_visible(self)\n\tvar frame_container := get_parent()\n\tif pos.x > size.x / 2.0 and get_index() + 1 < frame_container.get_child_count():\n\t\tGlobal.animation_timeline.frame_scroll_container.ensure_control_visible(\n\t\t\tframe_container.get_child(get_index() + 1)\n\t\t)\n\tif pos.x < size.x / 2.0 and get_index() - 1 >= 0:\n\t\tGlobal.animation_timeline.frame_scroll_container.ensure_control_visible(\n\t\t\tframe_container.get_child(get_index() - 1)\n\t\t)\n\n\tvar is_swapping := Input.is_action_pressed(\"ctrl\")\n\tvar drop_frames: PackedInt32Array = data[1]\n\t# Get offset\n\tvar offset: int = 0\n\tif drop_frames.size() > 0:\n\t\toffset = frame - Array(drop_frames).min()\n\t# Can't move to same frame\n\tfor drop_frame in drop_frames:\n\t\tvar is_not_valid = (\n\t\t\tdrop_frames.has(drop_frame + offset) if is_swapping else drop_frames.has(frame)\n\t\t)\n\t\tif is_not_valid:\n\t\t\tGlobal.animation_timeline.drag_highlight.visible = false\n\t\t\treturn false\n\tvar region: Rect2\n\tif is_swapping:  # Swap frames\n\t\tvar copy_drop_frames := drop_frames.duplicate()  # to prevent overriting original array.\n\t\tGlobal.animation_timeline.set_frames_highlight(copy_drop_frames, offset)\n\telse:  # Move frames\n\t\tif _get_region_rect(0, 0.5).has_point(get_global_mouse_position()):\n\t\t\tregion = _get_region_rect(-0.125, 0.125)\n\t\telse:\n\t\t\tregion = _get_region_rect(0.875, 1.125)\n\tGlobal.animation_timeline.drag_highlight.global_position = region.position\n\tGlobal.animation_timeline.drag_highlight.size = region.size\n\tGlobal.animation_timeline.drag_highlight.visible = true\n\treturn true\n\n\nfunc _drop_data(_pos: Vector2, data) -> void:\n\tvar drop_frames: PackedInt32Array = data[1]\n\tvar project := Global.current_project\n\tproject.undo_redo.create_action(\"Change Frame Order\")\n\tif Input.is_action_pressed(\"ctrl\"):  # Swap frames\n\t\tvar swap_frame_positions := []\n\t\t# Get offset\n\t\tvar offset: int = 0\n\t\tif drop_frames.size() > 0:\n\t\t\toffset = frame - Array(drop_frames).min()\n\t\tfor drop_frame in drop_frames:\n\t\t\tvar drop_point: int = drop_frame + offset\n\t\t\t# If Swapping is done with currently non-existing frames, ignore those\n\t\t\tif drop_point < 0 or drop_point >= project.frames.size():\n\t\t\t\tcontinue\n\t\t\tswap_frame_positions.append([drop_point, project.current_layer])\n\t\t\tproject.undo_redo.add_do_method(project.swap_frame.bind(drop_point, drop_frame))\n\t\t\tproject.undo_redo.add_undo_method(project.swap_frame.bind(drop_point, drop_frame))\n\t\tproject.undo_redo.add_do_property(project, \"selected_cels\", swap_frame_positions)\n\telse:  # Move frames\n\t\tvar to_frame: int\n\t\tif _get_region_rect(0, 0.5).has_point(get_global_mouse_position()):  # Left\n\t\t\tto_frame = frame\n\t\telse:  # Right\n\t\t\tto_frame = frame + 1\n\t\tfor drop_frame in drop_frames:\n\t\t\tif drop_frame < frame:\n\t\t\t\tto_frame -= 1\n\t\tvar to_frames := PackedInt32Array(range(to_frame, to_frame + drop_frames.size()))\n\t\tif drop_frames != to_frames:\n\t\t\t# Code to RECALCULATE tags due to frame movement\n\t\t\tvar new_animation_tags := project.animation_tags.duplicate()\n\t\t\t# Loop through the tags to create new classes for them, so that they won't be the same\n\t\t\t# as Global.current_project.animation_tags's classes.\n\t\t\t# Needed for undo/redo to work properly.\n\t\t\tfor i in new_animation_tags.size():\n\t\t\t\tnew_animation_tags[i] = new_animation_tags[i].duplicate()\n\t\t\tfor tag: AnimationTag in new_animation_tags:\n\t\t\t\tif tag.from - 1 in drop_frames:  # check if the calculation is needed\n\t\t\t\t\t# move tag if all it's frames are moved\n\t\t\t\t\tif tag.frames_array().all(func(element): return element in drop_frames):\n\t\t\t\t\t\ttag.from += to_frames[0] - drop_frames[0]\n\t\t\t\t\t\ttag.to += to_frames[0] - drop_frames[0]\n\t\t\t\t\t\tcontinue\n\t\t\t\tvar new_from := tag.from\n\t\t\t\tvar new_to := tag.to\n\t\t\t\tfor i in drop_frames:  # calculation of new tag positions (frames are taken away)\n\t\t\t\t\tif tag.has_frame(i):\n\t\t\t\t\t\tnew_to -= 1\n\t\t\t\t\telif i < tag.to - 1:\n\t\t\t\t\t\tnew_from -= 1\n\t\t\t\t\t\tnew_to -= 1\n\t\t\t\ttag.from = new_from\n\t\t\t\ttag.to = new_to\n\t\t\t\t# calculation of new tag positions (frames are added back)\n\t\t\t\tfor i in to_frames:\n\t\t\t\t\tif tag.has_frame(i) or i == tag.to:\n\t\t\t\t\t\ttag.to += 1\n\t\t\t\t\telif i < tag.from - 1:\n\t\t\t\t\t\ttag.from += 1\n\t\t\t\t\t\ttag.to += 1\n\t\t\tproject.undo_redo.add_do_property(project, \"animation_tags\", new_animation_tags)\n\t\t\tproject.undo_redo.add_undo_property(project, \"animation_tags\", project.animation_tags)\n\t\tproject.undo_redo.add_do_method(project.move_frames.bind(drop_frames, to_frames))\n\t\tproject.undo_redo.add_undo_method(project.move_frames.bind(to_frames, drop_frames))\n\n\tif project.current_frame in drop_frames:\n\t\tproject.undo_redo.add_do_method(project.change_cel.bind(frame))\n\telse:\n\t\tproject.undo_redo.add_do_method(project.change_cel.bind(project.current_frame))\n\tproject.undo_redo.add_undo_method(project.change_cel.bind(project.current_frame))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.commit_action()\n\n\nfunc _get_region_rect(x_begin: float, x_end: float) -> Rect2:\n\tvar rect := get_global_rect()\n\trect.position.x += rect.size.x * x_begin\n\trect.size.x *= x_end - x_begin\n\treturn rect\n\n\nfunc _get_frame_indices() -> PackedInt32Array:\n\tvar indices := []\n\tfor cel in Global.current_project.selected_cels:\n\t\tvar f: int = cel[0]\n\t\tif not f in indices:\n\t\t\tindices.append(f)\n\tindices.sort()\n\tif not frame in indices:\n\t\tindices = [frame]\n\treturn indices\n"
  },
  {
    "path": "src/UI/Timeline/FrameButton.gd.uid",
    "content": "uid://cvjnh0mh4knis\n"
  },
  {
    "path": "src/UI/Timeline/FrameButton.tscn",
    "content": "[gd_scene format=3 uid=\"uid://dnwoi64rtj5vt\"]\n\n[ext_resource type=\"Script\" uid=\"uid://cvjnh0mh4knis\" path=\"res://src/UI/Timeline/FrameButton.gd\" id=\"1\"]\n\n[node name=\"FrameButton\" type=\"Button\" unique_id=472207682]\noffset_right = 12.0\noffset_bottom = 20.0\nfocus_mode = 0\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"LayerFrameButton\"\ntoggle_mode = true\nbutton_mask = 7\ntext = \"1\"\nclip_text = true\nscript = ExtResource(\"1\")\n\n[node name=\"PopupMenu\" type=\"PopupMenu\" parent=\".\" unique_id=1938667922]\nitem_count = 9\nitem_0/text = \"Properties\"\nitem_0/id = -1\nitem_1/text = \"Remove Frame\"\nitem_1/id = -1\nitem_1/disabled = true\nitem_2/text = \"Clone Frame\"\nitem_2/id = -1\nitem_3/text = \"Move Left\"\nitem_3/id = -1\nitem_3/disabled = true\nitem_4/text = \"Move Right\"\nitem_4/id = -1\nitem_4/disabled = true\nitem_5/text = \"New Tag\"\nitem_5/id = 5\nitem_6/text = \"Import Tag\"\nitem_6/id = 6\nitem_7/text = \"Reverse Frames\"\nitem_7/id = 7\nitem_7/disabled = true\nitem_8/text = \"Center Frames\"\nitem_8/id = 8\n\n[connection signal=\"id_pressed\" from=\"PopupMenu\" to=\".\" method=\"_on_PopupMenu_id_pressed\"]\n"
  },
  {
    "path": "src/UI/Timeline/FrameProperties.gd",
    "content": "extends ConfirmationDialog\n\nvar frame_indices := []\n@onready var frame_num := $GridContainer/FrameNum\n@onready var frame_dur := $GridContainer/FrameTime\n@onready var user_data_text_edit := $GridContainer/UserDataTextEdit as TextEdit\n\n\nfunc _on_FrameProperties_about_to_show() -> void:\n\tif frame_indices.size() == 0:\n\t\tframe_num.set_text(\"\")\n\t\treturn\n\tif frame_indices.size() == 1:\n\t\tframe_num.set_text(str(frame_indices[0] + 1))\n\telse:\n\t\tframe_num.set_text(\"[%s...%s]\" % [frame_indices[0] + 1, frame_indices[-1] + 1])\n\tvar frame := Global.current_project.frames[frame_indices[0]]\n\tvar duration := frame.duration\n\tframe_dur.set_value(duration)\n\tuser_data_text_edit.text = frame.user_data\n\n\nfunc _on_FrameProperties_visibility_changed() -> void:\n\tGlobal.dialog_open(false)\n\n\nfunc _on_FrameProperties_confirmed() -> void:\n\tvar project := Global.current_project\n\tvar new_duration: float = frame_dur.get_value()\n\tvar new_user_data := user_data_text_edit.text\n\tproject.undo_redo.create_action(\"Change frame duration\")\n\tfor frame_idx in frame_indices:\n\t\tvar frame := project.frames[frame_idx]\n\t\tproject.undo_redo.add_do_property(frame, \"duration\", new_duration)\n\t\tproject.undo_redo.add_do_property(frame, \"user_data\", new_user_data)\n\t\tproject.undo_redo.add_undo_property(frame, \"duration\", frame.duration)\n\t\tproject.undo_redo.add_undo_property(frame, \"user_data\", frame.user_data)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.commit_action()\n"
  },
  {
    "path": "src/UI/Timeline/FrameProperties.gd.uid",
    "content": "uid://celvwoogbqh5c\n"
  },
  {
    "path": "src/UI/Timeline/FrameProperties.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bs3dnnvnxyp68\"]\n\n[ext_resource type=\"Script\" uid=\"uid://celvwoogbqh5c\" path=\"res://src/UI/Timeline/FrameProperties.gd\" id=\"1\"]\n\n[node name=\"FrameProperties\" type=\"ConfirmationDialog\" unique_id=1934216219]\ntitle = \"Frame properties\"\nsize = Vector2i(224, 115)\nscript = ExtResource(\"1\")\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\".\" unique_id=1006931699]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 216.0\noffset_bottom = 66.0\ncolumns = 2\n\n[node name=\"Frame\" type=\"Label\" parent=\"GridContainer\" unique_id=516839507]\nlayout_mode = 2\ntext = \"Frame\"\n\n[node name=\"FrameNum\" type=\"Label\" parent=\"GridContainer\" unique_id=809902154]\nlayout_mode = 2\ntext = \"1\"\n\n[node name=\"FrameDuration\" type=\"Label\" parent=\"GridContainer\" unique_id=955521737]\nlayout_mode = 2\ntext = \"Frame duration:\"\n\n[node name=\"FrameTime\" type=\"SpinBox\" parent=\"GridContainer\" unique_id=1478729542]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmin_value = 0.05\nstep = 0.05\nvalue = 1.0\nallow_greater = true\nsuffix = \"x\"\n\n[node name=\"UserDataLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=294303177]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 0\ntext = \"User data:\"\n\n[node name=\"UserDataTextEdit\" type=\"TextEdit\" parent=\"GridContainer\" unique_id=1290376999]\nlayout_mode = 2\nsize_flags_horizontal = 3\nscroll_fit_content_height = true\n\n[connection signal=\"about_to_popup\" from=\".\" to=\".\" method=\"_on_FrameProperties_about_to_show\"]\n[connection signal=\"confirmed\" from=\".\" to=\".\" method=\"_on_FrameProperties_confirmed\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_FrameProperties_visibility_changed\"]\n"
  },
  {
    "path": "src/UI/Timeline/FrameScrollContainer.gd",
    "content": "extends Container\n\nconst PADDING := 1\n# https://github.com/godotengine/godot/blob/master/scene/gui/scroll_bar.h#L113\nconst PAGE_DIVISOR := 8\n# https://github.com/godotengine/godot/pull/111305\nconst PAN_MULTIPLIER := 5\n\n@export var h_scroll_bar: HScrollBar\n\nvar drag_speed := 0.0\nvar drag_accum := 0.0\nvar drag_from := 0.0\nvar last_drag_accum := 0.0\nvar deadzone := 0.0\nvar time_since_motion := 0.0\nvar drag_touching := false\nvar drag_touching_deaccel := false\nvar beyond_deadzone := false\nvar scroll_on_drag_hover := false\nvar scroll_border := 20\nvar scroll_speed := 12\n\n\nfunc _ready() -> void:\n\tsort_children.connect(_on_sort_children)\n\tif is_instance_valid(h_scroll_bar):\n\t\th_scroll_bar.resized.connect(_update_scroll)\n\t\th_scroll_bar.value_changed.connect(_on_scroll_bar_value_changed)\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_DRAG_BEGIN:\n\t\tif scroll_on_drag_hover and is_visible_in_tree():\n\t\t\tset_process_internal(true)\n\telif what == NOTIFICATION_DRAG_END:\n\t\tset_process_internal(false)\n\telif what == NOTIFICATION_INTERNAL_PROCESS:\n\t\t# Handle auto-scroll when dragging near edges\n\t\tif scroll_on_drag_hover and get_viewport().gui_is_dragging():\n\t\t\tvar mouse_position := get_viewport().get_mouse_position() - get_global_position()\n\t\t\tvar xform := get_transform()\n\t\t\tvar rect := Rect2(Vector2.ZERO, xform.get_scale() * get_size()).grow(scroll_border)\n\n\t\t\tif rect.has_point(mouse_position):\n\t\t\t\tvar point := Vector2.ZERO\n\n\t\t\t\tif (\n\t\t\t\t\tabsf(mouse_position.x) < absf(mouse_position.x - get_size().x)\n\t\t\t\t\tand absf(mouse_position.x) < scroll_border\n\t\t\t\t):\n\t\t\t\t\tpoint.x = mouse_position.x - scroll_border\n\t\t\t\telif absf(mouse_position.x - get_size().x) < scroll_border:\n\t\t\t\t\tpoint.x = mouse_position.x - (get_size().x - scroll_border)\n\n\t\t\t\tif (\n\t\t\t\t\tabsf(mouse_position.y) < absf(mouse_position.y - get_size().y)\n\t\t\t\t\tand absf(mouse_position.y) < scroll_border\n\t\t\t\t):\n\t\t\t\t\tpoint.y = mouse_position.y - scroll_border\n\t\t\t\telif absf(mouse_position.y - get_size().y) < scroll_border:\n\t\t\t\t\tpoint.y = mouse_position.y - (get_size().y - scroll_border)\n\n\t\t\t\tpoint *= scroll_speed * get_process_delta_time()\n\t\t\t\tpoint += Vector2(h_scroll_bar.value, 0)\n\n\t\t\t\th_scroll_bar.value = point.x\n\n\t\t# Handle drag inertial scrolling\n\t\tif drag_touching:\n\t\t\tif drag_touching_deaccel:\n\t\t\t\tvar pos := h_scroll_bar.value\n\t\t\t\tpos += drag_speed * get_process_delta_time()\n\n\t\t\t\tvar turnoff_h := false\n\n\t\t\t\tif pos < 0.0:\n\t\t\t\t\tpos = 0.0\n\t\t\t\t\tturnoff_h = true\n\t\t\t\tif pos > (h_scroll_bar.max_value - h_scroll_bar.page):\n\t\t\t\t\tpos = h_scroll_bar.max_value - h_scroll_bar.page\n\t\t\t\t\tturnoff_h = true\n\n\t\t\t\th_scroll_bar.value = pos\n\n\t\t\t\tvar sgn_x := -1.0 if drag_speed < 0.0 else 1.0\n\t\t\t\tvar val_x := absf(drag_speed)\n\t\t\t\tval_x -= 1000.0 * get_process_delta_time()\n\t\t\t\tif val_x < 0.0:\n\t\t\t\t\tturnoff_h = true\n\n\t\t\t\tdrag_speed = sgn_x * val_x\n\n\t\t\t\tif turnoff_h:\n\t\t\t\t\t_cancel_drag()\n\n\t\t\telse:\n\t\t\t\tif time_since_motion == 0.0 or time_since_motion > 0.1:\n\t\t\t\t\tvar diff := drag_accum - last_drag_accum\n\t\t\t\t\tlast_drag_accum = drag_accum\n\t\t\t\t\tdrag_speed = diff / get_process_delta_time()\n\n\nfunc _gui_input(event: InputEvent) -> void:\n\tif get_child_count() == 0:\n\t\treturn\n\tvar vertical_scroll: bool = get_child(0).size.y >= size.y\n\tvar should_h_scroll := not vertical_scroll\n\tif event is InputEventWithModifiers and not should_h_scroll:\n\t\tshould_h_scroll = event.shift_pressed\n\tif event is InputEventMouseButton:\n\t\tif event.button_index in [MOUSE_BUTTON_WHEEL_RIGHT, MOUSE_BUTTON_WHEEL_LEFT]:\n\t\t\t# This helps/allows two finger scrolling (on Laptops)\n\t\t\tshould_h_scroll = true\n\t\tif should_h_scroll:\n\t\t\tif is_instance_valid(h_scroll_bar):\n\t\t\t\tif (\n\t\t\t\t\tevent.button_index == MOUSE_BUTTON_WHEEL_UP\n\t\t\t\t\tor event.button_index == MOUSE_BUTTON_WHEEL_LEFT\n\t\t\t\t):\n\t\t\t\t\th_scroll_bar.value -= PAGE_DIVISOR * event.factor\n\t\t\t\t\taccept_event()\n\t\t\t\t\treturn\n\t\t\t\tif (\n\t\t\t\t\tevent.button_index == MOUSE_BUTTON_WHEEL_DOWN\n\t\t\t\t\tor event.button_index == MOUSE_BUTTON_WHEEL_RIGHT\n\t\t\t\t):\n\t\t\t\t\th_scroll_bar.value += PAGE_DIVISOR * event.factor\n\t\t\t\t\taccept_event()\n\t\t\t\t\treturn\n\t_touchscreen_scroll(event)\n\n\nfunc _touchscreen_scroll(event: InputEvent) -> void:\n\tif not DisplayServer.is_touchscreen_available():\n\t\treturn\n\tif get_viewport().gui_is_dragging() and not scroll_on_drag_hover:\n\t\t_cancel_drag()\n\t\treturn\n\tvar prev_h_scroll := h_scroll_bar.value\n\t# Handle mouse button input\n\tif event is InputEventMouseButton:\n\t\tvar mb := event as InputEventMouseButton\n\t\tif mb.button_index != MOUSE_BUTTON_LEFT:\n\t\t\treturn\n\n\t\tif mb.pressed:\n\t\t\tif drag_touching:\n\t\t\t\t_cancel_drag()\n\n\t\t\tdrag_speed = 0.0\n\t\t\tdrag_accum = 0.0\n\t\t\tlast_drag_accum = 0.0\n\t\t\tdrag_from = prev_h_scroll\n\t\t\tdrag_touching = true\n\t\t\tdrag_touching_deaccel = false\n\t\t\tbeyond_deadzone = false\n\t\t\ttime_since_motion = 0.0\n\t\t\tset_process_internal(true)\n\t\t\ttime_since_motion = 0.0\n\t\telse:\n\t\t\tif drag_touching:\n\t\t\t\tif drag_speed == 0.0:\n\t\t\t\t\t_cancel_drag()\n\t\t\t\telse:\n\t\t\t\t\tdrag_touching_deaccel = true\n\t\treturn\n\n\t# Handle mouse motion input\n\tif event is InputEventMouseMotion:\n\t\tvar mm := event as InputEventMouseMotion\n\t\tif drag_touching and not drag_touching_deaccel:\n\t\t\tvar motion := mm.relative.x\n\t\t\tdrag_accum -= motion\n\n\t\t\tif beyond_deadzone or (absf(drag_accum) > deadzone):\n\t\t\t\tif not beyond_deadzone:\n\t\t\t\t\tpropagate_notification(NOTIFICATION_SCROLL_BEGIN)\n\t\t\t\t\tbeyond_deadzone = true\n\t\t\t\t\t# Reset accum for smooth start\n\t\t\t\t\tdrag_accum = -motion\n\n\t\t\t\tvar diff := drag_from + drag_accum\n\t\t\t\th_scroll_bar.value = diff\n\t\t\t\ttime_since_motion = 0.0\n\n\t\tif h_scroll_bar.value != prev_h_scroll:\n\t\t\taccept_event()\n\t\treturn\n\n\t# Pan scrolling, used by some MacOS devices\n\t# (see: https://github.com/Orama-Interactive/Pixelorama/discussions/1218)\n\tif event is InputEventPanGesture:\n\t\tif event.delta.x != 0:\n\t\t\th_scroll_bar.value += signf(event.delta.x) * PAN_MULTIPLIER\n\n\nfunc _cancel_drag() -> void:\n\tset_process_internal(false)\n\tdrag_touching_deaccel = false\n\tdrag_touching = false\n\tdrag_speed = 0.0\n\tdrag_accum = 0.0\n\tlast_drag_accum = 0.0\n\tdrag_from = 0.0\n\n\tif beyond_deadzone:\n\t\tbeyond_deadzone = false\n\t\tpropagate_notification(NOTIFICATION_SCROLL_END)\n\n\nfunc _update_scroll() -> void:\n\tif get_child_count() > 0 and is_instance_valid(h_scroll_bar):\n\t\tvar cel_margin_container := get_child(0) as Control\n\t\tvar child_min_size := cel_margin_container.get_combined_minimum_size()\n\t\th_scroll_bar.visible = child_min_size.x > size.x\n\t\th_scroll_bar.max_value = child_min_size.x\n\t\tif h_scroll_bar.visible:\n\t\t\th_scroll_bar.page = size.x - h_scroll_bar.get_combined_minimum_size().x\n\t\telse:\n\t\t\th_scroll_bar.page = size.x\n\t\tcel_margin_container.position.x = -h_scroll_bar.value + PADDING\n\n\nfunc ensure_control_visible(control: Control) -> void:\n\tif not is_instance_valid(control):\n\t\treturn\n\t# Based on Godot's implementation in ScrollContainer\n\tvar global_rect := get_global_rect()\n\tvar other_rect := control.get_global_rect()\n\tvar diff := maxf(\n\t\tminf(other_rect.position.x, global_rect.position.x),\n\t\tother_rect.position.x + other_rect.size.x - global_rect.size.x\n\t)\n\th_scroll_bar.value += diff - global_rect.position.x\n\n\nfunc _on_sort_children() -> void:\n\tif get_child_count():\n\t\tget_child(0).size = get_child(0).get_combined_minimum_size()\n\t\t_update_scroll()\n\n\nfunc _on_scroll_bar_value_changed(value: float) -> void:\n\tif get_child_count() > 0 and is_instance_valid(h_scroll_bar):\n\t\tvar cel_margin_container := get_child(0) as Control\n\t\tcel_margin_container.position.x = -value + PADDING\n\n\nfunc _clips_input() -> bool:\n\treturn true\n"
  },
  {
    "path": "src/UI/Timeline/FrameScrollContainer.gd.uid",
    "content": "uid://ckaphkalax7bh\n"
  },
  {
    "path": "src/UI/Timeline/LayerButton.gd",
    "content": "class_name LayerButton\nextends HBoxContainer\n\nenum MenuOptions { PROPERTIES, CLIPPING_MASK, FLATTEN, FLATTEN_VISIBLE }\n\nconst HIERARCHY_DEPTH_PIXEL_SHIFT := 16\nconst ARRAY_TEXTURE_TYPES: Array[Texture2D] = [\n\tpreload(\"res://assets/graphics/layers/type_icons/layer_pixel.png\"),\n\tpreload(\"res://assets/graphics/layers/type_icons/layer_group.png\"),\n\tpreload(\"res://assets/graphics/layers/type_icons/layer_3d.png\"),\n\tpreload(\"res://assets/graphics/layers/type_icons/layer_tilemap.png\"),\n\tpreload(\"res://assets/graphics/layers/type_icons/layer_sound.png\")\n]\n\nvar layer_index := 0:\n\tset(value):\n\t\tlayer_index = value\n\t\tif is_instance_valid(main_button):\n\t\t\tmain_button.layer_index = value\nvar button_pressed := false:\n\tset(value):\n\t\tbutton_pressed = value\n\t\tmain_button.button_pressed = value\n\tget:\n\t\treturn main_button.button_pressed\nvar animation_running := false\nvar audio_playing_at_frame := 0\n\nvar audio_player: AudioStreamPlayer\n@onready var properties: AcceptDialog = Global.control.find_child(\"LayerProperties\")\n@onready var main_button := %LayerMainButton as Button\n@onready var expand_button := %ExpandButton as BaseButton\n@onready var visibility_button := %VisibilityButton as BaseButton\n@onready var lock_button := %LockButton as BaseButton\n@onready var label := %LayerNameLabel as Label\n@onready var line_edit := %LayerNameLineEdit as LineEdit\n@onready var hierarchy_spacer := %HierarchySpacer as Control\n@onready var layer_fx_texture_rect := %LayerFXTextureRect as TextureRect\n@onready var layer_type_texture_rect := %LayerTypeTextureRect as TextureRect\n@onready var layer_ui_color := $LayerMainButton/LayerUIColor as ColorRect\n@onready var linked_button := %LinkButton as BaseButton\n@onready var clipping_mask_icon := %ClippingMask as TextureRect\n@onready var popup_menu := $PopupMenu as PopupMenu\n\n\nfunc _ready() -> void:\n\tif DisplayServer.is_touchscreen_available():\n\t\tmouse_filter = Control.MOUSE_FILTER_PASS\n\tmain_button.layer_index = layer_index\n\tmain_button.hierarchy_depth_pixel_shift = HIERARCHY_DEPTH_PIXEL_SHIFT\n\tGlobal.cel_switched.connect(_on_cel_switched)\n\tvar layer := Global.current_project.layers[layer_index]\n\tlayer.name_changed.connect(\n\t\tfunc():\n\t\t\tlabel.text = layer.name\n\t\t\tline_edit.text = layer.name\n\t)\n\tlayer.visibility_changed.connect(_on_layer_visibility_changed)\n\tlayer.locked_changed.connect(update_buttons)\n\tlayer.ui_color_changed.connect(func(): layer_ui_color.color = layer.get_ui_color())\n\tfor ancestor in layer.get_ancestors():\n\t\tancestor.ui_color_changed.connect(func(): layer_ui_color.color = layer.get_ui_color())\n\tif layer is PixelLayer:\n\t\tlinked_button.visible = true\n\telif layer is GroupLayer:\n\t\texpand_button.visible = true\n\telif layer is AudioLayer:\n\t\taudio_player = AudioStreamPlayer.new()\n\t\taudio_player.stream = layer.audio\n\t\tlayer.audio_changed.connect(func(): audio_player.stream = layer.audio)\n\t\tadd_child(audio_player)\n\t\tGlobal.animation_timeline.animation_started.connect(_on_animation_started)\n\t\tGlobal.animation_timeline.animation_looped.connect(_on_animation_looped)\n\t\tGlobal.animation_timeline.animation_finished.connect(_on_animation_finished)\n\tcustom_minimum_size.y = Global.animation_timeline.cel_size\n\tlabel.text = layer.name\n\tline_edit.text = layer.name\n\tlayer_ui_color.color = layer.get_ui_color()\n\tlayer_fx_texture_rect.visible = layer.effects.size() > 0\n\tlayer_type_texture_rect.texture = ARRAY_TEXTURE_TYPES[layer.get_layer_type()]\n\tlayer.effects_added_removed.connect(\n\t\tfunc(): layer_fx_texture_rect.visible = layer.effects.size() > 0\n\t)\n\tfor child in $HBoxContainer.get_children():\n\t\tif not child is Button:\n\t\t\tcontinue\n\t\tvar texture := child.get_child(0)\n\t\tif not texture is TextureRect:\n\t\t\tcontinue\n\t\ttexture.modulate = Global.modulate_icon_color\n\n\t# Visualize how deep into the hierarchy the layer is\n\tvar hierarchy_depth := layer.get_hierarchy_depth()\n\thierarchy_spacer.custom_minimum_size.x = hierarchy_depth * HIERARCHY_DEPTH_PIXEL_SHIFT\n\tupdate_buttons()\n\n\nfunc _on_cel_switched() -> void:\n\tz_index = 1 if button_pressed else 0\n\tvar project := Global.current_project\n\tvar layer := project.layers[layer_index]\n\tif layer is AudioLayer:\n\t\tif not is_instance_valid(audio_player):\n\t\t\treturn\n\t\tif not layer.is_visible_in_hierarchy():\n\t\t\taudio_player.stop()\n\t\t\treturn\n\t\tif animation_running:\n\t\t\tvar current_frame := project.current_frame\n\t\t\tif (\n\t\t\t\tcurrent_frame == layer.playback_frame\n\t\t\t\tor (current_frame == 0 and layer.playback_frame < 0)\n\t\t\t\t## True when switching cels while the animation is running\n\t\t\t\tor current_frame != audio_playing_at_frame + 1\n\t\t\t):\n\t\t\t\t_play_audio(false)\n\t\t\taudio_playing_at_frame = current_frame\n\t\telse:\n\t\t\t_play_audio(true)\n\n\nfunc _on_layer_visibility_changed() -> void:\n\tupdate_buttons()\n\tvar layer := Global.current_project.layers[layer_index]\n\tif layer is AudioLayer:\n\t\t_play_audio(not animation_running)\n\n\nfunc _on_animation_started(_dir: bool) -> void:\n\tanimation_running = true\n\t_play_audio(false)\n\n\nfunc _on_animation_looped() -> void:\n\tvar layer := Global.current_project.layers[layer_index]\n\tif layer is AudioLayer:\n\t\tif layer.playback_frame > 0 or not layer.is_visible_in_hierarchy():\n\t\t\tif is_instance_valid(audio_player):\n\t\t\t\taudio_player.stop()\n\n\nfunc _on_animation_finished() -> void:\n\tanimation_running = false\n\tif is_instance_valid(audio_player):\n\t\taudio_player.stop()\n\n\nfunc _play_audio(single_frame: bool) -> void:\n\tif not is_instance_valid(audio_player):\n\t\treturn\n\tvar project := Global.current_project\n\tvar layer := project.layers[layer_index] as AudioLayer\n\tif not layer.is_visible_in_hierarchy():\n\t\treturn\n\tvar audio_length := layer.get_audio_length()\n\tvar frame := project.frames[project.current_frame]\n\tvar frame_pos := frame.position_in_seconds(project, layer.playback_frame)\n\tif frame_pos >= 0 and frame_pos < audio_length:\n\t\taudio_player.play(frame_pos)\n\t\taudio_playing_at_frame = project.current_frame\n\t\tif single_frame:\n\t\t\tvar timer := get_tree().create_timer(frame.get_duration_in_seconds(project.fps))\n\t\t\ttimer.timeout.connect(func(): audio_player.stop())\n\telse:\n\t\taudio_player.stop()\n\n\nfunc update_buttons() -> void:\n\tvar layer := Global.current_project.layers[layer_index]\n\tif layer is GroupLayer:\n\t\tif layer.expanded:\n\t\t\tGlobal.change_button_texturerect(expand_button.get_child(0), \"group_expanded.png\")\n\t\telse:\n\t\t\tGlobal.change_button_texturerect(expand_button.get_child(0), \"group_collapsed.png\")\n\n\tif layer.visible:\n\t\tGlobal.change_button_texturerect(visibility_button.get_child(0), \"layer_visible.png\")\n\telse:\n\t\tGlobal.change_button_texturerect(visibility_button.get_child(0), \"layer_invisible.png\")\n\n\tif layer.locked:\n\t\tGlobal.change_button_texturerect(lock_button.get_child(0), \"lock.png\")\n\telse:\n\t\tGlobal.change_button_texturerect(lock_button.get_child(0), \"unlock.png\")\n\n\tif linked_button:\n\t\tif layer.new_cels_linked:  # If new layers will be linked\n\t\t\tGlobal.change_button_texturerect(linked_button.get_child(0), \"linked_layer.png\")\n\t\telse:\n\t\t\tGlobal.change_button_texturerect(linked_button.get_child(0), \"unlinked_layer.png\")\n\n\tvisibility_button.modulate.a = 1\n\tlock_button.modulate.a = 1\n\tpopup_menu.set_item_checked(0, layer.clipping_mask)\n\tclipping_mask_icon.visible = layer.clipping_mask\n\tif is_instance_valid(layer.parent):\n\t\tif not layer.parent.is_visible_in_hierarchy():\n\t\t\tvisibility_button.modulate.a = 0.33\n\t\tif layer.parent.is_locked_in_hierarchy():\n\t\t\tlock_button.modulate.a = 0.33\n\n\n## When pressing a button, change the appearance of other layers (ie: expand or visible)\nfunc _update_buttons_all_layers() -> void:\n\tfor layer_button: LayerButton in get_parent().get_children():\n\t\tlayer_button.update_buttons()\n\t\tvar layer := Global.current_project.layers[layer_button.layer_index]\n\t\tvar expanded := layer.is_expanded_in_hierarchy()\n\t\tlayer_button.visible = expanded\n\t\tGlobal.animation_timeline.cel_vbox.get_child(layer_button.get_index()).visible = expanded\n\tGlobal.animation_timeline.update_global_layer_buttons()\n\n\nfunc _input(event: InputEvent) -> void:\n\tif (\n\t\t(event.is_action_released(&\"ui_accept\") or event.is_action_released(&\"ui_cancel\"))\n\t\tand line_edit.visible\n\t\tand event.keycode != KEY_SPACE\n\t):\n\t\t_save_layer_name(line_edit.text)\n\n\nfunc _on_layer_main_button_pressed() -> void:\n\tvar project := Global.current_project\n\tGlobal.canvas.selection.transform_content_confirm()\n\tvar prev_curr_layer := project.current_layer\n\tif Input.is_action_pressed(&\"shift\"):\n\t\tvar layer_diff_sign := signi(layer_index - prev_curr_layer)\n\t\tif layer_diff_sign == 0:\n\t\t\tlayer_diff_sign = 1\n\t\tfor i in range(0, project.frames.size()):\n\t\t\tfor j in range(prev_curr_layer, layer_index + layer_diff_sign, layer_diff_sign):\n\t\t\t\tvar frame_layer := [i, j]\n\t\t\t\tif !project.selected_cels.has(frame_layer):\n\t\t\t\t\tproject.selected_cels.append(frame_layer)\n\t\tproject.change_cel(-1, layer_index)\n\telif Input.is_action_pressed(&\"ctrl\"):\n\t\tfor i in range(0, project.frames.size()):\n\t\t\tvar frame_layer := [i, layer_index]\n\t\t\tif !project.selected_cels.has(frame_layer):\n\t\t\t\tproject.selected_cels.append(frame_layer)\n\t\tproject.change_cel(-1, layer_index)\n\telse:  # If the button is pressed without Shift or Control\n\t\t_select_current_layer()\n\n\nfunc _on_main_button_gui_input(event: InputEvent) -> void:\n\tif not event is InputEventMouseButton:\n\t\treturn\n\tif event.button_index == MOUSE_BUTTON_LEFT:\n\t\tif event.double_click:\n\t\t\tlabel.visible = false\n\t\t\tline_edit.visible = true\n\t\t\tline_edit.editable = true\n\t\t\tline_edit.grab_focus()\n\t\t\tline_edit.select_all()\n\t\t\tline_edit.caret_column = line_edit.text.length()\n\n\telif event.button_index == MOUSE_BUTTON_RIGHT and event.pressed:\n\t\tpopup_menu.popup_on_parent(Rect2(get_global_mouse_position(), Vector2.ONE))\n\n\nfunc _on_layer_name_line_edit_focus_exited() -> void:\n\t_save_layer_name(line_edit.text)\n\n\nfunc _save_layer_name(new_name: String) -> void:\n\tlabel.visible = true\n\tline_edit.visible = false\n\tline_edit.editable = false\n\n\tvar project: Project = Global.current_project\n\tproject.undo_redo.create_action(\"Rename Layer\")\n\tif layer_index < project.layers.size():\n\t\tvar layer: BaseLayer = project.layers[layer_index]\n\t\tproject.undo_redo.add_do_property(layer, \"name\", new_name)\n\t\tproject.undo_redo.add_undo_property(layer, \"name\", layer.name)\n\t\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_expand_button_pressed() -> void:\n\tvar layer := Global.current_project.layers[layer_index]\n\tlayer.expanded = !layer.expanded\n\t_update_buttons_all_layers()\n\n\nfunc _on_visibility_button_pressed() -> void:\n\tvar project = Global.current_project\n\tproject.undo_redo.create_action(\"Change Layer Visibility\")\n\n\tGlobal.canvas.selection.transform_content_confirm()\n\tvar layer := Global.current_project.layers[layer_index]\n\tif Input.is_key_pressed(KEY_ALT):\n\t\tvar one_hidden_by_other_layer := false\n\t\tfor other_layer in Global.current_project.layers:\n\t\t\tif other_layer.hidden_by_other_layer:\n\t\t\t\tone_hidden_by_other_layer = true\n\t\t\t\tbreak\n\t\tfor other_layer in Global.current_project.layers:\n\t\t\tif other_layer != layer and other_layer not in layer.get_ancestors():\n\t\t\t\tproject.undo_redo.add_do_property(other_layer, \"visible\", one_hidden_by_other_layer)\n\t\t\t\tproject.undo_redo.add_undo_property(other_layer, \"visible\", other_layer.visible)\n\t\t\telse:\n\t\t\t\tproject.undo_redo.add_do_property(other_layer, \"visible\", true)\n\t\t\t\tproject.undo_redo.add_undo_property(other_layer, \"visible\", other_layer.visible)\n\n\t\t\tproject.undo_redo.add_do_property(\n\t\t\t\tother_layer, \"hidden_by_other_layer\", not one_hidden_by_other_layer\n\t\t\t)\n\t\t\tproject.undo_redo.add_undo_property(\n\t\t\t\tother_layer, \"hidden_by_other_layer\", other_layer.hidden_by_other_layer\n\t\t\t)\n\telse:\n\t\tproject.undo_redo.add_do_property(layer, \"visible\", not layer.visible)\n\t\tproject.undo_redo.add_undo_property(layer, \"visible\", layer.visible)\n\n\tif Global.select_layer_on_button_click:\n\t\t_select_current_layer()\n\n\tproject.undo_redo.add_do_property(Global.canvas, \"update_all_layers\", true)\n\tproject.undo_redo.add_undo_property(Global.canvas, \"update_all_layers\", true)\n\tproject.undo_redo.add_do_method(Global.canvas.queue_redraw)\n\tproject.undo_redo.add_undo_method(Global.canvas.queue_redraw)\n\tproject.undo_redo.add_do_method(_update_buttons_all_layers)\n\tproject.undo_redo.add_undo_method(_update_buttons_all_layers)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_lock_button_pressed() -> void:\n\tvar project = Global.current_project\n\tproject.undo_redo.create_action(\"Change Layer Locked Status\")\n\n\tGlobal.canvas.selection.transform_content_confirm()\n\tvar layer := Global.current_project.layers[layer_index]\n\n\tproject.undo_redo.add_do_property(layer, \"locked\", not layer.locked)\n\tproject.undo_redo.add_undo_property(layer, \"locked\", layer.locked)\n\n\tif Global.select_layer_on_button_click:\n\t\t_select_current_layer()\n\n\tproject.undo_redo.add_do_method(_update_buttons_all_layers)\n\tproject.undo_redo.add_undo_method(_update_buttons_all_layers)\n\tproject.undo_redo.add_do_method(_update_delete_layer_button)\n\tproject.undo_redo.add_undo_method(_update_delete_layer_button)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\n\tproject.undo_redo.commit_action()\n\n\nfunc _update_delete_layer_button() -> void:\n\tvar layer := Global.current_project.layers[Global.current_project.current_layer]\n\tvar child_count := layer.get_child_count(true)\n\tGlobal.disable_button(\n\t\tGlobal.animation_timeline.remove_layer,\n\t\tlayer.is_locked_in_hierarchy() or Global.current_project.layers.size() == child_count + 1\n\t)\n\n\nfunc _on_link_button_pressed() -> void:\n\tGlobal.canvas.selection.transform_content_confirm()\n\tvar layer := Global.current_project.layers[layer_index]\n\tif not layer is PixelLayer:\n\t\treturn\n\tlayer.new_cels_linked = !layer.new_cels_linked\n\tupdate_buttons()\n\tif Global.select_layer_on_button_click:\n\t\t_select_current_layer()\n\n\nfunc _select_current_layer() -> void:\n\tGlobal.current_project.selected_cels.clear()\n\tvar frame_layer := [Global.current_project.current_frame, layer_index]\n\tif !Global.current_project.selected_cels.has(frame_layer):\n\t\tGlobal.current_project.selected_cels.append(frame_layer)\n\n\tGlobal.current_project.change_cel(-1, layer_index)\n\n\nfunc _on_popup_menu_id_pressed(id: int) -> void:\n\tvar project := Global.current_project\n\tvar layer := project.layers[layer_index]\n\tif id == MenuOptions.PROPERTIES:\n\t\tproperties.layer_indices = _get_layer_indices()\n\t\tproperties.popup_centered_clamped()\n\telif id == MenuOptions.CLIPPING_MASK:\n\t\tlayer.clipping_mask = not layer.clipping_mask\n\t\tpopup_menu.set_item_checked(id, layer.clipping_mask)\n\t\tclipping_mask_icon.visible = layer.clipping_mask\n\t\tGlobal.canvas.update_all_layers = true\n\t\tGlobal.canvas.draw_layers()\n\telif id == MenuOptions.FLATTEN:\n\t\tvar indices := _get_layer_indices()\n\t\tGlobal.animation_timeline.flatten_layers.call_deferred(indices, false)\n\telif id == MenuOptions.FLATTEN_VISIBLE:\n\t\tvar indices := _get_layer_indices()\n\t\tGlobal.animation_timeline.flatten_layers.call_deferred(indices, true)\n\n\nfunc _get_layer_indices() -> PackedInt32Array:\n\tvar indices := []\n\tfor cel in Global.current_project.selected_cels:\n\t\tvar l: int = cel[1]\n\t\tif not l in indices:\n\t\t\tindices.append(l)\n\tindices.sort()\n\tif not layer_index in indices:\n\t\tindices = [layer_index]\n\treturn indices\n"
  },
  {
    "path": "src/UI/Timeline/LayerButton.gd.uid",
    "content": "uid://dvexfklwk4l53\n"
  },
  {
    "path": "src/UI/Timeline/LayerButton.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bai814sqvk68f\"]\n\n[ext_resource type=\"Script\" uid=\"uid://dvexfklwk4l53\" path=\"res://src/UI/Timeline/LayerButton.gd\" id=\"1_6hlpe\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://c2b3htff5yox8\" path=\"res://assets/graphics/layers/layer_visible.png\" id=\"2_ef6fb\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dndlglvqc7v6a\" path=\"res://assets/graphics/layers/group_expanded.png\" id=\"2_enrtd\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dhc0pnnqojd2m\" path=\"res://assets/graphics/layers/unlock.png\" id=\"3_ah1my\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://cofw1x6chh4i\" path=\"res://assets/graphics/layers/unlinked_layer.png\" id=\"4_058qm\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ieo8fsapcgsy\" path=\"res://assets/graphics/layers/clipping_mask.png\" id=\"6_73j5q\"]\n[ext_resource type=\"Script\" uid=\"uid://bgvjodkehy0qn\" path=\"res://src/UI/Timeline/LayerMainButton.gd\" id=\"6_n8q6b\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dv5y24sb8lxg2\" path=\"res://assets/graphics/layers/layer_active_effect.png\" id=\"8_7wf6f\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://cjvk47bd56156\" path=\"res://assets/graphics/layers/type_icons/layer_pixel.png\" id=\"8_ce16y\"]\n\n[node name=\"LayerButton\" type=\"HBoxContainer\" unique_id=1570434002]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 3\ntheme_override_constants/separation = 0\nscript = ExtResource(\"1_6hlpe\")\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\".\" unique_id=1094638573]\ncustom_minimum_size = Vector2(84, 0)\nlayout_mode = 2\ntheme_override_constants/separation = 0\n\n[node name=\"VisibilityButton\" type=\"Button\" parent=\"HBoxContainer\" unique_id=1339459623 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(28, 22)\nlayout_mode = 2\ntooltip_text = \"Toggle layer's visibility\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"HBoxContainer/VisibilityButton\" unique_id=2003797487]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -11.0\noffset_top = -11.0\noffset_right = 11.0\noffset_bottom = 11.0\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"2_ef6fb\")\n\n[node name=\"LockButton\" type=\"Button\" parent=\"HBoxContainer\" unique_id=264572520 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(28, 22)\nlayout_mode = 2\ntooltip_text = \"Lock/unlock layer\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"HBoxContainer/LockButton\" unique_id=1504547710]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -11.0\noffset_top = -11.0\noffset_right = 11.0\noffset_bottom = 11.0\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"3_ah1my\")\n\n[node name=\"LinkButton\" type=\"Button\" parent=\"HBoxContainer\" unique_id=775486227 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\nvisible = false\ncustom_minimum_size = Vector2(28, 22)\nlayout_mode = 2\ntooltip_text = \"Enable/disable automatic linking of new cels when creating new frames\n\nLinked cels share content across multiple frames\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"HBoxContainer/LinkButton\" unique_id=1915470760]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -11.0\noffset_top = -11.0\noffset_right = 11.0\noffset_bottom = 11.0\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"4_058qm\")\n\n[node name=\"ExpandButton\" type=\"Button\" parent=\"HBoxContainer\" unique_id=1586808638 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\nvisible = false\ncustom_minimum_size = Vector2(28, 22)\nlayout_mode = 2\ntooltip_text = \"Expand/collapse group\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"HBoxContainer/ExpandButton\" unique_id=531611990]\nlayout_mode = 0\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -11.0\noffset_top = -11.0\noffset_right = 11.0\noffset_bottom = 11.0\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"2_enrtd\")\n\n[node name=\"LayerMainButton\" type=\"Button\" parent=\".\" unique_id=1707392079]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 0\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"LayerFrameButton\"\ntoggle_mode = true\nscript = ExtResource(\"6_n8q6b\")\n\n[node name=\"LayerUIColor\" type=\"ColorRect\" parent=\"LayerMainButton\" unique_id=1683280268]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nmouse_filter = 2\ncolor = Color(0, 0, 0, 0)\n\n[node name=\"LayerName\" type=\"HBoxContainer\" parent=\"LayerMainButton\" unique_id=1103935264]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\n\n[node name=\"HierarchySpacer\" type=\"Control\" parent=\"LayerMainButton/LayerName\" unique_id=784955876]\nunique_name_in_owner = true\nlayout_mode = 2\nmouse_filter = 2\n\n[node name=\"ClippingMask\" type=\"TextureRect\" parent=\"LayerMainButton/LayerName\" unique_id=532219846]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\ntexture = ExtResource(\"6_73j5q\")\nstretch_mode = 5\n\n[node name=\"LayerNameLabel\" type=\"Label\" parent=\"LayerMainButton/LayerName\" unique_id=574181518]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Layer 0\"\nclip_text = true\n\n[node name=\"LayerNameLineEdit\" type=\"LineEdit\" parent=\"LayerMainButton/LayerName\" unique_id=1729250632]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 4\ntext = \"Layer 0\"\neditable = false\ncaret_blink = true\ncaret_blink_interval = 0.5\n\n[node name=\"LayerFXTextureRect\" type=\"TextureRect\" parent=\"LayerMainButton/LayerName\" unique_id=561557841 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\nvisible = false\nlayout_mode = 2\ntexture = ExtResource(\"8_7wf6f\")\nstretch_mode = 3\nflip_v = true\n\n[node name=\"LayerTypeTextureRect\" type=\"TextureRect\" parent=\"LayerMainButton/LayerName\" unique_id=1553318290 groups=[\"UIButtons\"]]\nunique_name_in_owner = true\nmodulate = Color(1, 1, 1, 0.498039)\nlayout_mode = 2\ntexture = ExtResource(\"8_ce16y\")\nstretch_mode = 3\n\n[node name=\"MarginSpacer\" type=\"Control\" parent=\"LayerMainButton/LayerName\" unique_id=453250867]\ncustom_minimum_size = Vector2(4, 0)\nlayout_mode = 2\n\n[node name=\"PopupMenu\" type=\"PopupMenu\" parent=\".\" unique_id=767376756]\ndisable_3d = true\nitem_count = 4\nitem_0/text = \"Properties\"\nitem_0/id = 0\nitem_1/text = \"Clipping mask\"\nitem_1/checkable = 1\nitem_1/id = 1\nitem_2/text = \"Flatten\"\nitem_2/id = 2\nitem_3/text = \"Flatten visible\"\nitem_3/id = 3\n\n[connection signal=\"pressed\" from=\"HBoxContainer/VisibilityButton\" to=\".\" method=\"_on_visibility_button_pressed\"]\n[connection signal=\"pressed\" from=\"HBoxContainer/LockButton\" to=\".\" method=\"_on_lock_button_pressed\"]\n[connection signal=\"pressed\" from=\"HBoxContainer/LinkButton\" to=\".\" method=\"_on_link_button_pressed\"]\n[connection signal=\"pressed\" from=\"HBoxContainer/ExpandButton\" to=\".\" method=\"_on_expand_button_pressed\"]\n[connection signal=\"gui_input\" from=\"LayerMainButton\" to=\".\" method=\"_on_main_button_gui_input\"]\n[connection signal=\"pressed\" from=\"LayerMainButton\" to=\".\" method=\"_on_layer_main_button_pressed\"]\n[connection signal=\"focus_exited\" from=\"LayerMainButton/LayerName/LayerNameLineEdit\" to=\".\" method=\"_on_layer_name_line_edit_focus_exited\"]\n[connection signal=\"id_pressed\" from=\"PopupMenu\" to=\".\" method=\"_on_popup_menu_id_pressed\"]\n"
  },
  {
    "path": "src/UI/Timeline/LayerEffects/LayerEffectButton.gd",
    "content": "extends Button\n\nvar layer: BaseLayer\n\n@onready var panel := get_parent().get_parent()\n\n\nfunc _get_drag_data(_position: Vector2) -> Variant:\n\treturn [\"LayerEffect\", panel.get_index()]\n\n\nfunc _can_drop_data(pos: Vector2, data) -> bool:\n\tif typeof(data) != TYPE_ARRAY:\n\t\tget_window().drag_highlight.visible = false\n\t\treturn false\n\tif data[0] != \"LayerEffect\":\n\t\tget_window().drag_highlight.visible = false\n\t\treturn false\n\n\tvar effect_container := panel.get_parent()\n\tvar scroll_container := effect_container.get_parent() as ScrollContainer\n\tvar panel_index := panel.get_index()\n\t# Ensure that the target and its neighbors remain visible.\n\tscroll_container.ensure_control_visible(self)\n\tif pos.y > size.y / 2.0 and panel_index + 1 < effect_container.get_child_count():\n\t\tscroll_container.ensure_control_visible(effect_container.get_child(panel_index + 1))\n\tif pos.y < size.y / 2.0 and panel_index - 1 >= 0:\n\t\tscroll_container.ensure_control_visible(effect_container.get_child(panel_index - 1))\n\tvar drop_index: int = data[1]\n\tif panel_index == drop_index:\n\t\tget_window().drag_highlight.visible = false\n\t\treturn false\n\tvar region: Rect2\n\tif _get_region_rect(0, 0.5).has_point(get_global_mouse_position()):  # Top region\n\t\tregion = _get_region_rect(-0.1, 0.15)\n\telse:  # Bottom region\n\t\tregion = _get_region_rect(0.85, 1.1)\n\tget_window().drag_highlight.visible = true\n\tget_window().drag_highlight.set_deferred(&\"global_position\", region.position)\n\tget_window().drag_highlight.set_deferred(&\"size\", region.size)\n\treturn true\n\n\nfunc _drop_data(_pos: Vector2, data) -> void:\n\tvar drop_index: int = data[1]\n\tvar to_index: int  # the index where the LOWEST moved layer effect should end up\n\tif _get_region_rect(0, 0.5).has_point(get_global_mouse_position()):  # Top region\n\t\tto_index = panel.get_index()\n\telse:  # Bottom region\n\t\tto_index = panel.get_index() + 1\n\tif drop_index < panel.get_index():\n\t\tto_index -= 1\n\tGlobal.current_project.undo_redo.create_action(\"Re-arrange layer effect\")\n\tGlobal.current_project.undo_redo.add_do_method(\n\t\tget_window().move_effect.bind(layer, drop_index, to_index)\n\t)\n\tGlobal.current_project.undo_redo.add_do_method(Global.canvas.queue_redraw)\n\tGlobal.current_project.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tGlobal.current_project.undo_redo.add_undo_method(\n\t\tget_window().move_effect.bind(layer, to_index, drop_index)\n\t)\n\tGlobal.current_project.undo_redo.add_undo_method(Global.canvas.queue_redraw)\n\tGlobal.current_project.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tGlobal.current_project.undo_redo.commit_action()\n\tpanel.get_parent().move_child(panel.get_parent().get_child(drop_index), to_index)\n\n\nfunc _get_region_rect(y_begin: float, y_end: float) -> Rect2:\n\tvar rect := get_global_rect()\n\trect.position.y += rect.size.y * y_begin\n\trect.size.y *= y_end - y_begin\n\treturn rect\n"
  },
  {
    "path": "src/UI/Timeline/LayerEffects/LayerEffectButton.gd.uid",
    "content": "uid://dappsuychvc2g\n"
  },
  {
    "path": "src/UI/Timeline/LayerEffects/LayerEffectsSettings.gd",
    "content": "extends AcceptDialog\n\nconst LAYER_EFFECT_BUTTON = preload(\"res://src/UI/Timeline/LayerEffects/LayerEffectButton.gd\")\nconst DELETE_TEXTURE := preload(\"res://assets/graphics/misc/close.svg\")\n\nvar effects: Array[LayerEffect] = [\n\tLayerEffect.new(\"Offset & Scale\", preload(\"res://src/Shaders/Effects/OffsetPixels.gdshader\")),\n\tLayerEffect.new(\n\t\t\"Convolution Matrix\",\n\t\tpreload(\"res://src/Shaders/Effects/ConvolutionMatrix.gdshader\"),\n\t\t\"Color\"\n\t),\n\tLayerEffect.new(\n\t\t\"Gaussian Blur\", preload(\"res://src/Shaders/Effects/GaussianBlur.gdshader\"), \"Blur\"\n\t),\n\tLayerEffect.new(\n\t\t\"Gradient\", preload(\"res://src/Shaders/Effects/Gradient.gdshader\"), \"Procedural\"\n\t),\n\tLayerEffect.new(\n\t\t\"Outline\", preload(\"res://src/Shaders/Effects/OutlineInline.gdshader\"), \"Procedural\"\n\t),\n\tLayerEffect.new(\n\t\t\"Drop Shadow\", preload(\"res://src/Shaders/Effects/DropShadow.gdshader\"), \"Procedural\"\n\t),\n\tLayerEffect.new(\"Invert Colors\", preload(\"res://src/Shaders/Effects/Invert.gdshader\"), \"Color\"),\n\tLayerEffect.new(\n\t\t\"Desaturation\", preload(\"res://src/Shaders/Effects/Desaturate.gdshader\"), \"Color\"\n\t),\n\tLayerEffect.new(\n\t\t\"Adjust Hue/Saturation/Value\", preload(\"res://src/Shaders/Effects/HSV.gdshader\"), \"Color\"\n\t),\n\tLayerEffect.new(\n\t\t\"Adjust Brightness/Contrast\",\n\t\tpreload(\"res://src/Shaders/Effects/BrightnessContrast.gdshader\"),\n\t\t\"Color\"\n\t),\n\tLayerEffect.new(\n\t\t\"Color Curves\", preload(\"res://src/Shaders/Effects/ColorCurves.gdshader\"), \"Color\"\n\t),\n\tLayerEffect.new(\"Palettize\", preload(\"res://src/Shaders/Effects/Palettize.gdshader\"), \"Color\"),\n\tLayerEffect.new(\"Pixelize\", preload(\"res://src/Shaders/Effects/Pixelize.gdshader\"), \"Blur\"),\n\tLayerEffect.new(\"Posterize\", preload(\"res://src/Shaders/Effects/Posterize.gdshader\"), \"Color\"),\n\tLayerEffect.new(\n\t\t\"Gradient Map\", preload(\"res://src/Shaders/Effects/GradientMap.gdshader\"), \"Color\"\n\t),\n\tLayerEffect.new(\"Index Map\", preload(\"res://src/Shaders/Effects/IndexMap.gdshader\"), \"Color\"),\n]\n## A dictionary that maps each category to a [PopupMenu].\nvar category_submenus: Dictionary[String, PopupMenu] = {}\n\n@onready var enabled_button: CheckButton = $VBoxContainer/HBoxContainer/EnabledButton\n@onready var effect_list: MenuButton = $VBoxContainer/HBoxContainer/EffectList\n@onready var effect_container: VBoxContainer = $VBoxContainer/ScrollContainer/EffectContainer\n@onready var drag_highlight: ColorRect = $DragHighlight\n\n\nfunc _ready() -> void:\n\tget_ok_button().size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\tvar effect_list_popup := effect_list.get_popup()\n\tfor i in effects.size():\n\t\t_add_effect_to_list(i)\n\tif not DirAccess.dir_exists_absolute(OpenSave.SHADERS_DIRECTORY):\n\t\tDirAccess.make_dir_recursive_absolute(OpenSave.SHADERS_DIRECTORY)\n\tfor file_name in DirAccess.get_files_at(OpenSave.SHADERS_DIRECTORY):\n\t\t_load_shader_file(OpenSave.SHADERS_DIRECTORY.path_join(file_name))\n\tOpenSave.shader_copied.connect(_load_shader_file)\n\teffect_list_popup.index_pressed.connect(_on_effect_list_pressed.bind(effect_list_popup))\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_DRAG_END:\n\t\tdrag_highlight.hide()\n\n\nfunc _on_about_to_popup() -> void:\n\tvar layer := Global.current_project.layers[Global.current_project.current_layer]\n\tenabled_button.button_pressed = layer.effects_enabled\n\tfor effect in layer.effects:\n\t\tif is_instance_valid(effect.shader):\n\t\t\t_create_effect_ui(layer, effect)\n\n\nfunc _on_visibility_changed() -> void:\n\tif not visible:\n\t\tGlobal.dialog_open(false)\n\t\tfor child in effect_container.get_children():\n\t\t\tchild.queue_free()\n\n\nfunc _add_effect_to_list(i: int) -> void:\n\tvar effect_list_popup := effect_list.get_popup()\n\tvar effect := effects[i]\n\tif effect.category.is_empty():\n\t\teffect_list_popup.add_item(effect.name)\n\t\teffect_list_popup.set_item_metadata(effect_list_popup.item_count - 1, i)\n\telse:\n\t\tif category_submenus.has(effect.category):\n\t\t\tvar submenu := category_submenus[effect.category]\n\t\t\tsubmenu.add_item(effect.name)\n\t\t\tsubmenu.set_item_metadata(submenu.item_count - 1, i)\n\t\telse:\n\t\t\tvar submenu := PopupMenu.new()\n\t\t\teffect_list_popup.add_submenu_node_item(effect.category, submenu)\n\t\t\tsubmenu.add_item(effect.name)\n\t\t\tsubmenu.set_item_metadata(submenu.item_count - 1, i)\n\t\t\tsubmenu.index_pressed.connect(_on_effect_list_pressed.bind(submenu))\n\t\t\tcategory_submenus[effect.category] = submenu\n\n\nfunc _load_shader_file(file_path: String) -> void:\n\tvar file := load(file_path)\n\tif file is Shader:\n\t\tvar effect_name := file_path.get_file().get_basename()\n\t\tvar new_effect := LayerEffect.new(effect_name, file, \"Loaded\")\n\t\teffects.append(new_effect)\n\t\t_add_effect_to_list(effects.size() - 1)\n\n\nfunc _on_effect_list_pressed(menu_item_index: int, menu: PopupMenu) -> void:\n\tvar index: int = menu.get_item_metadata(menu_item_index)\n\tvar layer := Global.current_project.layers[Global.current_project.current_layer]\n\tvar effect := effects[index].duplicate()\n\tGlobal.current_project.undo_redo.create_action(\"Add layer effect\")\n\tGlobal.current_project.undo_redo.add_do_method(func(): layer.effects.append(effect))\n\tGlobal.current_project.undo_redo.add_do_method(layer.emit_effects_added_removed)\n\t# we may be a different layer during redo\n\tGlobal.current_project.undo_redo.add_do_property(\n\t\tGlobal.canvas, \"mandatory_update_layers\", [layer.index]\n\t)\n\tGlobal.current_project.undo_redo.add_do_method(Global.canvas.queue_redraw)\n\tGlobal.current_project.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tGlobal.current_project.undo_redo.add_undo_method(func(): layer.effects.erase(effect))\n\tGlobal.current_project.undo_redo.add_undo_method(layer.emit_effects_added_removed)\n\t# we may be a different layer during undo\n\tGlobal.current_project.undo_redo.add_undo_property(\n\t\tGlobal.canvas, \"mandatory_update_layers\", [layer.index]\n\t)\n\tGlobal.current_project.undo_redo.add_undo_method(Global.canvas.queue_redraw)\n\tGlobal.current_project.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tGlobal.current_project.undo_redo.commit_action()\n\t_create_effect_ui(layer, effect)\n\n\nfunc _create_effect_ui(layer: BaseLayer, effect: LayerEffect) -> void:\n\tvar panel_container := PanelContainer.new()\n\tvar hbox := HBoxContainer.new()\n\tvar enable_checkbox := CheckButton.new()\n\tenable_checkbox.button_pressed = effect.enabled\n\tenable_checkbox.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\tenable_checkbox.toggled.connect(_enable_effect.bind(effect))\n\tvar label := Label.new()\n\tlabel.text = effect.name\n\tlabel.size_flags_horizontal = Control.SIZE_EXPAND_FILL\n\tvar delete_button := TextureButton.new()\n\tdelete_button.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND\n\tdelete_button.texture_normal = DELETE_TEXTURE\n\tdelete_button.size_flags_vertical = Control.SIZE_SHRINK_CENTER\n\tdelete_button.add_to_group(&\"UIButtons\")\n\tdelete_button.modulate = Global.modulate_icon_color\n\tdelete_button.pressed.connect(_delete_effect.bind(effect))\n\thbox.add_child(enable_checkbox)\n\thbox.add_child(label)\n\tif layer is PixelLayer:\n\t\tvar apply_button := Button.new()\n\t\tapply_button.text = \"Apply\"\n\t\tapply_button.size_flags_vertical = Control.SIZE_SHRINK_CENTER\n\t\tapply_button.pressed.connect(_apply_effect.bind(layer, effect))\n\t\thbox.add_child(apply_button)\n\thbox.add_child(delete_button)\n\tvar parameter_vbox := CollapsibleContainer.new()\n\tShaderLoader.create_ui_for_shader_uniforms(\n\t\teffect.shader,\n\t\teffect.params,\n\t\tparameter_vbox,\n\t\t_set_parameter.bind(effect),\n\t\t_load_parameter_texture.bind(effect)\n\t)\n\tvar collapsible_button := parameter_vbox.get_button()\n\tcollapsible_button.set_script(LAYER_EFFECT_BUTTON)\n\tcollapsible_button.layer = layer\n\tcollapsible_button.add_child(hbox)\n\thbox.anchor_left = 0.05\n\thbox.anchor_top = 0\n\thbox.anchor_right = 0.99\n\thbox.anchor_bottom = 1\n\tpanel_container.add_child(parameter_vbox)\n\teffect_container.add_child(panel_container)\n\tparameter_vbox.set_visible_children(false)\n\tcollapsible_button.custom_minimum_size.y = collapsible_button.size.y + 4\n\n\nfunc _enable_effect(button_pressed: bool, effect: LayerEffect) -> void:\n\teffect.enabled = button_pressed\n\tGlobal.canvas.queue_redraw()\n\n\nfunc move_effect(layer: BaseLayer, from_index: int, to_index: int) -> void:\n\tvar layer_effect := layer.effects[from_index]\n\tlayer.effects.remove_at(from_index)\n\tlayer.effects.insert(to_index, layer_effect)\n\n\nfunc _delete_effect(effect: LayerEffect) -> void:\n\tvar layer := Global.current_project.layers[Global.current_project.current_layer]\n\tvar index := layer.effects.find(effect)\n\tGlobal.current_project.undo_redo.create_action(\"Delete layer effect\")\n\tGlobal.current_project.undo_redo.add_do_method(func(): layer.effects.erase(effect))\n\tGlobal.current_project.undo_redo.add_do_method(layer.emit_effects_added_removed)\n\t# we may be a different layer during redo\n\tGlobal.current_project.undo_redo.add_do_property(\n\t\tGlobal.canvas, \"mandatory_update_layers\", [layer.index]\n\t)\n\tGlobal.current_project.undo_redo.add_do_method(Global.canvas.queue_redraw)\n\tGlobal.current_project.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tGlobal.current_project.undo_redo.add_undo_method(func(): layer.effects.insert(index, effect))\n\tGlobal.current_project.undo_redo.add_undo_method(layer.emit_effects_added_removed)\n\t# we may be a different layer during undo\n\tGlobal.current_project.undo_redo.add_undo_property(\n\t\tGlobal.canvas, \"mandatory_update_layers\", [layer.index]\n\t)\n\tGlobal.current_project.undo_redo.add_undo_method(Global.canvas.queue_redraw)\n\tGlobal.current_project.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tGlobal.current_project.undo_redo.commit_action()\n\teffect_container.get_child(index).queue_free()\n\n\nfunc _apply_effect(layer: BaseLayer, effect: LayerEffect) -> void:\n\tvar project := Global.current_project\n\tvar index := layer.effects.find(effect)\n\tvar redo_data := {}\n\tvar undo_data := {}\n\tfor i in project.frames.size():\n\t\tvar frame := project.frames[i]\n\t\tvar cel := frame.cels[layer.index]\n\t\tvar cel_image := cel.get_image()\n\t\tif cel is CelTileMap:\n\t\t\tif cel.place_only_mode:\n\t\t\t\tcontinue\n\t\t\tundo_data[cel] = (cel as CelTileMap).serialize_undo_data()\n\t\tif cel_image is ImageExtended:\n\t\t\tundo_data[cel_image.indices_image] = cel_image.indices_image.data\n\t\tundo_data[cel_image] = cel_image.data\n\t\tvar image_size := cel_image.get_size()\n\t\tvar params := effect.params\n\t\tparams[\"PXO_time\"] = frame.position_in_seconds(project)\n\t\tparams[\"PXO_frame_index\"] = i\n\t\tparams[\"PXO_layer_index\"] = layer.index\n\t\tvar shader_image_effect := ShaderImageEffect.new()\n\t\tshader_image_effect.generate_image(cel_image, effect.shader, params, image_size)\n\n\tvar tile_editing_mode := TileSetPanel.tile_editing_mode\n\tif tile_editing_mode == TileSetPanel.TileEditingMode.MANUAL:\n\t\ttile_editing_mode = TileSetPanel.TileEditingMode.AUTO\n\tproject.update_tilemaps(undo_data, tile_editing_mode)\n\tfor frame in project.frames:\n\t\tvar cel := frame.cels[layer.index]\n\t\tvar cel_image := cel.get_image()\n\t\tif cel is CelTileMap:\n\t\t\tredo_data[cel] = (cel as CelTileMap).serialize_undo_data()\n\t\tif cel_image is ImageExtended:\n\t\t\tredo_data[cel_image.indices_image] = cel_image.indices_image.data\n\t\tredo_data[cel_image] = cel_image.data\n\tproject.undo_redo.create_action(\"Apply layer effect\")\n\tproject.deserialize_cel_undo_data(redo_data, undo_data)\n\tproject.undo_redo.add_do_method(func(): layer.effects.erase(effect))\n\tGlobal.current_project.undo_redo.add_do_method(layer.emit_effects_added_removed)\n\t# we may be a different layer during redo\n\tGlobal.current_project.undo_redo.add_do_property(\n\t\tGlobal.canvas, \"mandatory_update_layers\", [layer.index]\n\t)\n\tproject.undo_redo.add_do_method(Global.canvas.queue_redraw)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_undo_method(func(): layer.effects.insert(index, effect))\n\tGlobal.current_project.undo_redo.add_undo_method(layer.emit_effects_added_removed)\n\t# we may be a different layer during undo\n\tGlobal.current_project.undo_redo.add_undo_property(\n\t\tGlobal.canvas, \"mandatory_update_layers\", [layer.index]\n\t)\n\tproject.undo_redo.add_undo_method(Global.canvas.queue_redraw)\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.commit_action()\n\teffect_container.get_child(index).queue_free()\n\n\nfunc _set_parameter(value, param: String, effect: LayerEffect) -> void:\n\teffect.params[param] = value\n\tGlobal.canvas.queue_redraw()\n\n\nfunc _load_parameter_texture(path: String, param: String, effect: LayerEffect) -> void:\n\tvar image := Image.new()\n\timage.load(path)\n\tif !image:\n\t\tprint(\"Error loading texture\")\n\t\treturn\n\tvar image_tex := ImageTexture.create_from_image(image)\n\t_set_parameter(image_tex, param, effect)\n\n\nfunc _on_enabled_button_toggled(button_pressed: bool) -> void:\n\tvar layer := Global.current_project.layers[Global.current_project.current_layer]\n\tlayer.effects_enabled = button_pressed\n\tGlobal.canvas.queue_redraw()\n"
  },
  {
    "path": "src/UI/Timeline/LayerEffects/LayerEffectsSettings.gd.uid",
    "content": "uid://52br5thwfwqp\n"
  },
  {
    "path": "src/UI/Timeline/LayerEffects/LayerEffectsSettings.tscn",
    "content": "[gd_scene format=3 uid=\"uid://dd1fkkc3vjh78\"]\n\n[ext_resource type=\"Script\" uid=\"uid://52br5thwfwqp\" path=\"res://src/UI/Timeline/LayerEffects/LayerEffectsSettings.gd\" id=\"1_h6h7b\"]\n\n[node name=\"LayerEffectsSettings\" type=\"AcceptDialog\" unique_id=1268464520]\ntitle = \"Layer effects\"\nsize = Vector2i(600, 400)\nscript = ExtResource(\"1_h6h7b\")\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\".\" unique_id=448097141]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 592.0\noffset_bottom = 351.0\nsize_flags_horizontal = 3\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"VBoxContainer\" unique_id=1915915671]\nlayout_mode = 2\n\n[node name=\"EnabledButton\" type=\"CheckButton\" parent=\"VBoxContainer/HBoxContainer\" unique_id=897746385]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Enabled\"\n\n[node name=\"EffectList\" type=\"MenuButton\" parent=\"VBoxContainer/HBoxContainer\" unique_id=1311206621]\nlayout_mode = 2\nsize_flags_horizontal = 10\nmouse_default_cursor_shape = 2\ntext = \"Add effect\"\n\n[node name=\"ScrollContainer\" type=\"ScrollContainer\" parent=\"VBoxContainer\" unique_id=1286174939]\nlayout_mode = 2\nsize_flags_vertical = 3\n\n[node name=\"EffectContainer\" type=\"VBoxContainer\" parent=\"VBoxContainer/ScrollContainer\" unique_id=1684614019]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"DragHighlight\" type=\"ColorRect\" parent=\".\" unique_id=1534278724]\nvisible = false\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 592.0\noffset_bottom = 351.0\nmouse_filter = 2\ncolor = Color(0, 0.741176, 1, 0.501961)\n\n[connection signal=\"about_to_popup\" from=\".\" to=\".\" method=\"_on_about_to_popup\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_visibility_changed\"]\n[connection signal=\"toggled\" from=\"VBoxContainer/HBoxContainer/EnabledButton\" to=\".\" method=\"_on_enabled_button_toggled\"]\n"
  },
  {
    "path": "src/UI/Timeline/LayerMainButton.gd",
    "content": "extends Button\n\n## The entire purpose of this script is to handle layer drag and dropping.\n\nvar layer_index := 0\nvar hierarchy_depth_pixel_shift := 16\n\n\nfunc _ready() -> void:\n\tif DisplayServer.is_touchscreen_available():\n\t\tmouse_filter = Control.MOUSE_FILTER_PASS\n\n\nfunc _get_drag_data(_position: Vector2) -> Variant:\n\tif DisplayServer.is_touchscreen_available() and not button_pressed:\n\t\treturn null\n\tvar layers := _get_layer_indices()\n\tfor layer_i in layers:  # Add child layers, if we have selected groups\n\t\tvar layer := Global.current_project.layers[layer_i]\n\t\tfor child in layer.get_children(true):\n\t\t\tvar child_index := Global.current_project.layers.find(child)\n\t\t\tif not child_index in layers:  # Do not add the same index multiple times\n\t\t\t\tlayers.append(child_index)\n\tlayers.sort()\n\n\tvar box := VBoxContainer.new()\n\tfor i in layers.size():\n\t\tvar button := Button.new()\n\t\tbutton.custom_minimum_size = size\n\t\tbutton.theme = Global.control.theme\n\t\tbutton.text = Global.current_project.layers[layers[-1 - i]].name\n\t\tbox.add_child(button)\n\tset_drag_preview(box)\n\treturn [\"Layer\", layers]\n\n\nfunc _can_drop_data(pos: Vector2, data) -> bool:\n\tif typeof(data) != TYPE_ARRAY:\n\t\tGlobal.animation_timeline.drag_highlight.visible = false\n\t\treturn false\n\tif data[0] != \"Layer\":\n\t\tGlobal.animation_timeline.drag_highlight.visible = false\n\t\treturn false\n\t# Ensure that the target and its neighbors remain visible.\n\tvar layer_button := get_parent()\n\tvar layer_button_index := layer_button.get_index()\n\tvar layer_container := layer_button.get_parent()\n\tGlobal.animation_timeline.timeline_scroll.ensure_control_visible(layer_button)\n\tif pos.y > size.y / 2.0 and layer_button_index + 1 < layer_container.get_child_count():\n\t\tGlobal.animation_timeline.timeline_scroll.ensure_control_visible(\n\t\t\tlayer_container.get_child(layer_button_index + 1)\n\t\t)\n\tif pos.y < size.y / 2.0 and layer_button_index - 1 > 0:\n\t\tGlobal.animation_timeline.timeline_scroll.ensure_control_visible(\n\t\t\tlayer_container.get_child(layer_button_index - 1)\n\t\t)\n\n\tvar curr_layer := Global.current_project.layers[layer_index]\n\tvar drop_layers: PackedInt32Array = data[1]\n\t# Can't move to the same layer\n\tfor drop_layer in drop_layers:\n\t\tif drop_layer == layer_index:\n\t\t\tGlobal.animation_timeline.drag_highlight.visible = false\n\t\t\treturn false\n\n\tvar region: Rect2\n\tvar depth := curr_layer.get_hierarchy_depth()\n\tvar last_layer := Global.current_project.layers[drop_layers[-1]]\n\tif Input.is_action_pressed(&\"ctrl\") and drop_layers.size() == 1:  # Swap layers\n\t\tif last_layer.is_ancestor_of(curr_layer) or curr_layer.is_ancestor_of(last_layer):\n\t\t\tGlobal.animation_timeline.drag_highlight.visible = false\n\t\t\treturn false\n\t\tregion = get_global_rect()\n\telse:  # Shift layers\n\t\tfor drop_layer_index in drop_layers:\n\t\t\tvar drop_layer := Global.current_project.layers[drop_layer_index]\n\t\t\tif drop_layer.is_ancestor_of(curr_layer):\n\t\t\t\tGlobal.animation_timeline.drag_highlight.visible = false\n\t\t\t\treturn false\n\t\t# If accepted as a child, is it in the center region?\n\t\tif (\n\t\t\tcurr_layer.accepts_child(last_layer)  # Any dropped layer should probably work here\n\t\t\tand pos.y > size.y / 4.0\n\t\t\tand pos.y < 3.0 * size.y / 4.0\n\t\t):\n\t\t\t# Drawn regions are adjusted a bit from actual to clarify drop position\n\t\t\tregion = _get_region_rect(0.15, 0.85)\n\t\t\tdepth += 1\n\t\telse:\n\t\t\tif pos.y < size.y / 2.0:  # Top region\n\t\t\t\tregion = _get_region_rect(-0.1, 0.15)\n\t\t\telse:  # Bottom region\n\t\t\t\tregion = _get_region_rect(0.85, 1.1)\n\t# Shift drawn region to the right a bit for hierarchy depth visualization:\n\tregion.position.x += depth * hierarchy_depth_pixel_shift\n\tregion.size.x -= depth * hierarchy_depth_pixel_shift\n\tGlobal.animation_timeline.drag_highlight.global_position = region.position\n\tGlobal.animation_timeline.drag_highlight.size = region.size\n\tGlobal.animation_timeline.drag_highlight.visible = true\n\treturn true\n\n\nfunc _drop_data(pos: Vector2, data) -> void:\n\tvar initial_drop_layers: PackedInt32Array = data[1]\n\tvar project := Global.current_project\n\tvar curr_layer := project.layers[layer_index]\n\tvar layers := project.layers  # This shouldn't be modified directly\n\tvar drop_from_indices: PackedInt32Array = []\n\tvar children_indices: PackedInt32Array = []  # Child layer indices, if a group layer is selected\n\t# Add dropped indices to drop_from_indices\n\t# We do this in case a child layer is selected along with its ancestor,\n\t# we don't want both of them to be in the final array, as ancestors will automatically include\n\t# their children anyway.\n\tfor drop_layer_index in initial_drop_layers:\n\t\tif not drop_layer_index in drop_from_indices:  # Do not add the same index multiple times\n\t\t\tdrop_from_indices.append(drop_layer_index)\n\t\tvar drop_layer := project.layers[drop_layer_index]\n\t\tfor child in drop_layer.get_children(true):\n\t\t\tvar child_index := project.layers.find(child)\n\t\t\tif not child_index in children_indices:\n\t\t\t\tchildren_indices.append(child_index)\n\t\t\tif not child_index in drop_from_indices:  # Do not add the same index multiple times\n\t\t\t\tdrop_from_indices.append(child_index)\n\tdrop_from_indices.sort()\n\tchildren_indices.sort()\n\n\tvar drop_from_parents := []\n\tfor i in range(drop_from_indices.size()):\n\t\tdrop_from_parents.append(layers[drop_from_indices[i]].parent)\n\n\tproject.undo_redo.create_action(\"Change Layer Order\")\n\tif Input.is_action_pressed(\"ctrl\") and initial_drop_layers.size() == 1:  # Swap layers\n\t\t# a and b both need \"from\", \"to\", and \"to_parents\"\n\t\t# a is this layer (and children), b is the dropped layers\n\t\tvar a := {\"from\": range(layer_index - curr_layer.get_child_count(true), layer_index + 1)}\n\t\tvar b := {\"from\": drop_from_indices}\n\n\t\tif a.from[0] < b.from[0]:\n\t\t\ta[\"to\"] = range(b.from[-1] + 1 - a.from.size(), b.from[-1] + 1)  # Size of a, start from end of b\n\t\t\tb[\"to\"] = range(a.from[0], a.from[0] + b.from.size())  # Size of b, start from beginning of a\n\t\telse:\n\t\t\ta[\"to\"] = range(b.from[0], b.from[0] + a.from.size())  # Size of a, start from beginning of b\n\t\t\tb[\"to\"] = range(a.from[-1] + 1 - b.from.size(), a.from[-1] + 1)  # Size of b, start from end of a\n\n\t\tvar a_from_parents := []\n\t\tfor l in a.from:\n\t\t\ta_from_parents.append(layers[l].parent)\n\n\t\t# to_parents starts as a duplicate of from_parents, set the root layer's (with one layer or\n\t\t# group with its children, this will always be the last layer [-1]) parent to the other\n\t\t# root layer's parent\n\t\ta[\"to_parents\"] = a_from_parents.duplicate()\n\t\tb[\"to_parents\"] = drop_from_parents.duplicate()\n\t\ta.to_parents[-1] = drop_from_parents[-1]\n\t\tb.to_parents[-1] = a_from_parents[-1]\n\n\t\tproject.undo_redo.add_do_method(project.swap_layers.bind(a, b))\n\t\tproject.undo_redo.add_undo_method(\n\t\t\tproject.swap_layers.bind(\n\t\t\t\t{\"from\": a.to, \"to\": a.from, \"to_parents\": a_from_parents},\n\t\t\t\t{\"from\": b.to, \"to\": drop_from_indices, \"to_parents\": drop_from_parents}\n\t\t\t)\n\t\t)\n\n\telse:  # Move layers\n\t\tvar to_index: int  # the index where the LOWEST moved layer should end up\n\t\tvar to_parent: BaseLayer\n\t\tvar last_layer := project.layers[drop_from_indices[-1]]\n\t\t# If accepted as a child, is it in the center region?\n\t\tif (\n\t\t\tcurr_layer.accepts_child(last_layer)  # Any dropped layer should probably work here\n\t\t\tand pos.y > size.y / 4.0\n\t\t\tand pos.y < 3.0 * size.y / 4.0\n\t\t):\n\t\t\tto_index = layer_index\n\t\t\tto_parent = curr_layer\n\t\telse:\n\t\t\tif pos.y < size.y / 2.0:  # Top region\n\t\t\t\tto_index = layer_index + 1\n\t\t\t\tto_parent = curr_layer.parent\n\t\t\telse:  # Bottom region\n\t\t\t\t# Place under the layer, if it has children, place after its lowest child\n\t\t\t\tif curr_layer.has_children():\n\t\t\t\t\tto_index = curr_layer.get_children(true)[0].index\n\t\t\t\t\tfor drop_layer in drop_from_indices:\n\t\t\t\t\t\tif curr_layer.is_ancestor_of(layers[drop_layer]):\n\t\t\t\t\t\t\tto_index += 1\n\t\t\t\telse:\n\t\t\t\t\tto_index = layer_index\n\t\t\t\tto_parent = curr_layer.parent\n\n\t\tfor drop_layer in drop_from_indices:\n\t\t\tif drop_layer < layer_index:\n\t\t\t\tto_index -= 1\n\n\t\tvar drop_to_indices: PackedInt32Array = range(to_index, to_index + drop_from_indices.size())\n\t\tvar to_parents := drop_from_parents.duplicate()\n\t\tfor i in to_parents.size():\n\t\t\t# Re-parent only the parent layers, not the child layers of a group\n\t\t\tif not drop_from_indices[i] in children_indices:\n\t\t\t\tto_parents[i] = to_parent\n\n\t\tproject.undo_redo.add_do_method(\n\t\t\tproject.move_layers.bind(drop_from_indices, drop_to_indices, to_parents)\n\t\t)\n\t\tproject.undo_redo.add_undo_method(\n\t\t\tproject.move_layers.bind(drop_to_indices, drop_from_indices, drop_from_parents)\n\t\t)\n\tif project.current_layer in drop_from_indices:\n\t\tproject.undo_redo.add_do_method(project.change_cel.bind(-1, layer_index))\n\telse:\n\t\tproject.undo_redo.add_do_method(project.change_cel.bind(-1, project.current_layer))\n\tproject.undo_redo.add_undo_method(project.change_cel.bind(-1, project.current_layer))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.commit_action()\n\n\nfunc _get_region_rect(y_begin: float, y_end: float) -> Rect2:\n\tvar rect := get_global_rect()\n\trect.position.y += rect.size.y * y_begin\n\trect.size.y *= y_end - y_begin\n\treturn rect\n\n\nfunc _get_layer_indices() -> PackedInt32Array:\n\tvar indices := []\n\tfor cel in Global.current_project.selected_cels:\n\t\tvar l: int = cel[1]\n\t\tif not l in indices:\n\t\t\tindices.append(l)\n\tindices.sort()\n\tif not layer_index in indices:\n\t\tindices = [layer_index]\n\treturn indices\n"
  },
  {
    "path": "src/UI/Timeline/LayerMainButton.gd.uid",
    "content": "uid://bgvjodkehy0qn\n"
  },
  {
    "path": "src/UI/Timeline/LayerProperties.gd",
    "content": "extends AcceptDialog\n\nsignal layer_property_changed\n\nvar layer_indices: PackedInt32Array\n\n@onready var grid_container: GridContainer = $GridContainer\n@onready var name_line_edit := $GridContainer/NameLineEdit as LineEdit\n@onready var opacity_slider := $GridContainer/OpacitySlider as ValueSlider\n@onready var blend_modes_button := $GridContainer/BlendModeOptionButton as OptionButton\n@onready var ignore_onion_check_button := $GridContainer/OnionIgnoreButton as CheckButton\n@onready var play_at_frame_slider := $GridContainer/PlayAtFrameSlider as ValueSlider\n@onready var user_data_text_edit := $GridContainer/UserDataTextEdit as TextEdit\n@onready var ui_color_picker_button := $GridContainer/UIColorPickerButton as ColorPickerButton\n@onready var tileset_option_button := $GridContainer/TilesetOptionButton as OptionButton\n@onready var place_only_mode_check_button := $GridContainer/PlaceOnlyModeCheckButton as CheckButton\n@onready var tile_size_slider: ValueSliderV2 = $GridContainer/TileSizeSlider\n@onready var tile_shape_option_button: OptionButton = $GridContainer/TileShapeOptionButton\n@onready var tile_layout_option_button: OptionButton = $GridContainer/TileLayoutOptionButton\n@onready var tile_offset_axis_button: OptionButton = $GridContainer/TileOffsetAxisButton\n@onready var audio_file_dialog := $AudioFileDialog as FileDialog\n@onready var place_only_confirmation_dialog: ConfirmationDialog = $PlaceOnlyConfirmationDialog\n\n\nfunc _ready() -> void:\n\taudio_file_dialog.use_native_dialog = Global.use_native_file_dialogs\n\tfor dialog_child in audio_file_dialog.find_children(\"\", \"Window\", true, false):\n\t\tif dialog_child is Window:\n\t\t\tdialog_child.always_on_top = audio_file_dialog.always_on_top\n\n\nfunc _on_visibility_changed() -> void:\n\tif layer_indices.size() == 0:\n\t\treturn\n\tGlobal.dialog_open(visible)\n\tvar project := Global.current_project\n\tvar first_layer := project.layers[layer_indices[0]]\n\tif visible:\n\t\t_fill_blend_modes_option_button()\n\t\tname_line_edit.text = first_layer.name\n\t\topacity_slider.value = first_layer.opacity * 100.0\n\t\tvar blend_mode_index := blend_modes_button.get_item_index(first_layer.blend_mode)\n\t\tblend_modes_button.selected = blend_mode_index\n\t\tignore_onion_check_button.set_pressed_no_signal(first_layer.ignore_onion)\n\t\tif first_layer is AudioLayer:\n\t\t\tplay_at_frame_slider.value = first_layer.playback_frame + 1\n\t\tplay_at_frame_slider.max_value = project.frames.size()\n\t\tuser_data_text_edit.text = first_layer.user_data\n\t\tui_color_picker_button.color = first_layer.ui_color\n\t\tget_tree().set_group(&\"VisualLayers\", \"visible\", first_layer is not AudioLayer)\n\t\tget_tree().set_group(&\"TilemapLayers\", \"visible\", first_layer is LayerTileMap)\n\t\tget_tree().set_group(&\"AudioLayers\", \"visible\", first_layer is AudioLayer)\n\t\tvar place_only_tilemap: bool = first_layer is LayerTileMap and first_layer.place_only_mode\n\t\tplace_only_mode_check_button.disabled = place_only_tilemap\n\t\tget_tree().set_group(&\"TilemapLayersPlaceOnly\", \"visible\", place_only_tilemap)\n\t\ttileset_option_button.clear()\n\t\tif first_layer is LayerTileMap:\n\t\t\tfor i in project.tilesets.size():\n\t\t\t\tvar tileset := project.tilesets[i]\n\t\t\t\ttileset_option_button.add_item(tileset.get_text_info(i))\n\t\t\t\tif tileset == first_layer.tileset:\n\t\t\t\t\ttileset_option_button.select(i)\n\t\t\tplace_only_mode_check_button.set_pressed_no_signal(first_layer.place_only_mode)\n\t\t\ttile_size_slider.set_value_no_signal(first_layer.tile_size)\n\t\t\ttile_shape_option_button.selected = first_layer.tile_shape\n\t\t\ttile_layout_option_button.selected = first_layer.tile_layout\n\t\t\ttile_offset_axis_button.selected = first_layer.tile_offset_axis\n\telse:\n\t\tlayer_indices = []\n\n\n## Fill the blend modes OptionButton with items\nfunc _fill_blend_modes_option_button() -> void:\n\tblend_modes_button.clear()\n\tvar selected_layers_are_groups := true\n\tfor layer_index in layer_indices:\n\t\tvar layer := Global.current_project.layers[layer_index]\n\t\tif not layer is GroupLayer:\n\t\t\tselected_layers_are_groups = false\n\t\t\tbreak\n\tif selected_layers_are_groups:\n\t\t# Special blend mode that appears only when group layers are selected\n\t\tblend_modes_button.add_item(\"Pass through\", BaseLayer.BlendModes.PASS_THROUGH)\n\tblend_modes_button.add_item(\"Normal\", BaseLayer.BlendModes.NORMAL)\n\tblend_modes_button.add_item(\"Erase\", BaseLayer.BlendModes.ERASE)\n\tblend_modes_button.add_item(\"Darken\", BaseLayer.BlendModes.DARKEN)\n\tblend_modes_button.add_item(\"Multiply\", BaseLayer.BlendModes.MULTIPLY)\n\tblend_modes_button.add_item(\"Color burn\", BaseLayer.BlendModes.COLOR_BURN)\n\tblend_modes_button.add_item(\"Linear burn\", BaseLayer.BlendModes.LINEAR_BURN)\n\tblend_modes_button.add_item(\"Lighten\", BaseLayer.BlendModes.LIGHTEN)\n\tblend_modes_button.add_item(\"Screen\", BaseLayer.BlendModes.SCREEN)\n\tblend_modes_button.add_item(\"Color dodge\", BaseLayer.BlendModes.COLOR_DODGE)\n\tblend_modes_button.add_item(\"Add\", BaseLayer.BlendModes.ADD)\n\tblend_modes_button.add_item(\"Overlay\", BaseLayer.BlendModes.OVERLAY)\n\tblend_modes_button.add_item(\"Soft light\", BaseLayer.BlendModes.SOFT_LIGHT)\n\tblend_modes_button.add_item(\"Hard light\", BaseLayer.BlendModes.HARD_LIGHT)\n\tblend_modes_button.add_item(\"Difference\", BaseLayer.BlendModes.DIFFERENCE)\n\tblend_modes_button.add_item(\"Exclusion\", BaseLayer.BlendModes.EXCLUSION)\n\tblend_modes_button.add_item(\"Subtract\", BaseLayer.BlendModes.SUBTRACT)\n\tblend_modes_button.add_item(\"Divide\", BaseLayer.BlendModes.DIVIDE)\n\tblend_modes_button.add_item(\"Hue\", BaseLayer.BlendModes.HUE)\n\tblend_modes_button.add_item(\"Saturation\", BaseLayer.BlendModes.SATURATION)\n\tblend_modes_button.add_item(\"Color\", BaseLayer.BlendModes.COLOR)\n\tblend_modes_button.add_item(\"Luminosity\", BaseLayer.BlendModes.LUMINOSITY)\n\n\nfunc _on_name_line_edit_text_changed(new_text: String) -> void:\n\tif layer_indices.size() == 0:\n\t\treturn\n\n\tvar project: Project = Global.current_project\n\tfor layer_index in layer_indices:\n\t\tvar layer := Global.current_project.layers[layer_index]\n\n\t\tproject.undo_redo.create_action(\"Rename Layer\", UndoRedo.MergeMode.MERGE_ENDS)\n\t\tproject.undo_redo.add_do_property(layer, \"name\", new_text)\n\t\tproject.undo_redo.add_undo_property(layer, \"name\", layer.name)\n\t\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_opacity_slider_value_changed(value: float) -> void:\n\tif layer_indices.size() == 0:\n\t\treturn\n\n\tvar project: Project = Global.current_project\n\tproject.undo_redo.create_action(\"Change Layer Opacity\", UndoRedo.MergeMode.MERGE_ENDS)\n\tfor layer_index in layer_indices:\n\t\tvar layer := Global.current_project.layers[layer_index]\n\t\tvar new_opacity = value / 100.0\n\n\t\tproject.undo_redo.add_do_property(layer, \"opacity\", new_opacity)\n\t\tproject.undo_redo.add_undo_property(layer, \"opacity\", layer.opacity)\n\t\tproject.undo_redo.add_do_property(Global.canvas, \"update_all_layers\", true)\n\t\tproject.undo_redo.add_undo_property(Global.canvas, \"update_all_layers\", true)\n\t\tproject.undo_redo.add_do_method(Global.canvas.queue_redraw)\n\t\tproject.undo_redo.add_undo_method(Global.canvas.queue_redraw)\n\t\tproject.undo_redo.add_do_method(_emit_layer_property_signal)\n\t\tproject.undo_redo.add_undo_method(_emit_layer_property_signal)\n\t\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_blend_mode_option_button_item_selected(index: BaseLayer.BlendModes) -> void:\n\tif layer_indices.size() == 0:\n\t\treturn\n\tGlobal.canvas.update_all_layers = true\n\tvar project := Global.current_project\n\tvar current_mode := blend_modes_button.get_item_id(index)\n\tproject.undo_redo.create_action(\"Set Blend Mode\")\n\tfor layer_index in layer_indices:\n\t\tvar layer := project.layers[layer_index]\n\t\tvar previous_mode := layer.blend_mode\n\t\tproject.undo_redo.add_do_property(layer, \"blend_mode\", current_mode)\n\t\tproject.undo_redo.add_undo_property(layer, \"blend_mode\", previous_mode)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_do_method(Global.canvas.draw_layers)\n\tproject.undo_redo.add_do_method(_emit_layer_property_signal)\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_undo_method(Global.canvas.draw_layers)\n\tproject.undo_redo.add_undo_method(_emit_layer_property_signal)\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_onion_ignore_button_toggled(toggled_on: bool) -> void:\n\tif layer_indices.size() == 0:\n\t\treturn\n\n\tvar project: Project = Global.current_project\n\tproject.undo_redo.create_action(\"Change Layer Onion Skinning Ignore Status\")\n\tfor layer_index in layer_indices:\n\t\tvar layer := project.layers[layer_index]\n\n\t\tproject.undo_redo.add_do_property(layer, \"ignore_onion\", toggled_on)\n\t\tproject.undo_redo.add_undo_property(layer, \"ignore_onion\", layer.ignore_onion)\n\t\tproject.undo_redo.add_do_method(Global.canvas.refresh_onion)\n\t\tproject.undo_redo.add_undo_method(Global.canvas.refresh_onion)\n\t\tproject.undo_redo.add_do_method(_emit_layer_property_signal)\n\t\tproject.undo_redo.add_undo_method(_emit_layer_property_signal)\n\t\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_user_data_text_edit_text_changed() -> void:\n\tvar project: Project = Global.current_project\n\tproject.undo_redo.create_action(\"Change Layer User Data\", UndoRedo.MergeMode.MERGE_ENDS)\n\tfor layer_index in layer_indices:\n\t\tvar layer := Global.current_project.layers[layer_index]\n\t\tproject.undo_redo.add_do_property(layer, \"user_data\", user_data_text_edit.text)\n\t\tproject.undo_redo.add_undo_property(layer, \"user_data\", layer.user_data)\n\t\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_ui_color_picker_button_color_changed(color: Color) -> void:\n\tvar project: Project = Global.current_project\n\tproject.undo_redo.create_action(\"Change Layer Color\", UndoRedo.MergeMode.MERGE_ENDS)\n\tfor layer_index in layer_indices:\n\t\tvar layer := Global.current_project.layers[layer_index]\n\t\tproject.undo_redo.add_do_property(layer, \"ui_color\", color)\n\t\tproject.undo_redo.add_undo_property(layer, \"ui_color\", layer.ui_color)\n\t\tproject.undo_redo.add_do_method(_emit_layer_property_signal)\n\t\tproject.undo_redo.add_undo_method(_emit_layer_property_signal)\n\t\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\t\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\n\tproject.undo_redo.commit_action()\n\n\nfunc _emit_layer_property_signal() -> void:\n\tlayer_property_changed.emit()\n\n\nfunc _on_tileset_option_button_item_selected(index: int) -> void:\n\tvar project := Global.current_project\n\tvar new_tileset := project.tilesets[index]\n\tproject.undo_redo.create_action(\"Set Tileset\")\n\tfor layer_index in layer_indices:\n\t\tvar layer := project.layers[layer_index]\n\t\tif layer is not LayerTileMap:\n\t\t\tcontinue\n\t\tvar previous_tileset := (layer as LayerTileMap).tileset\n\t\tproject.undo_redo.add_do_method(layer.set_tileset.bind(new_tileset))\n\t\tproject.undo_redo.add_undo_method(layer.set_tileset.bind(previous_tileset))\n\t\tfor frame in project.frames:\n\t\t\tfor i in frame.cels.size():\n\t\t\t\tvar cel := frame.cels[i]\n\t\t\t\tif cel is CelTileMap and i == layer_index:\n\t\t\t\t\tproject.undo_redo.add_do_method(cel.set_tileset.bind(new_tileset, false))\n\t\t\t\t\tproject.undo_redo.add_do_method(cel.update_cel_portions)\n\t\t\t\t\tproject.undo_redo.add_undo_method(cel.set_tileset.bind(previous_tileset, false))\n\t\t\t\t\tproject.undo_redo.add_undo_method(cel.update_cel_portions)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_do_method(Global.canvas.draw_layers)\n\tproject.undo_redo.add_do_method(func(): Global.cel_switched.emit())\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_undo_method(Global.canvas.draw_layers)\n\tproject.undo_redo.add_undo_method(func(): Global.cel_switched.emit())\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_audio_file_button_pressed() -> void:\n\taudio_file_dialog.popup_centered_clamped()\n\n\nfunc _on_play_at_frame_slider_value_changed(value: float) -> void:\n\tif layer_indices.size() == 0:\n\t\treturn\n\tfor layer_index in layer_indices:\n\t\tvar layer := Global.current_project.layers[layer_index]\n\t\tif layer is AudioLayer:\n\t\t\tlayer.playback_frame = value - 1\n\n\nfunc _on_audio_file_dialog_file_selected(path: String) -> void:\n\tvar audio_stream: AudioStream\n\tif path.to_lower().get_extension() == \"mp3\":\n\t\tvar file := FileAccess.open(path, FileAccess.READ)\n\t\taudio_stream = AudioStreamMP3.new()\n\t\taudio_stream.data = file.get_buffer(file.get_length())\n\telif path.to_lower().get_extension() == \"wav\":\n\t\tvar file := FileAccess.open(path, FileAccess.READ)\n\t\taudio_stream = AudioStreamWAV.load_from_buffer(file.get_buffer(file.get_length()))\n\tfor layer_index in layer_indices:\n\t\tvar layer := Global.current_project.layers[layer_index]\n\t\tif layer is AudioLayer:\n\t\t\tlayer.audio = audio_stream\n\n\nfunc _on_place_only_mode_check_button_toggled(toggled_on: bool) -> void:\n\tif not toggled_on:\n\t\treturn\n\tplace_only_mode_check_button.set_pressed_no_signal(false)\n\tplace_only_confirmation_dialog.popup_centered_clamped()\n\n\nfunc _on_place_only_confirmation_dialog_confirmed() -> void:\n\tvar project := Global.current_project\n\tproject.undo_redo.create_action(\"Set place-only mode\")\n\tfor layer_index in layer_indices:\n\t\tvar layer := project.layers[layer_index]\n\t\tif layer is not LayerTileMap:\n\t\t\tcontinue\n\t\tproject.undo_redo.add_do_property(layer, \"place_only_mode\", true)\n\t\tproject.undo_redo.add_undo_property(layer, \"place_only_mode\", layer.place_only_mode)\n\t\tfor frame in project.frames:\n\t\t\tfor i in frame.cels.size():\n\t\t\t\tvar cel := frame.cels[i]\n\t\t\t\tif cel is CelTileMap and i == layer_index:\n\t\t\t\t\tproject.undo_redo.add_do_property(cel, \"place_only_mode\", true)\n\t\t\t\t\tproject.undo_redo.add_undo_property(cel, \"place_only_mode\", cel.place_only_mode)\n\tplace_only_mode_check_button.disabled = true\n\tget_tree().set_group(&\"TilemapLayersPlaceOnly\", \"visible\", true)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_do_method(func(): Global.cel_switched.emit())\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_undo_method(func(): Global.cel_switched.emit())\n\tproject.undo_redo.commit_action()\n\tplace_only_mode_check_button.set_pressed_no_signal(true)\n\n\nfunc _on_tile_size_slider_value_changed(value: Vector2) -> void:\n\tvar project := Global.current_project\n\tproject.undo_redo.create_action(\"Change tilemap settings\")\n\tfor layer_index in layer_indices:\n\t\tvar layer := project.layers[layer_index]\n\t\tif layer is not LayerTileMap:\n\t\t\tcontinue\n\t\tproject.undo_redo.add_do_property(layer, \"tile_size\", value)\n\t\tproject.undo_redo.add_undo_property(layer, \"tile_size\", layer.tile_size)\n\t\tfor frame in project.frames:\n\t\t\tfor i in frame.cels.size():\n\t\t\t\tvar cel := frame.cels[i]\n\t\t\t\tif cel is CelTileMap and i == layer_index:\n\t\t\t\t\tproject.undo_redo.add_do_property(cel, \"tile_size\", value)\n\t\t\t\t\tproject.undo_redo.add_undo_property(cel, \"tile_size\", cel.tile_size)\n\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_do_method(func(): Global.canvas.queue_redraw())\n\tproject.undo_redo.add_do_method(func(): Global.canvas.grid.queue_redraw())\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_undo_method(func(): Global.canvas.queue_redraw())\n\tproject.undo_redo.add_undo_method(func(): Global.canvas.grid.queue_redraw())\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_tile_shape_option_button_item_selected(index: TileSet.TileShape) -> void:\n\tvar selected_id := tile_shape_option_button.get_item_id(index)\n\tvar project := Global.current_project\n\tproject.undo_redo.create_action(\"Change tilemap settings\")\n\tfor layer_index in layer_indices:\n\t\tvar layer := project.layers[layer_index]\n\t\tif layer is not LayerTileMap:\n\t\t\tcontinue\n\t\tproject.undo_redo.add_do_property(layer, \"tile_shape\", selected_id)\n\t\tproject.undo_redo.add_undo_property(layer, \"tile_shape\", layer.tile_shape)\n\t\tfor frame in project.frames:\n\t\t\tfor i in frame.cels.size():\n\t\t\t\tvar cel := frame.cels[i]\n\t\t\t\tif cel is CelTileMap and i == layer_index:\n\t\t\t\t\tproject.undo_redo.add_do_property(cel, \"tile_shape\", selected_id)\n\t\t\t\t\tproject.undo_redo.add_undo_property(cel, \"tile_shape\", cel.tile_shape)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_do_method(func(): Global.canvas.queue_redraw())\n\tproject.undo_redo.add_do_method(func(): Global.canvas.grid.queue_redraw())\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_undo_method(func(): Global.canvas.queue_redraw())\n\tproject.undo_redo.add_undo_method(func(): Global.canvas.grid.queue_redraw())\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_tile_layout_option_button_item_selected(index: TileSet.TileLayout) -> void:\n\tvar project := Global.current_project\n\tproject.undo_redo.create_action(\"Change tilemap settings\")\n\tfor layer_index in layer_indices:\n\t\tvar layer := project.layers[layer_index]\n\t\tif layer is not LayerTileMap:\n\t\t\tcontinue\n\t\tproject.undo_redo.add_do_property(layer, \"tile_layout\", index)\n\t\tproject.undo_redo.add_undo_property(layer, \"tile_layout\", layer.tile_layout)\n\t\tfor frame in project.frames:\n\t\t\tfor i in frame.cels.size():\n\t\t\t\tvar cel := frame.cels[i]\n\t\t\t\tif cel is CelTileMap and i == layer_index:\n\t\t\t\t\tproject.undo_redo.add_do_property(cel, \"tile_layout\", index)\n\t\t\t\t\tproject.undo_redo.add_undo_property(cel, \"tile_layout\", cel.tile_layout)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_do_method(func(): Global.canvas.queue_redraw())\n\tproject.undo_redo.add_do_method(func(): Global.canvas.grid.queue_redraw())\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_undo_method(func(): Global.canvas.queue_redraw())\n\tproject.undo_redo.add_undo_method(func(): Global.canvas.grid.queue_redraw())\n\tproject.undo_redo.commit_action()\n\n\nfunc _on_tile_offset_axis_button_item_selected(index: TileSet.TileOffsetAxis) -> void:\n\tvar selected_id := tile_offset_axis_button.get_item_id(index)\n\tvar project := Global.current_project\n\tproject.undo_redo.create_action(\"Change tilemap settings\")\n\tfor layer_index in layer_indices:\n\t\tvar layer := project.layers[layer_index]\n\t\tif layer is not LayerTileMap:\n\t\t\tcontinue\n\t\tproject.undo_redo.add_do_property(layer, \"tile_offset_axis\", selected_id)\n\t\tproject.undo_redo.add_undo_property(layer, \"tile_offset_axis\", layer.tile_offset_axis)\n\t\tfor frame in project.frames:\n\t\t\tfor i in frame.cels.size():\n\t\t\t\tvar cel := frame.cels[i]\n\t\t\t\tif cel is CelTileMap and i == layer_index:\n\t\t\t\t\tproject.undo_redo.add_do_property(cel, \"tile_offset_axis\", selected_id)\n\t\t\t\t\tproject.undo_redo.add_undo_property(\n\t\t\t\t\t\tcel, \"tile_offset_axis\", cel.tile_offset_axis\n\t\t\t\t\t)\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_do_method(func(): Global.canvas.queue_redraw())\n\tproject.undo_redo.add_do_method(func(): Global.canvas.grid.queue_redraw())\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.add_undo_method(func(): Global.canvas.queue_redraw())\n\tproject.undo_redo.add_undo_method(func(): Global.canvas.grid.queue_redraw())\n\tproject.undo_redo.commit_action()\n"
  },
  {
    "path": "src/UI/Timeline/LayerProperties.gd.uid",
    "content": "uid://4onxshv5pult\n"
  },
  {
    "path": "src/UI/Timeline/LayerProperties.tscn",
    "content": "[gd_scene format=3 uid=\"uid://d3dt1gdlf7hox\"]\n\n[ext_resource type=\"Script\" uid=\"uid://4onxshv5pult\" path=\"res://src/UI/Timeline/LayerProperties.gd\" id=\"1_54q1t\"]\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"2_bwpwc\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bbnqcxa20a5a5\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\" id=\"3_dij20\"]\n\n[node name=\"LayerProperties\" type=\"AcceptDialog\" unique_id=1588068417]\ntitle = \"Layer properties\"\nposition = Vector2i(0, 36)\nsize = Vector2i(425, 402)\nscript = ExtResource(\"1_54q1t\")\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\".\" unique_id=1311623414]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 417.0\noffset_bottom = 353.0\ncolumns = 2\n\n[node name=\"NameLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=478466887]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Name:\"\n\n[node name=\"NameLineEdit\" type=\"LineEdit\" parent=\"GridContainer\" unique_id=661910478]\nlayout_mode = 2\nsize_flags_horizontal = 3\n\n[node name=\"OpacityLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=432469892 groups=[\"VisualLayers\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Opacity:\"\n\n[node name=\"OpacitySlider\" type=\"TextureProgressBar\" parent=\"GridContainer\" unique_id=1204267921 groups=[\"VisualLayers\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"2_bwpwc\")\n\n[node name=\"BlendModeLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=387783455 groups=[\"VisualLayers\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Blend mode:\"\n\n[node name=\"BlendModeOptionButton\" type=\"OptionButton\" parent=\"GridContainer\" unique_id=803642670 groups=[\"VisualLayers\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\n\n[node name=\"OnionIgnoreLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=1250619841]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Ignore in onion skinning:\"\n\n[node name=\"OnionIgnoreButton\" type=\"CheckButton\" parent=\"GridContainer\" unique_id=61331848 groups=[\"VisualLayers\"]]\nlayout_mode = 2\ntext = \"On\"\n\n[node name=\"AudioFileLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=1226850445 groups=[\"AudioLayers\"]]\nlayout_mode = 2\ntext = \"Audio file:\"\n\n[node name=\"AudioFileButton\" type=\"Button\" parent=\"GridContainer\" unique_id=1133035701 groups=[\"AudioLayers\"]]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Load file\"\n\n[node name=\"PlayAtFrameLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=1852509857 groups=[\"AudioLayers\"]]\nlayout_mode = 2\ntext = \"Play at frame:\"\n\n[node name=\"PlayAtFrameSlider\" type=\"TextureProgressBar\" parent=\"GridContainer\" unique_id=1150512316 groups=[\"AudioLayers\"]]\nlayout_mode = 2\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nvalue = 1.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"2_bwpwc\")\n\n[node name=\"TilesetLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=1782993276 groups=[\"TilemapLayers\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 0\ntext = \"Tileset:\"\n\n[node name=\"TilesetOptionButton\" type=\"OptionButton\" parent=\"GridContainer\" unique_id=40911694 groups=[\"TilemapLayers\"]]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\n\n[node name=\"PlaceOnlyModeLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=2022690262 groups=[\"TilemapLayers\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 0\ntext = \"Place-only mode:\"\n\n[node name=\"PlaceOnlyModeCheckButton\" type=\"CheckButton\" parent=\"GridContainer\" unique_id=778050964 groups=[\"TilemapLayers\"]]\nlayout_mode = 2\ntooltip_text = \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place tiles, and you won't be able to modify existing tiles anymore on this layer.\"\nmouse_default_cursor_shape = 2\ntext = \"On\"\n\n[node name=\"TileSizeLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=1536456979 groups=[\"TilemapLayersPlaceOnly\"]]\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Tile size:\"\n\n[node name=\"TileSizeSlider\" parent=\"GridContainer\" unique_id=697881429 groups=[\"TilemapLayersPlaceOnly\"] instance=ExtResource(\"3_dij20\")]\nvisible = false\nlayout_mode = 2\nvalue = Vector2(16, 16)\nmin_value = Vector2(1, 1)\nmax_value = Vector2(128, 128)\nallow_greater = true\nshow_ratio = true\nprefix_x = \"Width:\"\nprefix_y = \"Height:\"\nsuffix_x = \"px\"\nsuffix_y = \"px\"\n\n[node name=\"TileShapeLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=340846773 groups=[\"TilemapLayersPlaceOnly\"]]\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Tile shape:\"\n\n[node name=\"TileShapeOptionButton\" type=\"OptionButton\" parent=\"GridContainer\" unique_id=658462453 groups=[\"TilemapLayersPlaceOnly\"]]\nvisible = false\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 3\npopup/item_0/text = \"Rectangular\"\npopup/item_0/id = 0\npopup/item_1/text = \"Isometric\"\npopup/item_1/id = 1\npopup/item_2/text = \"Hexagonal\"\npopup/item_2/id = 3\n\n[node name=\"TileLayoutLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=1792358721 groups=[\"TilemapLayersPlaceOnly\"]]\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Tile layout:\"\n\n[node name=\"TileLayoutOptionButton\" type=\"OptionButton\" parent=\"GridContainer\" unique_id=690932565 groups=[\"TilemapLayersPlaceOnly\"]]\nvisible = false\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 6\npopup/item_0/text = \"Stacked\"\npopup/item_0/id = 0\npopup/item_1/text = \"Stacked offset\"\npopup/item_1/id = 1\npopup/item_2/text = \"Stairs right\"\npopup/item_2/id = 2\npopup/item_3/text = \"Stairs down\"\npopup/item_3/id = 3\npopup/item_4/text = \"Diamond right\"\npopup/item_4/id = 4\npopup/item_5/text = \"Diamond down\"\npopup/item_5/id = 5\n\n[node name=\"TileOffsetAxisLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=1228972804 groups=[\"TilemapLayersPlaceOnly\"]]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Tile offset axis:\"\n\n[node name=\"TileOffsetAxisButton\" type=\"OptionButton\" parent=\"GridContainer\" unique_id=1235299752 groups=[\"TilemapLayersPlaceOnly\"]]\nlayout_mode = 2\ntooltip_text = \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 2\npopup/item_0/text = \"Horizontal\"\npopup/item_0/id = 0\npopup/item_1/text = \"Vertical\"\npopup/item_1/id = 1\n\n[node name=\"UserDataLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=1434616896]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 0\ntext = \"User data:\"\n\n[node name=\"UserDataTextEdit\" type=\"TextEdit\" parent=\"GridContainer\" unique_id=1259907505]\nlayout_mode = 2\nsize_flags_horizontal = 3\nscroll_fit_content_height = true\n\n[node name=\"UIColorLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=1272365880]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 0\ntext = \"Color:\"\n\n[node name=\"UIColorPickerButton\" type=\"ColorPickerButton\" parent=\"GridContainer\" unique_id=1559614606]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\n\n[node name=\"AudioFileDialog\" type=\"FileDialog\" parent=\".\" unique_id=1593154512]\ntitle = \"Open a File\"\nsize = Vector2i(870, 400)\nalways_on_top = true\nok_button_text = \"Open\"\nfile_mode = 0\naccess = 2\nfilters = PackedStringArray(\"*.mp3 ; MP3 Audio\", \"*.wav; WAV Audio\")\n\n[node name=\"PlaceOnlyConfirmationDialog\" type=\"ConfirmationDialog\" parent=\".\" unique_id=38970139]\nsize = Vector2i(300, 200)\ndialog_text = \"Enabling place-only mode is a permanent action. Once activated, you will only be able to place, duplicate and edit existing tiles, and you won't be able to use Manual, Auto and Stack modes.\"\ndialog_autowrap = true\n\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_visibility_changed\"]\n[connection signal=\"text_changed\" from=\"GridContainer/NameLineEdit\" to=\".\" method=\"_on_name_line_edit_text_changed\"]\n[connection signal=\"value_changed\" from=\"GridContainer/OpacitySlider\" to=\".\" method=\"_on_opacity_slider_value_changed\"]\n[connection signal=\"item_selected\" from=\"GridContainer/BlendModeOptionButton\" to=\".\" method=\"_on_blend_mode_option_button_item_selected\"]\n[connection signal=\"toggled\" from=\"GridContainer/OnionIgnoreButton\" to=\".\" method=\"_on_onion_ignore_button_toggled\"]\n[connection signal=\"pressed\" from=\"GridContainer/AudioFileButton\" to=\".\" method=\"_on_audio_file_button_pressed\"]\n[connection signal=\"value_changed\" from=\"GridContainer/PlayAtFrameSlider\" to=\".\" method=\"_on_play_at_frame_slider_value_changed\"]\n[connection signal=\"item_selected\" from=\"GridContainer/TilesetOptionButton\" to=\".\" method=\"_on_tileset_option_button_item_selected\"]\n[connection signal=\"toggled\" from=\"GridContainer/PlaceOnlyModeCheckButton\" to=\".\" method=\"_on_place_only_mode_check_button_toggled\"]\n[connection signal=\"value_changed\" from=\"GridContainer/TileSizeSlider\" to=\".\" method=\"_on_tile_size_slider_value_changed\"]\n[connection signal=\"item_selected\" from=\"GridContainer/TileShapeOptionButton\" to=\".\" method=\"_on_tile_shape_option_button_item_selected\"]\n[connection signal=\"item_selected\" from=\"GridContainer/TileLayoutOptionButton\" to=\".\" method=\"_on_tile_layout_option_button_item_selected\"]\n[connection signal=\"item_selected\" from=\"GridContainer/TileOffsetAxisButton\" to=\".\" method=\"_on_tile_offset_axis_button_item_selected\"]\n[connection signal=\"text_changed\" from=\"GridContainer/UserDataTextEdit\" to=\".\" method=\"_on_user_data_text_edit_text_changed\"]\n[connection signal=\"color_changed\" from=\"GridContainer/UIColorPickerButton\" to=\".\" method=\"_on_ui_color_picker_button_color_changed\"]\n[connection signal=\"file_selected\" from=\"AudioFileDialog\" to=\".\" method=\"_on_audio_file_dialog_file_selected\"]\n[connection signal=\"confirmed\" from=\"PlaceOnlyConfirmationDialog\" to=\".\" method=\"_on_place_only_confirmation_dialog_confirmed\"]\n"
  },
  {
    "path": "src/UI/Timeline/NewTileMapLayerDialog.gd",
    "content": "extends ConfirmationDialog\n\n@onready var animation_timeline := get_parent() as Control\n@onready var name_line_edit: LineEdit = $GridContainer/NameLineEdit\n@onready var tileset_option_button: OptionButton = $GridContainer/TilesetOptionButton\n@onready var tileset_name_line_edit: LineEdit = $GridContainer/TilesetNameLineEdit\n@onready var tile_size_slider: ValueSliderV2 = $GridContainer/TileSizeSlider\n@onready var tile_shape_option_button: OptionButton = $GridContainer/TileShapeOptionButton\n@onready var tile_offset_axis_button: OptionButton = $GridContainer/TileOffsetAxisButton\n\n\nfunc _on_confirmed() -> void:\n\tvar project := Global.current_project\n\tvar layer_name := name_line_edit.text\n\tvar tileset_name := tileset_name_line_edit.text.strip_edges()\n\tif tileset_name.is_empty():  # Use placeholder name if the tileset name is not given\n\t\ttileset_name = tileset_name_line_edit.placeholder_text.strip_edges()\n\tvar tile_size := tile_size_slider.value\n\tvar tile_shape := tile_shape_option_button.get_item_id(tile_shape_option_button.selected)\n\tvar tile_offset_axis := tile_offset_axis_button.get_item_id(tile_offset_axis_button.selected)\n\tvar tileset: TileSetCustom\n\tif tileset_option_button.selected == 0:\n\t\ttileset = TileSetCustom.new(tile_size, tileset_name, tile_shape)\n\t\ttileset.tile_offset_axis = tile_offset_axis as TileSet.TileOffsetAxis\n\telse:\n\t\ttileset = project.tilesets[tileset_option_button.selected - 1]\n\tvar layer := LayerTileMap.new(project, tileset, layer_name)\n\tanimation_timeline.add_layer(layer, project)\n\n\nfunc _on_visibility_changed() -> void:\n\tGlobal.dialog_open(visible)\n\n\nfunc _on_about_to_popup() -> void:\n\tvar project := Global.current_project\n\tvar default_name := tr(\"Tilemap\") + \" %s\" % (project.layers.size() + 1)\n\tname_line_edit.text = default_name\n\ttileset_option_button.clear()\n\ttileset_option_button.add_item(\"New tileset\")\n\tfor i in project.tilesets.size():\n\t\tvar tileset := project.tilesets[i]\n\t\ttileset_option_button.add_item(tileset.get_text_info(i))\n\t_on_tileset_option_button_item_selected(tileset_option_button.selected)\n\n\nfunc _on_tileset_option_button_item_selected(index: int) -> void:\n\tif index > 0:\n\t\tvar tileset := Global.current_project.tilesets[index - 1]\n\t\ttileset_name_line_edit.text = tileset.name\n\t\ttile_size_slider.value = tileset.tile_size\n\ttileset_name_line_edit.editable = index == 0\n\ttile_size_slider.editable = tileset_name_line_edit.editable\n\ttile_shape_option_button.disabled = not tileset_name_line_edit.editable\n"
  },
  {
    "path": "src/UI/Timeline/NewTileMapLayerDialog.gd.uid",
    "content": "uid://dppsr4hf6f142\n"
  },
  {
    "path": "src/UI/Timeline/NewTileMapLayerDialog.tscn",
    "content": "[gd_scene format=3 uid=\"uid://hbgwxlin4jun\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://bbnqcxa20a5a5\" path=\"res://src/UI/Nodes/Sliders/ValueSliderV2.tscn\" id=\"1_uvdem\"]\n[ext_resource type=\"Script\" uid=\"uid://dppsr4hf6f142\" path=\"res://src/UI/Timeline/NewTileMapLayerDialog.gd\" id=\"1_y2r5h\"]\n\n[node name=\"NewTileMapLayerDialog\" type=\"ConfirmationDialog\" unique_id=1845542991]\ntitle = \"New layer\"\nposition = Vector2i(0, 36)\nsize = Vector2i(300, 284)\nscript = ExtResource(\"1_y2r5h\")\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\".\" unique_id=152386652]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 292.0\noffset_bottom = 235.0\ncolumns = 2\n\n[node name=\"NameLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=726894301]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Name:\"\n\n[node name=\"NameLineEdit\" type=\"LineEdit\" parent=\"GridContainer\" unique_id=970884832]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Tilemap 1\"\n\n[node name=\"TilesetLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=2135846905]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Tileset:\"\n\n[node name=\"TilesetOptionButton\" type=\"OptionButton\" parent=\"GridContainer\" unique_id=103256605]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 1\npopup/item_0/text = \"New tileset\"\npopup/item_0/id = 0\n\n[node name=\"TilesetNameLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=1055030391]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Tileset name:\"\n\n[node name=\"TilesetNameLineEdit\" type=\"LineEdit\" parent=\"GridContainer\" unique_id=1288913671]\nlayout_mode = 2\nsize_flags_horizontal = 3\nplaceholder_text = \"New Tileset\"\n\n[node name=\"TileSizeLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=1371259562]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Tile size:\"\n\n[node name=\"TileSizeSlider\" parent=\"GridContainer\" unique_id=862200666 instance=ExtResource(\"1_uvdem\")]\nlayout_mode = 2\nvalue = Vector2(16, 16)\nmin_value = Vector2(1, 1)\nmax_value = Vector2(128, 128)\nallow_greater = true\nshow_ratio = true\nprefix_x = \"Width:\"\nprefix_y = \"Height:\"\nsuffix_x = \"px\"\nsuffix_y = \"px\"\n\n[node name=\"TileShapeLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=1805530503]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Tile shape:\"\n\n[node name=\"TileShapeOptionButton\" type=\"OptionButton\" parent=\"GridContainer\" unique_id=354661941]\nlayout_mode = 2\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 3\npopup/item_0/text = \"Rectangular\"\npopup/item_0/id = 0\npopup/item_1/text = \"Isometric\"\npopup/item_1/id = 1\npopup/item_2/text = \"Hexagonal\"\npopup/item_2/id = 3\n\n[node name=\"TileOffsetAxisLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=2082659380]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Tile offset axis:\"\n\n[node name=\"TileOffsetAxisButton\" type=\"OptionButton\" parent=\"GridContainer\" unique_id=467008768]\nlayout_mode = 2\ntooltip_text = \"For all half-offset shapes (Isometric & Hexagonal), determines the offset axis.\"\nmouse_default_cursor_shape = 2\nselected = 0\nitem_count = 2\npopup/item_0/text = \"Horizontal\"\npopup/item_0/id = 0\npopup/item_1/text = \"Vertical\"\npopup/item_1/id = 1\n\n[connection signal=\"about_to_popup\" from=\".\" to=\".\" method=\"_on_about_to_popup\"]\n[connection signal=\"confirmed\" from=\".\" to=\".\" method=\"_on_confirmed\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_visibility_changed\"]\n[connection signal=\"item_selected\" from=\"GridContainer/TilesetOptionButton\" to=\".\" method=\"_on_tileset_option_button_item_selected\"]\n"
  },
  {
    "path": "src/UI/Timeline/TagProperties.gd",
    "content": "extends ConfirmationDialog\n\nvar current_tag_id := 0\n@onready var delete_tag_button := add_button(\"Delete\", true, \"delete_tag\")\n@onready var name_line_edit := $GridContainer/NameLineEdit as LineEdit\n@onready var color_picker_button := $GridContainer/ColorPickerButton as ColorPickerButton\n@onready var from_spinbox := $GridContainer/FromSpinBox as SpinBox\n@onready var to_spinbox := $GridContainer/ToSpinBox as SpinBox\n@onready var user_data_text_edit := $GridContainer/UserDataTextEdit as TextEdit\n\n\nfunc _ready() -> void:\n\tcolor_picker_button.get_picker().presets_visible = false\n\n\nfunc _input(_event: InputEvent) -> void:\n\tif Input.is_action_just_released(\"ui_text_submit\"):\n\t\tif gui_get_focus_owner() != user_data_text_edit:\n\t\t\tget_ok_button().grab_focus()\n\n\nfunc show_dialog(\n\tpopup_rect: Rect2i, tag_id: int, is_editing: bool, selected_frames := PackedInt32Array()\n) -> void:\n\tcurrent_tag_id = tag_id\n\tif is_editing:\n\t\tvar animation_tag := Global.current_project.animation_tags[tag_id]\n\t\tname_line_edit.text = animation_tag.name\n\t\tcolor_picker_button.color = animation_tag.color\n\t\tfrom_spinbox.value = animation_tag.from\n\t\tto_spinbox.value = animation_tag.to\n\t\tuser_data_text_edit.text = animation_tag.user_data\n\t\tdelete_tag_button.visible = true\n\telse:\n\t\tfrom_spinbox.value = (selected_frames[0] + 1)\n\t\tto_spinbox.value = (selected_frames[-1] + 1)\n\t\tcolor_picker_button.color = Color(randf(), randf(), randf())\n\t\tuser_data_text_edit.text = \"\"\n\t\tdelete_tag_button.visible = false\n\tif popup_rect == Rect2i():\n\t\tpopup_centered_clamped()\n\telse:\n\t\tpopup(popup_rect)\n\tname_line_edit.grab_focus()\n\n\nfunc _on_confirmed() -> void:\n\tvar tag_name := name_line_edit.text\n\tvar tag_color := color_picker_button.color\n\tvar tag_to := clampi(to_spinbox.value, 0, Global.current_project.frames.size())\n\tvar tag_from := clampi(from_spinbox.value, 0, tag_to)\n\tvar user_data := user_data_text_edit.text\n\tvar new_animation_tags: Array[AnimationTag] = []\n\t# Loop through the tags to create new classes for them, so that they won't be the same\n\t# as Global.current_project.animation_tags's classes. Needed for undo/redo to work properly.\n\tfor tag in Global.current_project.animation_tags:\n\t\tnew_animation_tags.append(tag.duplicate())\n\n\tif current_tag_id == Global.current_project.animation_tags.size():\n\t\tvar new_tag := AnimationTag.new(tag_name, tag_color, tag_from, tag_to)\n\t\tnew_tag.user_data = user_data\n\t\tnew_animation_tags.append(new_tag)\n\telse:\n\t\tnew_animation_tags[current_tag_id].name = tag_name\n\t\tnew_animation_tags[current_tag_id].color = tag_color\n\t\tnew_animation_tags[current_tag_id].from = tag_from\n\t\tnew_animation_tags[current_tag_id].to = tag_to\n\t\tnew_animation_tags[current_tag_id].user_data = user_data\n\n\t# Handle Undo/Redo\n\tGlobal.current_project.undo_redo.create_action(\"Modify Frame Tag\")\n\tGlobal.current_project.undo_redo.add_do_method(Global.general_redo)\n\tGlobal.current_project.undo_redo.add_undo_method(Global.general_undo)\n\tGlobal.current_project.undo_redo.add_do_property(\n\t\tGlobal.current_project, &\"animation_tags\", new_animation_tags\n\t)\n\tGlobal.current_project.undo_redo.add_undo_property(\n\t\tGlobal.current_project, &\"animation_tags\", Global.current_project.animation_tags\n\t)\n\tGlobal.current_project.undo_redo.commit_action()\n\n\nfunc _on_custom_action(action: StringName) -> void:\n\tif action != &\"delete_tag\":\n\t\treturn\n\tvar new_animation_tags := Global.current_project.animation_tags.duplicate()\n\tnew_animation_tags.remove_at(current_tag_id)\n\t# Handle Undo/Redo\n\tGlobal.current_project.undo_redo.create_action(\"Delete Frame Tag\")\n\tGlobal.current_project.undo_redo.add_do_method(Global.general_redo)\n\tGlobal.current_project.undo_redo.add_undo_method(Global.general_undo)\n\tGlobal.current_project.undo_redo.add_do_property(\n\t\tGlobal.current_project, &\"animation_tags\", new_animation_tags\n\t)\n\tGlobal.current_project.undo_redo.add_undo_property(\n\t\tGlobal.current_project, &\"animation_tags\", Global.current_project.animation_tags\n\t)\n\tGlobal.current_project.undo_redo.commit_action()\n\n\thide()\n\n\nfunc _on_visibility_changed() -> void:\n\tGlobal.dialog_open(visible)\n"
  },
  {
    "path": "src/UI/Timeline/TagProperties.gd.uid",
    "content": "uid://da66yrocd1l3g\n"
  },
  {
    "path": "src/UI/Timeline/TagProperties.tscn",
    "content": "[gd_scene format=3 uid=\"uid://c6fyrnyt3663o\"]\n\n[ext_resource type=\"Script\" uid=\"uid://da66yrocd1l3g\" path=\"res://src/UI/Timeline/TagProperties.gd\" id=\"1_wbmaq\"]\n\n[node name=\"TagProperties\" type=\"ConfirmationDialog\" unique_id=1457636907]\ntitle = \"Tag properties\"\nsize = Vector2i(303, 240)\nscript = ExtResource(\"1_wbmaq\")\n\n[node name=\"GridContainer\" type=\"GridContainer\" parent=\".\" unique_id=1830702252]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 295.0\noffset_bottom = 191.0\ntheme_override_constants/h_separation = 8\ntheme_override_constants/v_separation = 8\ncolumns = 2\n\n[node name=\"NameLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=1461261237]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Name:\"\n\n[node name=\"NameLineEdit\" type=\"LineEdit\" parent=\"GridContainer\" unique_id=1721887142]\nlayout_mode = 2\nsize_flags_horizontal = 3\ncaret_blink = true\ncaret_blink_interval = 0.5\n\n[node name=\"ColorLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=1422230617]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Color:\"\n\n[node name=\"ColorPickerButton\" type=\"ColorPickerButton\" parent=\"GridContainer\" unique_id=239637816]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\ncolor = Color(1, 0, 0, 1)\n\n[node name=\"FromLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=834147605]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"From:\"\n\n[node name=\"FromSpinBox\" type=\"SpinBox\" parent=\"GridContainer\" unique_id=1615060687]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmin_value = 1.0\nvalue = 1.0\nallow_greater = true\n\n[node name=\"ToLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=814133617]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"To:\"\n\n[node name=\"ToSpinBox\" type=\"SpinBox\" parent=\"GridContainer\" unique_id=345873083]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_default_cursor_shape = 2\nmin_value = 1.0\nvalue = 1.0\nallow_greater = true\n\n[node name=\"UserDataLabel\" type=\"Label\" parent=\"GridContainer\" unique_id=1704049975]\nlayout_mode = 2\nsize_flags_vertical = 0\ntext = \"User data:\"\n\n[node name=\"UserDataTextEdit\" type=\"TextEdit\" parent=\"GridContainer\" unique_id=6860206]\nlayout_mode = 2\nscroll_fit_content_height = true\n\n[connection signal=\"confirmed\" from=\".\" to=\".\" method=\"_on_confirmed\"]\n[connection signal=\"custom_action\" from=\".\" to=\".\" method=\"_on_custom_action\"]\n[connection signal=\"visibility_changed\" from=\".\" to=\".\" method=\"_on_visibility_changed\"]\n"
  },
  {
    "path": "src/UI/ToolsPanel/ToolButton.tscn",
    "content": "[gd_scene format=3 uid=\"uid://ddrry0n03t66c\"]\n\n[ext_resource type=\"Texture2D\" uid=\"uid://cnomk15kl7go0\" path=\"res://assets/graphics/tools/tool_background.png\" id=\"1_voklp\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://4h6t2v7tf6r2\" path=\"res://assets/graphics/tools/tool_background_right.png\" id=\"2_v8t3o\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://chg3ejelsgcwm\" path=\"res://assets/graphics/tools/rectselect.png\" id=\"3_hl32r\"]\n\n[node name=\"Tool\" type=\"Button\" unique_id=1471247105 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(24, 24)\nlayout_direction = 2\noffset_right = 24.0\noffset_bottom = 24.0\ntooltip_text = \"Rectangular Selection\n\n%s for left mouse button\n%s for right mouse button\"\nmouse_filter = 1\nmouse_default_cursor_shape = 2\nbutton_mask = 3\n\n[node name=\"BackgroundLeft\" type=\"NinePatchRect\" parent=\".\" unique_id=420170375]\nvisible = false\nlayout_mode = 1\nanchors_preset = -1\nanchor_right = 0.5\nanchor_bottom = 1.0\ngrow_vertical = 2\ntexture = ExtResource(\"1_voklp\")\nregion_rect = Rect2(0, 0, 11, 24)\npatch_margin_left = 2\npatch_margin_top = 1\npatch_margin_right = 10\npatch_margin_bottom = 1\n\n[node name=\"BackgroundRight\" type=\"NinePatchRect\" parent=\".\" unique_id=592085381]\nvisible = false\nlayout_mode = 1\nanchors_preset = -1\nanchor_left = 0.5\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource(\"2_v8t3o\")\npatch_margin_left = 11\npatch_margin_top = 1\npatch_margin_right = 1\npatch_margin_bottom = 1\n\n[node name=\"ToolIcon\" type=\"TextureRect\" parent=\".\" unique_id=1440076410]\nlayout_mode = 1\nanchors_preset = 8\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\noffset_left = -11.0\noffset_top = -11.0\noffset_right = 11.0\noffset_bottom = 11.0\ngrow_horizontal = 2\ngrow_vertical = 2\ntexture = ExtResource(\"3_hl32r\")\n"
  },
  {
    "path": "src/UI/ToolsPanel/ToolButtons.gd",
    "content": "extends FlowContainer\n\nvar pen_inverted := false\n## Fixes tools accidentally being switched through shortcuts when user types on a line edit.\nvar _ignore_shortcuts := false\n\n\nfunc _ready() -> void:\n\t# Ensure to only call _input() if the cursor is inside the main canvas viewport\n\tGlobal.main_viewport.mouse_entered.connect(func(): _ignore_shortcuts = false)\n\tGlobal.main_viewport.mouse_exited.connect(func(): _ignore_shortcuts = true)\n\n\nfunc _input(event: InputEvent) -> void:\n\tif event is InputEventMouseMotion:\n\t\tpen_inverted = event.pen_inverted\n\t\treturn\n\tif not Global.can_draw:\n\t\treturn\n\tif get_tree().current_scene.is_writing_text:\n\t\treturn\n\tif _ignore_shortcuts:\n\t\treturn\n\tfor action in [\"undo\", \"redo\"]:\n\t\tif event.is_action_pressed(action):\n\t\t\treturn\n\n\tfor tool_name in Tools.tools:  # Handle tool shortcuts\n\t\tif not get_node(tool_name).visible:\n\t\t\tcontinue\n\t\tvar t: Tools.Tool = Tools.tools[tool_name]\n\t\tvar right_tool_shortcut := \"right_\" + t.shortcut + \"_tool\"\n\t\tvar left_tool_shortcut := \"left_\" + t.shortcut + \"_tool\"\n\t\tif not Global.single_tool_mode and InputMap.has_action(right_tool_shortcut):\n\t\t\tif event.is_action_pressed(right_tool_shortcut, false, true):\n\t\t\t\t# Shortcut for right button (with Alt)\n\t\t\t\tTools.assign_tool(t.name, MOUSE_BUTTON_RIGHT)\n\t\t\t\treturn\n\t\tif InputMap.has_action(left_tool_shortcut):\n\t\t\tif event.is_action_pressed(left_tool_shortcut, false, true):\n\t\t\t\t# Shortcut for left button\n\t\t\t\tTools.assign_tool(t.name, MOUSE_BUTTON_LEFT)\n\t\t\t\treturn\n\n\nfunc _on_tool_pressed(tool_pressed: BaseButton) -> void:\n\tvar button := -1\n\tbutton = MOUSE_BUTTON_LEFT if Input.is_action_just_released(\"left_mouse\") else button\n\tif not Global.single_tool_mode:\n\t\tbutton = (\n\t\t\tMOUSE_BUTTON_RIGHT\n\t\t\tif (\n\t\t\t\tInput.is_action_just_released(\"right_mouse\")\n\t\t\t\tor (pen_inverted and Input.is_action_just_released(\"left_mouse\"))\n\t\t\t)\n\t\t\telse button\n\t\t)\n\tif button != -1:\n\t\tTools.assign_tool(tool_pressed.name, button)\n"
  },
  {
    "path": "src/UI/ToolsPanel/ToolButtons.gd.uid",
    "content": "uid://wk8okc05jsil\n"
  },
  {
    "path": "src/UI/ToolsPanel/Tools.tscn",
    "content": "[gd_scene format=3 uid=\"uid://byu3rtoipuvoc\"]\n\n[ext_resource type=\"Script\" uid=\"uid://wk8okc05jsil\" path=\"res://src/UI/ToolsPanel/ToolButtons.gd\" id=\"1\"]\n\n[node name=\"Tools\" type=\"ScrollContainer\" unique_id=236478578]\ncustom_minimum_size = Vector2(36, 36)\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_right = -1242.0\noffset_bottom = -230.0\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\n\n[node name=\"PanelContainer\" type=\"PanelContainer\" parent=\".\" unique_id=1792604337]\nlayout_mode = 2\nsize_flags_horizontal = 3\nmouse_filter = 2\n\n[node name=\"ToolButtons\" type=\"HFlowContainer\" parent=\"PanelContainer\" unique_id=141197070]\nlayout_mode = 2\nalignment = 1\nscript = ExtResource(\"1\")\n"
  },
  {
    "path": "src/UI/TopMenuContainer/TopMenuContainer.gd",
    "content": "extends Panel\n\nenum ColorModes { RGBA, INDEXED }\n\nconst DOCS_URL := \"https://www.pixelorama.org/Introduction/\"\nconst ISSUES_URL := \"https://github.com/Orama-Interactive/Pixelorama/issues\"\nconst SUPPORT_URL := \"https://www.patreon.com/OramaInteractive\"\n# gdlint: ignore=max-line-length\nconst CHANGELOG_URL := \"https://github.com/Orama-Interactive/Pixelorama/blob/master/CHANGELOG.md#v118---2025-12-31\"\nconst EXTERNAL_LINK_ICON := preload(\"res://assets/graphics/misc/external_link.svg\")\nconst PIXELORAMA_ICON := preload(\"res://assets/graphics/icons/icon_16x16.png\")\nconst HEART_ICON := preload(\"res://assets/graphics/misc/heart.svg\")\n\nvar text_server := TextServerManager.get_primary_interface()\nvar recent_projects := []\nvar selected_layout := 0\nvar zen_mode := false\nvar can_save := true\nvar tile_mode_submenu := PopupMenu.new()\nvar selection_modify_submenu := PopupMenu.new()\nvar color_mode_submenu := PopupMenu.new()\nvar snap_to_submenu := PopupMenu.new()\nvar panels_submenu := PopupMenu.new()\nvar layouts_submenu := PopupMenu.new()\nvar recent_projects_submenu := PopupMenu.new()\nvar effects_transform_submenu := PopupMenu.new()\nvar effects_color_submenu := PopupMenu.new()\nvar effects_procedural_submenu := PopupMenu.new()\nvar effects_blur_submenu := PopupMenu.new()\nvar effects_loaded_submenu: PopupMenu\n\n# Dialogs\nvar new_image_dialog := Dialog.new(\"res://src/UI/Dialogs/CreateNewImage.tscn\")\nvar project_properties_dialog := Dialog.new(\"res://src/UI/Dialogs/ProjectProperties.tscn\")\nvar preferences_dialog := Dialog.new(\"res://src/Preferences/PreferencesDialog.tscn\")\nvar modify_selection := Dialog.new(\"res://src/UI/Dialogs/ModifySelection.tscn\")\nvar offset_image_dialog := Dialog.new(\"res://src/UI/Dialogs/ImageEffects/OffsetScaleImage.tscn\")\nvar scale_image_dialog := Dialog.new(\"res://src/UI/Dialogs/ImageEffects/ScaleImage.tscn\")\nvar resize_canvas_dialog := Dialog.new(\"res://src/UI/Dialogs/ImageEffects/ResizeCanvas.tscn\")\nvar mirror_image_dialog := Dialog.new(\"res://src/UI/Dialogs/ImageEffects/FlipImageDialog.tscn\")\nvar rotate_image_dialog := Dialog.new(\"res://src/UI/Dialogs/ImageEffects/RotateImage.tscn\")\nvar invert_colors_dialog := Dialog.new(\"res://src/UI/Dialogs/ImageEffects/InvertColorsDialog.tscn\")\nvar desaturate_dialog := Dialog.new(\"res://src/UI/Dialogs/ImageEffects/DesaturateDialog.tscn\")\nvar outline_dialog := Dialog.new(\"res://src/UI/Dialogs/ImageEffects/OutlineDialog.tscn\")\nvar drop_shadow_dialog := Dialog.new(\"res://src/UI/Dialogs/ImageEffects/DropShadowDialog.tscn\")\nvar hsv_dialog := Dialog.new(\"res://src/UI/Dialogs/ImageEffects/HSVDialog.tscn\")\nvar adjust_brightness_saturation_dialog := Dialog.new(\n\t\"res://src/UI/Dialogs/ImageEffects/BrightnessContrastDialog.tscn\"\n)\nvar color_curves_dialog := Dialog.new(\"res://src/UI/Dialogs/ImageEffects/ColorCurvesDialog.tscn\")\nvar gaussian_blur_dialog := Dialog.new(\"res://src/UI/Dialogs/ImageEffects/GaussianBlur.tscn\")\nvar gradient_dialog := Dialog.new(\"res://src/UI/Dialogs/ImageEffects/GradientDialog.tscn\")\nvar gradient_map_dialog := Dialog.new(\"res://src/UI/Dialogs/ImageEffects/GradientMapDialog.tscn\")\nvar palettize_dialog := Dialog.new(\"res://src/UI/Dialogs/ImageEffects/PalettizeDialog.tscn\")\nvar pixelize_dialog := Dialog.new(\"res://src/UI/Dialogs/ImageEffects/PixelizeDialog.tscn\")\nvar posterize_dialog := Dialog.new(\"res://src/UI/Dialogs/ImageEffects/Posterize.tscn\")\nvar loaded_effect_dialogs: Array[Dialog] = []\nvar last_applied_effect: Window\nvar window_opacity_dialog := Dialog.new(\"res://src/UI/Dialogs/WindowOpacityDialog.tscn\")\nvar about_dialog := Dialog.new(\"res://src/UI/Dialogs/AboutDialog.tscn\")\nvar backup_dialog := Dialog.new(\"res://src/UI/Dialogs/BackupRestoreDialog.tscn\")\n\n@onready var main := $\"../..\" as Control\n@onready var main_ui := main.find_child(\"DockableContainer\") as DockableContainer\n@onready var ui_elements := main_ui.get_children()\n@onready var main_menu_button: MenuButton = $MarginContainer/HBoxContainer/MainMenuButton\n@onready var menu_bar: MenuBar = $MarginContainer/HBoxContainer/MenuBar\n@onready var file_menu := $MarginContainer/HBoxContainer/MenuBar/File as PopupMenu\n@onready var edit_menu := $MarginContainer/HBoxContainer/MenuBar/Edit as PopupMenu\n@onready var select_menu := $MarginContainer/HBoxContainer/MenuBar/Select as PopupMenu\n@onready var project_menu := $MarginContainer/HBoxContainer/MenuBar/Project as PopupMenu\n@onready var effects_menu := $MarginContainer/HBoxContainer/MenuBar/Effects as PopupMenu\n@onready var view_menu := $MarginContainer/HBoxContainer/MenuBar/View as PopupMenu\n@onready var window_menu := $MarginContainer/HBoxContainer/MenuBar/Window as PopupMenu\n@onready var help_menu := $MarginContainer/HBoxContainer/MenuBar/Help as PopupMenu\n@onready var undo_history_dialog := $UndoHistoryDialog as AcceptDialog\n@onready var add_layout_confirmation := $AddLayoutConfirmation as ConfirmationDialog\n@onready var delete_layout_confirmation := $DeleteLayoutConfirmation as ConfirmationDialog\n@onready var layout_name_line_edit := %LayoutName as LineEdit\n@onready var layout_from_option_button := %LayoutFrom as OptionButton\n@onready var cursor_position_label := %CursorPosition as Label\n@onready var current_frame_mark := %CurrentFrameMark as Label\n\n@onready var greyscale_vision: ColorRect = main_ui.find_child(\"GreyscaleVision\")\n\n\nclass Dialog:\n\t## This class is used to help with lazy loading dialog scenes in order to\n\t## reduce Pixelorama's initial loading time, by only loading each dialog\n\t## scene when it's actually needed.\n\tvar scene_path := \"\"\n\tvar node: Window\n\n\tfunc _init(_scene_path: String) -> void:\n\t\tscene_path = _scene_path\n\n\tfunc popup(dialog_size := Vector2i.ZERO) -> void:\n\t\tif not is_instance_valid(node):\n\t\t\tinstantiate_scene()\n\t\tnode.popup_centered_clamped(dialog_size)\n\t\tvar is_file_dialog := node is FileDialog\n\t\tGlobal.dialog_open(true, is_file_dialog)\n\n\tfunc instantiate_scene() -> void:\n\t\tvar scene := load(scene_path)\n\t\tif not scene is PackedScene:\n\t\t\treturn\n\t\tnode = scene.instantiate()\n\t\tif is_instance_valid(node):\n\t\t\tGlobal.control.get_node(\"Dialogs\").add_child(node)\n\n\nfunc _ready() -> void:\n\thandle_main_menu_collapse()\n\tmain.save_file_dialog_opened.connect(func(opened: bool): can_save = not opened)\n\tGlobal.collapse_main_menu_changed.connect(handle_main_menu_collapse)\n\tGlobal.project_about_to_switch.connect(_on_project_about_to_switch)\n\tGlobal.project_switched.connect(_on_project_switched)\n\tGlobal.cel_switched.connect(_update_current_frame_mark)\n\tGlobal.on_cursor_position_text_changed.connect(_on_cursor_position_text_changed)\n\tOpenSave.shader_copied.connect(_load_shader_file)\n\t_setup_file_menu()\n\t_setup_edit_menu()\n\t_setup_view_menu()\n\t_setup_window_menu()\n\t_setup_project_menu()\n\t_setup_effects_menu()\n\t_setup_select_menu()\n\t_setup_help_menu()\n\t# Fill the copy layout from option button with the default layouts\n\tfor layout in Global.default_layouts:\n\t\tlayout_from_option_button.add_item(layout.resource_path.get_basename().get_file())\n\n\nfunc _input(event: InputEvent) -> void:\n\t# Workaround for https://github.com/Orama-Interactive/Pixelorama/issues/1070\n\tif event is InputEventMouseButton and event.pressed:\n\t\tfile_menu.activate_item_by_event(event)\n\t\tedit_menu.activate_item_by_event(event)\n\t\tselect_menu.activate_item_by_event(event)\n\t\tproject_menu.activate_item_by_event(event)\n\t\teffects_menu.activate_item_by_event(event)\n\t\tview_menu.activate_item_by_event(event)\n\t\twindow_menu.activate_item_by_event(event)\n\t\thelp_menu.activate_item_by_event(event)\n\n\nfunc _notification(what: int) -> void:\n\tif what == NOTIFICATION_TRANSLATION_CHANGED and Global.current_project != null:\n\t\t_update_file_menu_buttons(Global.current_project)\n\telif what == NOTIFICATION_WM_CLOSE_REQUEST:\n\t\tif zen_mode:\n\t\t\t_toggle_zen_mode()\n\n\nfunc handle_main_menu_collapse() -> void:\n\tvar main_menu_button_popup := main_menu_button.get_popup()\n\tif Global.collapse_main_menu:\n\t\tif menu_bar.visible:\n\t\t\tmain_menu_button.visible = true\n\t\t\tmenu_bar.visible = false\n\t\t\tvar menu_options := menu_bar.get_children()\n\t\t\tfor menu_option in menu_options:\n\t\t\t\tmenu_bar.remove_child(menu_option)\n\t\t\t\tmain_menu_button_popup.add_submenu_node_item(menu_option.name, menu_option)\n\telse:\n\t\tif not menu_bar.visible:\n\t\t\tmain_menu_button.visible = false\n\t\t\tmenu_bar.visible = true\n\t\t\tvar menu_options: Array[PopupMenu]\n\t\t\tfor i in range(main_menu_button_popup.item_count - 1, -1, -1):\n\t\t\t\tvar submenu := main_menu_button_popup.get_item_submenu_node(i)\n\t\t\t\tmenu_options.append(submenu)\n\t\t\t\tmain_menu_button_popup.remove_item(i)\n\t\t\t\tsubmenu.get_parent().remove_child(submenu)\n\t\t\tmenu_options.reverse()\n\t\t\tfor menu_option in menu_options:\n\t\t\t\tmenu_bar.add_child(menu_option)\n\n\nfunc _on_project_about_to_switch() -> void:\n\tvar project := Global.current_project\n\tproject.resized.disconnect(_on_project_resized)\n\n\nfunc _on_project_switched() -> void:\n\tvar project := Global.current_project\n\tif not project.resized.is_connected(_on_project_resized):\n\t\tproject.resized.connect(_on_project_resized)\n\tvar project_size_text := \"[%s×%s]\" % [project.size.x, project.size.y]\n\t_on_cursor_position_text_changed(project_size_text)\n\tedit_menu.set_item_disabled(Global.EditMenu.NEW_BRUSH, not project.has_selection)\n\t_update_file_menu_buttons(project)\n\tfor j in Tiles.MODE.values():\n\t\ttile_mode_submenu.set_item_checked(j, j == project.tiles.mode)\n\t_check_color_mode_submenu_item(project)\n\t_update_current_frame_mark()\n\n\nfunc _on_project_resized() -> void:\n\tvar project := Global.current_project\n\tvar project_size_text := \"[%s×%s]\" % [project.size.x, project.size.y]\n\t_on_cursor_position_text_changed(project_size_text)\n\n\nfunc _on_cursor_position_text_changed(text: String) -> void:\n\tcursor_position_label.text = text_server.format_number(text)\n\n\nfunc _update_file_menu_buttons(project: Project) -> void:\n\tif not is_instance_valid(file_menu):\n\t\treturn\n\tif project.export_directory_path.is_empty():\n\t\tfile_menu.set_item_text(Global.FileMenu.SAVE, tr(\"Save\"))\n\telse:\n\t\tfile_menu.set_item_text(Global.FileMenu.SAVE, tr(\"Save\") + \" %s\" % project.file_name)\n\tif project.was_exported:\n\t\tvar f_name := \" %s\" % (project.file_name + Export.file_format_string(project.file_format))\n\t\tif project.export_overwrite:\n\t\t\tfile_menu.set_item_text(Global.FileMenu.EXPORT, tr(\"Overwrite\") + f_name)\n\t\telse:\n\t\t\tfile_menu.set_item_text(Global.FileMenu.EXPORT, tr(\"Export\") + f_name)\n\telse:\n\t\tfile_menu.set_item_text(Global.FileMenu.EXPORT, tr(\"Export\"))\n\n\nfunc _update_current_frame_mark() -> void:\n\tvar project := Global.current_project\n\tvar current_frame := text_server.format_number(str(project.current_frame + 1))\n\tvar n_of_frames := text_server.format_number(str(project.frames.size()))\n\tcurrent_frame_mark.text = \"%s/%s\" % [current_frame, n_of_frames]\n\n\nfunc _setup_file_menu() -> void:\n\t# Order as in FileMenu enum\n\tvar file_menu_items := {\n\t\t\"New...\": \"new_file\",\n\t\t\"Open...\": \"open_file\",\n\t\t\"Open last project...\": \"open_last_project\",\n\t\t\"Recent projects\": \"\",\n\t\t\"Save...\": \"save_file\",\n\t\t\"Save as...\": \"save_file_as\",\n\t\t\"Export...\": \"export_file\",\n\t\t\"Export as...\": \"export_file_as\",\n\t\t\"Quit\": \"quit\",\n\t}\n\tvar i := 0\n\tfor item in file_menu_items:\n\t\tif item == \"Recent projects\":\n\t\t\t_setup_recent_projects_submenu(item)\n\t\telse:\n\t\t\t_set_menu_shortcut(file_menu_items[item], file_menu, i, item)\n\t\ti += 1\n\n\tfile_menu.id_pressed.connect(file_menu_id_pressed)\n\n\tif OS.get_name() == \"Web\":\n\t\tfile_menu.set_item_disabled(Global.FileMenu.OPEN_LAST_PROJECT, true)\n\t\tfile_menu.set_item_disabled(Global.FileMenu.RECENT, true)\n\n\nfunc _setup_recent_projects_submenu(item: String) -> void:\n\trecent_projects_submenu.name = \"RecentProjectsPopupMenu\"\n\trecent_projects = Global.config_cache.get_value(\"data\", \"recent_projects\", [])\n\trecent_projects_submenu.id_pressed.connect(_on_recent_projects_submenu_id_pressed)\n\tupdate_recent_projects_submenu()\n\n\tfile_menu.add_child(recent_projects_submenu)\n\tfile_menu.add_submenu_item(item, recent_projects_submenu.get_name())\n\n\nfunc update_recent_projects_submenu() -> void:\n\tvar reversed_recent_projects := recent_projects.duplicate()\n\treversed_recent_projects.reverse()\n\tfor project in reversed_recent_projects:\n\t\trecent_projects_submenu.add_item(project.get_file())\n\n\nfunc _setup_edit_menu() -> void:\n\t# Order as in Global.EditMenu enum\n\tvar edit_menu_items := {\n\t\t\"Undo\": \"undo\",\n\t\t\"Redo\": \"redo\",\n\t\t\"Undo History\": \"undo_history\",\n\t\t\"Copy\": \"copy\",\n\t\t\"Cut\": \"cut\",\n\t\t\"Paste\": \"paste\",\n\t\t\"Paste in Place\": \"paste_in_place\",\n\t\t\"Paste from Clipboard\": \"paste_from_clipboard\",\n\t\t\"Delete\": \"delete\",\n\t\t\"New Brush\": \"new_brush\",\n\t\t\"Preferences\": \"preferences\"\n\t}\n\tvar i := 0\n\tfor item in edit_menu_items:\n\t\tvar echo := false\n\t\tif item in [\"Undo\", \"Redo\"]:\n\t\t\techo = true\n\t\t_set_menu_shortcut(edit_menu_items[item], edit_menu, i, item, false, echo)\n\t\ti += 1\n\n\tedit_menu.set_item_disabled(Global.EditMenu.NEW_BRUSH, true)\n\tedit_menu.id_pressed.connect(edit_menu_id_pressed)\n\n\nfunc _setup_view_menu() -> void:\n\t# Order as in Global.ViewMenu enum\n\tvar view_menu_items := {\n\t\t\"Center Canvas\": \"center_canvas\",\n\t\t\"Tile Mode\": \"\",\n\t\t\"Tile Mode Offsets\": \"\",\n\t\t\"Grayscale View\": &\"grayscale_view\",\n\t\t\"Mirror View\": \"mirror_view\",\n\t\t\"Show Grid\": \"show_grid\",\n\t\t\"Show Pixel Grid\": \"show_pixel_grid\",\n\t\t\"Show Pixel Indices\": \"show_pixel_indices\",\n\t\t\"Show Rulers\": \"show_rulers\",\n\t\t\"Show Guides\": \"show_guides\",\n\t\t\"Show Mouse Guides\": \"\",\n\t\t\"Show Reference Images\": \"show_reference_images\",\n\t\t\"Display Layer Effects\": &\"display_layer_effects\",\n\t\t\"Snap To\": \"\",\n\t}\n\tfor i in view_menu_items.size():\n\t\tvar item: String = view_menu_items.keys()[i]\n\t\tif item == \"Tile Mode\":\n\t\t\t_setup_tile_mode_submenu(item)\n\t\telif item == \"Snap To\":\n\t\t\t_setup_snap_to_submenu(item)\n\t\telif item == \"Tile Mode Offsets\":\n\t\t\tview_menu.add_item(item, i)\n\t\telif item == \"Center Canvas\":\n\t\t\t_set_menu_shortcut(view_menu_items[item], view_menu, i, item)\n\t\telse:\n\t\t\t_set_menu_shortcut(view_menu_items[item], view_menu, i, item, true)\n\tview_menu.set_item_checked(Global.ViewMenu.SHOW_RULERS, true)\n\tview_menu.set_item_checked(Global.ViewMenu.SHOW_GUIDES, true)\n\tview_menu.set_item_checked(Global.ViewMenu.SHOW_REFERENCE_IMAGES, true)\n\tview_menu.set_item_checked(Global.ViewMenu.DISPLAY_LAYER_EFFECTS, true)\n\tview_menu.hide_on_checkable_item_selection = false\n\tview_menu.id_pressed.connect(view_menu_id_pressed)\n\n\t# Load settings from the config file\n\tvar draw_grid: bool = Global.config_cache.get_value(\"view_menu\", \"draw_grid\", Global.draw_grid)\n\tvar draw_pixel_grid: bool = Global.config_cache.get_value(\n\t\t\"view_menu\", \"draw_pixel_grid\", Global.draw_pixel_grid\n\t)\n\tvar show_pixel_indices: bool = Global.config_cache.get_value(\n\t\t\"view_menu\", \"show_pixel_indices\", Global.show_pixel_indices\n\t)\n\tvar show_rulers: bool = Global.config_cache.get_value(\n\t\t\"view_menu\", \"show_rulers\", Global.show_rulers\n\t)\n\tvar show_guides: bool = Global.config_cache.get_value(\n\t\t\"view_menu\", \"show_guides\", Global.show_guides\n\t)\n\tvar show_mouse_guides: bool = Global.config_cache.get_value(\n\t\t\"view_menu\", \"show_mouse_guides\", Global.show_mouse_guides\n\t)\n\tvar display_layer_effects: bool = Global.config_cache.get_value(\n\t\t\"view_menu\", \"display_layer_effects\", Global.display_layer_effects\n\t)\n\tvar snap_to_rectangular_grid_boundary: bool = Global.config_cache.get_value(\n\t\t\"view_menu\", \"snap_to_rectangular_grid_boundary\", Global.snap_to_rectangular_grid_boundary\n\t)\n\tvar snap_to_rectangular_grid_center: bool = Global.config_cache.get_value(\n\t\t\"view_menu\", \"snap_to_rectangular_grid_center\", Global.snap_to_rectangular_grid_center\n\t)\n\tvar snap_to_guides: bool = Global.config_cache.get_value(\n\t\t\"view_menu\", \"snap_to_guides\", Global.snap_to_guides\n\t)\n\tvar snap_to_perspective_guides: bool = Global.config_cache.get_value(\n\t\t\"view_menu\", \"snap_to_perspective_guides\", Global.snap_to_perspective_guides\n\t)\n\tif draw_grid != Global.draw_grid:\n\t\t_toggle_show_grid()\n\tif draw_pixel_grid != Global.draw_pixel_grid:\n\t\t_toggle_show_pixel_grid()\n\tif show_rulers != Global.show_rulers:\n\t\t_toggle_show_rulers()\n\tif show_guides != Global.show_guides:\n\t\t_toggle_show_guides()\n\tif show_mouse_guides != Global.show_mouse_guides:\n\t\t_toggle_show_mouse_guides()\n\tif show_pixel_indices != Global.show_pixel_indices:\n\t\t_toggle_show_pixel_indices()\n\tif display_layer_effects != Global.display_layer_effects:\n\t\tGlobal.display_layer_effects = display_layer_effects\n\tif snap_to_rectangular_grid_boundary != Global.snap_to_rectangular_grid_boundary:\n\t\t_snap_to_submenu_id_pressed(0)\n\tif snap_to_rectangular_grid_center != Global.snap_to_rectangular_grid_center:\n\t\t_snap_to_submenu_id_pressed(1)\n\tif snap_to_guides != Global.snap_to_guides:\n\t\t_snap_to_submenu_id_pressed(2)\n\tif snap_to_perspective_guides != Global.snap_to_perspective_guides:\n\t\t_snap_to_submenu_id_pressed(3)\n\n\nfunc _setup_tile_mode_submenu(item: String) -> void:\n\ttile_mode_submenu.set_name(\"tile_mode_submenu\")\n\ttile_mode_submenu.add_radio_check_item(\"None\", Tiles.MODE.NONE)\n\ttile_mode_submenu.set_item_checked(Tiles.MODE.NONE, true)\n\ttile_mode_submenu.add_radio_check_item(\"Tiled In Both Axis\", Tiles.MODE.BOTH)\n\ttile_mode_submenu.add_radio_check_item(\"Tiled In X Axis\", Tiles.MODE.X_AXIS)\n\ttile_mode_submenu.add_radio_check_item(\"Tiled In Y Axis\", Tiles.MODE.Y_AXIS)\n\ttile_mode_submenu.hide_on_checkable_item_selection = false\n\n\ttile_mode_submenu.id_pressed.connect(_tile_mode_submenu_id_pressed)\n\tview_menu.add_child(tile_mode_submenu)\n\tview_menu.add_submenu_item(item, tile_mode_submenu.get_name())\n\n\nfunc _setup_snap_to_submenu(item: String) -> void:\n\tsnap_to_submenu.set_name(\"snap_to_submenu\")\n\tsnap_to_submenu.add_check_item(\"Snap to Rectangular Grid Boundary\")\n\tsnap_to_submenu.add_check_item(\"Snap to Rectangular Grid Center\")\n\tsnap_to_submenu.add_check_item(\"Snap to Guides\")\n\tsnap_to_submenu.add_check_item(\"Snap to Perspective Guides\")\n\tsnap_to_submenu.id_pressed.connect(_snap_to_submenu_id_pressed)\n\tview_menu.add_child(snap_to_submenu)\n\tview_menu.add_submenu_item(item, snap_to_submenu.get_name())\n\n\nfunc _setup_window_menu() -> void:\n\t# Order as in Global.WindowMenu enum\n\tvar window_menu_items := {\n\t\t\"Window Opacity\": \"\",\n\t\t\"Panels\": \"\",\n\t\t\"Layouts\": \"\",\n\t\t\"Moveable Panels\": \"moveable_panels\",\n\t\t\"Zen Mode\": \"zen_mode\",\n\t\t\"Fullscreen Mode\": \"toggle_fullscreen\",\n\t}\n\tvar i := 0\n\tfor item in window_menu_items:\n\t\tif item == \"Panels\":\n\t\t\t_setup_panels_submenu(item)\n\t\telif item == \"Layouts\":\n\t\t\t_setup_layouts_submenu(item)\n\t\telif item == \"Window Opacity\":\n\t\t\twindow_menu.add_item(item, i)\n\t\telse:\n\t\t\t_set_menu_shortcut(window_menu_items[item], window_menu, i, item, true)\n\t\ti += 1\n\twindow_menu.hide_on_checkable_item_selection = false\n\twindow_menu.id_pressed.connect(window_menu_id_pressed)\n\t# Disable window opacity item if per pixel transparency is not allowed\n\twindow_menu.set_item_disabled(\n\t\tGlobal.WindowMenu.WINDOW_OPACITY,\n\t\t!ProjectSettings.get_setting(\"display/window/per_pixel_transparency/allowed\")\n\t)\n\n\nfunc _setup_panels_submenu(item: String) -> void:\n\tpanels_submenu.set_name(\"panels_submenu\")\n\tpanels_submenu.hide_on_checkable_item_selection = false\n\tfor element in ui_elements:\n\t\tif element.name == \"Tiles\":\n\t\t\tcontinue\n\t\tvar id := ui_elements.find(element)\n\t\tpanels_submenu.add_check_item(element.name, id)\n\t\tvar is_hidden: bool = main_ui.is_control_hidden(element)\n\t\tvar index := panels_submenu.get_item_index(id)\n\t\tpanels_submenu.set_item_checked(index, !is_hidden)\n\n\tpanels_submenu.id_pressed.connect(_panels_submenu_id_pressed)\n\twindow_menu.add_child(panels_submenu)\n\twindow_menu.add_submenu_item(item, panels_submenu.get_name())\n\n\nfunc _setup_layouts_submenu(item: String) -> void:\n\tlayouts_submenu.hide_on_checkable_item_selection = false\n\tpopulate_layouts_submenu()\n\n\tlayouts_submenu.id_pressed.connect(_layouts_submenu_id_pressed)\n\twindow_menu.add_child(layouts_submenu)\n\twindow_menu.add_submenu_node_item(item, layouts_submenu)\n\n\tvar saved_layout: int = Global.config_cache.get_value(\"window\", \"layout\", 0)\n\t# Wait for pixelorama to fully load up, then change the layout.\n\tGlobal.pixelorama_opened.connect(set_layout.bind(saved_layout))\n\n\nfunc populate_layouts_submenu() -> void:\n\tlayouts_submenu.clear()  # Does not do anything if it's called for the first time\n\tfor layout in Global.layouts:\n\t\tvar layout_name := layout.resource_path.get_basename().get_file()\n\t\tlayouts_submenu.add_radio_check_item(layout_name)\n\tlayouts_submenu.add_separator()\n\tlayouts_submenu.add_item(\"Add Layout\")\n\tlayouts_submenu.add_item(tr(\"Delete %s\") % \"Default\")\n\tlayouts_submenu.add_item(tr(\"Reset %s\") % \"Default\")\n\n\nfunc _setup_project_menu() -> void:\n\t# Order as in Global.ProjectMenu enum\n\tvar project_menu_items := {\n\t\t\"Project Properties\": \"project_properties\",\n\t\t\"Color Mode\": \"\",\n\t\t\"Resize Canvas\": \"resize_canvas\",\n\t\t\"Scale Image\": \"scale_image\",\n\t\t\"Crop to Selection\": \"crop_to_selection\",\n\t\t\"Crop to Content\": \"crop_to_content\",\n\t}\n\tfor i in project_menu_items.size():\n\t\tvar item: String = project_menu_items.keys()[i]\n\t\tif item == \"Color Mode\":\n\t\t\t_setup_color_mode_submenu(item)\n\t\telse:\n\t\t\t_set_menu_shortcut(project_menu_items[item], project_menu, i, item)\n\tproject_menu.set_item_disabled(Global.ProjectMenu.CROP_TO_SELECTION, true)\n\tproject_menu.id_pressed.connect(project_menu_id_pressed)\n\n\nfunc _setup_color_mode_submenu(item: String) -> void:\n\tcolor_mode_submenu.set_name(\"color_mode_submenu\")\n\tcolor_mode_submenu.add_radio_check_item(\"RGBA\", ColorModes.RGBA)\n\tcolor_mode_submenu.set_item_checked(ColorModes.RGBA, true)\n\tcolor_mode_submenu.add_radio_check_item(\"Indexed\", ColorModes.INDEXED)\n\n\tcolor_mode_submenu.id_pressed.connect(_color_mode_submenu_id_pressed)\n\tproject_menu.add_child(color_mode_submenu)\n\tproject_menu.add_submenu_item(item, color_mode_submenu.get_name())\n\n\nfunc _setup_effects_menu() -> void:\n\t_set_menu_shortcut(&\"reapply_last_effect\", effects_menu, 0, \"Re-apply last effect\")\n\teffects_menu.set_item_disabled(0, true)\n\t_set_menu_shortcut(&\"offset_image\", effects_transform_submenu, 0, \"Offset & Scale Image\")\n\t_set_menu_shortcut(&\"mirror_image\", effects_transform_submenu, 1, \"Mirror Image\")\n\t_set_menu_shortcut(&\"rotate_image\", effects_transform_submenu, 2, \"Rotate Image\")\n\teffects_transform_submenu.id_pressed.connect(_on_effects_transform_submenu_id_pressed)\n\teffects_menu.add_child(effects_transform_submenu)\n\teffects_menu.add_submenu_node_item(\"Transform\", effects_transform_submenu)\n\n\t_set_menu_shortcut(&\"invert_colors\", effects_color_submenu, 0, \"Invert Colors\")\n\t_set_menu_shortcut(&\"desaturation\", effects_color_submenu, 1, \"Desaturation\")\n\t_set_menu_shortcut(&\"adjust_hsv\", effects_color_submenu, 2, \"Adjust Hue/Saturation/Value\")\n\t_set_menu_shortcut(\n\t\t&\"adjust_brightness_contrast\", effects_color_submenu, 3, \"Adjust Brightness/Contrast\"\n\t)\n\t_set_menu_shortcut(&\"color_curves\", effects_color_submenu, 4, \"Color Curves\")\n\t_set_menu_shortcut(&\"palettize\", effects_color_submenu, 5, \"Palettize\")\n\t_set_menu_shortcut(&\"posterize\", effects_color_submenu, 6, \"Posterize\")\n\t_set_menu_shortcut(&\"gradient_map\", effects_color_submenu, 7, \"Gradient Map\")\n\teffects_color_submenu.id_pressed.connect(_on_effects_color_submenu_id_pressed)\n\teffects_menu.add_child(effects_color_submenu)\n\teffects_menu.add_submenu_node_item(\"Color\", effects_color_submenu)\n\n\t_set_menu_shortcut(&\"outline\", effects_procedural_submenu, 0, \"Outline\")\n\t_set_menu_shortcut(&\"drop_shadow\", effects_procedural_submenu, 1, \"Drop Shadow\")\n\t_set_menu_shortcut(&\"gradient\", effects_procedural_submenu, 2, \"Gradient\")\n\teffects_procedural_submenu.id_pressed.connect(_on_effects_procedural_submenu_id_pressed)\n\teffects_menu.add_child(effects_procedural_submenu)\n\teffects_menu.add_submenu_node_item(\"Procedural\", effects_procedural_submenu)\n\n\t_set_menu_shortcut(&\"pixelize\", effects_blur_submenu, 0, \"Pixelize\")\n\t_set_menu_shortcut(&\"gaussian_blur\", effects_blur_submenu, 1, \"Gaussian Blur\")\n\teffects_blur_submenu.id_pressed.connect(_on_effects_blur_submenu_id_pressed)\n\teffects_menu.add_child(effects_blur_submenu)\n\teffects_menu.add_submenu_node_item(\"Blur\", effects_blur_submenu)\n\n\t_setup_effects_loaded_submenu()\n\teffects_menu.id_pressed.connect(effects_menu_id_pressed)\n\n\nfunc _setup_effects_loaded_submenu() -> void:\n\tif not DirAccess.dir_exists_absolute(OpenSave.SHADERS_DIRECTORY):\n\t\tDirAccess.make_dir_recursive_absolute(OpenSave.SHADERS_DIRECTORY)\n\tvar shader_files := DirAccess.get_files_at(OpenSave.SHADERS_DIRECTORY)\n\tif shader_files.size() == 0:\n\t\treturn\n\tfor shader_file in shader_files:\n\t\t_load_shader_file(OpenSave.SHADERS_DIRECTORY.path_join(shader_file))\n\n\nfunc _load_shader_file(file_path: String) -> void:\n\tvar file := load(file_path)\n\tif file is not Shader:\n\t\treturn\n\tvar effect_name := file_path.get_file().get_basename()\n\tif not is_instance_valid(effects_loaded_submenu):\n\t\teffects_loaded_submenu = PopupMenu.new()\n\t\teffects_loaded_submenu.set_name(\"effects_loaded_submenu\")\n\t\teffects_loaded_submenu.id_pressed.connect(_effects_loaded_submenu_id_pressed)\n\t\teffects_menu.add_child(effects_loaded_submenu)\n\t\teffects_menu.add_submenu_node_item(\"Loaded\", effects_loaded_submenu)\n\teffects_loaded_submenu.add_item(effect_name)\n\tvar effect_index := effects_loaded_submenu.item_count - 1\n\teffects_loaded_submenu.set_item_metadata(effect_index, file)\n\tloaded_effect_dialogs.append(Dialog.new(\"res://src/UI/Dialogs/ImageEffects/ShaderEffect.tscn\"))\n\n\nfunc _setup_select_menu() -> void:\n\t# Order as in Global.SelectMenu enum\n\tvar select_menu_items := {\n\t\t\"All\": \"select_all\",\n\t\t\"Clear\": \"clear_selection\",\n\t\t\"Invert\": \"invert_selection\",\n\t\t\"Select cel area\": \"select_cel_area\",\n\t\t\"Wrap Strokes\": \"\",\n\t\t\"Modify\": \"\"\n\t}\n\tfor i in select_menu_items.size():\n\t\tvar item: String = select_menu_items.keys()[i]\n\t\tif item == \"Wrap Strokes\":\n\t\t\tselect_menu.add_check_item(item, i)\n\t\telif item == \"Modify\":\n\t\t\t_setup_selection_modify_submenu(item)\n\t\telse:\n\t\t\t_set_menu_shortcut(select_menu_items[item], select_menu, i, item)\n\tselect_menu.id_pressed.connect(select_menu_id_pressed)\n\n\nfunc _setup_selection_modify_submenu(item: String) -> void:\n\tselection_modify_submenu.set_name(\"selection_modify_submenu\")\n\tselection_modify_submenu.add_item(\"Expand\")\n\tselection_modify_submenu.add_item(\"Shrink\")\n\tselection_modify_submenu.add_item(\"Border\")\n\tselection_modify_submenu.add_item(\"Center\")\n\tselection_modify_submenu.id_pressed.connect(_selection_modify_submenu_id_pressed)\n\tselect_menu.add_child(selection_modify_submenu)\n\tselect_menu.add_submenu_item(item, selection_modify_submenu.get_name())\n\n\nfunc _setup_help_menu() -> void:\n\t# Order as in Global.HelpMenu enum\n\tvar help_menu_items := {\n\t\t\"View Splash Screen\": \"view_splash_screen\",\n\t\t\"Online Docs\": \"open_docs\",\n\t\t\"Issue Tracker\": \"issue_tracker\",\n\t\t\"Restore Backup\": &\"\",\n\t\t\"Open Editor Data Folder\": \"open_editor_data_folder\",\n\t\t\"Changelog\": \"changelog\",\n\t\t\"About Pixelorama\": \"about_pixelorama\",\n\t\t\"Support Pixelorama's Development\": &\"\",\n\t}\n\tvar i := 0\n\tfor item in help_menu_items:\n\t\tvar icon: Texture2D = null\n\t\tif (\n\t\t\ti == Global.HelpMenu.ONLINE_DOCS\n\t\t\tor i == Global.HelpMenu.ISSUE_TRACKER\n\t\t\tor i == Global.HelpMenu.CHANGELOG\n\t\t):\n\t\t\ticon = EXTERNAL_LINK_ICON\n\t\tif i == Global.HelpMenu.ABOUT_PIXELORAMA:\n\t\t\ticon = PIXELORAMA_ICON\n\t\telif i == Global.HelpMenu.SUPPORT_PIXELORAMA:\n\t\t\ticon = HEART_ICON\n\t\t_set_menu_shortcut(help_menu_items[item], help_menu, i, item, false, false, icon)\n\n\t\ti += 1\n\n\thelp_menu.id_pressed.connect(help_menu_id_pressed)\n\n\nfunc _set_menu_shortcut(\n\taction: StringName,\n\tmenu: PopupMenu,\n\tindex: int,\n\ttext: String,\n\tis_check := false,\n\techo := false,\n\ticon: Texture2D = null\n) -> void:\n\tif action.is_empty():\n\t\tif is_check:\n\t\t\tmenu.add_check_item(text, index)\n\t\telse:\n\t\t\tmenu.add_item(text, index)\n\telse:\n\t\tvar shortcut := Shortcut.new()\n\t\tvar event := InputEventAction.new()\n\t\tevent.action = action\n\t\tshortcut.events.append(event)\n\t\tif is_check:\n\t\t\tmenu.add_check_shortcut(shortcut, index)\n\t\telse:\n\t\t\tmenu.add_shortcut(shortcut, index, false, echo)\n\t\tmenu.set_item_text(index, text)\n\tif is_instance_valid(icon):\n\t\tmenu.set_item_icon(index, icon)\n\n\nfunc _handle_metadata(id: int, popup_menu: PopupMenu) -> void:\n\t# Used for extensions that want to add extra menu items\n\tvar metadata = popup_menu.get_item_metadata(id)\n\tif metadata:\n\t\tif metadata is Object:\n\t\t\tif metadata.has_method(&\"menu_item_clicked\"):\n\t\t\t\tmetadata.call(&\"menu_item_clicked\")\n\n\nfunc _popup_dialog(dialog: Window, dialog_size := Vector2i.ZERO) -> void:\n\tdialog.popup_centered_clamped(dialog_size)\n\tvar is_file_dialog := dialog is FileDialog\n\tGlobal.dialog_open(true, is_file_dialog)\n\n\nfunc file_menu_id_pressed(id: int) -> void:\n\tif not can_save:\n\t\treturn\n\tmatch id:\n\t\tGlobal.FileMenu.NEW:\n\t\t\tnew_image_dialog.popup()\n\t\tGlobal.FileMenu.OPEN:\n\t\t\t_open_project_file()\n\t\tGlobal.FileMenu.OPEN_LAST_PROJECT:\n\t\t\t_on_open_last_project_file_menu_option_pressed()\n\t\tGlobal.FileMenu.SAVE:\n\t\t\t_save_project_file()\n\t\tGlobal.FileMenu.SAVE_AS:\n\t\t\tmain.show_save_dialog()\n\t\tGlobal.FileMenu.EXPORT:\n\t\t\t_export_file()\n\t\tGlobal.FileMenu.EXPORT_AS:\n\t\t\t_popup_dialog(Global.export_dialog)\n\t\tGlobal.FileMenu.QUIT:\n\t\t\tmain.show_quit_dialog()\n\t\t_:\n\t\t\t_handle_metadata(id, file_menu)\n\n\nfunc _open_project_file() -> void:\n\tif OS.get_name() == \"Web\":\n\t\tHtml5FileExchange.load_image()\n\telse:\n\t\t_popup_dialog(main.open_sprite_dialog)\n\t\tmain.opensprite_file_selected = false\n\n\nfunc _on_open_last_project_file_menu_option_pressed() -> void:\n\tif Global.config_cache.has_section_key(\"data\", \"last_project_path\"):\n\t\tmain.load_last_project()\n\telse:\n\t\tGlobal.popup_error(\"You haven't saved or opened any project in Pixelorama yet!\")\n\n\nfunc _save_project_file() -> void:\n\tif Global.current_project is ResourceProject:\n\t\tGlobal.current_project.resource_updated.emit(Global.current_project)\n\t\tif Global.current_project.has_changed:\n\t\t\tGlobal.current_project.has_changed = false\n\t\tGlobal.notification_label(\"Resource Updated\")\n\t\treturn\n\tvar path: String = Global.current_project.save_path\n\tif path == \"\":\n\t\tmain.show_save_dialog()\n\telse:\n\t\tmain.save_project(path, false)\n\n\nfunc _export_file() -> void:\n\tif Global.current_project.was_exported == false:\n\t\t_popup_dialog(Global.export_dialog)\n\telse:\n\t\tExport.external_export()\n\n\nfunc _on_recent_projects_submenu_id_pressed(id: int) -> void:\n\tvar reversed_recent_projects := recent_projects.duplicate()\n\treversed_recent_projects.reverse()\n\tmain.load_recent_project_file(reversed_recent_projects[id])\n\n\nfunc edit_menu_id_pressed(id: int) -> void:\n\tmatch id:\n\t\tGlobal.EditMenu.UNDO:\n\t\t\tGlobal.current_project.commit_undo()\n\t\tGlobal.EditMenu.REDO:\n\t\t\tGlobal.current_project.commit_redo()\n\t\tGlobal.EditMenu.UNDO_HISTORY:\n\t\t\tundo_history_dialog.popup_centered_clamped()\n\t\tGlobal.EditMenu.COPY:\n\t\t\tGlobal.canvas.selection.copy()\n\t\tGlobal.EditMenu.CUT:\n\t\t\tGlobal.canvas.selection.cut()\n\t\tGlobal.EditMenu.PASTE:\n\t\t\tGlobal.canvas.selection.paste()\n\t\tGlobal.EditMenu.PASTE_IN_PLACE:\n\t\t\tGlobal.canvas.selection.paste(true)\n\t\tGlobal.EditMenu.PASTE_FROM_CLIPBOARD:\n\t\t\tif not DisplayServer.clipboard_has_image():\n\t\t\t\tvar clipboard := DisplayServer.clipboard_get()\n\t\t\t\tif clipboard.begins_with(\"lospec-palette://\"):\n\t\t\t\t\tPalettes.import_lospec_palette(clipboard)\n\t\t\tGlobal.canvas.selection.paste_from_clipboard()\n\t\tGlobal.EditMenu.DELETE:\n\t\t\tGlobal.canvas.selection.delete()\n\t\tGlobal.EditMenu.NEW_BRUSH:\n\t\t\tGlobal.canvas.selection.new_brush()\n\t\tGlobal.EditMenu.PREFERENCES:\n\t\t\tpreferences_dialog.popup()\n\t\t_:\n\t\t\t_handle_metadata(id, edit_menu)\n\n\nfunc view_menu_id_pressed(id: int) -> void:\n\tmatch id:\n\t\tGlobal.ViewMenu.CENTER_CANVAS:\n\t\t\tGlobal.camera.offset = Global.current_project.size / 2\n\t\tGlobal.ViewMenu.TILE_MODE_OFFSETS:\n\t\t\t_popup_dialog(get_tree().current_scene.tile_mode_offsets_dialog)\n\t\tGlobal.ViewMenu.GREYSCALE_VIEW:\n\t\t\t_toggle_greyscale_view()\n\t\tGlobal.ViewMenu.MIRROR_VIEW:\n\t\t\t_toggle_mirror_view()\n\t\tGlobal.ViewMenu.SHOW_GRID:\n\t\t\t_toggle_show_grid()\n\t\tGlobal.ViewMenu.SHOW_PIXEL_GRID:\n\t\t\t_toggle_show_pixel_grid()\n\t\tGlobal.ViewMenu.SHOW_RULERS:\n\t\t\t_toggle_show_rulers()\n\t\tGlobal.ViewMenu.SHOW_GUIDES:\n\t\t\t_toggle_show_guides()\n\t\tGlobal.ViewMenu.SHOW_MOUSE_GUIDES:\n\t\t\t_toggle_show_mouse_guides()\n\t\tGlobal.ViewMenu.SHOW_REFERENCE_IMAGES:\n\t\t\tGlobal.show_reference_images = not Global.show_reference_images\n\t\t\tview_menu.set_item_checked(\n\t\t\t\tGlobal.ViewMenu.SHOW_REFERENCE_IMAGES, Global.show_reference_images\n\t\t\t)\n\t\tGlobal.ViewMenu.SHOW_PIXEL_INDICES:\n\t\t\t_toggle_show_pixel_indices()\n\t\tGlobal.ViewMenu.DISPLAY_LAYER_EFFECTS:\n\t\t\tGlobal.display_layer_effects = not Global.display_layer_effects\n\t\t_:\n\t\t\t_handle_metadata(id, view_menu)\n\n\tGlobal.canvas.queue_redraw()\n\n\nfunc window_menu_id_pressed(id: int) -> void:\n\tmatch id:\n\t\tGlobal.WindowMenu.WINDOW_OPACITY:\n\t\t\twindow_opacity_dialog.popup()\n\t\tGlobal.WindowMenu.MOVABLE_PANELS:\n\t\t\tmain_ui.hide_single_tab = not main_ui.hide_single_tab\n\t\t\twindow_menu.set_item_checked(id, not main_ui.hide_single_tab)\n\t\tGlobal.WindowMenu.ZEN_MODE:\n\t\t\t_toggle_zen_mode()\n\t\tGlobal.WindowMenu.FULLSCREEN_MODE:\n\t\t\t_toggle_fullscreen()\n\t\t_:\n\t\t\t_handle_metadata(id, window_menu)\n\n\nfunc _tile_mode_submenu_id_pressed(id: Tiles.MODE) -> void:\n\tGlobal.current_project.tiles.mode = id\n\tGlobal.transparent_checker.fit_rect(Global.current_project.tiles.get_bounding_rect())\n\tfor i in Tiles.MODE.values():\n\t\ttile_mode_submenu.set_item_checked(i, i == id)\n\tGlobal.canvas.tile_mode.queue_redraw()\n\tGlobal.canvas.pixel_grid.queue_redraw()\n\tGlobal.canvas.grid.queue_redraw()\n\tget_tree().current_scene.tile_mode_offsets_dialog.change_mask()\n\n\nfunc _selection_modify_submenu_id_pressed(id: int) -> void:\n\tmodify_selection.popup()\n\tmodify_selection.node.type = id\n\n\nfunc _color_mode_submenu_id_pressed(id: ColorModes) -> void:\n\tvar project := Global.current_project\n\tvar old_color_mode := project.color_mode\n\tvar redo_data := {}\n\tvar undo_data := {}\n\tvar pixel_cels: Array[BaseCel]\n\t# We need to do it this way because Godot\n\t# doesn't like casting typed arrays into other types.\n\tfor cel in project.get_all_pixel_cels():\n\t\tpixel_cels.append(cel)\n\tproject.serialize_cel_undo_data(pixel_cels, undo_data)\n\t# Change the color mode directly before undo/redo in order to affect the images,\n\t# so we can store them as redo data.\n\tif id == ColorModes.RGBA:\n\t\tproject.color_mode = Image.FORMAT_RGBA8\n\telse:\n\t\tproject.color_mode = Project.INDEXED_MODE\n\tproject.update_tilemaps(undo_data, TileSetPanel.TileEditingMode.AUTO)\n\tproject.serialize_cel_undo_data(pixel_cels, redo_data)\n\tproject.undo_redo.create_action(\"Change color mode\")\n\tvar palette_in_focus = Palettes.current_palette\n\tif not palette_in_focus.is_project_palette and project.color_mode == Project.INDEXED_MODE:\n\t\tpalette_in_focus = palette_in_focus.duplicate()\n\t\tpalette_in_focus.is_project_palette = true\n\t\tPalettes.undo_redo_add_palette(palette_in_focus)\n\tproject.undo_redo.add_do_property(project, \"color_mode\", project.color_mode)\n\tproject.undo_redo.add_undo_property(project, \"color_mode\", old_color_mode)\n\tproject.deserialize_cel_undo_data(redo_data, undo_data)\n\tproject.undo_redo.add_do_method(_check_color_mode_submenu_item.bind(project))\n\tproject.undo_redo.add_undo_method(_check_color_mode_submenu_item.bind(project))\n\tproject.undo_redo.add_do_method(Global.undo_or_redo.bind(false))\n\tproject.undo_redo.add_undo_method(Global.undo_or_redo.bind(true))\n\tproject.undo_redo.commit_action()\n\n\nfunc _check_color_mode_submenu_item(project: Project) -> void:\n\tcolor_mode_submenu.set_item_checked(ColorModes.RGBA, project.color_mode == Image.FORMAT_RGBA8)\n\tcolor_mode_submenu.set_item_checked(ColorModes.INDEXED, project.is_indexed())\n\n\nfunc _snap_to_submenu_id_pressed(id: int) -> void:\n\tif id == 0:\n\t\tGlobal.snap_to_rectangular_grid_boundary = !Global.snap_to_rectangular_grid_boundary\n\t\tsnap_to_submenu.set_item_checked(id, Global.snap_to_rectangular_grid_boundary)\n\tif id == 1:\n\t\tGlobal.snap_to_rectangular_grid_center = !Global.snap_to_rectangular_grid_center\n\t\tsnap_to_submenu.set_item_checked(id, Global.snap_to_rectangular_grid_center)\n\telif id == 2:\n\t\tGlobal.snap_to_guides = !Global.snap_to_guides\n\t\tsnap_to_submenu.set_item_checked(id, Global.snap_to_guides)\n\telif id == 3:\n\t\tGlobal.snap_to_perspective_guides = !Global.snap_to_perspective_guides\n\t\tsnap_to_submenu.set_item_checked(id, Global.snap_to_perspective_guides)\n\n\nfunc _effects_loaded_submenu_id_pressed(id: int) -> void:\n\tvar dialog := loaded_effect_dialogs[id]\n\tif is_instance_valid(dialog.node):\n\t\tdialog.popup()\n\telse:\n\t\tdialog.instantiate_scene()\n\t\tvar shader := effects_loaded_submenu.get_item_metadata(id) as Shader\n\t\tdialog.node.change_shader(shader, effects_loaded_submenu.get_item_text(id))\n\t\tdialog.popup()\n\n\nfunc _panels_submenu_id_pressed(id: int) -> void:\n\tif zen_mode:\n\t\treturn\n\tvar index := panels_submenu.get_item_index(id)\n\tvar element_visible := panels_submenu.is_item_checked(index)\n\tmain_ui.set_control_hidden(ui_elements[id], element_visible)\n\tpanels_submenu.set_item_checked(index, !element_visible)\n\n\nfunc _layouts_submenu_id_pressed(id: int) -> void:\n\tvar layout_count := Global.layouts.size()\n\tif id < layout_count:\n\t\tset_layout(id)\n\telif id == layout_count + 1:\n\t\tlayout_name_line_edit.text = \"New layout\"\n\t\tadd_layout_confirmation.popup_centered_clamped()\n\telif id == layout_count + 2:\n\t\tdelete_layout_confirmation.popup_centered_clamped()\n\telif id == layout_count + 3:\n\t\tGlobal.layouts[selected_layout].reset()\n\n\nfunc set_layout(id: int) -> void:\n\tif Global.layouts.size() == 0:\n\t\treturn\n\tif id >= Global.layouts.size():\n\t\tid = 0\n\tselected_layout = id\n\tvar layout := Global.layouts[id]\n\tmain_ui.layout = layout\n\tvar layout_name := layout.resource_path.get_basename().get_file()\n\tlayouts_submenu.set_item_text(layouts_submenu.item_count - 2, tr(\"Delete %s\") % layout_name)\n\tlayouts_submenu.set_item_text(layouts_submenu.item_count - 1, tr(\"Reset %s\") % layout_name)\n\tlayouts_submenu.set_item_disabled(\n\t\tlayouts_submenu.item_count - 1, layout.layout_reset_path.is_empty()\n\t)\n\tfor i in Global.layouts.size():\n\t\tlayouts_submenu.set_item_checked(i, i == id)\n\n\tfor i in ui_elements.size():\n\t\tvar index := panels_submenu.get_item_index(i)\n\t\tvar is_hidden := main_ui.is_control_hidden(ui_elements[i])\n\t\tpanels_submenu.set_item_checked(index, !is_hidden)\n\n\tif zen_mode:  # Turn zen mode off\n\t\tmain.find_child(\"TabsContainer\").visible = true\n\t\tzen_mode = false\n\t\twindow_menu.set_item_checked(Global.WindowMenu.ZEN_MODE, false)\n\n\nfunc _on_add_layout_confirmation_confirmed() -> void:\n\tvar file_name := layout_name_line_edit.text + \".tres\"\n\tvar path := Global.LAYOUT_DIR.path_join(file_name)\n\tvar layout: DockableLayout\n\tif layout_from_option_button.selected == 0:\n\t\tlayout = main.main_ui.layout.clone()\n\t\tlayout.layout_reset_path = \"\"\n\telse:\n\t\tlayout = Global.default_layouts[layout_from_option_button.selected - 1].clone()\n\tlayout.resource_name = layout_name_line_edit.text\n\tlayout.resource_path = path\n\tvar err := ResourceSaver.save(layout, path)\n\tif err != OK:\n\t\tprint(err)\n\t\treturn\n\tGlobal.layouts.append(layout)\n\t# Save the layout every time it changes\n\tlayout.save_on_change = true\n\tmain.main_ui.layout = layout\n\tGlobal.layouts.sort_custom(\n\t\tfunc(a: DockableLayout, b: DockableLayout):\n\t\t\treturn a.resource_path.get_file() < b.resource_path.get_file()\n\t)\n\tvar layout_index := Global.layouts.find(layout)\n\tpopulate_layouts_submenu()\n\tset_layout(layout_index)\n\n\nfunc _on_delete_layout_confirmation_confirmed() -> void:\n\tif Global.layouts.size() <= 1:  # Don't delete any layout if we only have one left.\n\t\treturn\n\tvar layout_name := Global.layouts[selected_layout].resource_path.get_basename().get_file()\n\tdelete_layout_file(layout_name + \".tres\")\n\tGlobal.layouts.remove_at(selected_layout)\n\tpopulate_layouts_submenu()\n\tset_layout(0)\n\n\nfunc delete_layout_file(file_name: String) -> void:\n\tvar dir := DirAccess.open(Global.LAYOUT_DIR)\n\tif not is_instance_valid(dir):\n\t\treturn\n\tdir.remove(Global.LAYOUT_DIR.path_join(file_name))\n\n\nfunc _on_add_layout_confirmation_visibility_changed() -> void:\n\tGlobal.dialog_open(add_layout_confirmation.visible)\n\n\nfunc _on_delete_layout_confirmation_visibility_changed() -> void:\n\tGlobal.dialog_open(delete_layout_confirmation.visible)\n\n\nfunc _toggle_greyscale_view() -> void:\n\tGlobal.greyscale_view = !Global.greyscale_view\n\tgreyscale_vision.visible = Global.greyscale_view\n\tview_menu.set_item_checked(Global.ViewMenu.GREYSCALE_VIEW, Global.greyscale_view)\n\n\nfunc _toggle_mirror_view() -> void:\n\tGlobal.mirror_view = !Global.mirror_view\n\tvar marching_ants_outline: Sprite2D = Global.canvas.selection.marching_ants_outline\n\tmarching_ants_outline.scale.x = -marching_ants_outline.scale.x\n\tif Global.mirror_view:\n\t\tmarching_ants_outline.position.x = (\n\t\t\tmarching_ants_outline.position.x + Global.current_project.size.x\n\t\t)\n\telse:\n\t\tGlobal.canvas.selection.marching_ants_outline.position.x = 0\n\tGlobal.canvas.selection.queue_redraw()\n\tview_menu.set_item_checked(Global.ViewMenu.MIRROR_VIEW, Global.mirror_view)\n\n\nfunc _toggle_show_grid() -> void:\n\tGlobal.draw_grid = !Global.draw_grid\n\tview_menu.set_item_checked(Global.ViewMenu.SHOW_GRID, Global.draw_grid)\n\tif Global.canvas.grid:\n\t\tGlobal.canvas.grid.queue_redraw()\n\n\nfunc _toggle_show_pixel_grid() -> void:\n\tGlobal.draw_pixel_grid = !Global.draw_pixel_grid\n\tview_menu.set_item_checked(Global.ViewMenu.SHOW_PIXEL_GRID, Global.draw_pixel_grid)\n\tif Global.canvas.pixel_grid:\n\t\tGlobal.canvas.pixel_grid.queue_redraw()\n\n\nfunc _toggle_show_pixel_indices() -> void:\n\tGlobal.show_pixel_indices = !Global.show_pixel_indices\n\tview_menu.set_item_checked(Global.ViewMenu.SHOW_PIXEL_INDICES, Global.show_pixel_indices)\n\n\nfunc _toggle_show_rulers() -> void:\n\tGlobal.show_rulers = !Global.show_rulers\n\tview_menu.set_item_checked(Global.ViewMenu.SHOW_RULERS, Global.show_rulers)\n\n\nfunc _toggle_show_guides() -> void:\n\tGlobal.show_guides = !Global.show_guides\n\tview_menu.set_item_checked(Global.ViewMenu.SHOW_GUIDES, Global.show_guides)\n\tfor guide in Global.canvas.get_children():\n\t\tif guide is Guide and guide in Global.current_project.guides:\n\t\t\tguide.visible = Global.show_guides\n\t\t\tif guide is SymmetryGuide:\n\t\t\t\tif guide.type == Guide.Types.HORIZONTAL:\n\t\t\t\t\tguide.visible = Global.show_x_symmetry_axis and Global.show_guides\n\t\t\t\telif guide.type == Guide.Types.VERTICAL:\n\t\t\t\t\tguide.visible = Global.show_y_symmetry_axis and Global.show_guides\n\t\t\t\telif guide.type == Guide.Types.XY:\n\t\t\t\t\tguide.visible = Global.show_xy_symmetry_axis and Global.show_guides\n\t\t\t\telif guide.type == Guide.Types.X_MINUS_Y:\n\t\t\t\t\tguide.visible = Global.show_x_minus_y_symmetry_axis and Global.show_guides\n\n\nfunc _toggle_show_mouse_guides() -> void:\n\tGlobal.show_mouse_guides = !Global.show_mouse_guides\n\tview_menu.set_item_checked(Global.ViewMenu.SHOW_MOUSE_GUIDES, Global.show_mouse_guides)\n\tif Global.show_mouse_guides:\n\t\tif Global.canvas.mouse_guide_container:\n\t\t\tGlobal.canvas.mouse_guide_container.get_child(0).queue_redraw()\n\t\t\tGlobal.canvas.mouse_guide_container.get_child(1).queue_redraw()\n\n\nfunc _toggle_zen_mode() -> void:\n\tfor i in ui_elements.size():\n\t\tvar index := panels_submenu.get_item_index(i)\n\t\tvar panel_name := ui_elements[i].name\n\t\tif panel_name == \"Main Canvas\" or panel_name == \"Tiles\":\n\t\t\tcontinue\n\t\tif !panels_submenu.is_item_checked(index):\n\t\t\tcontinue\n\t\tmain_ui.set_control_hidden(ui_elements[i], !zen_mode)\n\tmain.find_child(\"TabsContainer\").visible = zen_mode\n\tzen_mode = !zen_mode\n\twindow_menu.set_item_checked(Global.WindowMenu.ZEN_MODE, zen_mode)\n\n\nfunc _toggle_fullscreen() -> void:\n\tvar is_fullscreen := (\n\t\t(get_window().mode == Window.MODE_EXCLUSIVE_FULLSCREEN)\n\t\tor (get_window().mode == Window.MODE_FULLSCREEN)\n\t)\n\tget_window().mode = Window.MODE_EXCLUSIVE_FULLSCREEN if !is_fullscreen else Window.MODE_WINDOWED\n\tis_fullscreen = not is_fullscreen\n\twindow_menu.set_item_checked(Global.WindowMenu.FULLSCREEN_MODE, is_fullscreen)\n\tget_tree().current_scene.set_mobile_fullscreen_safe_area()\n\n\nfunc project_menu_id_pressed(id: int) -> void:\n\tmatch id:\n\t\tGlobal.ProjectMenu.PROJECT_PROPERTIES:\n\t\t\tproject_properties_dialog.popup()\n\t\tGlobal.ProjectMenu.SCALE_IMAGE:\n\t\t\tscale_image_dialog.popup()\n\t\tGlobal.ProjectMenu.CROP_TO_SELECTION:\n\t\t\tDrawingAlgos.crop_to_selection()\n\t\tGlobal.ProjectMenu.CROP_TO_CONTENT:\n\t\t\tDrawingAlgos.crop_to_content()\n\t\tGlobal.ProjectMenu.RESIZE_CANVAS:\n\t\t\tresize_canvas_dialog.popup()\n\t\t_:\n\t\t\t_handle_metadata(id, project_menu)\n\n\nfunc effects_menu_id_pressed(id: int) -> void:\n\tif id == 0:  # Re-apply\n\t\tif is_instance_valid(last_applied_effect):\n\t\t\tif last_applied_effect.has_signal(\"confirmed\"):\n\t\t\t\tlast_applied_effect.confirmed.emit()\n\t_handle_metadata(id, effects_menu)\n\n\nfunc _on_effects_transform_submenu_id_pressed(id: int) -> void:\n\tmatch id:\n\t\t0:\n\t\t\toffset_image_dialog.popup()\n\t\t1:\n\t\t\tmirror_image_dialog.popup()\n\t\t2:\n\t\t\trotate_image_dialog.popup()\n\n\nfunc _on_effects_color_submenu_id_pressed(id: int) -> void:\n\tmatch id:\n\t\t0:\n\t\t\tinvert_colors_dialog.popup()\n\t\t1:\n\t\t\tdesaturate_dialog.popup()\n\t\t2:\n\t\t\thsv_dialog.popup()\n\t\t3:\n\t\t\tadjust_brightness_saturation_dialog.popup()\n\t\t4:\n\t\t\tcolor_curves_dialog.popup()\n\t\t5:\n\t\t\tpalettize_dialog.popup()\n\t\t6:\n\t\t\tposterize_dialog.popup()\n\t\t7:\n\t\t\tgradient_map_dialog.popup()\n\n\nfunc _on_effects_procedural_submenu_id_pressed(id: int) -> void:\n\tmatch id:\n\t\t0:\n\t\t\toutline_dialog.popup()\n\t\t1:\n\t\t\tdrop_shadow_dialog.popup()\n\t\t2:\n\t\t\tgradient_dialog.popup()\n\n\nfunc _on_effects_blur_submenu_id_pressed(id: int) -> void:\n\tmatch id:\n\t\t0:\n\t\t\tpixelize_dialog.popup()\n\t\t1:\n\t\t\tgaussian_blur_dialog.popup()\n\n\nfunc select_menu_id_pressed(id: int) -> void:\n\tmatch id:\n\t\tGlobal.SelectMenu.SELECT_ALL:\n\t\t\tGlobal.canvas.selection.select_all()\n\t\tGlobal.SelectMenu.CLEAR_SELECTION:\n\t\t\tGlobal.canvas.selection.clear_selection(true)\n\t\tGlobal.SelectMenu.INVERT:\n\t\t\tGlobal.canvas.selection.invert()\n\t\tGlobal.SelectMenu.SELECT_CEL_AREA:\n\t\t\tGlobal.canvas.selection.select_cel_rect()\n\t\tGlobal.SelectMenu.WRAP_STROKES:\n\t\t\tvar state = select_menu.is_item_checked(id)\n\t\t\tGlobal.canvas.selection.flag_tilemode = !state\n\t\t\tselect_menu.set_item_checked(id, !state)\n\t\t_:\n\t\t\t_handle_metadata(id, select_menu)\n\n\nfunc help_menu_id_pressed(id: int) -> void:\n\tmatch id:\n\t\tGlobal.HelpMenu.VIEW_SPLASH_SCREEN:\n\t\t\t_popup_dialog(get_tree().current_scene.splash_dialog)\n\t\tGlobal.HelpMenu.ONLINE_DOCS:\n\t\t\tOS.shell_open(DOCS_URL)\n\t\t\tSteamManager.set_achievement(\"ACH_ONLINE_DOCS\")\n\t\tGlobal.HelpMenu.RESTORE_BACKUP:\n\t\t\tbackup_dialog.popup()\n\t\tGlobal.HelpMenu.ISSUE_TRACKER:\n\t\t\tOS.shell_open(ISSUES_URL)\n\t\tGlobal.HelpMenu.OPEN_EDITOR_DATA_FOLDER:\n\t\t\tOS.shell_open(ProjectSettings.globalize_path(\"user://\"))\n\t\tGlobal.HelpMenu.CHANGELOG:\n\t\t\tOS.shell_open(CHANGELOG_URL)\n\t\tGlobal.HelpMenu.ABOUT_PIXELORAMA:\n\t\t\tabout_dialog.popup()\n\t\tGlobal.HelpMenu.SUPPORT_PIXELORAMA:\n\t\t\tOS.shell_open(SUPPORT_URL)\n\t\t\tSteamManager.set_achievement(\"ACH_SUPPORT_DEVELOPMENT\")\n\t\t_:\n\t\t\t_handle_metadata(id, help_menu)\n"
  },
  {
    "path": "src/UI/TopMenuContainer/TopMenuContainer.gd.uid",
    "content": "uid://bw54cqc214ur8\n"
  },
  {
    "path": "src/UI/TopMenuContainer/TopMenuContainer.tscn",
    "content": "[gd_scene format=3 uid=\"uid://bsgwar3l6qtgv\"]\n\n[ext_resource type=\"Script\" uid=\"uid://tfdhqto6j5j0\" path=\"res://src/UI/Nodes/Sliders/ValueSlider.gd\" id=\"1\"]\n[ext_resource type=\"Script\" uid=\"uid://bw54cqc214ur8\" path=\"res://src/UI/TopMenuContainer/TopMenuContainer.gd\" id=\"2\"]\n[ext_resource type=\"Script\" uid=\"uid://c6oak0m37f3xg\" path=\"res://src/UI/TopMenuContainer/undo_history_dialog.gd\" id=\"3_5t7b8\"]\n[ext_resource type=\"Script\" uid=\"uid://cxiyeo4unmg3u\" path=\"res://src/UI/TopMenuContainer/quick_access_buttons.gd\" id=\"3_jyry5\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://drrcnm2w0glru\" path=\"res://assets/graphics/quick_access_panel/save.svg\" id=\"3_p1o86\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://dsb5lut4qfo11\" path=\"res://assets/graphics/quick_access_panel/undo.svg\" id=\"4_jyry5\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://ciqtn0nqmn3nk\" path=\"res://assets/graphics/quick_access_panel/redo.svg\" id=\"5_vglpq\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://btxf72xcqrn4c\" path=\"res://assets/graphics/quick_access_panel/copy.svg\" id=\"6_u31k5\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://bblxfj2ey7p04\" path=\"res://assets/graphics/quick_access_panel/cut.svg\" id=\"7_1wx4i\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://c6vu0iwn4qesr\" path=\"res://assets/graphics/quick_access_panel/paste.svg\" id=\"8_0yk3c\"]\n[ext_resource type=\"Texture2D\" uid=\"uid://b0wuerwimmxav\" path=\"res://assets/graphics/quick_access_panel/remove.svg\" id=\"9_24r3n\"]\n\n[node name=\"TopMenuContainer\" type=\"Panel\" unique_id=1569386863]\ncustom_minimum_size = Vector2(0, 32)\noffset_right = 1280.0\noffset_bottom = 28.0\nscript = ExtResource(\"2\")\n\n[node name=\"MarginContainer\" type=\"MarginContainer\" parent=\".\" unique_id=1524615853]\nlayout_mode = 1\nanchors_preset = -1\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_vertical = 2\ntheme_override_constants/margin_left = 8\ntheme_override_constants/margin_right = 8\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"MarginContainer\" unique_id=1819716554]\nlayout_mode = 2\n\n[node name=\"MainMenuButton\" type=\"MenuButton\" parent=\"MarginContainer/HBoxContainer\" unique_id=146980267]\nvisible = false\nlayout_mode = 2\nmouse_default_cursor_shape = 2\ntext = \"Main Menu\"\n\n[node name=\"MenuBar\" type=\"MenuBar\" parent=\"MarginContainer/HBoxContainer\" unique_id=359350634]\nlayout_mode = 2\nsize_flags_horizontal = 2\nflat = true\n\n[node name=\"File\" type=\"PopupMenu\" parent=\"MarginContainer/HBoxContainer/MenuBar\" unique_id=1224741301]\n\n[node name=\"Edit\" type=\"PopupMenu\" parent=\"MarginContainer/HBoxContainer/MenuBar\" unique_id=894854999]\n\n[node name=\"Select\" type=\"PopupMenu\" parent=\"MarginContainer/HBoxContainer/MenuBar\" unique_id=1630003755]\n\n[node name=\"Project\" type=\"PopupMenu\" parent=\"MarginContainer/HBoxContainer/MenuBar\" unique_id=1172244258]\n\n[node name=\"Effects\" type=\"PopupMenu\" parent=\"MarginContainer/HBoxContainer/MenuBar\" unique_id=77521974]\n\n[node name=\"View\" type=\"PopupMenu\" parent=\"MarginContainer/HBoxContainer/MenuBar\" unique_id=1075900013]\n\n[node name=\"Window\" type=\"PopupMenu\" parent=\"MarginContainer/HBoxContainer/MenuBar\" unique_id=506854729]\n\n[node name=\"Help\" type=\"PopupMenu\" parent=\"MarginContainer/HBoxContainer/MenuBar\" unique_id=2064979441]\n\n[node name=\"TopLabels\" type=\"HBoxContainer\" parent=\"MarginContainer/HBoxContainer\" unique_id=1935929971]\nlayout_mode = 2\nsize_flags_horizontal = 6\ntheme_override_constants/separation = 20\n\n[node name=\"RotationSlider\" type=\"TextureProgressBar\" parent=\"MarginContainer/HBoxContainer/TopLabels\" unique_id=204642904]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(70, 20)\nlayout_mode = 2\nsize_flags_vertical = 4\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = -180.0\nmax_value = 180.0\nstep = 0.1\nallow_greater = true\nallow_lesser = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1\")\nsuffix = \"°\"\nsnap_step = 45.0\n\n[node name=\"ZoomSlider\" type=\"TextureProgressBar\" parent=\"MarginContainer/HBoxContainer/TopLabels\" unique_id=1489184637]\nunique_name_in_owner = true\ncustom_minimum_size = Vector2(90, 20)\nlayout_mode = 2\nsize_flags_vertical = 4\nfocus_mode = 2\nmouse_default_cursor_shape = 2\ntheme_type_variation = &\"ValueSlider\"\nmin_value = 1.0\nmax_value = 5000.0\nvalue = 50.0\nallow_greater = true\nnine_patch_stretch = true\nstretch_margin_left = 3\nstretch_margin_top = 3\nstretch_margin_right = 3\nstretch_margin_bottom = 3\nscript = ExtResource(\"1\")\nsuffix = \"%\"\nsnap_step = 100.0\n\n[node name=\"CursorPosition\" type=\"Label\" parent=\"MarginContainer/HBoxContainer/TopLabels\" unique_id=669818577]\nunique_name_in_owner = true\nlayout_mode = 2\ntext = \"[64×64]\"\n\n[node name=\"QuickAccessButtons\" type=\"VFlowContainer\" parent=\"MarginContainer/HBoxContainer\" unique_id=1032869178]\nvisible = false\nlayout_mode = 2\nsize_flags_horizontal = 3\nalignment = 1\nscript = ExtResource(\"3_jyry5\")\n\n[node name=\"Undo\" type=\"Button\" parent=\"MarginContainer/HBoxContainer/QuickAccessButtons\" unique_id=656560383 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\nsize_flags_vertical = 4\ntooltip_text = \"Undo\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"MarginContainer/HBoxContainer/QuickAccessButtons/Undo\" unique_id=931602762]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"4_jyry5\")\nstretch_mode = 3\n\n[node name=\"Redo\" type=\"Button\" parent=\"MarginContainer/HBoxContainer/QuickAccessButtons\" unique_id=467903916 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\nsize_flags_vertical = 4\ntooltip_text = \"Redo\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"MarginContainer/HBoxContainer/QuickAccessButtons/Redo\" unique_id=1983536949]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"5_vglpq\")\nstretch_mode = 3\n\n[node name=\"Save\" type=\"Button\" parent=\"MarginContainer/HBoxContainer/QuickAccessButtons\" unique_id=17304904 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\nsize_flags_vertical = 4\ntooltip_text = \"Save\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"MarginContainer/HBoxContainer/QuickAccessButtons/Save\" unique_id=2058503723]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"3_p1o86\")\nstretch_mode = 3\n\n[node name=\"Copy\" type=\"Button\" parent=\"MarginContainer/HBoxContainer/QuickAccessButtons\" unique_id=1290832250 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\nsize_flags_vertical = 4\ntooltip_text = \"Copy\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"MarginContainer/HBoxContainer/QuickAccessButtons/Copy\" unique_id=726001689]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"6_u31k5\")\nstretch_mode = 3\n\n[node name=\"Cut\" type=\"Button\" parent=\"MarginContainer/HBoxContainer/QuickAccessButtons\" unique_id=2124912130 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\nsize_flags_vertical = 4\ntooltip_text = \"Cut\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"MarginContainer/HBoxContainer/QuickAccessButtons/Cut\" unique_id=1387879997]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"7_1wx4i\")\nstretch_mode = 3\n\n[node name=\"Paste\" type=\"Button\" parent=\"MarginContainer/HBoxContainer/QuickAccessButtons\" unique_id=601055831 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\nsize_flags_vertical = 4\ntooltip_text = \"Paste\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"MarginContainer/HBoxContainer/QuickAccessButtons/Paste\" unique_id=712914534]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"8_0yk3c\")\nstretch_mode = 3\n\n[node name=\"Delete\" type=\"Button\" parent=\"MarginContainer/HBoxContainer/QuickAccessButtons\" unique_id=194898671 groups=[\"UIButtons\"]]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\nsize_flags_vertical = 4\ntooltip_text = \"Delete\"\nfocus_mode = 0\nmouse_default_cursor_shape = 2\n\n[node name=\"TextureRect\" type=\"TextureRect\" parent=\"MarginContainer/HBoxContainer/QuickAccessButtons/Delete\" unique_id=250624969]\nlayout_mode = 1\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\ngrow_horizontal = 2\ngrow_vertical = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 0\ntexture = ExtResource(\"9_24r3n\")\nstretch_mode = 3\n\n[node name=\"Shift\" type=\"Button\" parent=\"MarginContainer/HBoxContainer/QuickAccessButtons\" unique_id=916742739]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\nsize_flags_vertical = 4\nfocus_mode = 0\nmouse_default_cursor_shape = 2\ntoggle_mode = true\ntext = \"Shift\"\n\n[node name=\"Ctrl\" type=\"Button\" parent=\"MarginContainer/HBoxContainer/QuickAccessButtons\" unique_id=744367413]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\nsize_flags_vertical = 4\nfocus_mode = 0\nmouse_default_cursor_shape = 2\ntoggle_mode = true\ntext = \"Ctrl\"\n\n[node name=\"Alt\" type=\"Button\" parent=\"MarginContainer/HBoxContainer/QuickAccessButtons\" unique_id=1331416086]\ncustom_minimum_size = Vector2(32, 32)\nlayout_mode = 2\nsize_flags_vertical = 4\nfocus_mode = 0\nmouse_default_cursor_shape = 2\ntoggle_mode = true\ntext = \"Alt\"\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"MarginContainer/HBoxContainer\" unique_id=1819772476]\nlayout_mode = 2\nsize_flags_horizontal = 8\nalignment = 1\n\n[node name=\"CurrentFrame\" type=\"Label\" parent=\"MarginContainer/HBoxContainer/HBoxContainer\" unique_id=1572105713]\nlayout_mode = 2\nsize_flags_vertical = 1\ntext = \"Current frame:\"\n\n[node name=\"CurrentFrameMark\" type=\"Label\" parent=\"MarginContainer/HBoxContainer/HBoxContainer\" unique_id=1844494753]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_vertical = 1\ntext = \"1/1\"\n\n[node name=\"UndoHistoryDialog\" type=\"AcceptDialog\" parent=\".\" unique_id=935198027]\noversampling_override = 1.0\ntitle = \"Undo History\"\nsize = Vector2i(400, 300)\nscript = ExtResource(\"3_5t7b8\")\n\n[node name=\"ItemList\" type=\"ItemList\" parent=\"UndoHistoryDialog\" unique_id=1724670920]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 8.0\noffset_top = 8.0\noffset_right = -8.0\noffset_bottom = -49.0\ngrow_horizontal = 2\ngrow_vertical = 2\n\n[node name=\"AddLayoutConfirmation\" type=\"ConfirmationDialog\" parent=\".\" unique_id=1872394877]\nauto_translate_mode = 1\ntitle = \"Add Layout\"\nsize = Vector2i(246, 123)\n\n[node name=\"VBoxContainer\" type=\"VBoxContainer\" parent=\"AddLayoutConfirmation\" unique_id=1812847554]\noffset_left = 8.0\noffset_top = 8.0\noffset_right = 238.0\noffset_bottom = 74.0\n\n[node name=\"LayoutName\" type=\"LineEdit\" parent=\"AddLayoutConfirmation/VBoxContainer\" unique_id=704901556]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nplaceholder_text = \"Insert name\"\n\n[node name=\"HBoxContainer\" type=\"HBoxContainer\" parent=\"AddLayoutConfirmation/VBoxContainer\" unique_id=2083838297]\nlayout_mode = 2\n\n[node name=\"LayoutFromLabel\" type=\"Label\" parent=\"AddLayoutConfirmation/VBoxContainer/HBoxContainer\" unique_id=356502800]\nlayout_mode = 2\nsize_flags_horizontal = 3\ntext = \"Copy from\"\n\n[node name=\"LayoutFrom\" type=\"OptionButton\" parent=\"AddLayoutConfirmation/VBoxContainer/HBoxContainer\" unique_id=977450996]\nunique_name_in_owner = true\nlayout_mode = 2\nsize_flags_horizontal = 3\nselected = 0\nitem_count = 1\npopup/item_0/text = \"Current layout\"\npopup/item_0/id = 0\n\n[node name=\"DeleteLayoutConfirmation\" type=\"ConfirmationDialog\" parent=\".\" unique_id=984107300]\nauto_translate_mode = 1\ntitle = \"Delete Layout\"\ndialog_text = \"Are you sure you want to delete this layout?\"\n\n[connection signal=\"pressed\" from=\"MarginContainer/HBoxContainer/QuickAccessButtons/Undo\" to=\"MarginContainer/HBoxContainer/QuickAccessButtons\" method=\"_on_undo_pressed\"]\n[connection signal=\"pressed\" from=\"MarginContainer/HBoxContainer/QuickAccessButtons/Redo\" to=\"MarginContainer/HBoxContainer/QuickAccessButtons\" method=\"_on_redo_pressed\"]\n[connection signal=\"pressed\" from=\"MarginContainer/HBoxContainer/QuickAccessButtons/Save\" to=\"MarginContainer/HBoxContainer/QuickAccessButtons\" method=\"_on_save_pressed\"]\n[connection signal=\"pressed\" from=\"MarginContainer/HBoxContainer/QuickAccessButtons/Copy\" to=\"MarginContainer/HBoxContainer/QuickAccessButtons\" method=\"_on_copy_pressed\"]\n[connection signal=\"pressed\" from=\"MarginContainer/HBoxContainer/QuickAccessButtons/Cut\" to=\"MarginContainer/HBoxContainer/QuickAccessButtons\" method=\"_on_cut_pressed\"]\n[connection signal=\"pressed\" from=\"MarginContainer/HBoxContainer/QuickAccessButtons/Paste\" to=\"MarginContainer/HBoxContainer/QuickAccessButtons\" method=\"_on_paste_pressed\"]\n[connection signal=\"pressed\" from=\"MarginContainer/HBoxContainer/QuickAccessButtons/Delete\" to=\"MarginContainer/HBoxContainer/QuickAccessButtons\" method=\"_on_delete_pressed\"]\n[connection signal=\"toggled\" from=\"MarginContainer/HBoxContainer/QuickAccessButtons/Shift\" to=\"MarginContainer/HBoxContainer/QuickAccessButtons\" method=\"_on_shift_toggled\"]\n[connection signal=\"toggled\" from=\"MarginContainer/HBoxContainer/QuickAccessButtons/Ctrl\" to=\"MarginContainer/HBoxContainer/QuickAccessButtons\" method=\"_on_ctrl_toggled\"]\n[connection signal=\"toggled\" from=\"MarginContainer/HBoxContainer/QuickAccessButtons/Alt\" to=\"MarginContainer/HBoxContainer/QuickAccessButtons\" method=\"_on_alt_toggled\"]\n[connection signal=\"visibility_changed\" from=\"UndoHistoryDialog\" to=\"UndoHistoryDialog\" method=\"_on_visibility_changed\"]\n[connection signal=\"item_selected\" from=\"UndoHistoryDialog/ItemList\" to=\"UndoHistoryDialog\" method=\"_on_item_list_item_selected\"]\n[connection signal=\"confirmed\" from=\"AddLayoutConfirmation\" to=\".\" method=\"_on_add_layout_confirmation_confirmed\"]\n[connection signal=\"visibility_changed\" from=\"AddLayoutConfirmation\" to=\".\" method=\"_on_add_layout_confirmation_visibility_changed\"]\n[connection signal=\"confirmed\" from=\"DeleteLayoutConfirmation\" to=\".\" method=\"_on_delete_layout_confirmation_confirmed\"]\n[connection signal=\"visibility_changed\" from=\"DeleteLayoutConfirmation\" to=\".\" method=\"_on_delete_layout_confirmation_visibility_changed\"]\n"
  },
  {
    "path": "src/UI/TopMenuContainer/quick_access_buttons.gd",
    "content": "extends VFlowContainer\n\n@onready var top_menu_container: Panel = $\"../../..\"\n\n\nfunc _ready() -> void:\n\tif DisplayServer.is_touchscreen_available():\n\t\tshow()\n\n\nfunc _on_save_pressed() -> void:\n\ttop_menu_container.file_menu_id_pressed(Global.FileMenu.SAVE)\n\n\nfunc _on_undo_pressed() -> void:\n\ttop_menu_container.edit_menu_id_pressed(Global.EditMenu.UNDO)\n\n\nfunc _on_redo_pressed() -> void:\n\ttop_menu_container.edit_menu_id_pressed(Global.EditMenu.REDO)\n\n\nfunc _on_copy_pressed() -> void:\n\ttop_menu_container.edit_menu_id_pressed(Global.EditMenu.COPY)\n\n\nfunc _on_cut_pressed() -> void:\n\ttop_menu_container.edit_menu_id_pressed(Global.EditMenu.CUT)\n\n\nfunc _on_paste_pressed() -> void:\n\ttop_menu_container.edit_menu_id_pressed(Global.EditMenu.PASTE)\n\n\nfunc _on_delete_pressed() -> void:\n\ttop_menu_container.edit_menu_id_pressed(Global.EditMenu.DELETE)\n\n\nfunc _on_shift_toggled(toggled_on: bool) -> void:\n\tvar event := InputEventKey.new()\n\tevent.keycode = KEY_SHIFT\n\tevent.pressed = toggled_on\n\tInput.parse_input_event(event)\n\n\nfunc _on_ctrl_toggled(toggled_on: bool) -> void:\n\tvar event := InputEventKey.new()\n\tevent.keycode = KEY_CTRL\n\tevent.pressed = toggled_on\n\tInput.parse_input_event(event)\n\n\nfunc _on_alt_toggled(toggled_on: bool) -> void:\n\tvar event := InputEventKey.new()\n\tevent.keycode = KEY_ALT\n\tevent.pressed = toggled_on\n\tInput.parse_input_event(event)\n"
  },
  {
    "path": "src/UI/TopMenuContainer/quick_access_buttons.gd.uid",
    "content": "uid://cxiyeo4unmg3u\n"
  },
  {
    "path": "src/UI/TopMenuContainer/undo_history_dialog.gd",
    "content": "extends AcceptDialog\n\n@onready var item_list: ItemList = $ItemList\n\n\nfunc _on_visibility_changed() -> void:\n\tvar project := Global.current_project\n\tvar version := project.undo_redo.get_version()\n\tvar history_count := project.undo_redo.get_history_count()\n\tif not is_instance_valid(item_list):\n\t\treturn\n\tGlobal.dialog_open(visible)\n\tif visible:\n\t\titem_list.clear()\n\t\tfor i in range(history_count - 1, -1, -1):\n\t\t\tvar action := project.undo_redo.get_action_name(i)\n\t\t\titem_list.add_item(action)\n\t\titem_list.add_item(\"Initial state\")\n\t\titem_list.select(history_count - version + 1)\n\n\nfunc _on_item_list_item_selected(index: int) -> void:\n\tvar project := Global.current_project\n\tvar history_count := project.undo_redo.get_history_count()\n\tvar history_point := history_count - index + 1\n\twhile project.undo_redo.get_version() > history_point:\n\t\tproject.commit_undo()\n\twhile project.undo_redo.get_version() < history_point:\n\t\tproject.commit_redo()\n"
  },
  {
    "path": "src/UI/TopMenuContainer/undo_history_dialog.gd.uid",
    "content": "uid://c6oak0m37f3xg\n"
  },
  {
    "path": "src/UI/UI.gd",
    "content": "extends Panel\n\nconst UI_TRANSPARENCY_SHADER := preload(\"uid://bwtsxcdoe2ps1\")\n\nvar shader_disabled := false\nvar transparency_material: ShaderMaterial\n\n@onready var dockable_container: DockableContainer = $DockableContainer\n@onready var main_canvas_container := find_child(\"Main Canvas\") as Container\n@onready var right_tool_options: ScrollContainer = $\"DockableContainer/Right Tool Options\"\n@onready var tiles: TileSetPanel = $DockableContainer/Tiles\n\n\nfunc _ready() -> void:\n\tGlobal.cel_switched.connect(_on_cel_switched)\n\tGlobal.single_tool_mode_changed.connect(_on_single_tool_mode_changed)\n\tif Global.window_transparency:\n\t\ttransparency_material = ShaderMaterial.new()\n\t\ttransparency_material.shader = UI_TRANSPARENCY_SHADER\n\t\tmaterial = transparency_material\n\t\tmain_canvas_container.property_list_changed.connect(_re_configure_shader)\n\t\tupdate_transparent_shader()\n\tawait Global.pixelorama_opened\n\tif Global.single_tool_mode:\n\t\tdockable_container.set_control_hidden.call_deferred(right_tool_options, true)\n\tdockable_container.set_control_hidden.call_deferred(tiles, true)\n\n\nfunc _on_cel_switched() -> void:\n\tvar cel := Global.current_project.get_current_cel()\n\tdockable_container.set_control_hidden(tiles, cel is not CelTileMap)\n\n\nfunc _on_single_tool_mode_changed(mode: bool) -> void:\n\tdockable_container.set_control_hidden(right_tool_options, mode)\n\n\nfunc _re_configure_shader() -> void:\n\tawait get_tree().process_frame\n\tif get_window() != main_canvas_container.get_window():\n\t\tmaterial = null\n\t\tshader_disabled = true\n\telse:\n\t\tif shader_disabled:\n\t\t\tmaterial = transparency_material\n\t\t\tshader_disabled = false\n\n\nfunc _on_main_canvas_item_rect_changed() -> void:\n\tupdate_transparent_shader()\n\n\nfunc _on_main_canvas_visibility_changed() -> void:\n\tupdate_transparent_shader()\n\n\nfunc update_transparent_shader() -> void:\n\tif not is_instance_valid(main_canvas_container) or not is_instance_valid(transparency_material):\n\t\treturn\n\t# Works independently of the transparency feature\n\tvar canvas_size: Vector2 = (main_canvas_container.size - Vector2.DOWN * 2) * Global.shrink\n\ttransparency_material.set_shader_parameter(\"screen_resolution\", get_viewport().size)\n\ttransparency_material.set_shader_parameter(\n\t\t\"position\", main_canvas_container.global_position * Global.shrink\n\t)\n\ttransparency_material.set_shader_parameter(\"size\", canvas_size)\n"
  },
  {
    "path": "src/UI/UI.gd.uid",
    "content": "uid://bssab6bm6lntw\n"
  },
  {
    "path": "src/UI/UI.tscn",
    "content": "[gd_scene format=3 uid=\"uid://c8dsi6ggkqa7a\"]\n\n[ext_resource type=\"PackedScene\" uid=\"uid://byu3rtoipuvoc\" path=\"res://src/UI/ToolsPanel/Tools.tscn\" id=\"1\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://c546tskdu53j1\" path=\"res://src/UI/Canvas/CanvasPreview.tscn\" id=\"2\"]\n[ext_resource type=\"Script\" uid=\"uid://dta2gofr682t4\" path=\"res://src/UI/Tabs.gd\" id=\"3\"]\n[ext_resource type=\"Script\" uid=\"uid://cqx80356eubav\" path=\"res://src/UI/Canvas/Rulers/VerticalRuler.gd\" id=\"4\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://3pmb60gpst7b\" path=\"res://src/UI/Nodes/TransparentChecker.tscn\" id=\"5\"]\n[ext_resource type=\"Script\" uid=\"uid://bs5pld0j5yvsk\" path=\"res://src/UI/Canvas/Rulers/HorizontalRuler.gd\" id=\"6\"]\n[ext_resource type=\"Script\" uid=\"uid://ctqrsfsbx4kwk\" path=\"res://src/UI/Canvas/CanvasCamera.gd\" id=\"7\"]\n[ext_resource type=\"Shader\" uid=\"uid://bhgdieau4cr1b\" path=\"res://src/Shaders/Greyscale.gdshader\" id=\"8\"]\n[ext_resource type=\"Shader\" uid=\"uid://c50kmfvf635kb\" path=\"res://src/Shaders/TransparentChecker.gdshader\" id=\"9\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://wo0hqxkst808\" path=\"res://src/UI/GlobalToolOptions/GlobalToolOptions.tscn\" id=\"10\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://cxhs8qy5ilufv\" path=\"res://src/UI/ReferenceImages/ReferencesPanel.tscn\" id=\"11\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://cap1bhavhi33g\" path=\"res://src/UI/PerspectiveEditor/PerspectiveEditor.tscn\" id=\"12\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://dl6ook010q86o\" path=\"res://src/UI/Recorder/Recorder.tscn\" id=\"13\"]\n[ext_resource type=\"Script\" uid=\"uid://icucbtatip66\" path=\"res://addons/dockable_container/layout.gd\" id=\"14\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://ccsihk3yxwei5\" path=\"res://src/UI/CanvasPreviewContainer/CanvasPreviewContainer.tscn\" id=\"16\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://c3vcvhh4d8hd7\" path=\"res://src/UI/ColorPickers/ColorPicker.tscn\" id=\"17\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://dbr6mulku2qju\" path=\"res://src/UI/Timeline/AnimationTimeline.tscn\" id=\"18\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://ba24iuv55m4l3\" path=\"res://src/UI/Canvas/Canvas.tscn\" id=\"19\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://wplk62pbgih4\" path=\"res://src/Palette/PalettePanel.tscn\" id=\"20\"]\n[ext_resource type=\"Script\" uid=\"uid://dqwin6fl5qqn0\" path=\"res://src/UI/ViewportContainer.gd\" id=\"23\"]\n[ext_resource type=\"PackedScene\" uid=\"uid://bfbragmmdwfbl\" path=\"res://src/UI/TilesPanel.tscn\" id=\"23_wyr78\"]\n[ext_resource type=\"Script\" uid=\"uid://bvvbi3x82xnut\" path=\"res://addons/dockable_container/layout_split.gd\" id=\"27\"]\n[ext_resource type=\"Script\" uid=\"uid://bfi1mm158ge5l\" path=\"res://addons/dockable_container/dockable_container.gd\" id=\"35\"]\n[ext_resource type=\"Script\" uid=\"uid://da67x3ua6ietw\" path=\"res://addons/dockable_container/layout_panel.gd\" id=\"36\"]\n[ext_resource type=\"Script\" uid=\"uid://bssab6bm6lntw\" path=\"res://src/UI/UI.gd\" id=\"37\"]\n\n[sub_resource type=\"Resource\" id=\"Resource_xnnnd\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"36\")\nnames = PackedStringArray(\"Tools\", \"Reference Images\", \"Tiles\")\n\n[sub_resource type=\"Resource\" id=\"Resource_34hle\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"36\")\nnames = PackedStringArray(\"Main Canvas\")\n\n[sub_resource type=\"Resource\" id=\"Resource_l6i6g\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"36\")\nnames = PackedStringArray(\"Perspective Editor\")\n\n[sub_resource type=\"Resource\" id=\"Resource_r2r5t\"]\nresource_name = \"Split\"\nscript = ExtResource(\"27\")\nfirst = SubResource(\"Resource_34hle\")\nsecond = SubResource(\"Resource_l6i6g\")\n\n[sub_resource type=\"Resource\" id=\"Resource_k7omi\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"36\")\nnames = PackedStringArray(\"Second Canvas\")\n\n[sub_resource type=\"Resource\" id=\"Resource_l142s\"]\nresource_name = \"Split\"\nscript = ExtResource(\"27\")\npercent = 0.980952\nfirst = SubResource(\"Resource_r2r5t\")\nsecond = SubResource(\"Resource_k7omi\")\n\n[sub_resource type=\"Resource\" id=\"Resource_wobi1\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"36\")\nnames = PackedStringArray(\"Animation Timeline\")\n\n[sub_resource type=\"Resource\" id=\"Resource_85y6p\"]\nresource_name = \"Split\"\nscript = ExtResource(\"27\")\ndirection = 1\npercent = 0.74711\nfirst = SubResource(\"Resource_l142s\")\nsecond = SubResource(\"Resource_wobi1\")\n\n[sub_resource type=\"Resource\" id=\"Resource_4egp5\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"36\")\nnames = PackedStringArray(\"Canvas Preview\")\n\n[sub_resource type=\"Resource\" id=\"Resource_fcw5v\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"36\")\nnames = PackedStringArray(\"Color Picker\")\n\n[sub_resource type=\"Resource\" id=\"Resource_c7hpy\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"36\")\nnames = PackedStringArray(\"Global Tool Options\")\n\n[sub_resource type=\"Resource\" id=\"Resource_56tpw\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"36\")\nnames = PackedStringArray(\"Recorder\")\n\n[sub_resource type=\"Resource\" id=\"Resource_fhmn0\"]\nresource_name = \"Split\"\nscript = ExtResource(\"27\")\ndirection = 1\nfirst = SubResource(\"Resource_c7hpy\")\nsecond = SubResource(\"Resource_56tpw\")\n\n[sub_resource type=\"Resource\" id=\"Resource_u1u2a\"]\nresource_name = \"Split\"\nscript = ExtResource(\"27\")\ndirection = 1\nfirst = SubResource(\"Resource_fcw5v\")\nsecond = SubResource(\"Resource_fhmn0\")\n\n[sub_resource type=\"Resource\" id=\"Resource_6eonw\"]\nresource_name = \"Split\"\nscript = ExtResource(\"27\")\ndirection = 1\npercent = 0.911765\nfirst = SubResource(\"Resource_4egp5\")\nsecond = SubResource(\"Resource_u1u2a\")\n\n[sub_resource type=\"Resource\" id=\"Resource_6pwxm\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"36\")\nnames = PackedStringArray(\"Left Tool Options\")\n\n[sub_resource type=\"Resource\" id=\"Resource_24rfh\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"36\")\nnames = PackedStringArray(\"Right Tool Options\")\n\n[sub_resource type=\"Resource\" id=\"Resource_tcb26\"]\nresource_name = \"Split\"\nscript = ExtResource(\"27\")\nfirst = SubResource(\"Resource_6pwxm\")\nsecond = SubResource(\"Resource_24rfh\")\n\n[sub_resource type=\"Resource\" id=\"Resource_ugja0\"]\nresource_name = \"Tabs\"\nscript = ExtResource(\"36\")\nnames = PackedStringArray(\"Palettes\")\n\n[sub_resource type=\"Resource\" id=\"Resource_hr77s\"]\nresource_name = \"Split\"\nscript = ExtResource(\"27\")\ndirection = 1\npercent = 0.692661\nfirst = SubResource(\"Resource_tcb26\")\nsecond = SubResource(\"Resource_ugja0\")\n\n[sub_resource type=\"Resource\" id=\"Resource_l8roh\"]\nresource_name = \"Split\"\nscript = ExtResource(\"27\")\ndirection = 1\npercent = 0.339595\nfirst = SubResource(\"Resource_6eonw\")\nsecond = SubResource(\"Resource_hr77s\")\n\n[sub_resource type=\"Resource\" id=\"Resource_s2xu6\"]\nresource_name = \"Split\"\nscript = ExtResource(\"27\")\npercent = 0.727569\nfirst = SubResource(\"Resource_85y6p\")\nsecond = SubResource(\"Resource_l8roh\")\n\n[sub_resource type=\"Resource\" id=\"Resource_cwe4h\"]\nresource_name = \"Split\"\nscript = ExtResource(\"27\")\npercent = 0.0103806\nfirst = SubResource(\"Resource_xnnnd\")\nsecond = SubResource(\"Resource_s2xu6\")\n\n[sub_resource type=\"Resource\" id=\"Resource_b6o2t\"]\nresource_name = \"Layout\"\nscript = ExtResource(\"14\")\nroot = SubResource(\"Resource_cwe4h\")\nhidden_tabs = {\n\"Canvas Preview\": true,\n\"Color Picker Sliders\": true,\n\"Perspective Editor\": true,\n\"Recorder\": true,\n\"Reference Images\": true,\n\"Second Canvas\": true\n}\n\n[sub_resource type=\"ShaderMaterial\" id=\"2\"]\nshader = ExtResource(\"9\")\nshader_parameter/size = 10.0\nshader_parameter/alpha = 1.0\nshader_parameter/color1 = Color(0.7, 0.7, 0.7, 1)\nshader_parameter/color2 = Color(1, 1, 1, 1)\nshader_parameter/offset = Vector2(0, 0)\nshader_parameter/scale = Vector2(0, 0)\nshader_parameter/rect_size = Vector2(0, 0)\nshader_parameter/follow_movement = false\nshader_parameter/follow_scale = false\n\n[sub_resource type=\"ShaderMaterial\" id=\"27\"]\nshader = ExtResource(\"8\")\n\n[sub_resource type=\"ShaderMaterial\" id=\"3\"]\nshader = ExtResource(\"9\")\nshader_parameter/size = 10.0\nshader_parameter/alpha = 1.0\nshader_parameter/color1 = Color(0.7, 0.7, 0.7, 1)\nshader_parameter/color2 = Color(1, 1, 1, 1)\nshader_parameter/offset = Vector2(0, 0)\nshader_parameter/scale = Vector2(0, 0)\nshader_parameter/rect_size = Vector2(0, 0)\nshader_parameter/follow_movement = false\nshader_parameter/follow_scale = false\n\n[node name=\"UI\" type=\"Panel\" unique_id=1431137400]\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\nmouse_filter = 1\nscript = ExtResource(\"37\")\n\n[node name=\"DockableContainer\" type=\"Container\" parent=\".\" unique_id=1354851162]\nlayout_mode = 0\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_left = 8.0\noffset_right = -8.0\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\nscript = ExtResource(\"35\")\nhide_single_tab = true\nlayout = SubResource(\"Resource_b6o2t\")\nclone_layout_on_ready = false\n\n[node name=\"Tools\" parent=\"DockableContainer\" unique_id=492601693 instance=ExtResource(\"1\")]\nlayout_mode = 2\n\n[node name=\"Main Canvas\" type=\"VBoxContainer\" parent=\"DockableContainer\" unique_id=412148062]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\ntheme_override_constants/separation = 0\n\n[node name=\"TabsContainer\" type=\"PanelContainer\" parent=\"DockableContainer/Main Canvas\" unique_id=799763109]\nlayout_mode = 2\n\n[node name=\"TabBar\" type=\"TabBar\" parent=\"DockableContainer/Main Canvas/TabsContainer\" unique_id=1423914850]\nauto_translate_mode = 2\nlayout_mode = 2\ntab_close_display_policy = 2\ndrag_to_rearrange_enabled = true\nscript = ExtResource(\"3\")\n\n[node name=\"HorizontalRuler\" type=\"Button\" parent=\"DockableContainer/Main Canvas\" unique_id=278517062 node_paths=PackedStringArray(\"viewport_container\", \"camera\") groups=[\"CanvasRulers\"]]\nclip_contents = true\ncustom_minimum_size = Vector2(0, 16)\nlayout_mode = 2\nfocus_mode = 0\nmouse_default_cursor_shape = 14\ntheme_type_variation = &\"RulerButton\"\naction_mode = 0\nscript = ExtResource(\"6\")\nviewport_container = NodePath(\"../ViewportandVerticalRuler/SubViewportContainer\")\ncamera = NodePath(\"../ViewportandVerticalRuler/SubViewportContainer/SubViewport/Camera2D\")\n\n[node name=\"ViewportandVerticalRuler\" type=\"HBoxContainer\" parent=\"DockableContainer/Main Canvas\" unique_id=1894081549]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\ntheme_override_constants/separation = 0\n\n[node name=\"VerticalRuler\" type=\"Button\" parent=\"DockableContainer/Main Canvas/ViewportandVerticalRuler\" unique_id=1614697544 node_paths=PackedStringArray(\"viewport_container\", \"camera\") groups=[\"CanvasRulers\"]]\nclip_contents = true\ncustom_minimum_size = Vector2(16, 0)\nlayout_mode = 2\nsize_flags_horizontal = 0\nsize_flags_vertical = 3\nfocus_mode = 0\nmouse_default_cursor_shape = 15\ntheme_type_variation = &\"RulerButton\"\naction_mode = 0\nscript = ExtResource(\"4\")\nviewport_container = NodePath(\"../SubViewportContainer\")\ncamera = NodePath(\"../SubViewportContainer/SubViewport/Camera2D\")\n\n[node name=\"SubViewportContainer\" type=\"SubViewportContainer\" parent=\"DockableContainer/Main Canvas/ViewportandVerticalRuler\" unique_id=1021631999]\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\nfocus_mode = 2\nstretch = true\nscript = ExtResource(\"23\")\ncamera_path = NodePath(\"SubViewport/Camera2D\")\n\n[node name=\"SubViewport\" type=\"SubViewport\" parent=\"DockableContainer/Main Canvas/ViewportandVerticalRuler/SubViewportContainer\" unique_id=1063035719]\ndisable_3d = true\nhandle_input_locally = false\ncanvas_item_default_texture_filter = 0\nsize = Vector2i(809, 515)\nrender_target_update_mode = 4\n\n[node name=\"TransparentChecker\" parent=\"DockableContainer/Main Canvas/ViewportandVerticalRuler/SubViewportContainer/SubViewport\" unique_id=977983793 instance=ExtResource(\"5\")]\nmaterial = SubResource(\"2\")\n\n[node name=\"Canvas\" parent=\"DockableContainer/Main Canvas/ViewportandVerticalRuler/SubViewportContainer/SubViewport\" unique_id=1915759682 instance=ExtResource(\"19\")]\n\n[node name=\"Camera2D\" type=\"Node2D\" parent=\"DockableContainer/Main Canvas/ViewportandVerticalRuler/SubViewportContainer/SubViewport\" unique_id=1478356410 groups=[\"CanvasCameras\"]]\nscript = ExtResource(\"7\")\n\n[node name=\"CanvasLayer\" type=\"CanvasLayer\" parent=\"DockableContainer/Main Canvas/ViewportandVerticalRuler/SubViewportContainer/SubViewport\" unique_id=1574676608]\n\n[node name=\"GreyscaleVision\" type=\"ColorRect\" parent=\"DockableContainer/Main Canvas/ViewportandVerticalRuler/SubViewportContainer/SubViewport/CanvasLayer\" unique_id=1489047676]\nvisible = false\nmaterial = SubResource(\"27\")\nanchors_preset = 15\nanchor_right = 1.0\nanchor_bottom = 1.0\noffset_right = 40.0\noffset_bottom = 40.0\nmouse_filter = 2\n\n[node name=\"Second Canvas\" type=\"SubViewportContainer\" parent=\"DockableContainer\" unique_id=1483064810]\nvisible = false\nlayout_mode = 2\nsize_flags_vertical = 3\nstretch = true\nscript = ExtResource(\"23\")\ncamera_path = NodePath(\"SubViewport/Camera2D2\")\n\n[node name=\"SubViewport\" type=\"SubViewport\" parent=\"DockableContainer/Second Canvas\" unique_id=2004501249]\ndisable_3d = true\nhandle_input_locally = false\ncanvas_item_default_texture_filter = 0\nsize = Vector2i(2, 2)\nrender_target_update_mode = 0\n\n[node name=\"TransparentChecker\" parent=\"DockableContainer/Second Canvas/SubViewport\" unique_id=799733885 instance=ExtResource(\"5\")]\nmaterial = SubResource(\"3\")\n\n[node name=\"CanvasPreview\" parent=\"DockableContainer/Second Canvas/SubViewport\" unique_id=1394850393 groups=[\"CanvasPreviews\"] instance=ExtResource(\"2\")]\n\n[node name=\"Camera2D2\" type=\"Node2D\" parent=\"DockableContainer/Second Canvas/SubViewport\" unique_id=1003177582 groups=[\"CanvasCameras\"]]\nscript = ExtResource(\"7\")\nindex = 1\n\n[node name=\"Animation Timeline\" parent=\"DockableContainer\" unique_id=1139956430 instance=ExtResource(\"18\")]\nlayout_mode = 2\n\n[node name=\"Canvas Preview\" parent=\"DockableContainer\" unique_id=1753962058 instance=ExtResource(\"16\")]\nvisible = false\nlayout_mode = 2\n\n[node name=\"Color Picker\" parent=\"DockableContainer\" unique_id=1359696669 instance=ExtResource(\"17\")]\nlayout_mode = 2\n\n[node name=\"Global Tool Options\" parent=\"DockableContainer\" unique_id=187407303 instance=ExtResource(\"10\")]\nlayout_mode = 2\n\n[node name=\"Left Tool Options\" type=\"ScrollContainer\" parent=\"DockableContainer\" unique_id=1020831561]\ncustom_minimum_size = Vector2(72, 72)\nlayout_mode = 2\n\n[node name=\"LeftPanelContainer\" type=\"MarginContainer\" parent=\"DockableContainer/Left Tool Options\" unique_id=1828034153]\ncustom_minimum_size = Vector2(130, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"Right Tool Options\" type=\"ScrollContainer\" parent=\"DockableContainer\" unique_id=2060219285]\ncustom_minimum_size = Vector2(72, 72)\nlayout_mode = 2\n\n[node name=\"RightPanelContainer\" type=\"MarginContainer\" parent=\"DockableContainer/Right Tool Options\" unique_id=1053618903]\ncustom_minimum_size = Vector2(130, 0)\nlayout_mode = 2\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\n\n[node name=\"Palettes\" parent=\"DockableContainer\" unique_id=1759517791 instance=ExtResource(\"20\")]\nlayout_mode = 2\n\n[node name=\"Tiles\" parent=\"DockableContainer\" unique_id=1039496240 instance=ExtResource(\"23_wyr78\")]\nvisible = false\nlayout_mode = 2\n\n[node name=\"Reference Images\" parent=\"DockableContainer\" unique_id=116474698 instance=ExtResource(\"11\")]\nvisible = false\nlayout_mode = 2\n\n[node name=\"Perspective Editor\" parent=\"DockableContainer\" unique_id=1383565198 instance=ExtResource(\"12\")]\nvisible = false\nlayout_mode = 2\n\n[node name=\"Recorder\" parent=\"DockableContainer\" unique_id=184365863 instance=ExtResource(\"13\")]\nvisible = false\nlayout_mode = 2\n\n[connection signal=\"item_rect_changed\" from=\"DockableContainer/Main Canvas\" to=\".\" method=\"_on_main_canvas_item_rect_changed\"]\n[connection signal=\"visibility_changed\" from=\"DockableContainer/Main Canvas\" to=\".\" method=\"_on_main_canvas_visibility_changed\"]\n[connection signal=\"active_tab_rearranged\" from=\"DockableContainer/Main Canvas/TabsContainer/TabBar\" to=\"DockableContainer/Main Canvas/TabsContainer/TabBar\" method=\"_on_active_tab_rearranged\"]\n[connection signal=\"tab_changed\" from=\"DockableContainer/Main Canvas/TabsContainer/TabBar\" to=\"DockableContainer/Main Canvas/TabsContainer/TabBar\" method=\"_on_Tabs_tab_changed\"]\n[connection signal=\"tab_close_pressed\" from=\"DockableContainer/Main Canvas/TabsContainer/TabBar\" to=\"DockableContainer/Main Canvas/TabsContainer/TabBar\" method=\"_on_tab_close_pressed\"]\n[connection signal=\"mouse_entered\" from=\"DockableContainer/Main Canvas/HorizontalRuler\" to=\"DockableContainer/Main Canvas/HorizontalRuler\" method=\"_on_HorizontalRuler_mouse_entered\"]\n[connection signal=\"pressed\" from=\"DockableContainer/Main Canvas/HorizontalRuler\" to=\"DockableContainer/Main Canvas/HorizontalRuler\" method=\"_on_HorizontalRuler_pressed\"]\n[connection signal=\"pressed\" from=\"DockableContainer/Main Canvas/ViewportandVerticalRuler/VerticalRuler\" to=\"DockableContainer/Main Canvas/ViewportandVerticalRuler/VerticalRuler\" method=\"_on_VerticalRuler_pressed\"]\n[connection signal=\"mouse_entered\" from=\"DockableContainer/Main Canvas/ViewportandVerticalRuler/SubViewportContainer\" to=\"DockableContainer/Main Canvas/ViewportandVerticalRuler/SubViewportContainer\" method=\"_on_ViewportContainer_mouse_entered\"]\n[connection signal=\"mouse_exited\" from=\"DockableContainer/Main Canvas/ViewportandVerticalRuler/SubViewportContainer\" to=\"DockableContainer/Main Canvas/ViewportandVerticalRuler/SubViewportContainer\" method=\"_on_ViewportContainer_mouse_exited\"]\n[connection signal=\"mouse_entered\" from=\"DockableContainer/Second Canvas\" to=\"DockableContainer/Second Canvas\" method=\"_on_ViewportContainer_mouse_entered\"]\n[connection signal=\"mouse_exited\" from=\"DockableContainer/Second Canvas\" to=\"DockableContainer/Second Canvas\" method=\"_on_ViewportContainer_mouse_exited\"]\n"
  },
  {
    "path": "src/UI/ViewportContainer.gd",
    "content": "extends SubViewportContainer\n\n@export var camera_path: NodePath\n\n@onready var camera := get_node(camera_path) as CanvasCamera\n\n\nfunc _ready() -> void:\n\tmaterial = CanvasItemMaterial.new()\n\tmaterial.blend_mode = CanvasItemMaterial.BLEND_MODE_PREMULT_ALPHA\n\n\nfunc _on_ViewportContainer_mouse_entered() -> void:\n\tcamera.set_process_input(true)\n\tGlobal.control.left_cursor.visible = Global.show_left_tool_icon\n\tGlobal.control.right_cursor.visible = Global.show_right_tool_icon\n\tif Global.single_tool_mode:\n\t\tGlobal.control.right_cursor.visible = false\n\tif Global.cross_cursor:\n\t\tInput.set_default_cursor_shape(Input.CURSOR_CROSS)\n\n\nfunc _on_ViewportContainer_mouse_exited() -> void:\n\tcamera.set_process_input(false)\n\tcamera.drag = false\n\tGlobal.control.left_cursor.visible = false\n\tGlobal.control.right_cursor.visible = false\n\tInput.set_default_cursor_shape(Input.CURSOR_ARROW)\n"
  },
  {
    "path": "src/UI/ViewportContainer.gd.uid",
    "content": "uid://dqwin6fl5qqn0\n"
  }
]